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.
175 lines
5.1 KiB
175 lines
5.1 KiB
#include <klocale.h>
|
|
#include <kstandarddirs.h>
|
|
#include <tqcombobox.h>
|
|
#include <kdebug.h>
|
|
|
|
#include <tqwhatsthis.h>
|
|
#include <tqstring.h>
|
|
|
|
#include <config.h>
|
|
|
|
#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()
|
|
{
|
|
KConfig *config = new KConfig("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)
|
|
{
|
|
KConfig *config = new KConfig("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, "<qt>" + 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.") + "</qt>");
|
|
TQString qsTopLeft("<qt>" + i18n("The action to take when the mouse cursor is located in the top left corner of the screen for 15 seconds.") + "</qt>");
|
|
TQString qsTopRight("<qt>" + i18n("The action to take when the mouse cursor is located in the top right corner of the screen for 15 seconds.") + "</qt>");
|
|
TQString qsBottomLeft("<qt>" + i18n("The action to take when the mouse cursor is located in the bottom left corner of the screen for 15 seconds.") + "</qt>");
|
|
TQString qsBottomRight("<qt>" + i18n("The action to take when the mouse cursor is located in the bottom right corner of the screen for 15 seconds.") + "</qt>");
|
|
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();
|
|
}
|