[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