[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:29:08 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=fe2679a

The following commit has been merged in the master branch:
commit fe2679a8a5d118bb1e05871e79bf5a80e684eac1
Author: Aleix Pol <aleixpol at kde.org>
Date:   Sat Sep 12 15:02:59 2015 +0200

    Prevent the kcm from refreshing the UI while interacting with it
    
    Only refresh it when the available plugins actually change.
---
 kcm/kcm.cpp | 45 +++++++++++++++++++++++++--------------------
 kcm/kcm.h   |  1 +
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp
index db225d1..85dfcc6 100644
--- a/kcm/kcm.cpp
+++ b/kcm/kcm.cpp
@@ -207,32 +207,37 @@ void KdeConnectKcm::resetCurrentDevice()
         }
     }
 
-    //KPluginSelector has no way to remove a list of plugins and load another, so we need to destroy and recreate it each time
-    delete kcmUi->pluginSelector;
-    kcmUi->pluginSelector = new KPluginSelector(this);
-    kcmUi->deviceInfo_layout->addWidget(kcmUi->pluginSelector);
+    const QStringList unsupportedPluginNames = currentDevice->unsupportedPlugins();
 
-    kcmUi->pluginSelector->setConfigurationArguments(QStringList(currentDevice->id()));
+    if (m_oldUnsupportedPluginNames != unsupportedPluginNames) {
+        //KPluginSelector has no way to remove a list of plugins and load another, so we need to destroy and recreate it each time
+        delete kcmUi->pluginSelector;
+        kcmUi->pluginSelector = new KPluginSelector(this);
+        kcmUi->deviceInfo_layout->addWidget(kcmUi->pluginSelector);
 
-    kcmUi->name_label->setText(currentDevice->name());
-    kcmUi->status_label->setText(currentDevice->isPaired()? i18n("(paired)") : i18n("(unpaired)"));
+        kcmUi->pluginSelector->setConfigurationArguments(QStringList(currentDevice->id()));
 
-    const QList<KPluginInfo> pluginInfo = KPluginInfo::fromMetaData(KPluginLoader::findPlugins("kdeconnect/"));
-    QList<KPluginInfo> availablePluginInfo;
-    QList<KPluginInfo> missingPluginInfo;
+        kcmUi->name_label->setText(currentDevice->name());
+        kcmUi->status_label->setText(currentDevice->isPaired()? i18n("(paired)") : i18n("(unpaired)"));
 
-    QStringList missingPluginNames = currentDevice->unsupportedPlugins();
-    for (auto it = pluginInfo.cbegin(), itEnd = pluginInfo.cend(); it!=itEnd; ++it) {
-        if (missingPluginNames.contains(it->pluginName())) {
-            missingPluginInfo.append(*it);
-        } else {
-            availablePluginInfo.append(*it);
+        const QList<KPluginInfo> pluginInfo = KPluginInfo::fromMetaData(KPluginLoader::findPlugins("kdeconnect/"));
+        QList<KPluginInfo> availablePluginInfo;
+        QList<KPluginInfo> unsupportedPluginInfo;
+
+        for (auto it = pluginInfo.cbegin(), itEnd = pluginInfo.cend(); it!=itEnd; ++it) {
+            if (unsupportedPluginNames.contains(it->pluginName())) {
+                unsupportedPluginInfo.append(*it);
+            } else {
+                availablePluginInfo.append(*it);
+            }
         }
-    }
 
-    KSharedConfigPtr deviceConfig = KSharedConfig::openConfig(currentDevice->pluginsConfigFile());
-    kcmUi->pluginSelector->addPlugins(availablePluginInfo, KPluginSelector::ReadConfigFile, i18n("Available plugins"), QString(), deviceConfig);
-    kcmUi->pluginSelector->addPlugins(missingPluginInfo, KPluginSelector::ReadConfigFile, i18n("Plugins unsupported by the device"), QString(), deviceConfig);
+        KSharedConfigPtr deviceConfig = KSharedConfig::openConfig(currentDevice->pluginsConfigFile());
+        kcmUi->pluginSelector->addPlugins(availablePluginInfo, KPluginSelector::ReadConfigFile, i18n("Available plugins"), QString(), deviceConfig);
+        kcmUi->pluginSelector->addPlugins(unsupportedPluginInfo, KPluginSelector::ReadConfigFile, i18n("Plugins unsupported by the device"), QString(), deviceConfig);
+
+        m_oldUnsupportedPluginNames = unsupportedPluginNames;
+    }
 
     connect(kcmUi->pluginSelector, SIGNAL(changed(bool)),
             this, SLOT(pluginsConfigChanged()));
diff --git a/kcm/kcm.h b/kcm/kcm.h
index 1fcbfa9..38873fe 100644
--- a/kcm/kcm.h
+++ b/kcm/kcm.h
@@ -68,6 +68,7 @@ private:
     DevicesSortProxyModel* sortProxyModel;
     DeviceDbusInterface* currentDevice;
     QModelIndex currentIndex;
+    QStringList m_oldUnsupportedPluginNames;
 
 public Q_SLOTS:
     void unpair();

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list