Hello community,
here is the log from the commit of package kdebase4-workspace for
openSUSE:Factory checked in at 2013-07-30 15:58:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase4-workspace (Old)
and /work/SRC/openSUSE:Factory/.kdebase4-workspace.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase4-workspace"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase4-workspace/kdebase4-workspace.changes
2013-07-24 23:38:44.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.kdebase4-workspace.new/kdebase4-workspace.changes
2013-07-30 16:00:10.000000000 +0200
@@ -1,0 +2,21 @@
+Sat Jul 27 20:00:05 UTC 2013 - [email protected]
+
+- Added patches from upstream KDE/4.11 branch for resolving remaining
+ QML task manager regressions:
+ 0001-notify-the-client-when-a-notification-is-dismissed-b.patch
+ 0002-Enable-LayoutMirroring.patch
+ 0003-Proper-appearance-and-geometry-for-launcher-items.patch
+ 0004-Hide-unimplemented-manual-grouping-option.patch
+ 0005-Try-to-make-sure-the-group-dialog-stays-within-a-san.patch
+ 0006-Make-sure-tasks-are-layouted-before-they-are-shown.patch
+ 0007-Fix-bidi-layout-support.patch
+ 0008-Restore-correct-index-when-turning-a-task-back-into-.patch
+
+-------------------------------------------------------------------
+Thu Jul 25 22:06:29 UTC 2013 - [email protected]
+
+- Update to 4.10.97
+ * KDE 4.11 RC 2 release
+ * See http://www.kde.org/announcements/announce-4.11-rc2.php
+
+-------------------------------------------------------------------
Old:
----
kde-workspace-4.10.95.tar.xz
New:
----
0001-notify-the-client-when-a-notification-is-dismissed-b.patch
0002-Enable-LayoutMirroring.patch
0003-Proper-appearance-and-geometry-for-launcher-items.patch
0004-Hide-unimplemented-manual-grouping-option.patch
0005-Try-to-make-sure-the-group-dialog-stays-within-a-san.patch
0006-Make-sure-tasks-are-layouted-before-they-are-shown.patch
0007-Fix-bidi-layout-support.patch
0008-Restore-correct-index-when-turning-a-task-back-into-.patch
kde-workspace-4.10.97.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase4-workspace.spec ++++++
--- /var/tmp/diff_new_pack.u9ZxKm/_old 2013-07-30 16:00:12.000000000 +0200
+++ /var/tmp/diff_new_pack.u9ZxKm/_new 2013-07-30 16:00:12.000000000 +0200
@@ -23,7 +23,7 @@
%endif
Name: kdebase4-workspace
-Version: 4.10.95
+Version: 4.10.97
Release: 0
Summary: The KDE Workspace Components
License: GPL-2.0+
@@ -141,6 +141,23 @@
Patch64: klipper.patch
# PATCH-FIX-OPENSUSE helper_actions_syspath.patch -- disables
org.kde.powerdevil.backlighthelper.syspath policy, until bnc#825256 gets
resolved
Patch1000: helper_actions_syspath.patch
+# Patches 2000+ are from upstream KDE/4.11 branch
+# PATCH-FIX-UPSTREAM
0001-notify-the-client-when-a-notification-is-dismissed-b.patch
+Patch2000: 0001-notify-the-client-when-a-notification-is-dismissed-b.patch
+# PATCH-FIX-UPSTREAM 0002-Enable-LayoutMirroring.patch
+Patch2001: 0002-Enable-LayoutMirroring.patch
+# PATCH-FIX-UPSTREAM
0003-Proper-appearance-and-geometry-for-launcher-items.patch
+Patch2002: 0003-Proper-appearance-and-geometry-for-launcher-items.patch
+# PATCH-FIX-UPSTREAM 0004-Hide-unimplemented-manual-grouping-option.patch
+Patch2003: 0004-Hide-unimplemented-manual-grouping-option.patch
+# PATCH-FIX-UPSTREAM
0005-Try-to-make-sure-the-group-dialog-stays-within-a-san.patch
+Patch2004: 0005-Try-to-make-sure-the-group-dialog-stays-within-a-san.patch
+# PATCH-FIX-UPSTREAM
0006-Make-sure-tasks-are-layouted-before-they-are-shown.patch
+Patch2005: 0006-Make-sure-tasks-are-layouted-before-they-are-shown.patch
+# PATCH-FIX-UPSTREAM 0007-Fix-bidi-layout-support.patch
+Patch2006: 0007-Fix-bidi-layout-support.patch
+# PATCH-FIX-UPSTREAM
0008-Restore-correct-index-when-turning-a-task-back-into-.patch
+Patch2007: 0008-Restore-correct-index-when-turning-a-task-back-into-.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: %{name}-branding = %{_kde_branding_version}
Requires: %{name}-ksysguardd = %{version}
@@ -350,6 +367,14 @@
%patch63 -p1
%patch64 -p1
%patch1000 -p1
+%patch2000 -p1
+%patch2001 -p1
+%patch2002 -p1
+%patch2003 -p1
+%patch2004 -p1
+%patch2005 -p1
+%patch2006 -p1
+%patch2007 -p1
cp %{SOURCE3} kwin/effects/cube/data/cubecap.png
%build
++++++ 0001-notify-the-client-when-a-notification-is-dismissed-b.patch ++++++
>From 77e9f79f9c7e6f1e633f6ff53ddc751bf5ae3349 Mon Sep 17 00:00:00 2001
From: Marco Martin <[email protected]>
Date: Thu, 25 Jul 2013 12:04:09 +0200
Subject: [PATCH 1/8] notify the client when a notification is dismissed by
user
---
.../applets/notifications/contents/ui/LastNotificationPopup.qml | 1 +
.../contents/ui/NotificationDelegate/NotificationDelegate.qml | 1 +
plasma/generic/applets/notifications/contents/ui/Notifications.qml | 6 ++++++
plasma/generic/dataengines/notifications/notificationaction.cpp | 3 ++-
plasma/generic/dataengines/notifications/notificationsengine.h | 5 +++--
5 files changed, 13 insertions(+), 3 deletions(-)
diff --git
a/plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml
b/plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml
index c41993b..29a6a2d 100644
--- a/plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml
+++ b/plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml
@@ -340,6 +340,7 @@ PlasmaCore.Dialog {
onClicked: {
lastNotificationPopup.visible = false
lastNotificationTimer.running = false
+
closeNotification(notificationsModel.get((notificationsView.count-1)-notificationsView.currentIndex).source)
notificationsModel.remove((notificationsView.count-1)-notificationsView.currentIndex)
}
}
diff --git
a/plasma/generic/applets/notifications/contents/ui/NotificationDelegate/NotificationDelegate.qml
b/plasma/generic/applets/notifications/contents/ui/NotificationDelegate/NotificationDelegate.qml
index a101d87..ca7564f 100644
---
a/plasma/generic/applets/notifications/contents/ui/NotificationDelegate/NotificationDelegate.qml
+++
b/plasma/generic/applets/notifications/contents/ui/NotificationDelegate/NotificationDelegate.qml
@@ -130,6 +130,7 @@ PlasmaComponents.ListItem {
if (notificationsModel.count > 1) {
removeAnimation.running = true
} else {
+ closeNotification(model.source)
notificationsModel.remove(index)
}
}
diff --git a/plasma/generic/applets/notifications/contents/ui/Notifications.qml
b/plasma/generic/applets/notifications/contents/ui/Notifications.qml
index 1140eb7..114ead2 100644
--- a/plasma/generic/applets/notifications/contents/ui/Notifications.qml
+++ b/plasma/generic/applets/notifications/contents/ui/Notifications.qml
@@ -93,6 +93,12 @@ Column {
service.startOperationCall(op)
}
+ function closeNotification(source) {
+ var service = notificationsSource.serviceForSource(source)
+ var op = service.operationDescription("userClosed")
+ service.startOperationCall(op)
+ }
+
property QtObject lastNotificationPopup
Component {
id: lastNotificationPopupComponent
diff --git a/plasma/generic/dataengines/notifications/notificationaction.cpp
b/plasma/generic/dataengines/notifications/notificationaction.cpp
index 882e7f8..f35bf19 100644
--- a/plasma/generic/dataengines/notifications/notificationaction.cpp
+++ b/plasma/generic/dataengines/notifications/notificationaction.cpp
@@ -50,7 +50,8 @@ void NotificationAction::start()
//kDebug() << "invoking action on " << id;
emit m_engine->ActionInvoked(id, parameters()["actionId"].toString());
} else if (operationName() == "userClosed") {
- m_engine->userClosedNotification(id);
+ //userClosedNotification deletes the job, so we have to invoke it
queued, in this case emitResult() can be called
+ m_engine->metaObject()->invokeMethod(m_engine,
"userClosedNotification", Qt::QueuedConnection, Q_ARG(uint, id));
} else if (operationName() == "createNotification") {
int rv =
m_engine->createNotification(parameters().value("appName").toString(),
parameters().value("appIcon").toString(),
diff --git a/plasma/generic/dataengines/notifications/notificationsengine.h
b/plasma/generic/dataengines/notifications/notificationsengine.h
index 9f048f9..34d12ad 100644
--- a/plasma/generic/dataengines/notifications/notificationsengine.h
+++ b/plasma/generic/dataengines/notifications/notificationsengine.h
@@ -55,10 +55,11 @@ public:
int createNotification(const QString &appName, const QString &appIcon,
const QString &summary, const QString &body, int timeout, bool configurable,
const QString &appRealName);
- void userClosedNotification(uint id);
-
void configureNotification(const QString &appName);
+public Q_SLOTS:
+ void userClosedNotification(uint id);
+
signals:
void NotificationClosed( uint id, uint reason );
void ActionInvoked( uint id, const QString& actionKey );
--
1.8.3.1
++++++ 0002-Enable-LayoutMirroring.patch ++++++
>From 6b373d596eeedb47146e04d9db5bcaa2d2331400 Mon Sep 17 00:00:00 2001
From: Kai Uwe Broulik <[email protected]>
Date: Thu, 25 Jul 2013 14:56:25 +0200
Subject: [PATCH 2/8] Enable LayoutMirroring Has some issues with the Plasma
components (slider isn't mirrored, checkbox isn't either) but let's not
forget about the parts of the world where they write from right to left ;)
---
plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml | 3 +++
1 file changed, 3 insertions(+)
diff --git
a/plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml
b/plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml
index cddd38e..34a0904 100644
--- a/plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml
+++ b/plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml
@@ -31,6 +31,9 @@ Item {
property bool show_remaining_time: false
+ LayoutMirroring.enabled: true
+ LayoutMirroring.childrenInherit: true
+
Component.onCompleted: {
plasmoid.aspectRatioMode = IgnoreAspectRatio
updateLogic(true);
--
1.8.3.1
++++++ 0003-Proper-appearance-and-geometry-for-launcher-items.patch ++++++
>From f21aaf0b375279a3bc00de696e70449452ef082d Mon Sep 17 00:00:00 2001
From: Eike Hein <[email protected]>
Date: Sat, 27 Jul 2013 19:05:10 +0200
Subject: [PATCH 3/8] Proper appearance and geometry for launcher items.
Unlike in the old applet, this has launcher items interact
reasonably with multi-row configurations.
Also optimizes the layout code a bit, avoiding needless
update churn.
BUG:322072
---
libs/taskmanager/tasksmodel.cpp | 14 ++++-
.../applets/tasks/package/contents/code/layout.js | 66 ++++++++++++++++++----
.../applets/tasks/package/contents/ui/Task.qml | 20 +++++--
.../applets/tasks/package/contents/ui/main.qml | 11 +++-
4 files changed, 95 insertions(+), 16 deletions(-)
diff --git a/libs/taskmanager/tasksmodel.cpp b/libs/taskmanager/tasksmodel.cpp
index d49bcd5..b849528 100644
--- a/libs/taskmanager/tasksmodel.cpp
+++ b/libs/taskmanager/tasksmodel.cpp
@@ -313,7 +313,19 @@ int TasksModel::rowCount(const QModelIndex &parent) const
int TasksModel::launcherCount() const
{
- return d->groupManager.data()->launcherCount();
+ if (!d->rootGroup) {
+ return 0;
+ }
+
+ int launcherCount = 0;
+
+ foreach (AbstractGroupableItem *item, d->rootGroup->members()) {
+ if (item->itemType() == LauncherItemType) {
+ ++launcherCount;
+ }
+ }
+
+ return launcherCount;
}
TasksModelPrivate::TasksModelPrivate(TasksModel *model, GroupManager *gm)
diff --git a/plasma/desktop/applets/tasks/package/contents/code/layout.js
b/plasma/desktop/applets/tasks/package/contents/code/layout.js
index cb7a1c2..1bf5726 100644
--- a/plasma/desktop/applets/tasks/package/contents/code/layout.js
+++ b/plasma/desktop/applets/tasks/package/contents/code/layout.js
@@ -17,7 +17,6 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
***************************************************************************/
-
function horizontalMargins() {
return taskFrame.margins.left + taskFrame.margins.right;
}
@@ -26,6 +25,20 @@ function verticalMargins() {
return taskFrame.margins.top + taskFrame.margins.bottom;
}
+function launcherLayoutTasks() {
+ return Math.round(tasksModel.launcherCount /
Math.floor(preferredMinWidth() / launcherWidth()));
+}
+
+function launcherLayoutWidthDiff() {
+ return (launcherLayoutTasks() * taskWidth()) - (tasksModel.launcherCount *
launcherWidth());
+}
+
+function logicalTaskCount() {
+ var count = (tasksModel.count - tasksModel.launcherCount) +
launcherLayoutTasks();
+
+ return Math.max(tasksModel.count ? 1 : 0, count);
+}
+
function maxStripes() {
var length = tasks.vertical ? taskList.width : taskList.height;
var minimum = tasks.vertical ? preferredMinWidth() : preferredMinHeight();
@@ -35,7 +48,7 @@ function maxStripes() {
function tasksPerStripe() {
if (tasks.forceStripes) {
- return Math.ceil(tasksModel.count / maxStripes());
+ return Math.ceil(logicalTaskCount() / maxStripes());
} else {
var length = tasks.vertical ? taskList.height : taskList.width;
var minimum = tasks.vertical ? preferredMinHeight() :
preferredMinWidth();
@@ -45,7 +58,7 @@ function tasksPerStripe() {
}
function calculateStripes() {
- var stripes = tasks.forceStripes ? tasks.maxStripes :
Math.min(tasks.maxStripes, Math.ceil(tasksModel.count / tasksPerStripe()));
+ var stripes = tasks.forceStripes ? tasks.maxStripes :
Math.min(tasks.maxStripes, Math.ceil(logicalTaskCount() / tasksPerStripe()));
return Math.min(stripes, maxStripes());
}
@@ -86,7 +99,7 @@ function preferredMinWidth() {
}
function preferredMaxWidth() {
- return preferredMinWidth() * 1.8;
+ return Math.floor(preferredMinWidth() * 1.8);
}
function preferredMinHeight() {
@@ -101,22 +114,55 @@ function taskWidth() {
if (tasks.vertical) {
return Math.floor(taskList.width / calculateStripes());
} else {
- if (full() && Math.max(1, tasksModel.count) > tasksPerStripe()) {
- return Math.floor(taskList.width / Math.ceil(tasksModel.count /
maxStripes()));
+ if (full() && Math.max(1, logicalTaskCount()) > tasksPerStripe()) {
+ return Math.floor(taskList.width / Math.ceil(logicalTaskCount() /
maxStripes()));
} else {
- return Math.min(preferredMaxWidth(), Math.floor(taskList.width /
Math.min(tasksModel.count, tasksPerStripe())));
+ return Math.min(preferredMaxWidth(), Math.floor(taskList.width /
Math.min(logicalTaskCount(), tasksPerStripe())));
}
}
}
function taskHeight() {
if (tasks.vertical) {
- if (full() && Math.max(1, tasksModel.count) > tasksPerStripe()) {
- return Math.floor(taskList.height / Math.ceil(tasksModel.count /
maxStripes()));
+ if (full() && Math.max(1, logicalTaskCount()) > tasksPerStripe()) {
+ return Math.floor(taskList.height / Math.ceil(logicalTaskCount() /
maxStripes()));
} else {
- return Math.min(preferredMaxHeight(), Math.floor(taskList.height /
Math.min(tasksModel.count, tasksPerStripe())));
+ return Math.min(preferredMaxHeight(), Math.floor(taskList.height /
Math.min(logicalTaskCount(), tasksPerStripe())));
}
} else {
return Math.floor(taskList.height / calculateStripes());
}
}
+
+function launcherWidth() {
+ return horizontalMargins() + theme.smallIconSize;
+}
+
+function layout(container) {
+ var item;
+ var stripes = calculateStripes();
+ var width = taskWidth();
+ var adjustedWidth = width;
+ var height = taskHeight();
+
+ if (!tasks.vertical && stripes == 1 && tasksModel.count -
tasksModel.launcherCount)
+ {
+ width += Math.floor(launcherLayoutWidthDiff() / (tasksModel.count -
tasksModel.launcherCount));
+ }
+
+ for (var i = 0; i < container.count; ++i) {
+ item = container.itemAt(i);
+ adjustedWidth = width;
+
+ if (!tasks.vertical) {
+ if (item.isLauncher) {
+ adjustedWidth = launcherWidth();
+ } else if (stripes > 1 && i == tasksModel.launcherCount) {
+ adjustedWidth += launcherLayoutWidthDiff();
+ }
+ }
+
+ item.width = adjustedWidth;
+ item.height = height;
+ }
+}
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
b/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
index 70267fb..ca343d7 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
@@ -31,8 +31,8 @@ import "../code/tools.js" as TaskTools
DragArea {
id: task
- width: inPopup ? groupDialog.mainItem.width : Layout.taskWidth()
- height: inPopup ? Layout.preferredMinHeight() : Layout.taskHeight()
+ width: groupDialog.mainItem.width
+ height: Layout.preferredMinHeight()
property int itemIndex: index
property int itemId: model.Id
@@ -50,6 +50,18 @@ DragArea {
url: model.LauncherUrl
}
+ onItemIndexChanged: {
+ if (!inPopup && !tasks.vertical && Layout.calculateStripes() > 1) {
+ var newWidth = Layout.taskWidth();
+
+ if (index == tasksModel.launcherCount) {
+ newWidth += Layout.launcherLayoutWidthDiff();
+ }
+
+ width = newWidth;
+ }
+ }
+
onDemandsAttentionChanged: {
tasks.itemNeedsAttention(demandsAttention);
}
@@ -173,7 +185,7 @@ DragArea {
bottomMargin: taskFrame.margins.bottom
}
- visible: parent.width - anchors.leftMargin - anchors.rightMargin >=
(theme.defaultFont.mSize.width * 3)
+ visible: !model.IsLauncher && (parent.width - anchors.leftMargin -
anchors.rightMargin) >= (theme.defaultFont.mSize.width * 3)
enabled: !model.Minimized
backgroundPrefix: frame.prefix
@@ -189,7 +201,7 @@ DragArea {
PropertyChanges {
target: frame
- prefix: "normal"
+ visible: false
}
},
State {
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/main.qml
b/plasma/desktop/applets/tasks/package/contents/ui/main.qml
index a50605f..f61cc4b 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/main.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/main.qml
@@ -138,6 +138,9 @@ Item {
width: Layout.layoutWidth()
height: Layout.layoutHeight()
+ onWidthChanged: Layout.layout(taskRepeater)
+ onHeightChanged: Layout.layout(taskRepeater)
+
flow: tasks.vertical ? Flow.TopToBottom : Flow.LeftToRight
onAnimatingChanged: {
@@ -146,7 +149,13 @@ Item {
}
}
- Repeater { model: visualModel }
+ Repeater {
+ id: taskRepeater
+
+ model: visualModel
+
+ onCountChanged: Layout.layout(taskRepeater)
+ }
}
GroupDialog { id: groupDialog }
--
1.8.3.1
++++++ 0004-Hide-unimplemented-manual-grouping-option.patch ++++++
>From 3ce46d1658b01507faf698eb806e966b08b70707 Mon Sep 17 00:00:00 2001
From: Eike Hein <[email protected]>
Date: Sat, 27 Jul 2013 19:05:18 +0200
Subject: [PATCH 4/8] Hide unimplemented manual grouping option.
This is a feature regression vs. 4.10, but there's no time
left to implement it now. Fortunately, this had almost no
users anyway since discovering how to work it generally
required a Google search, and even then it was horribly
unfriendly to actually use - we can very likely do much
better next time we take a stab at the idea.
---
plasma/desktop/applets/tasks/tasks.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/plasma/desktop/applets/tasks/tasks.cpp
b/plasma/desktop/applets/tasks/tasks.cpp
index 5acf7ad..c4aef4b 100644
--- a/plasma/desktop/applets/tasks/tasks.cpp
+++ b/plasma/desktop/applets/tasks/tasks.cpp
@@ -397,6 +397,10 @@ void Tasks::configChanged()
static_cast<int>(TaskManager::GroupManager::ProgramGrouping))
);
if (groupingStrategy != m_groupManager->groupingStrategy()) {
+ // FIXME: Add back support for manual grouping.
+ if (groupingStrategy == TaskManager::GroupManager::ManualGrouping) {
+ groupingStrategy = TaskManager::GroupManager::ProgramGrouping;
+ }
m_groupManager->setGroupingStrategy(groupingStrategy);
changed = true;
}
@@ -475,7 +479,8 @@ void Tasks::createConfigurationInterface(KConfigDialog
*parent)
m_ui.fillRows->setChecked(m_declarativeWidget->rootObject()->property("forceStripes").toBool());
m_ui.groupingStrategy->addItem(i18n("Do Not
Group"),QVariant(TaskManager::GroupManager::NoGrouping));
-
m_ui.groupingStrategy->addItem(i18n("Manually"),QVariant(TaskManager::GroupManager::ManualGrouping));
+ // FIXME: Add back support for manual grouping.
+ //
m_ui.groupingStrategy->addItem(i18n("Manually"),QVariant(TaskManager::GroupManager::ManualGrouping));
m_ui.groupingStrategy->addItem(i18n("By Program
Name"),QVariant(TaskManager::GroupManager::ProgramGrouping));
connect(m_ui.groupingStrategy, SIGNAL(currentIndexChanged(int)), this,
SLOT(dialogGroupingChanged(int)));
@@ -484,11 +489,13 @@ void Tasks::createConfigurationInterface(KConfigDialog
*parent)
case TaskManager::GroupManager::NoGrouping:
m_ui.groupingStrategy->setCurrentIndex(0);
break;
+/* FIXME: Add back support for manual grouping.
case TaskManager::GroupManager::ManualGrouping:
m_ui.groupingStrategy->setCurrentIndex(1);
break;
+*/
case TaskManager::GroupManager::ProgramGrouping:
- m_ui.groupingStrategy->setCurrentIndex(2);
+ m_ui.groupingStrategy->setCurrentIndex(1);
break;
default:
m_ui.groupingStrategy->setCurrentIndex(-1);
--
1.8.3.1
++++++ 0005-Try-to-make-sure-the-group-dialog-stays-within-a-san.patch ++++++
>From 5dd8352f2e8a579034b91c2f6b269df29ffc85cd Mon Sep 17 00:00:00 2001
From: Eike Hein <[email protected]>
Date: Sat, 27 Jul 2013 19:05:23 +0200
Subject: [PATCH 5/8] Try to make sure the group dialog stays within a sane
width limit.
The approach taken is "behave reasonably on 640x480 and above" by
clipping the bounding box of the task items to the max() of that
minimum supported resolution (taking dialog margins and, if vert-
ically oriented, a likely panel into account) and the applet's
width.
A perfect impementation would figure out the dimensions of the
work area (i.e. screen sans relevant struts) and clip to that,
but knowing how much C++ that takes to do correctly on multi-
head (as Yakuake does it) and seeing how the goal is to have a QML
task manager, I don't feel that's maintainable for now. Let's look
into improving PlasmaCore.Dialog in libplasma2 instead to help
with avoiding too unreasonably large dialogs instead, or perhaps
Qt Quick 2 will evolve a helper. There's a TODO in there for now.
On the flip side, this actually behaves better than the old
applet anyway, which had rather more unreasonable popup sizing ...
BUG:322248
---
plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
b/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
index 5292415..411b276 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
@@ -97,7 +97,10 @@ PlasmaCore.Dialog {
task.textWidthChanged.connect(updateSize);
}
- mainItem.width = maxWidth + Layout.horizontalMargins() +
theme.smallIconSize + 6;
+ maxWidth += Layout.horizontalMargins() + theme.smallIconSize + 6;
+
+ // TODO: Properly derive limits from work area size (screen size
sans struts).
+ mainItem.width = Math.min(maxWidth, (tasks.vertical ? 640 -
tasks.width : Math.max(tasks.width, 640)) - 20);
mainItem.height = groupRepeater.count *
Layout.preferredMinHeight();
}
}
--
1.8.3.1
++++++ 0006-Make-sure-tasks-are-layouted-before-they-are-shown.patch ++++++
>From 1f423b9d0e53b5b351c09ae77ffbc6ee64bad384 Mon Sep 17 00:00:00 2001
From: Eike Hein <[email protected]>
Date: Sat, 27 Jul 2013 19:05:29 +0200
Subject: [PATCH 6/8] Make sure tasks are layouted before they are shown.
Avoids reflow occuring after a task is already shown, causing
it to animate from outside the viewport into the final location.
---
plasma/desktop/applets/tasks/package/contents/code/layout.js | 1 +
plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml | 5 ++++-
plasma/desktop/applets/tasks/package/contents/ui/Task.qml | 2 ++
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/plasma/desktop/applets/tasks/package/contents/code/layout.js
b/plasma/desktop/applets/tasks/package/contents/code/layout.js
index 1bf5726..7b18798 100644
--- a/plasma/desktop/applets/tasks/package/contents/code/layout.js
+++ b/plasma/desktop/applets/tasks/package/contents/code/layout.js
@@ -164,5 +164,6 @@ function layout(container) {
item.width = adjustedWidth;
item.height = height;
+ item.visible = true;
}
}
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
b/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
index 411b276..7e13164 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/GroupDialog.qml
@@ -107,6 +107,9 @@ PlasmaCore.Dialog {
VisualDataModel {
id: groupFilter
- delegate: Task { inPopup: true }
+ delegate: Task {
+ visible: true
+ inPopup: true
+ }
}
}
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
b/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
index ca343d7..2084ab0 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
@@ -34,6 +34,8 @@ DragArea {
width: groupDialog.mainItem.width
height: Layout.preferredMinHeight()
+ visible: false
+
property int itemIndex: index
property int itemId: model.Id
property bool inPopup: false
--
1.8.3.1
++++++ 0007-Fix-bidi-layout-support.patch ++++++
>From 6409a1a9ecf7e9dcd3d46f7a433448f200927b55 Mon Sep 17 00:00:00 2001
From: Eike Hein <[email protected]>
Date: Sat, 27 Jul 2013 19:05:33 +0200
Subject: [PATCH 7/8] Fix bidi layout support.
CCBUG:321889
---
plasma/desktop/applets/tasks/package/contents/ui/Task.qml | 3 +++
plasma/desktop/applets/tasks/package/contents/ui/TaskList.qml | 2 ++
2 files changed, 5 insertions(+)
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
b/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
index 2084ab0..b764ca1 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/Task.qml
@@ -36,6 +36,9 @@ DragArea {
visible: false
+ LayoutMirroring.enabled: (Qt.application.layoutDirection == Qt.RightToLeft)
+ LayoutMirroring.childrenInherit: (Qt.application.layoutDirection ==
Qt.RightToLeft)
+
property int itemIndex: index
property int itemId: model.Id
property bool inPopup: false
diff --git a/plasma/desktop/applets/tasks/package/contents/ui/TaskList.qml
b/plasma/desktop/applets/tasks/package/contents/ui/TaskList.qml
index 6429844..2a6d26c 100644
--- a/plasma/desktop/applets/tasks/package/contents/ui/TaskList.qml
+++ b/plasma/desktop/applets/tasks/package/contents/ui/TaskList.qml
@@ -22,6 +22,8 @@ import QtQuick 1.1
Flow {
property bool animating: false
+ layoutDirection: Qt.application.layoutDirection
+
move: Transition {
SequentialAnimation {
PropertyAction { target: taskList; property: "animating"; value:
true }
--
1.8.3.1
++++++ 0008-Restore-correct-index-when-turning-a-task-back-into-.patch ++++++
>From d5038238e8d5efda23aa30355f75efefe1724a3c Mon Sep 17 00:00:00 2001
From: Eike Hein <[email protected]>
Date: Sat, 27 Jul 2013 19:05:38 +0200
Subject: [PATCH 8/8] Restore correct index when turning a task back into a
launcher.
---
libs/taskmanager/taskgroup.cpp | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/libs/taskmanager/taskgroup.cpp b/libs/taskmanager/taskgroup.cpp
index 8b3f777..c9d063e 100644
--- a/libs/taskmanager/taskgroup.cpp
+++ b/libs/taskmanager/taskgroup.cpp
@@ -209,11 +209,17 @@ void TaskGroup::add(AbstractGroupableItem *item, int
insertIndex)
index = d->members.count();
if (d->groupManager->separateLaunchers()) {
if (item->itemType() == LauncherItemType) {
- // insert launchers together at the head of the list, but still
- // in the order they appear
- for (index = 0; index < d->members.count(); ++index) {
- if (d->members.at(index)->itemType() != LauncherItemType) {
- break;
+ KUrl lUrl = item->launcherUrl();
+ int urlIdx = d->groupManager->launcherIndex(lUrl);
+ if (urlIdx >= 0) {
+ index = urlIdx;
+ } else {
+ // insert launchers together at the head of the list, but
still
+ // in the order they appear
+ for (index = 0; index < d->members.count(); ++index) {
+ if (d->members.at(index)->itemType() !=
LauncherItemType) {
+ break;
+ }
}
}
}
--
1.8.3.1
++++++ helper_actions_syspath.patch ++++++
--- /var/tmp/diff_new_pack.u9ZxKm/_old 2013-07-30 16:00:12.000000000 +0200
+++ /var/tmp/diff_new_pack.u9ZxKm/_new 2013-07-30 16:00:12.000000000 +0200
@@ -1,16 +1,16 @@
-diff -urNB
kde-workspace-4.10.90/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
kde-workspace-4.10.90.new/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
----
kde-workspace-4.10.90/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
2013-06-25 20:20:02.000000000 +0200
-+++
kde-workspace-4.10.90.new/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
2013-07-03 20:56:32.244674680 +0200
+diff -urNB
kde-workspace-4.10.97.orig/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
kde-workspace-4.10.97/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
+---
kde-workspace-4.10.97.orig/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
2013-07-23 10:58:46.000000000 +0200
++++
kde-workspace-4.10.97/powerdevil/daemon/backends/upower/backlight_helper_actions.actions
2013-07-26 02:36:59.408289547 +0200
@@ -289,8 +289,6 @@
Description[zh_TW]=系統政策不允許您設定亮度。
Policy=yes
-[org.kde.powerdevil.backlighthelper.syspath]
-Name=Get syspath
+ Name[bs]=Dobavi sistemsku stazu
Name[ca]=Obtén el «syspath»
Name[cs]=Získat syspath
- Name[es]=Obtener ruta del sistema
-@@ -348,5 +346,3 @@
+@@ -352,5 +350,3 @@
Description[x-test]=xxSystem policies prevent you from getting the syspathxx
Description[zh_CN]=系统安全策略不允许获取系统路径
Description[zh_TW]=系統政策不允許您取得系統路徑
++++++ kde-workspace-4.10.95.tar.xz -> kde-workspace-4.10.97.tar.xz ++++++
/work/SRC/openSUSE:Factory/kdebase4-workspace/kde-workspace-4.10.95.tar.xz
/work/SRC/openSUSE:Factory/.kdebase4-workspace.new/kde-workspace-4.10.97.tar.xz
differ: char 27, line 1
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]