Hello community,
here is the log from the commit of package plasma5-desktop for openSUSE:Factory checked in at 2015-03-16 09:31:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-desktop (Old)
and /work/SRC/openSUSE:Factory/.plasma5-desktop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-desktop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-desktop/plasma5-desktop.changes 2015-03-01 15:06:07.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-desktop.new/plasma5-desktop.changes 2015-03-16 09:31:44.000000000 +0100
@@ -1,0 +2,15 @@
+Sat Mar 7 22:38:11 UTC 2015 - hrvoje.senjan@gmail.com
+
+- Added patches from upstream:
+ Let-kcmkded-also-handle-kded-modules-that-use-JSON-metadata.patch,
+ 0001-Fix-the-no-checkbox-being-checked-for-displayText-co.patch
+ (kde#344711),
+ 0003-Fix-Bug-266760-The-autostart-kcm-doesn-t-show-the-co.patch
+ (kde#266760),
+ 0004-Fix-double-click.patch,
+ 0005-Fix-tabbar-not-showing-up-when-switching-to-favorite.patch
+ (kde#343524)
+ and 0006-Close-config-dialog-when-panel-gets-locked-from-cont.patch
+ (kde#345068)
+
+-------------------------------------------------------------------
New:
----
0001-Fix-the-no-checkbox-being-checked-for-displayText-co.patch
0003-Fix-Bug-266760-The-autostart-kcm-doesn-t-show-the-co.patch
0004-Fix-double-click.patch
0005-Fix-tabbar-not-showing-up-when-switching-to-favorite.patch
0006-Close-config-dialog-when-panel-gets-locked-from-cont.patch
Let-kcmkded-also-handle-kded-modules-that-use-JSON-metadata.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-desktop.spec ++++++
--- /var/tmp/diff_new_pack.hzGhKZ/_old 2015-03-16 09:31:45.000000000 +0100
+++ /var/tmp/diff_new_pack.hzGhKZ/_new 2015-03-16 09:31:45.000000000 +0100
@@ -25,6 +25,14 @@
Url: http://www.kde.org/
Source: plasma-desktop-%{version}.tar.xz
Source99: %{name}-rpmlintrc
+# PATCHES 100-1000 and above are from upstream 5.2 branch
+Patch100: 0001-Fix-the-no-checkbox-being-checked-for-displayText-co.patch
+Patch101: 0003-Fix-Bug-266760-The-autostart-kcm-doesn-t-show-the-co.patch
+Patch102: 0004-Fix-double-click.patch
+Patch103: 0005-Fix-tabbar-not-showing-up-when-switching-to-favorite.patch
+Patch104: 0006-Close-config-dialog-when-panel-gets-locked-from-cont.patch
+# PATCHES 1000 and above are from upstream master/5.3 branch
+Patch1000: Let-kcmkded-also-handle-kded-modules-that-use-JSON-metadata.patch
BuildRequires: attica-qt5-devel
BuildRequires: baloo5-devel >= %{version}
BuildRequires: boost-devel
@@ -103,6 +111,12 @@
%lang_package
%prep
%setup -q -n plasma-desktop-%{version}
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch1000 -p1
%build
%cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5
++++++ 0001-Fix-the-no-checkbox-being-checked-for-displayText-co.patch ++++++
From c50e4b987dc365d741880794ee6f2924065a87a6 Mon Sep 17 00:00:00 2001
From: Bhushan Shah
Date: Mon, 2 Mar 2015 08:50:29 +0530
Subject: [PATCH 1/6] Fix the no checkbox being checked for displayText config
BUG: 344711
FIXED-IN: Plasma/5.2
---
applets/pager/package/contents/ui/configGeneral.qml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/applets/pager/package/contents/ui/configGeneral.qml b/applets/pager/package/contents/ui/configGeneral.qml
index 1915b764a27d20282f0dda42480ac8e34d1b5f12..1004c8ef2423a0cdaef962478e9900f1855c0eb6 100644
--- a/applets/pager/package/contents/ui/configGeneral.qml
+++ b/applets/pager/package/contents/ui/configGeneral.qml
@@ -66,7 +66,10 @@ Item {
}
}
- Component.onCompleted: cfg_currentDesktopSelectedChanged()
+ Component.onCompleted: {
+ cfg_currentDesktopSelectedChanged();
+ cfg_displayedTextChanged();
+ }
QtControls.ExclusiveGroup {
id: displayedTextGroup
--
2.3.1
++++++ 0003-Fix-Bug-266760-The-autostart-kcm-doesn-t-show-the-co.patch ++++++
From ecbefe504d792aa5700451e8987ec05fdae2bf1d Mon Sep 17 00:00:00 2001
From: Montel Laurent
Date: Sat, 7 Mar 2015 15:20:34 +0100
Subject: [PATCH 3/6] Fix Bug 266760 - The autostart kcm doesn't show the
correct name immediately after "adding program"
FIXED-IN: Plasma-5.2.1
BUG: 266760
---
kcms/autostart/autostart.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kcms/autostart/autostart.cpp b/kcms/autostart/autostart.cpp
index e948087c6116cb32eae65a2a711f50d47f5f62f6..fd41fc82d098737a51b2253338bdddb4ff4f5664 100644
--- a/kcms/autostart/autostart.cpp
+++ b/kcms/autostart/autostart.cpp
@@ -302,8 +302,9 @@ void Autostart::slotAddProgram()
if ( dlg.exec() != QDialog::Accepted )
return;
}
+ KDesktopFile newConf(desktopTemplate.path());
DesktopStartItem * item = new DesktopStartItem( desktopPath, m_programItem,this );
- addItem( item, service->name(), m_pathName[0], service->exec() , false);
+ addItem( item, service->name(), m_pathName[0], newConf.desktopGroup().readEntry("Exec") , false);
}
void Autostart::slotAddScript()
--
2.3.1
++++++ 0004-Fix-double-click.patch ++++++
From 429d1bb6bfb32c4a4ad3e9e682513ab2625c823c Mon Sep 17 00:00:00 2001
From: Montel Laurent
Date: Sun, 8 Mar 2015 09:09:01 +0100
Subject: [PATCH 4/6] Fix double click
---
kcms/autostart/autostart.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/kcms/autostart/autostart.cpp b/kcms/autostart/autostart.cpp
index fd41fc82d098737a51b2253338bdddb4ff4f5664..b102323a3ca6fd8e8238615e534ae8a701ac5590 100644
--- a/kcms/autostart/autostart.cpp
+++ b/kcms/autostart/autostart.cpp
@@ -353,14 +353,14 @@ void Autostart::slotRemoveCMD()
void Autostart::slotEditCMD(QTreeWidgetItem* ent)
{
+
if (!ent) return;
- AutoStartItem *entry = dynamic_cast( ent );
- if ( entry )
+ DesktopStartItem *desktopEntry = dynamic_cast( ent );
+ if ( desktopEntry )
{
- const KFileItem kfi = KFileItem( KFileItem::Unknown, KFileItem::Unknown, QUrl( entry->fileName() ), true );
+ const KFileItem kfi = KFileItem( KFileItem::Unknown, KFileItem::Unknown, QUrl( desktopEntry->fileName() ), true );
if (! slotEditCMD( kfi ))
return;
- DesktopStartItem *desktopEntry = dynamic_cast( entry );
if (desktopEntry) {
KService service(desktopEntry->fileName().path());
addItem( desktopEntry, service.name(), m_pathName.value(m_paths.indexOf(desktopEntry->fileName().adjusted(QUrl::RemoveFilename).toString())), service.exec(),false );
--
2.3.1
++++++ 0005-Fix-tabbar-not-showing-up-when-switching-to-favorite.patch ++++++
From 336094f43d82d83f374116862a0f568fe9092224 Mon Sep 17 00:00:00 2001
From: Bhushan Shah
Date: Mon, 9 Mar 2015 21:04:09 +0530
Subject: [PATCH 5/6] Fix tabbar not showing up when switching to favorites
from search
From 113ea3c638b910c3ac9f411a2e41a88110650ab4 Mon Sep 17 00:00:00 2001
From: Bhushan Shah
Date: Thu, 12 Mar 2015 08:59:53 +0530
Subject: [PATCH 6/6] Close config dialog when panel gets locked from context
when we are in search view tabbar is not visible and immediatly
switching to favorites causes no tabbar.
BUG: 343524
FIXED-IN: 5.2.2
---
applets/kickoff/package/contents/ui/FullRepresentation.qml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/applets/kickoff/package/contents/ui/FullRepresentation.qml b/applets/kickoff/package/contents/ui/FullRepresentation.qml
index d97898775ae679ee2fa39f53064c8f9423b24b53..0ba18e610948fb022a2064c37f7316c4fbfe702c 100644
--- a/applets/kickoff/package/contents/ui/FullRepresentation.qml
+++ b/applets/kickoff/package/contents/ui/FullRepresentation.qml
@@ -493,6 +493,10 @@ Item {
target: root
Keys.forwardTo: [tabBar.layout]
}
+ PropertyChanges {
+ target: tabBar
+ visible: true
+ }
},
State {
name: "Applications"
@@ -500,6 +504,10 @@ Item {
target: root
Keys.forwardTo: [root]
}
+ PropertyChanges {
+ target: tabBar
+ visible: true
+ }
},
State {
name: "Search"
--
2.3.1
++++++ 0006-Close-config-dialog-when-panel-gets-locked-from-cont.patch ++++++
menu
BUG: 345068
FIXED-IN: 5.2.2
---
desktoppackage/contents/configuration/PanelConfiguration.qml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/desktoppackage/contents/configuration/PanelConfiguration.qml b/desktoppackage/contents/configuration/PanelConfiguration.qml
index 8e2bf3223e5c1dac2d662d79ca01bcfcf0510f8e..a2910c6ea7eb3e37f92612ae3c940c847c278328 100644
--- a/desktoppackage/contents/configuration/PanelConfiguration.qml
+++ b/desktoppackage/contents/configuration/PanelConfiguration.qml
@@ -60,6 +60,11 @@ PlasmaCore.FrameSvgItem {
onMinimumLengthChanged: ruler.minimumLength = panel.minimumLength
onMaximumLengthChanged: ruler.maximumLength = panel.maximumLength
}
+
+ Connections {
+ target: plasmoid
+ onImmutableChanged: configDialog.close()
+ }
//END Connections
--
2.3.1
++++++ Let-kcmkded-also-handle-kded-modules-that-use-JSON-metadata.patch ++++++
From: Alex Richardson
Date: Tue, 03 Feb 2015 11:32:23 +0000
Subject: Let kcmkded also handle kded modules that use JSON metadata
---
Let kcmkded also handle kded modules that use JSON metadata
REVIEW: 121738
---
--- a/kcms/kded/kcmkded.cpp
+++ b/kcms/kded/kcmkded.cpp
@@ -31,16 +31,17 @@
#include <QLoggingCategory>
#include <QDialog>
-#include <KConfigGroup>
-
#include
#include
#include
#include
#include
+#include <KConfigGroup>
+#include <KPluginInfo>
#include <KPluginFactory>
#include <KPluginLoader>
+#include <KPluginMetaData>
#include <KLocalizedString>
K_PLUGIN_FACTORY(KDEDFactory,
@@ -153,80 +154,108 @@
}
-QString setModuleGroup(const QString &filename)
-{
- QString module = filename;
- int i = module.lastIndexOf('/');
- if (i != -1)
- module = module.mid(i+1);
- i = module.lastIndexOf('.');
- if (i != -1)
- module = module.left(i);
-
- return QString("Module-%1").arg(module);
-}
-
-bool KDEDConfig::autoloadEnabled(KConfig *config, const QString &filename)
-{
- KConfigGroup cg(config, setModuleGroup(filename));
+QString setModuleGroup(const KPluginMetaData &module)
+{
+ return QStringLiteral("Module-%1").arg(module.pluginId());
+}
+
+bool KDEDConfig::autoloadEnabled(KConfig *config, const KPluginMetaData &module)
+{
+ KConfigGroup cg(config, setModuleGroup(module));
return cg.readEntry("autoload", true);
}
-void KDEDConfig::setAutoloadEnabled(KConfig *config, const QString &filename, bool b)
-{
- KConfigGroup cg(config, setModuleGroup(filename));
+void KDEDConfig::setAutoloadEnabled(KConfig *config, const KPluginMetaData &module, bool b)
+{
+ KConfigGroup cg(config, setModuleGroup(module));
return cg.writeEntry("autoload", b);
}
+// This code was copied from kded.cpp
+// TODO: move this KCM to the KDED framework and share the code?
+static QVector<KPluginMetaData> availableModules()
+{
+ QVector<KPluginMetaData> plugins = KPluginLoader::findPlugins("kf5/kded");
+ QSet<QString> moduleIds;
+ foreach (const KPluginMetaData &md, plugins) {
+ moduleIds.insert(md.pluginId());
+ }
+ // also search for old .desktop based kded modules
+ KPluginInfo::List oldStylePlugins = KPluginInfo::fromServices(KServiceTypeTrader::self()->query("KDEDModule"));
+ foreach (const KPluginInfo &info, oldStylePlugins) {
+ if (moduleIds.contains(info.pluginName())) {
+ qCWarning(KCM_KDED).nospace() << "kded module " << info.pluginName() << " has already been found using "
+ "JSON metadata, please don't install the now unneeded .desktop file (" << info.entryPath() << ").";
+ } else {
+ qCDebug(KCM_KDED).nospace() << "kded module " << info.pluginName() << " still uses .desktop files ("
+ << info.entryPath() << "). Please port it to JSON metadata.";
+ plugins.append(info.toMetaData());
+ }
+ }
+ return plugins;
+}
+
+// this code was copied from kded.cpp
+static bool isModuleLoadedOnDemand(const KPluginMetaData &module)
+{
+ bool loadOnDemand = true;
+ // use toVariant() since it could be string or bool in the json and QJsonObject does not convert
+ QVariant p = module.rawData().value("X-KDE-Kded-load-on-demand").toVariant();
+ if (p.isValid() && p.canConvert<bool>() && (p.toBool() == false)) {
+ loadOnDemand = false;
+ }
+ return loadOnDemand;
+}
+
void KDEDConfig::load()
{
- KConfig kdedrc( "kded5rc", KConfig::NoGlobals );
+ KConfig kdedrc("kded5rc", KConfig::NoGlobals);
_lvStartup->clear();
_lvLoD->clear();
- KService::List offers = KServiceTypeTrader::self()->query( "KDEDModule" );
QTreeWidgetItem* treeitem = 0L;
- for ( KService::List::const_iterator it = offers.constBegin();
- it != offers.constEnd(); ++it)
- {
- QString servicePath = (*it)->entryPath();
- qCDebug(KCM_KDED) << servicePath;
-
- const KDesktopFile file(QStandardPaths::GenericDataLocation, "kservices5/" + servicePath );
- const KConfigGroup grp = file.desktopGroup();
+ const auto modules = availableModules();
+ for (const KPluginMetaData &mod : modules) {
+ QString servicePath = mod.metaDataFileName();
+
+ // autoload defaults to false if it is not found
+ const bool autoload = mod.rawData().value(QStringLiteral("X-KDE-Kded-autoload")).toVariant().toBool();
+ const QString dbusModuleName = mod.value(QStringLiteral("X-KDE-DBus-ModuleName"));
+ qCDebug(KCM_KDED) << "reading kded info from" << servicePath << "autoload =" << autoload << "dbus module name =" << dbusModuleName;
+
// The logic has to be identical to Kded::initModules.
// They interpret X-KDE-Kded-autoload as false if not specified
// X-KDE-Kded-load-on-demand as true if not specified
- if ( grp.readEntry("X-KDE-Kded-autoload", false) ) {
+ if (autoload) {
treeitem = new QTreeWidgetItem();
- treeitem->setCheckState( StartupUse, autoloadEnabled(&kdedrc, file.name()) ? Qt::Checked : Qt::Unchecked );
- treeitem->setText( StartupService, file.readName() );
- treeitem->setText( StartupDescription, file.readComment() );
- treeitem->setText( StartupStatus, NOT_RUNNING );
- if (grp.hasKey("X-KDE-DBus-ModuleName")) {
- treeitem->setData( StartupService, LibraryRole, grp.readEntry("X-KDE-DBus-ModuleName") );
+ treeitem->setCheckState(StartupUse, autoloadEnabled(&kdedrc, mod.pluginId()) ? Qt::Checked : Qt::Unchecked);
+ treeitem->setText(StartupService, mod.name());
+ treeitem->setText(StartupDescription, mod.description());
+ treeitem->setText(StartupStatus, NOT_RUNNING);
+ if (!dbusModuleName.isEmpty()) {
+ treeitem->setData(StartupService, LibraryRole, dbusModuleName);
} else {
- qCWarning(KCM_KDED) << "X-KDE-DBUS-ModuleName not set for module " << file.readName();
- treeitem->setData( StartupService, LibraryRole, grp.readEntry("X-KDE-Library") );
- }
- _lvStartup->addTopLevelItem( treeitem );
- }
- else if ( grp.readEntry("X-KDE-Kded-load-on-demand", true) ) {
+ qCWarning(KCM_KDED) << "X-KDE-DBUS-ModuleName not set for module " << mod.name() << "from file" << mod.metaDataFileName();
+ treeitem->setData(StartupService, LibraryRole, mod.fileName());
+ }
+ _lvStartup->addTopLevelItem(treeitem);
+ }
+ else if (isModuleLoadedOnDemand(mod)) {
treeitem = new QTreeWidgetItem();
- treeitem->setText( OnDemandService, file.readName() );
- treeitem->setText( OnDemandDescription, file.readComment() );
- treeitem->setText( OnDemandStatus, NOT_RUNNING );
- if (grp.hasKey("X-KDE-DBus-ModuleName")) {
- treeitem->setData( OnDemandService, LibraryRole, grp.readEntry("X-KDE-DBus-ModuleName") );
+ treeitem->setText(OnDemandService, mod.name() );
+ treeitem->setText(OnDemandDescription, mod.description());
+ treeitem->setText(OnDemandStatus, NOT_RUNNING);
+ if (!dbusModuleName.isEmpty()) {
+ treeitem->setData(OnDemandService, LibraryRole, dbusModuleName);
} else {
- qCWarning(KCM_KDED) << "X-KDE-DBUS-ModuleName not set for module " << file.readName();
- treeitem->setData( OnDemandService, LibraryRole, grp.readEntry("X-KDE-Library") );
- }
- _lvLoD->addTopLevelItem( treeitem );
+ qCWarning(KCM_KDED) << "X-KDE-DBUS-ModuleName not set for module " << mod.name() << "from file" << mod.metaDataFileName();
+ treeitem->setData(OnDemandService, LibraryRole, mod.fileName());
+ }
+ _lvLoD->addTopLevelItem(treeitem);
}
else {
- qCWarning(KCM_KDED) << "kcmkded: Module " << file.readName() << " not loaded on demand or startup! Skipping.";
+ qCWarning(KCM_KDED) << "kcmkded: Module " << mod.name() << "from file" << mod.metaDataFileName() << " not loaded on demand or startup! Skipping.";
}
}
@@ -246,26 +275,19 @@
{
KConfig kdedrc("kded5rc", KConfig::NoGlobals);
- KService::List offers = KServiceTypeTrader::self()->query( "KDEDModule" );
- for ( KService::List::const_iterator it = offers.constBegin();
- it != offers.constEnd(); ++it)
- {
- QString servicePath = (*it)->entryPath();
- qCDebug(KCM_KDED) << servicePath;
-
- const KDesktopFile file(QStandardPaths::GenericDataLocation, "kservices5/" + servicePath );
- const KConfigGroup grp = file.desktopGroup();
- if (grp.readEntry("X-KDE-Kded-autoload", false)){
-
- QString libraryName = grp.readEntry( "X-KDE-Library" );
+ const auto modules = availableModules();
+ for (const KPluginMetaData &mod : modules) {
+ qCDebug(KCM_KDED) << "saving settings for kded module" << mod.metaDataFileName();
+ // autoload defaults to false if it is not found
+ const bool autoload = mod.rawData().value(QStringLiteral("X-KDE-Kded-autoload")).toVariant().toBool();
+ if (autoload) {
+ const QString libraryName = mod.fileName();
int count = _lvStartup->topLevelItemCount();
- for( int i = 0; i < count; ++i )
- {
- QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
- if ( treeitem->data( StartupService, LibraryRole ).toString() == libraryName )
- {
+ for(int i = 0; i < count; ++i) {
+ QTreeWidgetItem *treeitem = _lvStartup->topLevelItem(i);
+ if ( treeitem->data(StartupService, LibraryRole ).toString() == libraryName) {
// we found a match, now compare and see what changed
- setAutoloadEnabled( &kdedrc, servicePath, treeitem->checkState( StartupUse ) == Qt::Checked);
+ setAutoloadEnabled(&kdedrc, mod, treeitem->checkState( StartupUse ) == Qt::Checked);
break;
}
}
@@ -275,8 +297,8 @@
emit changed(false);
- QDBusInterface kdedInterface( "org.kde.kded5", "/kded", "org.kde.kded5" );
- kdedInterface.call( "reconfigure" );
+ QDBusInterface kdedInterface("org.kde.kded5", "/kded", "org.kde.kded5");
+ kdedInterface.call("reconfigure");
QTimer::singleShot(0, this, SLOT(slotServiceRunningToggled()));
}
@@ -310,6 +332,7 @@
KMessageBox::error(this, i18n("Unable to contact KDED."));
return;
}
+ qCDebug(KCM_KDED) << "Loaded kded modules:" << modules;
// Initialize
int count = _lvLoD->topLevelItemCount();
@@ -470,7 +493,7 @@
if ( reply.value() )
slotServiceRunningToggled();
else
- KMessageBox::error(this, "<qt>" + i18n("Unable to stop server <em>%1</em>.", service) + "</qt>");
+ KMessageBox::error(this, "<qt>" + i18n("Unable to stop service <em>%1</em>.", service) + "</qt>");
}
else {
KMessageBox::error(this, "<qt>" + i18n("Unable to stop service <em>%1</em>.<br /><br /><i>Error: %2</i>",
--- a/kcms/kded/kcmkded.h
+++ b/kcms/kded/kcmkded.h
@@ -27,6 +27,7 @@
class QTreeWidget;
class QTreeWidgetItem;
class KConfig;
+class KPluginMetaData;
Q_DECLARE_LOGGING_CATEGORY(KCM_KDED)
@@ -51,8 +52,8 @@
void slotItemChecked(QTreeWidgetItem *item, int column);
void getServiceStatus();
- bool autoloadEnabled(KConfig *config, const QString &filename);
- void setAutoloadEnabled(KConfig *config, const QString &filename, bool b);
+ bool autoloadEnabled(KConfig *config, const KPluginMetaData &filename);
+ void setAutoloadEnabled(KConfig *config, const KPluginMetaData &filename, bool b);
private:
QTreeWidget *_lvLoD;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org