diff options
Diffstat (limited to 'kcontrol/style/keramik')
-rw-r--r-- | kcontrol/style/keramik/Makefile.am | 12 | ||||
-rw-r--r-- | kcontrol/style/keramik/keramikconf.cpp | 103 | ||||
-rw-r--r-- | kcontrol/style/keramik/keramikconf.h | 62 |
3 files changed, 177 insertions, 0 deletions
diff --git a/kcontrol/style/keramik/Makefile.am b/kcontrol/style/keramik/Makefile.am new file mode 100644 index 000000000..028585373 --- /dev/null +++ b/kcontrol/style/keramik/Makefile.am @@ -0,0 +1,12 @@ +INCLUDES = $(all_includes) + +noinst_HEADERS = keramikconf.h +kde_module_LTLIBRARIES = kstyle_keramik_config.la +kstyle_keramik_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module +kstyle_keramik_config_la_LIBADD = $(LIB_KDEUI) +kstyle_keramik_config_la_SOURCES = keramikconf.cpp +METASOURCES = AUTO + + +messages: + $(XGETTEXT) *.cpp *.h -o $(podir)/kstyle_keramik_config.pot diff --git a/kcontrol/style/keramik/keramikconf.cpp b/kcontrol/style/keramik/keramikconf.cpp new file mode 100644 index 000000000..28e0ce424 --- /dev/null +++ b/kcontrol/style/keramik/keramikconf.cpp @@ -0,0 +1,103 @@ +/* +Copyright (c) 2003 Maksim Orlovich <[email protected]> + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ + +#include <qcheckbox.h> +#include <qlayout.h> +#include <qsettings.h> +#include <kdialog.h> +#include <kglobal.h> +#include <klocale.h> + +#include "keramikconf.h" + +extern "C" +{ + KDE_EXPORT QWidget* allocate_kstyle_config(QWidget* parent) + { + return new KeramikStyleConfig(parent); + } +} + +KeramikStyleConfig::KeramikStyleConfig(QWidget* parent): QWidget(parent) +{ + //Should have no margins here, the dialog provides them + QVBoxLayout* layout = new QVBoxLayout(this, 0, 0); + KGlobal::locale()->insertCatalogue("kstyle_keramik_config"); + + //highlightLineEdits = new QCheckBox(i18n("Highlight active lineedits"), this); + highlightScrollBar = new QCheckBox(i18n("Highlight scroll bar handles"), this); + animateProgressBar = new QCheckBox(i18n("Animate progress bars"), this); + + //layout->add(highlightLineEdits); + layout->add(highlightScrollBar); + layout->add(animateProgressBar); + layout->addStretch(1); + + QSettings s; + //origHlLineEdit = s.readBoolEntry("/keramik/Settings/highlightLineEdits", false); + //highlightLineEdits->setChecked(origHlLineEdit); + + origHlScrollbar = s.readBoolEntry("/keramik/Settings/highlightScrollBar", true); + highlightScrollBar->setChecked(origHlScrollbar); + + origAnimProgressBar = s.readBoolEntry("/keramik/Settings/animateProgressBar", false); + animateProgressBar->setChecked(origAnimProgressBar); + + //connect(highlightLineEdits, SIGNAL( toggled(bool) ), SLOT( updateChanged() ) ); + connect(highlightScrollBar, SIGNAL( toggled(bool) ), SLOT( updateChanged() ) ); + connect(animateProgressBar, SIGNAL( toggled(bool) ), SLOT( updateChanged() ) ); +} + +KeramikStyleConfig::~KeramikStyleConfig() +{ + KGlobal::locale()->removeCatalogue("kstyle_keramik_config"); +} + + +void KeramikStyleConfig::save() +{ + QSettings s; + //s.writeEntry("/keramik/Settings/highlightLineEdits", highlightLineEdits->isChecked()); + s.writeEntry("/keramik/Settings/highlightScrollBar", highlightScrollBar->isChecked()); + s.writeEntry("/keramik/Settings/animateProgressBar", animateProgressBar->isChecked()); +} + +void KeramikStyleConfig::defaults() +{ + //highlightLineEdits->setChecked(false); + highlightScrollBar->setChecked(true); + animateProgressBar->setChecked(false); + //updateChanged would be done by setChecked already +} + +void KeramikStyleConfig::updateChanged() +{ + if ( /*(highlightLineEdits->isChecked() == origHlLineEdit) &&*/ + (highlightScrollBar->isChecked() == origHlScrollbar) && + (animateProgressBar->isChecked() == origAnimProgressBar) ) + emit changed(false); + else + emit changed(true); +} + +#include "keramikconf.moc" diff --git a/kcontrol/style/keramik/keramikconf.h b/kcontrol/style/keramik/keramikconf.h new file mode 100644 index 000000000..f482fdb14 --- /dev/null +++ b/kcontrol/style/keramik/keramikconf.h @@ -0,0 +1,62 @@ +/* +Copyright (c) 2003 Maksim Orlovich <[email protected]> + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ + +#ifndef KERAMIK_CONF_H +#define KERAMIK_CONF_H + +class QCheckBox; + +class KeramikStyleConfig: public QWidget +{ + Q_OBJECT +public: + KeramikStyleConfig(QWidget* parent); + ~KeramikStyleConfig(); + + //This signal and the next two slots are the plugin + //page interface +signals: + void changed(bool); + +public slots: + void save(); + void defaults(); + + //Everything below this is internal. +protected slots: + void updateChanged(); + +protected: + //We store settings directly in widgets to + //avoid the hassle of sync'ing things + //QCheckBox* highlightLineEdits; + QCheckBox* animateProgressBar; + QCheckBox* highlightScrollBar; + + //Original settings, for accurate dirtiness tracking + //bool origHlLineEdit; + bool origAnimProgressBar; + bool origHlScrollbar; +}; + +#endif |