[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/powerdevil/daemon
From: Dario Freddi <drf () kde ! org>
Date: 2010-11-28 12:40:39
Message-ID: 20101128124039.2FEF9AC8A5 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1201711 by dafre:
Preliminary version of a PowerDevilv1 profile importer
M +93 -0 powerdevilprofilegenerator.cpp
M +1 -0 powerdevilprofilegenerator.h
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilprofilegenerator.cpp \
#1201710:1201711 @@ -21,6 +21,8 @@
#include <PowerDevilSettings.h>
+#include <QtCore/QFile>
+
#include <Solid/Device>
#include <Solid/Battery>
#include <Solid/PowerManagement>
@@ -30,6 +32,7 @@
#include <KLocalizedString>
#include <KNotification>
#include <KIcon>
+#include <KStandardDirs>
namespace PowerDevil {
@@ -198,4 +201,94 @@
profilesConfig->sync();
}
+void ProfileGenerator::upgradeProfiles()
+{
+ QSet< Solid::PowerManagement::SleepState > methods = \
Solid::PowerManagement::supportedSleepStates(); +
+ // Let's change some defaults
+ if (!methods.contains(Solid::PowerManagement::SuspendState)) {
+ if (!methods.contains(Solid::PowerManagement::HibernateState)) {
+ PowerDevilSettings::setBatteryCriticalAction(0);
+ } else {
+ PowerDevilSettings::setBatteryCriticalAction(2);
}
+ }
+
+ // Ok, let's get our config file.
+ KSharedConfigPtr profilesConfig = \
KSharedConfig::openConfig("powerdevil2profilesrc", KConfig::SimpleConfig); + \
KSharedConfigPtr oldProfilesConfig = \
KSharedConfig::openConfig("powerdevilprofilesrc", KConfig::SimpleConfig); +
+ // And clear it
+ foreach (const QString &group, profilesConfig->groupList()) {
+ profilesConfig->deleteGroup(group);
+ }
+
+ foreach (const QString &group, oldProfilesConfig->groupList()) {
+ KConfigGroup oldGroup = oldProfilesConfig->group(group);
+ KConfigGroup newGroup(profilesConfig, oldGroup.readEntry< QString >("name", \
QString())); +
+ // Read stuff
+ // Brightness.
+ {
+ KConfigGroup brightnessControl(&newGroup, "BrightnessControl");
+ brightnessControl.writeEntry< int >("value", oldGroup.readEntry< int \
>("brightness", 100)); + }
+ // Dim screen
+ if (oldGroup.readEntry< bool >("dimOnIdle", false)) {
+ KConfigGroup dimDisplay(&newGroup, "DimDisplay");
+ dimDisplay.writeEntry< int >("idleTime", oldGroup.readEntry< int \
>("dimOnIdleTime", 30) * 60 * 1000); + }
+ // DPMS
+ if (oldGroup.readEntry< bool >("DPMSEnabled", false) && oldGroup.readEntry< \
int >("DPMSPowerOff", 0) > 0) { + KConfigGroup dpmsControl(&newGroup, \
"DPMSControl"); + dpmsControl.writeEntry< uint >("idleTime", \
oldGroup.readEntry< int >("DPMSPowerOff", 30) * 60 * 1000); + }
+ // Script
+ if (!oldGroup.readEntry< QString >("scriptpath", QString()).isEmpty()) {
+ KConfigGroup runScript(&newGroup, "RunScript");
+ runScript.writeEntry< QString >("scriptCommand", oldGroup.readEntry< \
QString >("scriptpath", QString())); + runScript.writeEntry< uint \
>("scriptPhase", 0); + }
+ // SuspendSession
+ if (oldGroup.readEntry< int >("idleAction", 0) > 0) {
+ KConfigGroup suspendSession(&newGroup, "SuspendSession");
+ suspendSession.writeEntry< uint >("idleTime", oldGroup.readEntry< int \
>("idleTime", 30) * 60 * 1000); + if \
> (!methods.contains(Solid::PowerManagement::SuspendState)) {
+ suspendSession.writeEntry< uint >("suspendType", 2);
+ } else {
+ suspendSession.writeEntry< uint >("suspendType", 1);
+ }
+ }
+ // Buttons
+ if (oldGroup.readEntry< int >("powerButtonAction", 0) > 0 || \
oldGroup.readEntry< int >("lidAction", 0) > 0) { + KConfigGroup \
suspendSession(&newGroup, "SuspendSession"); + suspendSession.writeEntry< \
uint >("idleTime", oldGroup.readEntry< int >("idleTime") * 60 * 1000); + \
if (!methods.contains(Solid::PowerManagement::SuspendState)) { + \
suspendSession.writeEntry< uint >("suspendType", 2); + } else {
+ suspendSession.writeEntry< uint >("suspendType", 1);
+ }
+ }
+ }
+
+ // Save and be happy
+ profilesConfig->sync();
+
+ // We also want to backup and erase the old profiles.
+ QString oldProfilesFile = KGlobal::dirs()->findResource("config", \
"powerdevilprofilesrc"); + if (!oldProfilesFile.isEmpty()) {
+ // Backup
+ QString bkProfilesFile = oldProfilesFile;
+ bkProfilesFile.append(".old");
+ KConfig *bkConfig = oldProfilesConfig->copyTo(bkProfilesFile);
+ if (bkConfig != 0) {
+ bkConfig->sync();
+ delete bkConfig;
+
+ // Delete the old profiles now.
+ QFile::remove(oldProfilesFile);
+ }
+ }
+}
+
+}
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilprofilegenerator.h \
#1201710:1201711 @@ -26,6 +26,7 @@
namespace ProfileGenerator
{
void generateProfiles();
+ void upgradeProfiles();
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic