summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdebase/kcontrol-energy.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/core/tdebase/kcontrol-energy.diff')
-rw-r--r--opensuse/core/tdebase/kcontrol-energy.diff167
1 files changed, 167 insertions, 0 deletions
diff --git a/opensuse/core/tdebase/kcontrol-energy.diff b/opensuse/core/tdebase/kcontrol-energy.diff
new file mode 100644
index 000000000..b98a648bc
--- /dev/null
+++ b/opensuse/core/tdebase/kcontrol-energy.diff
@@ -0,0 +1,167 @@
+Index: kcontrol/energy/energy.h
+===================================================================
+--- kcontrol/energy/energy.h.orig
++++ kcontrol/energy/energy.h
+@@ -44,6 +44,7 @@ private slots:
+ void slotChangeStandby(int);
+ void slotChangeSuspend(int);
+ void slotChangeOff(int);
++ void slotLaunchKPowersave();
+ void openURL(const QString &);
+
+ private:
+@@ -54,7 +55,7 @@ private:
+ static void applySettings(bool, int, int, int);
+ friend void init_energy();
+
+- bool m_bChanged, m_bDPMS, m_bEnabled, m_bMaintainSanity;
++ bool m_bChanged, m_bDPMS, m_bKPowersave, m_bEnabled, m_bMaintainSanity;
+ int m_Standby, m_Suspend, m_Off;
+ int m_StandbyDesired, m_SuspendDesired, m_OffDesired;
+
+Index: kcontrol/energy/energy.cpp
+===================================================================
+--- kcontrol/energy/energy.cpp.orig
++++ kcontrol/energy/energy.cpp
+@@ -26,6 +26,7 @@
+ #include <qlabel.h>
+ #include <qlayout.h>
+ #include <qwhatsthis.h>
++#include <qpushbutton.h>
+
+ #include <kconfig.h>
+ #include <kcursor.h>
+@@ -36,6 +37,7 @@
+ #include <krun.h>
+ #include <kstandarddirs.h>
+ #include <kurllabel.h>
++#include <dcopref.h>
+
+ #include <X11/X.h>
+ #include <X11/Xlib.h>
+@@ -140,6 +142,7 @@ KEnergy::KEnergy(QWidget *parent, const
+ m_Suspend = DFLT_SUSPEND;
+ m_Off = DFLT_OFF;
+ m_bDPMS = false;
++ m_bKPowersave = false;
+ m_bMaintainSanity = true;
+
+ setQuickHelp( i18n("<h1>Display Power Control</h1> If your display supports"
+@@ -154,6 +157,13 @@ KEnergy::KEnergy(QWidget *parent, const
+ #ifdef HAVE_DPMS
+ int dummy;
+ m_bDPMS = DPMSQueryExtension(qt_xdisplay(), &dummy, &dummy);
++
++ DCOPRef kpowersave("kpowersave", "KPowersaveIface");
++ DCOPReply managingDPMS = kpowersave.call("currentSchemeManagesDPMS()");
++ if (managingDPMS.isValid()) {
++ m_bKPowersave = managingDPMS;
++ m_bDPMS = !m_bKPowersave;
++ }
+ #endif
+
+ QVBoxLayout *top = new QVBoxLayout(this, 0, KDialog::spacingHint());
+@@ -162,14 +172,26 @@ KEnergy::KEnergy(QWidget *parent, const
+
+ QLabel *lbl;
+ if (m_bDPMS) {
+- m_pCBEnable= new QCheckBox(i18n("&Enable display power management" ), this);
+- connect(m_pCBEnable, SIGNAL(toggled(bool)), SLOT(slotChangeEnable(bool)));
+- hbox->addWidget(m_pCBEnable);
++ KGlobal::locale()->insertCatalogue("kpowersave");
++
++ // ### these i18n strings need to be synced with kpowersave !!
++ m_pCBEnable= new QCheckBox(i18n("&Enable display power management" ), this);
++ connect(m_pCBEnable, SIGNAL(toggled(bool)), SLOT(slotChangeEnable(bool)));
++ hbox->addWidget(m_pCBEnable);
+ QWhatsThis::add( m_pCBEnable, i18n("Check this option to enable the"
+- " power saving features of your display.") );
+- } else {
++ " power saving features of your display.") );
++
++ // ###
++ } else if(m_bKPowersave) {
++ m_pCBEnable = new QCheckBox(i18n("&Enable specific display power management"), this);
++ hbox->addWidget(m_pCBEnable);
++ m_bEnabled = false;
++ m_pCBEnable->setChecked(true);
++ m_pCBEnable->setEnabled(false);
++
++ } else {
+ lbl = new QLabel(i18n("Your display does not support power saving."), this);
+- hbox->addWidget(lbl);
++ hbox->addWidget(lbl);
+ }
+
+ KURLLabel *logo = new KURLLabel(this);
+@@ -183,6 +205,7 @@ connect(logo, SIGNAL(leftClickedURL(cons
+ hbox->addWidget(logo);
+
+ // Sliders
++ if (!m_bKPowersave) {
+ m_pStandbySlider = new KIntNumInput(m_Standby, this);
+ m_pStandbySlider->setLabel(i18n("&Standby after:"));
+ m_pStandbySlider->setRange(0, 120, 10);
+@@ -218,6 +241,17 @@ connect(logo, SIGNAL(leftClickedURL(cons
+ " greatest level of power saving that can be achieved while the"
+ " display is still physically turned on.") );
+
++ }
++ else {
++ m_pStandbySlider = 0;
++ m_pSuspendSlider = 0;
++ m_pOffSlider = 0;
++ QPushButton* btnKPowersave = new QPushButton(this);
++ btnKPowersave->setText(i18n("Configure KPowersave..."));
++ connect(btnKPowersave, SIGNAL(clicked()), SLOT(slotLaunchKPowersave()));
++ top->addWidget(btnKPowersave);
++ }
++
+ top->addStretch();
+
+ if (m_bDPMS)
+@@ -270,7 +304,8 @@ void KEnergy::defaults()
+
+ void KEnergy::readSettings()
+ {
+- m_bEnabled = m_pConfig->readBoolEntry("displayEnergySaving", false);
++ if (m_bDPMS)
++ m_bEnabled = m_pConfig->readBoolEntry("displayEnergySaving", false);
+ m_Standby = m_pConfig->readNumEntry("displayStandby", DFLT_STANDBY);
+ m_Suspend = m_pConfig->readNumEntry("displaySuspend", DFLT_SUSPEND);
+ m_Off = m_pConfig->readNumEntry("displayPowerOff", DFLT_OFF);
+@@ -297,20 +332,27 @@ void KEnergy::writeSettings()
+ m_bChanged = false;
+ }
+
++void KEnergy::slotLaunchKPowersave()
++{
++ DCOPRef r("kpowersave", "KPowersaveIface");
++ r.send("openConfigureDialog()");
++}
+
+ void KEnergy::showSettings()
+ {
+ m_bMaintainSanity = false;
+
+ if (m_bDPMS)
+- m_pCBEnable->setChecked(m_bEnabled);
++ m_pCBEnable->setChecked(m_bEnabled);
+
+- m_pStandbySlider->setEnabled(m_bEnabled);
+- m_pStandbySlider->setValue(m_Standby);
+- m_pSuspendSlider->setEnabled(m_bEnabled);
+- m_pSuspendSlider->setValue(m_Suspend);
+- m_pOffSlider->setEnabled(m_bEnabled);
+- m_pOffSlider->setValue(m_Off);
++ if (!m_bKPowersave) {
++ m_pStandbySlider->setEnabled(m_bEnabled);
++ m_pStandbySlider->setValue(m_Standby);
++ m_pSuspendSlider->setEnabled(m_bEnabled);
++ m_pSuspendSlider->setValue(m_Suspend);
++ m_pOffSlider->setEnabled(m_bEnabled);
++ m_pOffSlider->setValue(m_Off);
++ }
+
+ m_bMaintainSanity = true;
+ }