[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