#include #include #include #include #include #include #include #include "advanceddialog.h" #include "advanceddialogimpl.h" #include "stdlib.h" #include "advanceddialog.moc" KScreenSaverAdvancedDialog::KScreenSaverAdvancedDialog(TQWidget *parent, const char* name) : KDialogBase( parent, name, true, i18n( "Advanced Options" ), Ok | Cancel, Ok, true ) { dialog = new AdvancedDialog(this); setMainWidget(dialog); readSettings(); connect(dialog->qcbPriority, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotPriorityChanged(int))); connect(dialog->qcbTopLeft, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotChangeTopLeftCorner(int))); connect(dialog->qcbTopRight, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotChangeTopLeftCorner(int))); connect(dialog->qcbBottomLeft, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotChangeTopLeftCorner(int))); connect(dialog->qcbBottomRight, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotChangeTopLeftCorner(int))); #ifndef HAVE_SETPRIORITY dialog->qgbPriority->setEnabled(false); #endif } void KScreenSaverAdvancedDialog::readSettings() { TDEConfig *config = new TDEConfig("kdesktoprc"); config->setGroup("ScreenSaver"); mPriority = config->readNumEntry("Priority", 19); if (mPriority < 0) mPriority = 0; if (mPriority > 19) mPriority = 19; dialog->qcbTopLeft->setCurrentItem(config->readNumEntry("ActionTopLeft", 0)); dialog->qcbTopRight->setCurrentItem(config->readNumEntry("ActionTopRight", 0)); dialog->qcbBottomLeft->setCurrentItem(config->readNumEntry("ActionBottomLeft", 0)); dialog->qcbBottomRight->setCurrentItem(config->readNumEntry("ActionBottomRight", 0)); switch(mPriority) { case 19: // Low dialog->qcbPriority->setCurrentItem(0); kdDebug() << "setting low" << endl; break; case 10: // Medium dialog->qcbPriority->setCurrentItem(1); kdDebug() << "setting medium" << endl; break; case 0: // High dialog->qcbPriority->setCurrentItem(2); kdDebug() << "setting high" << endl; break; } mChanged = false; delete config; } void KScreenSaverAdvancedDialog::slotPriorityChanged(int val) { switch (val) { case 0: // Low mPriority = 19; kdDebug() << "low priority" << endl; break; case 1: // Medium mPriority = 10; kdDebug() << "medium priority" << endl; break; case 2: // High mPriority = 0; kdDebug() << "high priority" << endl; break; } mChanged = true; } void KScreenSaverAdvancedDialog::slotOk() { if (mChanged) { TDEConfig *config = new TDEConfig("kdesktoprc"); config->setGroup( "ScreenSaver" ); config->writeEntry("Priority", mPriority); config->writeEntry( "ActionTopLeft", dialog->qcbTopLeft->currentItem()); config->writeEntry( "ActionTopRight", dialog->qcbTopRight->currentItem()); config->writeEntry( "ActionBottomLeft", dialog->qcbBottomLeft->currentItem()); config->writeEntry( "ActionBottomRight", dialog->qcbBottomRight->currentItem()); config->sync(); delete config; } accept(); } void KScreenSaverAdvancedDialog::slotChangeBottomRightCorner(int) { mChanged = true; } void KScreenSaverAdvancedDialog::slotChangeBottomLeftCorner(int) { mChanged = true; } void KScreenSaverAdvancedDialog::slotChangeTopRightCorner(int) { mChanged = true; } void KScreenSaverAdvancedDialog::slotChangeTopLeftCorner(int) { mChanged = true; } /* =================================================================================================== */ AdvancedDialog::AdvancedDialog(TQWidget *parent, const char *name) : AdvancedDialogImpl(parent, name) { monitorLabel->setPixmap(TQPixmap(locate("data", "kcontrol/pics/monitor.png"))); TQWhatsThis::add(qcbPriority, "" + i18n("Specify the priority that the screensaver will run at. A higher priority may mean that the screensaver runs faster, though may reduce the speed that other programs run at while the screensaver is active.") + ""); TQString qsTopLeft("" + i18n("The action to take when the mouse cursor is located in the top left corner of the screen for 15 seconds.") + ""); TQString qsTopRight("" + i18n("The action to take when the mouse cursor is located in the top right corner of the screen for 15 seconds.") + ""); TQString qsBottomLeft("" + i18n("The action to take when the mouse cursor is located in the bottom left corner of the screen for 15 seconds.") + ""); TQString qsBottomRight("" + i18n("The action to take when the mouse cursor is located in the bottom right corner of the screen for 15 seconds.") + ""); TQWhatsThis::add(qlTopLeft, qsTopLeft); TQWhatsThis::add(qcbTopLeft, qsTopLeft); TQWhatsThis::add(qlTopRight, qsTopRight); TQWhatsThis::add(qcbTopRight, qsTopRight); TQWhatsThis::add(qlBottomLeft, qsBottomLeft); TQWhatsThis::add(qcbBottomLeft, qsBottomLeft); TQWhatsThis::add(qlBottomRight, qsBottomRight); TQWhatsThis::add(qcbBottomRight, qsBottomRight); } AdvancedDialog::~AdvancedDialog() { } void AdvancedDialog::setMode(TQComboBox *box, int i) { box->setCurrentItem(i); } int AdvancedDialog::mode(TQComboBox *box) { return box->currentItem(); }