[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/powerdevil
From:       Dario Freddi <drf () kde ! org>
Date:       2010-11-11 17:43:26
Message-ID: 20101111174326.57BF0AC89E () svn ! kde ! org
[Download RAW message or body]

SVN commit 1195651 by dafre:

Make the reloading phase more efficient by not reloading the current profile unless \
it's edited; reparse config instead

 M  +1 -0      daemon/org.kde.Solid.PowerManagement.xml  
 M  +8 -5      daemon/powerdevilcore.cpp  
 M  +1 -0      daemon/powerdevilcore.h  
 M  +26 -2     kcmodule/profiles/EditPage.cpp  


--- trunk/KDE/kdebase/workspace/powerdevil/daemon/org.kde.Solid.PowerManagement.xml \
#1195650:1195651 @@ -4,6 +4,7 @@
     
     <method name="refreshStatus" />
     <method name="reloadCurrentProfile" />
+    <method name="reparseConfiguration" />
     <method name="loadProfile">
       <arg type="s" direction="in" />
     </method>
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.cpp #1195650:1195651
@@ -234,8 +234,7 @@
     /* The configuration could have changed if this function was called, so
      * let's resync it.
      */
-    PowerDevilSettings::self()->readConfig();
-    m_profilesConfig->reparseConfiguration();
+    reparseConfiguration();
 
     reloadProfile();
 }
@@ -250,14 +249,18 @@
     /* The configuration could have changed if this function was called, so
      * let's resync it.
      */
-    kDebug() << "Request to reload current profile";
+    reparseConfiguration();
+
+    loadProfile(m_currentProfile);
+}
+
+void Core::reparseConfiguration()
+{
     PowerDevilSettings::self()->readConfig();
     m_profilesConfig->reparseConfiguration();
 
     // Config reloaded
     emit configurationReloaded();
-
-    loadProfile(m_currentProfile);
 }
 
 void Core::reloadProfile(int state)
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.h #1195650:1195651
@@ -65,6 +65,7 @@
     void refreshStatus();
     void reloadProfile();
     void reloadCurrentProfile();
+    void reparseConfiguration();
 
     void loadProfile(const QString &name);
     QString currentProfile() const;
--- trunk/KDE/kdebase/workspace/powerdevil/kcmodule/profiles/EditPage.cpp \
#1195650:1195651 @@ -169,10 +169,34 @@
 
 void EditPage::save()
 {
+    QString profile = profilesList->currentItem()->text();
     saveProfile();
     // Notify the daemon
     QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", \
"/org/kde/Solid/PowerManagement", +                                                   \
"org.kde.Solid.PowerManagement", "currentProfile"); +    QDBusPendingReply< QString > \
reply = QDBusConnection::sessionBus().asyncCall(call); +    reply.waitForFinished();
+
+    if (reply.isValid()) {
+        if (reply.value() == profile) {
+            // Ask to reload the profile
+            kDebug() << "Active profile edited, reloading profile";
+            call = QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", \
                "/org/kde/Solid/PowerManagement",
                                                        \
"org.kde.Solid.PowerManagement", "reloadCurrentProfile"); +        } else {
+            // Ask to reparse config
+            kDebug() << "Inactive profile edited, reparsing configuration";
+            call = QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", \
"/org/kde/Solid/PowerManagement", +                                                  \
"org.kde.Solid.PowerManagement", "reparseConfiguration"); +        }
+    } else {
+        kWarning() << "Invalid reply from daemon when asking for current profile!";
+        // To be sure, reload profile
+        call = QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", \
"/org/kde/Solid/PowerManagement", +                                              \
"org.kde.Solid.PowerManagement", "reloadCurrentProfile"); +    }
+
+    // Perform call
     QDBusConnection::sessionBus().asyncCall(call);
 }
 
@@ -279,7 +303,7 @@
 
     // Notify the daemon
     QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", \
                "/org/kde/Solid/PowerManagement",
-                                                       \
"org.kde.Solid.PowerManagement", "reloadCurrentProfile"); +                           \
"org.kde.Solid.PowerManagement", "reparseConfiguration");  \
QDBusConnection::sessionBus().asyncCall(call);  }
 
@@ -297,7 +321,7 @@
 
     // Notify the daemon
     QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", \
                "/org/kde/Solid/PowerManagement",
-                                                       \
"org.kde.Solid.PowerManagement", "reloadCurrentProfile"); +                           \
"org.kde.Solid.PowerManagement", "reparseConfiguration");  \
QDBusConnection::sessionBus().asyncCall(call);  }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic