diff options
Diffstat (limited to 'kcontrol/kdm/background.cpp')
-rw-r--r-- | kcontrol/kdm/background.cpp | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/kcontrol/kdm/background.cpp b/kcontrol/kdm/background.cpp new file mode 100644 index 000000000..19c962a1d --- /dev/null +++ b/kcontrol/kdm/background.cpp @@ -0,0 +1,111 @@ +/* vi: ts=8 sts=4 sw=4 + * + * This file is part of the KDE project, module kcmdisplay. + * Copyright (C) 1999 Geert Jansen <[email protected]> + * + * Modified 2000.07.14 by Brad Hughes <[email protected]> + * Improve layout and consistency with KDesktop's background selection + * + * Based on old backgnd.cpp: + * + * Copyright (c) Martin R. Jones 1996 + * Converted to a kcc module by Matthias Hoelzer 1997 + * Gradient backgrounds by Mark Donohoe 1997 + * Pattern backgrounds by Stephan Kulow 1998 + * Randomizing & dnd & new display modes by Matej Koss 1998 + * + * You can Freely distribute this program under the GNU General Public + * License. See the file "COPYING" for the exact licensing terms. + */ + +#include <config.h> + +#include <unistd.h> +#include <sys/types.h> + +#include <qgroupbox.h> +#include <qlayout.h> +#include <qwhatsthis.h> + +#include <kdebug.h> +#include <klocale.h> +#include <dcopclient.h> +#include "../background/bgsettings.h" +#include "../background/bgdialog.h" +#include "background.h" +#include <qcheckbox.h> +#include <ksimpleconfig.h> +#include <kdialog.h> + +extern KSimpleConfig *config; + +KBackground::KBackground(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + + // Enabling checkbox + m_pCBEnable = new QCheckBox( i18n("E&nable background"), this ); + QWhatsThis::add( m_pCBEnable, + i18n("If this is checked, KDM will use the settings below for the background." + " If it is disabled, you have to look after the background yourself." + " This is done by running some program (possibly xsetroot) in the script" + " specified in the Setup= option in kdmrc (usually Xsetup).") ); + config->setGroup( "X-*-Greeter" ); + m_simpleConf=new KSimpleConfig(config->readEntry( "BackgroundCfg",KDE_CONFDIR "/kdm/backgroundrc" ) ); + m_background = new BGDialog( this, m_simpleConf, false ); + + connect(m_background, SIGNAL(changed(bool)), SIGNAL(changed(bool))); + + // Top layout + QVBoxLayout *top = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint() ); + top->addWidget(m_pCBEnable); + top->addWidget(m_background); + top->addStretch(); + connect( m_pCBEnable, SIGNAL(toggled( bool )), SLOT(slotEnableChanged()) ); +} + +KBackground::~KBackground() +{ + delete m_simpleConf; +} + +void KBackground::slotEnableChanged() +{ + bool en = m_pCBEnable->isChecked(); + m_background->setEnabled( en ); + emit changed ( true ); +} + +void KBackground::makeReadOnly() +{ + m_pCBEnable->setEnabled(false); + m_background->makeReadOnly(); +} + +void KBackground::load() +{ + m_pCBEnable->setChecked( config->readBoolEntry( "UseBackground", true ) ); + m_background->load(false); + slotEnableChanged(); + emit changed(false); +} + + +void KBackground::save() +{ + kdDebug() << "Saving stuff..." << endl; + config->writeEntry( "UseBackground", m_pCBEnable->isChecked() ); + m_background->save(); + emit changed(false); +} + + +void KBackground::defaults() +{ + m_pCBEnable->setChecked( true ); + slotEnableChanged(); + m_background->defaults(); + emit changed(true); +} + +#include "background.moc" |