[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:28:56 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=9135177
The following commit has been merged in the master branch:
commit 91351773fdb83ca2e6fae5e311a2c843ecdde16c
Author: Aleix Pol <aleixpol at kde.org>
Date: Mon Sep 7 18:50:26 2015 +0200
Mark incompatible plugins as such in the kcm
If a plugin isn't available, display it as unsupported by the device. This
is figured out through capabilities.
Reviewed by Albert Vaca
---
core/device.cpp | 4 ++++
core/device.h | 4 +++-
kcm/kcm.cpp | 18 ++++++++++++++++--
3 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/core/device.cpp b/core/device.cpp
index 7305be6..679d444 100644
--- a/core/device.cpp
+++ b/core/device.cpp
@@ -111,6 +111,7 @@ void Device::reloadPlugins()
QHash<QString, KdeConnectPlugin*> newPluginMap;
QMultiMap<QString, KdeConnectPlugin*> newPluginsByIncomingInterface;
QMultiMap<QString, KdeConnectPlugin*> newPluginsByOutgoingInterface;
+ QStringList missingPlugins;
if (isPaired() && isReachable()) { //Do not load any plugin for unpaired devices, nor useless loading them for unreachable devices
@@ -145,7 +146,9 @@ void Device::reloadPlugins()
&& (m_incomingCapabilities & outgoingInterfaces.toSet()).isEmpty()
&& (m_outgoingCapabilities & incomingInterfaces.toSet()).isEmpty()
) {
+ qCWarning(KDECONNECT_CORE) << "not loading " << pluginName << "because of unmatched capabilities";
delete plugin;
+ missingPlugins.append(pluginName);
continue;
}
@@ -170,6 +173,7 @@ void Device::reloadPlugins()
m_plugins = newPluginMap;
m_pluginsByIncomingInterface = newPluginsByIncomingInterface;
m_pluginsByOutgoingInterface = newPluginsByOutgoingInterface;
+ m_missingPlugins = missingPlugins;
Q_FOREACH(KdeConnectPlugin* plugin, m_plugins) {
plugin->connected();
diff --git a/core/device.h b/core/device.h
index bba396d..2b22988 100644
--- a/core/device.h
+++ b/core/device.h
@@ -45,6 +45,7 @@ class KDECONNECTCORE_EXPORT Device
Q_PROPERTY(QString statusIconName READ statusIconName)
Q_PROPERTY(bool isReachable READ isReachable NOTIFY reachableStatusChanged)
Q_PROPERTY(bool isPaired READ isPaired NOTIFY pairingChanged)
+ Q_PROPERTY(QStringList missingPlugins READ missingPlugins NOTIFY pluginsChanged)
enum PairStatus {
NotPaired,
@@ -86,6 +87,7 @@ public:
QString type() const { return type2str(m_deviceType); };
QString iconName() const;
QString statusIconName() const;
+ QStringList missingPlugins() const { return m_missingPlugins; }
//Add and remove links
void addLink(const NetworkPackage& identityPackage, DeviceLink*);
@@ -154,7 +156,7 @@ private: //Fields (TODO: dPointer!)
QTimer m_pairingTimeut;
const QSet<QString> m_incomingCapabilities;
const QSet<QString> m_outgoingCapabilities;
-
+ QStringList m_missingPlugins;
};
Q_DECLARE_METATYPE(Device*)
diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp
index ac66dc0..b2cf7ea 100644
--- a/kcm/kcm.cpp
+++ b/kcm/kcm.cpp
@@ -213,9 +213,23 @@ void KdeConnectKcm::deviceSelected(const QModelIndex& current)
connect(currentDevice,SIGNAL(pairingFailed(QString)),
this, SLOT(pairingFailed(QString)));
- const QList<KPluginInfo> pluginInfo = KPluginInfo::fromMetaData(KPluginLoader::findPlugins("kdeconnect/"));
+ QList<KPluginInfo> pluginInfo = KPluginInfo::fromMetaData(KPluginLoader::findPlugins("kdeconnect/"));
+ QList<KPluginInfo> missingPluginInfo;
+
+ QStringList missingPluginNames = currentDevice->missingPlugins();
+ missingPluginNames = QStringList("kdeconnect_mpriscontrol");
+ for (auto it = pluginInfo.begin(), itEnd = pluginInfo.end(); it!=itEnd; ) {
+ if (missingPluginNames.contains(it->pluginName())) {
+ missingPluginInfo.append(*it);
+ it = pluginInfo.erase(it);
+ } else {
+ ++it;
+ }
+ }
+
KSharedConfigPtr deviceConfig = KSharedConfig::openConfig(currentDevice->pluginsConfigFile());
- kcmUi->pluginSelector->addPlugins(pluginInfo, KPluginSelector::ReadConfigFile, i18n("Plugins"), QString(), deviceConfig);
+ kcmUi->pluginSelector->addPlugins(pluginInfo, KPluginSelector::ReadConfigFile, i18n("Available plugins"), QString(), deviceConfig);
+ kcmUi->pluginSelector->addPlugins(missingPluginInfo, KPluginSelector::ReadConfigFile, i18n("Plugins unsupported by the device"), QString(), deviceConfig);
connect(kcmUi->pluginSelector, SIGNAL(changed(bool)),
this, SLOT(pluginsConfigChanged()));
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list