All pastes #2037774 Raw Edit

alien

public text v1 · immutable
#2037774 ·published 2011-01-03 23:53 UTC
rendered paste body
diff -ru kdebase-workspace-4.5.90_old//plasma/generic/applets/devicenotifier/devicenotifier.cpp kdebase-workspace-4.5.90_new//plasma/generic/applets/devicenotifier/devicenotifier.cpp--- kdebase-workspace-4.5.90_old//plasma/generic/applets/devicenotifier/devicenotifier.cpp	2010-12-22 10:55:28.000000000 +0100+++ kdebase-workspace-4.5.90_new//plasma/generic/applets/devicenotifier/devicenotifier.cpp	2011-01-04 00:48:46.384550301 +0100@@ -22,6 +22,8 @@ #include "devicenotifier.h"  //Qt+#include <QtDBus/QDBusInterface>+#include <QtDBus/QDBusReply> #include <QGraphicsSceneContextMenuEvent>  //KDE@@ -74,6 +76,19 @@     QString lastActionLabel;     QStringList currentActions = m_dialog->deviceActions(udi);     QStringList newActions = data["predicateFiles"].toStringList();+    QStringList autorunActions = data["autorunPredicateFiles"].toStringList();++    foreach (const QString &action, currentActions) {+        if (!autorunActions.contains(action)) {+            autorunActions.remove(action);+        }+    }+    if (!autorunActions.isEmpty()) {+        kDebug() << "DeviceNotifier:: call Solid Ui Server with params :" << udi << "," << autorunActions;+        QDBusInterface soliduiserver("org.kde.kded", "/modules/soliduiserver", "org.kde.SolidUiServer");+        QDBusReply<void> reply = soliduiserver.call("showActionsDialog", udi, autorunActions);+        return;+    }      foreach (const QString &desktop, newActions) {         QString filePath = KStandardDirs::locate("data", "solid/actions/" + desktop);diff -ru kdebase-workspace-4.5.90_old//plasma/generic/dataengines/hotplug/hotplugengine.cpp kdebase-workspace-4.5.90_new//plasma/generic/dataengines/hotplug/hotplugengine.cpp--- kdebase-workspace-4.5.90_old//plasma/generic/dataengines/hotplug/hotplugengine.cpp	2010-11-11 15:40:56.000000000 +0100+++ kdebase-workspace-4.5.90_new//plasma/generic/dataengines/hotplug/hotplugengine.cpp	2011-01-04 00:52:26.222727592 +0100@@ -99,12 +99,15 @@ void HotplugEngine::findPredicates() {     m_predicates.clear();+    m_autorun.clear();      foreach (const QString &path, KGlobal::dirs()->findAllResources("data", "solid/actions/")) {         KDesktopFile cfg(path);         const QString string_predicate = cfg.desktopGroup().readEntry("X-KDE-Solid-Predicate");+        const QString string_autorun = cfg.desktopGroup().readEntry("X-KDE-Solid-Autorun");         //kDebug() << path << string_predicate;         m_predicates.insert(KUrl(path).fileName(), Solid::Predicate::fromString(string_predicate));+        m_autorun.insert(KUrl(path).fileName(), Solid::Predicate::fromString(string_autorun));     }      if (m_predicates.isEmpty()) {@@ -125,10 +128,12 @@         QString udi(it.key());          QStringList predicates = predicatesForDevice(device);+        QStringList autorunPredicates = autorunPredicatesForDevice(device);         if (!predicates.isEmpty()) {             if (sources().contains(udi)) {                 Plasma::DataEngine::Data data;                 data.insert("predicateFiles", predicates);+       	        data.insert("autorunPredicateFiles", autorunPredicates);                  setData(udi, data);             } else {@@ -158,6 +163,23 @@     return interestingDesktopFiles; } +QStringList HotplugEngine::autorunPredicatesForDevice(Solid::Device &device)+{+    QStringList autorunDesktopFiles;+    //search in all desktop configuration file if the device inserted is a correct device+    QHashIterator<QString, Solid::Predicate> it(m_autorun);+    //kDebug() << "=================" << udi;+    while (it.hasNext()) {+        it.next();+        if (it.value().matches(device)) {+            //kDebug() << "     hit" << it.key();+            autorunDesktopFiles << it.key();+        }+    }++    return autorunDesktopFiles;+}+ void HotplugEngine::onDeviceAdded(const QString &udi) {     Solid::Device device(udi);@@ -201,6 +223,8 @@     }      QStringList interestingDesktopFiles = predicatesForDevice(device);+    +    QStringList autorunDesktopFiles = autorunPredicatesForDevice(device);      bool isEncryptedContainer =  m_encryptedPredicate.matches(device); @@ -220,6 +244,7 @@         data.insert("icon", device.icon());         data.insert("emblems", device.emblems());         data.insert("predicateFiles", interestingDesktopFiles);+        data.insert("autorunPredicateFiles", autorunDesktopFiles);         data.insert("isEncryptedContainer", isEncryptedContainer);          setData(device.udi(), data);diff -ru kdebase-workspace-4.5.90_old//plasma/generic/dataengines/hotplug/hotplugengine.h kdebase-workspace-4.5.90_new//plasma/generic/dataengines/hotplug/hotplugengine.h--- kdebase-workspace-4.5.90_old//plasma/generic/dataengines/hotplug/hotplugengine.h	2010-01-06 18:00:19.000000000 +0100+++ kdebase-workspace-4.5.90_new//plasma/generic/dataengines/hotplug/hotplugengine.h	2011-01-03 23:47:04.044466496 +0100@@ -49,6 +49,7 @@         void onDeviceAdded(Solid::Device &dev, bool added = true);         void findPredicates();         QStringList predicatesForDevice(Solid::Device &device);+        QStringList autorunPredicatesForDevice(Solid::Device &device);      private Q_SLOTS:         void processNextStartupDevice();@@ -56,6 +57,7 @@      private:         QHash<QString, Solid::Predicate> m_predicates;+        QHash<QString, Solid::Predicate> m_autorun;         QHash<QString, Solid::Device> m_startList;         QHash<QString, Solid::Device> m_devices;         Solid::Predicate m_encryptedPredicate;