You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/opensuse/core/tdebase/kcontrol-energy.diff

168 lines
5.6 KiB

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;
}