diff options
Diffstat (limited to 'config/qtcurveconfig.cpp')
-rw-r--r-- | config/qtcurveconfig.cpp | 720 |
1 files changed, 720 insertions, 0 deletions
diff --git a/config/qtcurveconfig.cpp b/config/qtcurveconfig.cpp new file mode 100644 index 0000000..b9b36a6 --- /dev/null +++ b/config/qtcurveconfig.cpp @@ -0,0 +1,720 @@ +/* + QtCurve (C) Craig Drummond, 2003 - 2007 Craig.Drummond@lycos.co.uk + + ---- + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License version 2 as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "qtcurveconfig.h" +#include "exportthemedialog.h" +#include <qcheckbox.h> +#include <qcombobox.h> +#include <qgroupbox.h> +#include <qradiobutton.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qframe.h> +#include <qtabwidget.h> +#include <qpopupmenu.h> +#include <qfileinfo.h> +#include <klocale.h> +#include <kcolorbutton.h> +#include <kconfig.h> +#include <kfiledialog.h> +#include <kmessagebox.h> +#include <kpushbutton.h> +#include <kcharselect.h> +#include <kdialogbase.h> +#include <knuminput.h> +#include <unistd.h> +#include "config.h" +#define CONFIG_READ +#define CONFIG_WRITE +#include "config_file.c" + +#define QTC_EXTENSION ".qtcurve" + +extern "C" +{ + QWidget * allocate_kstyle_config(QWidget *parent) + { + KGlobal::locale()->insertCatalogue("kstyle_qtcurve_config"); + return new QtCurveConfig(parent); + } +} + +class CharSelectDialog : public KDialogBase +{ + public: + + CharSelectDialog(QWidget *parent, int v) + : KDialogBase(Plain, i18n("Select Password Character"), Ok|Cancel, Cancel, parent) + { + QFrame *page=plainPage(); + + QVBoxLayout *layout=new QVBoxLayout(page, 0, KDialog::spacingHint()); + + itsSelector=new KCharSelect(page, 0L); + itsSelector->setChar(QChar(v)); + layout->addWidget(itsSelector); + } + + int currentChar() const { return itsSelector->chr().unicode(); } + + private: + + KCharSelect *itsSelector; +}; + +static int toInt(const QString &str) +{ + return str.length()>1 ? str[0].unicode() : 0; +} + +static void insertShadeEntries(QComboBox *combo, bool withDarken, bool checkRadio=false) +{ + combo->insertItem(checkRadio ? i18n("Text") + : withDarken ? i18n("Background") + : i18n("Button")); + combo->insertItem(i18n("Custom:")); + + if(checkRadio) // For check/radio, we dont blend, and dont allow darken + combo->insertItem(i18n("Selected background")); + else if(withDarken) + { + // For menubars we dont actually blend... + combo->insertItem(i18n("Selected background")); + combo->insertItem(i18n("Darken")); + } + else + { + combo->insertItem(i18n("Blended selected background")); + combo->insertItem(i18n("Selected background")); + } +} + +static void insertAppearanceEntries(QComboBox *combo, bool all=true) +{ + combo->insertItem(i18n("Flat")); + combo->insertItem(i18n("Raised")); + combo->insertItem(i18n("Dull glass")); + combo->insertItem(i18n("Shiny glass")); + combo->insertItem(i18n("Gradient")); + combo->insertItem(i18n("Inverted gradient")); + if(all) + { + combo->insertItem(i18n("Split gradient")); + combo->insertItem(i18n("Bevelled")); + } +} + +static void insertLineEntries(QComboBox *combo, bool none) +{ + combo->insertItem(i18n("Sunken lines")); + combo->insertItem(i18n("Flat lines")); + combo->insertItem(i18n("Dots")); + combo->insertItem(none ? i18n("None") : i18n("Dashes")); +} + +static void insertDefBtnEntries(QComboBox *combo) +{ + combo->insertItem(i18n("Corner indicator")); + combo->insertItem(i18n("Font color thin border")); + combo->insertItem(i18n("Selected background thick border")); + combo->insertItem(i18n("None")); +} + +static void insertScrollbarEntries(QComboBox *combo) +{ + combo->insertItem(i18n("KDE")); + combo->insertItem(i18n("Windows")); + combo->insertItem(i18n("Platinum")); + combo->insertItem(i18n("Next")); + combo->insertItem(i18n("No buttons")); +} + +static void insertRoundEntries(QComboBox *combo) +{ + combo->insertItem(i18n("Square")); + combo->insertItem(i18n("Slightly rounded")); + combo->insertItem(i18n("Fully rounded")); +} + +static void insertMouseOverEntries(QComboBox *combo) +{ + combo->insertItem(i18n("No coloration")); + combo->insertItem(i18n("Color border")); + combo->insertItem(i18n("Plastik style")); +} + +static void insertToolbarBorderEntries(QComboBox *combo) +{ + combo->insertItem(i18n("None")); + combo->insertItem(i18n("Light")); + combo->insertItem(i18n("Dark")); + combo->insertItem(i18n("Light (all sides)")); + combo->insertItem(i18n("Dark (all sides)")); +} + +static void insertEffectEntries(QComboBox *combo) +{ + combo->insertItem(i18n("Plain")); + combo->insertItem(i18n("Etched")); + combo->insertItem(i18n("Shadowed")); +} + +static void insertShadingEntries(QComboBox *combo) +{ + combo->insertItem(i18n("Simple")); + combo->insertItem(i18n("Use HSL color space")); + combo->insertItem(i18n("Use HSV color space")); +} + +static void insertStripeEntries(QComboBox *combo) +{ + combo->insertItem(i18n("Plain")); + combo->insertItem(i18n("Striped")); + combo->insertItem(i18n("Diagonal stripes")); +} + +static void insertSliderStyleEntries(QComboBox *combo) +{ + combo->insertItem(i18n("Plain")); + combo->insertItem(i18n("Round")); + combo->insertItem(i18n("Triangular")); +} + +QtCurveConfig::QtCurveConfig(QWidget *parent) + : QtCurveConfigBase(parent), + exportDialog(NULL) +{ + titleLabel->setText("QtCurve " VERSION " - (C) Craig Drummond, 2003-2007"); + insertShadeEntries(shadeSliders, false); + insertShadeEntries(shadeMenubars, true); + insertShadeEntries(shadeCheckRadio, false, true); + insertAppearanceEntries(appearance); + insertAppearanceEntries(menubarAppearance); + insertAppearanceEntries(toolbarAppearance); + insertAppearanceEntries(lvAppearance); + insertAppearanceEntries(sliderAppearance); + insertAppearanceEntries(tabAppearance, false); + insertAppearanceEntries(progressAppearance); + insertAppearanceEntries(menuitemAppearance); + insertLineEntries(handles, false); + insertLineEntries(sliderThumbs, true); + insertLineEntries(toolbarSeparators, true); + insertLineEntries(splitters, false); + insertDefBtnEntries(defBtnIndicator); + insertScrollbarEntries(scrollbarType); + insertRoundEntries(round); + insertMouseOverEntries(coloredMouseOver); + insertToolbarBorderEntries(toolbarBorders); + insertEffectEntries(buttonEffect); + insertShadingEntries(shading); + insertStripeEntries(stripedProgress); + insertSliderStyleEntries(sliderStyle); + + highlightFactor->setMinValue(MIN_HIGHLIGHT_FACTOR); + highlightFactor->setMaxValue(MAX_HIGHLIGHT_FACTOR); + highlightFactor->setValue(((int)(DEFAULT_HIGHLIGHT_FACTOR*100))-100); + + connect(lighterPopupMenuBgnd, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(round, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(toolbarBorders, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(sliderThumbs, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(handles, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(appearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(customMenuTextColor, SIGNAL(toggled(bool)), SLOT(customMenuTextColorChanged())); + connect(stripedProgress, SIGNAL(activated(int)), SLOT(stripedProgressChanged())); + connect(animatedProgress, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(embolden, SIGNAL(toggled(bool)), SLOT(emboldenToggled())); + connect(defBtnIndicator, SIGNAL(activated(int)), SLOT(dbiChanged())); + connect(highlightTab, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(menubarAppearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(toolbarAppearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(lvAppearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(sliderAppearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(tabAppearance, SIGNAL(activated(int)), SLOT(tabAppearanceChanged())); + connect(toolbarSeparators, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(splitters, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(fixParentlessDialogs, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(fillSlider, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(sliderStyle, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(roundMbTopOnly, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(gradientPbGroove, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(darkerBorders, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(vArrows, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(xCheck, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(colorSelTab, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(stdSidebarButtons, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(borderMenuitems, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(progressAppearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(menuitemAppearance, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(shadeCheckRadio, SIGNAL(activated(int)), SLOT(shadeCheckRadioChanged())); + connect(customCheckRadioColor, SIGNAL(changed(const QColor &)), SLOT(updateChanged())); + +#ifdef QTC_PLAIN_FOCUS_ONLY + delete stdFocus; +#else + connect(stdFocus, SIGNAL(toggled(bool)), SLOT(updateChanged())); +#endif + connect(lvLines, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(drawStatusBarFrames, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(buttonEffect, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(coloredMouseOver, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(menubarMouseOver, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(shadeMenubarOnlyWhenActive, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(thinnerMenuItems, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(customSlidersColor, SIGNAL(changed(const QColor &)), SLOT(updateChanged())); + connect(customMenubarsColor, SIGNAL(changed(const QColor &)), SLOT(updateChanged())); + connect(customMenuSelTextColor, SIGNAL(changed(const QColor &)), SLOT(updateChanged())); + connect(customMenuNormTextColor, SIGNAL(changed(const QColor &)), SLOT(updateChanged())); + connect(shadeSliders, SIGNAL(activated(int)), SLOT(shadeSlidersChanged())); + connect(shadeMenubars, SIGNAL(activated(int)), SLOT(shadeMenubarsChanged())); + connect(highlightFactor, SIGNAL(valueChanged(int)), SLOT(updateChanged())); + connect(scrollbarType, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(shading, SIGNAL(activated(int)), SLOT(updateChanged())); + connect(gtkScrollViews, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(gtkComboMenus, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(gtkButtonOrder, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(mapKdeIcons, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(passwordChar, SIGNAL(clicked()), SLOT(passwordCharClicked())); + connect(framelessGroupBoxes, SIGNAL(toggled(bool)), SLOT(updateChanged())); + connect(inactiveHighlight, SIGNAL(toggled(bool)), SLOT(updateChanged())); + + defaultSettings(&defaultStyle); + if(!readConfig(NULL, ¤tStyle, &defaultStyle)) + currentStyle=defaultStyle; + + setWidgetOptions(currentStyle); + + QPopupMenu *menu=new QPopupMenu(this), + *subMenu=new QPopupMenu(this); + + optionBtn->setPopup(menu); + + menu->insertItem(i18n("Predefined Style"), subMenu); + menu->insertSeparator(); + menu->insertItem(i18n("Import..."), this, SLOT(importStyle())); + menu->insertItem(i18n("Export..."), this, SLOT(exportStyle())); + menu->insertSeparator(); + menu->insertItem(i18n("Export Theme..."), this, SLOT(exportTheme())); + + loadStyles(subMenu); +} + +QtCurveConfig::~QtCurveConfig() +{ +} + +void QtCurveConfig::loadStyles(QPopupMenu *menu) +{ + QStringList files(KGlobal::dirs()->findAllResources("data", "QtCurve/*"QTC_EXTENSION, false, true)); + + files.sort(); + + QStringList::Iterator it(files.begin()), + end(files.end()); + Options opts; + + for(; it!=end; ++it) + if(readConfig(*it, &opts, &defaultStyle)) + styles[menu->insertItem(QFileInfo(*it).fileName().remove(QTC_EXTENSION).replace('_', ' '), + this, SLOT(setStyle(int)))]=*it; +} + +void QtCurveConfig::save() +{ + Options opts=currentStyle; + + setOptions(opts); + writeConfig(NULL, opts, defaultStyle); + + KSharedConfig *cfg=KGlobal::sharedConfig(); + QString grp(cfg->group()); + bool useGlobals(cfg->forceGlobal()); + + cfg->setForceGlobal(true); + cfg->setGroup("KDE"); + + if(opts.gtkButtonOrder) + cfg->writeEntry("ButtonLayout", 2); + else + cfg->deleteEntry("ButtonLayout"); + cfg->setGroup(grp); + cfg->sync(); + cfg->setForceGlobal(useGlobals); +} + +void QtCurveConfig::defaults() +{ + setWidgetOptions(defaultStyle); + if (settingsChanged()) + emit changed(true); +} + +void QtCurveConfig::setStyle(int s) +{ + loadStyle(styles[s]); +} + +void QtCurveConfig::emboldenToggled() +{ + if(!embolden->isChecked() && IND_NONE==defBtnIndicator->currentItem()) + defBtnIndicator->setCurrentItem(IND_COLORED); + updateChanged(); +} + +void QtCurveConfig::dbiChanged() +{ + if(IND_NONE==defBtnIndicator->currentItem() && !embolden->isChecked()) + embolden->setChecked(true); + updateChanged(); +} + +void QtCurveConfig::shadeSlidersChanged() +{ + customSlidersColor->setEnabled(SHADE_CUSTOM==shadeSliders->currentItem()); + updateChanged(); +} + +void QtCurveConfig::shadeMenubarsChanged() +{ + customMenubarsColor->setEnabled(SHADE_CUSTOM==shadeMenubars->currentItem()); + updateChanged(); +} + +void QtCurveConfig::shadeCheckRadioChanged() +{ + customCheckRadioColor->setEnabled(SHADE_CUSTOM==shadeCheckRadio->currentItem()); + updateChanged(); +} + +void QtCurveConfig::customMenuTextColorChanged() +{ + customMenuNormTextColor->setEnabled(customMenuTextColor->isChecked()); + customMenuSelTextColor->setEnabled(customMenuTextColor->isChecked()); + updateChanged(); +} + +void QtCurveConfig::stripedProgressChanged() +{ + animatedProgress->setEnabled(STRIPE_NONE!=stripedProgress->currentItem()); + if(animatedProgress->isChecked() && STRIPE_NONE==stripedProgress->currentItem()) + animatedProgress->setChecked(false); + updateChanged(); +} + +void QtCurveConfig::tabAppearanceChanged() +{ + if(colorSelTab->isChecked() && APPEARANCE_GRADIENT!=tabAppearance->currentItem()) + colorSelTab->setChecked(false); + colorSelTab->setEnabled(APPEARANCE_GRADIENT==tabAppearance->currentItem()); + updateChanged(); +} + +void QtCurveConfig::passwordCharClicked() +{ + int cur(toInt(passwordChar->text())); + CharSelectDialog dlg(this, cur); + + if(QDialog::Accepted==dlg.exec() && dlg.currentChar()!=cur) + setPasswordChar(dlg.currentChar()); +} + +void QtCurveConfig::setPasswordChar(int ch) +{ + QString str; + QTextOStream s(&str); + + s.setf(QTextStream::hex); + s << QChar(ch) << " (" << ch << ')'; + passwordChar->setText(str); +} + +void QtCurveConfig::updateChanged() +{ + if (settingsChanged()) + emit changed(true); +} + +void QtCurveConfig::importStyle() +{ + QString file(KFileDialog::getOpenFileName(QString::null, + i18n("*"QTC_EXTENSION"|QtCurve Settings Files\n" + QTC_THEME_PREFIX"*"QTC_THEME_SUFFIX"|QtCurve KDE Theme Files"), + this)); + + if(!file.isEmpty()) + loadStyle(file); +} + +void QtCurveConfig::exportStyle() +{ + QString file(KFileDialog::getSaveFileName(QString::null, i18n("*"QTC_EXTENSION"|QtCurve Settings Files"), this)); + + if(!file.isEmpty()) + { + KConfig cfg(file, false, false); + bool rv(!cfg.isReadOnly()); + + if(rv) + { + Options opts; + + setOptions(opts); + rv=writeConfig(&cfg, opts, defaultStyle, true); + } + + if(!rv) + KMessageBox::error(this, i18n("Could not write to file:\n%1").arg(file)); + } +} + +void QtCurveConfig::exportTheme() +{ + if(!exportDialog) + exportDialog=new CExportThemeDialog(this); + + Options opts; + + setOptions(opts); + exportDialog->run(opts); +} + +void QtCurveConfig::loadStyle(const QString &file) +{ + Options opts; + + if(readConfig(file, &opts, &defaultStyle)) + { + setWidgetOptions(opts); + if (settingsChanged()) + emit changed(true); + } +} + +void QtCurveConfig::setOptions(Options &opts) +{ + opts.round=(ERound)round->currentItem(); + opts.toolbarBorders=(ETBarBorder)toolbarBorders->currentItem(); + opts.appearance=(EAppearance)appearance->currentItem(); +#ifndef QTC_PLAIN_FOCUS_ONLY + opts.stdFocus=stdFocus->isChecked(); +#endif + opts.lvLines=lvLines->isChecked(); + opts.drawStatusBarFrames=drawStatusBarFrames->isChecked(); + opts.buttonEffect=(EEffect)buttonEffect->currentItem(); + opts.coloredMouseOver=(EMouseOver)coloredMouseOver->currentItem(); + opts.menubarMouseOver=menubarMouseOver->isChecked(); + opts.shadeMenubarOnlyWhenActive=shadeMenubarOnlyWhenActive->isChecked(); + opts.thinnerMenuItems=thinnerMenuItems->isChecked(); + opts.fixParentlessDialogs=fixParentlessDialogs->isChecked(); + opts.animatedProgress=animatedProgress->isChecked(); + opts.stripedProgress=(EStripe)stripedProgress->currentItem(); + opts.lighterPopupMenuBgnd=lighterPopupMenuBgnd->isChecked(); + opts.embolden=embolden->isChecked(); + opts.scrollbarType=(EScrollbar)scrollbarType->currentItem(); + opts.defBtnIndicator=(EDefBtnIndicator)defBtnIndicator->currentItem(); + opts.sliderThumbs=(ELine)sliderThumbs->currentItem(); + opts.handles=(ELine)handles->currentItem(); + opts.highlightTab=highlightTab->isChecked(); + opts.shadeSliders=(EShade)shadeSliders->currentItem(); + opts.shadeMenubars=(EShade)shadeMenubars->currentItem(); + opts.menubarAppearance=(EAppearance)menubarAppearance->currentItem(); + opts.toolbarAppearance=(EAppearance)toolbarAppearance->currentItem(); + opts.lvAppearance=(EAppearance)lvAppearance->currentItem(); + opts.sliderAppearance=(EAppearance)sliderAppearance->currentItem(); + opts.tabAppearance=(EAppearance)tabAppearance->currentItem(); + opts.toolbarSeparators=(ELine)toolbarSeparators->currentItem(); + opts.splitters=(ELine)splitters->currentItem(); + opts.customSlidersColor=customSlidersColor->color(); + opts.customMenubarsColor=customMenubarsColor->color(); + opts.highlightFactor=((double)(highlightFactor->value()+100))/100.0; + opts.customMenuNormTextColor=customMenuNormTextColor->color(); + opts.customMenuSelTextColor=customMenuSelTextColor->color(); + opts.customMenuTextColor=customMenuTextColor->isChecked(); + opts.fillSlider=fillSlider->isChecked(); + opts.sliderStyle=(ESliderStyle)sliderStyle->currentItem(); + opts.roundMbTopOnly=roundMbTopOnly->isChecked(); + opts.gradientPbGroove=gradientPbGroove->isChecked(); + opts.darkerBorders=darkerBorders->isChecked(); + opts.vArrows=vArrows->isChecked(); + opts.xCheck=xCheck->isChecked(); + opts.colorSelTab=colorSelTab->isChecked(); + opts.stdSidebarButtons=stdSidebarButtons->isChecked(); + opts.borderMenuitems=borderMenuitems->isChecked(); + opts.progressAppearance=(EAppearance)progressAppearance->currentItem(); + opts.menuitemAppearance=(EAppearance)menuitemAppearance->currentItem(); + opts.shadeCheckRadio=(EShade)shadeCheckRadio->currentItem(); + opts.customCheckRadioColor=customCheckRadioColor->color(); + opts.shading=(EShading)shading->currentItem(); + opts.gtkScrollViews=gtkScrollViews->isChecked(); + opts.gtkComboMenus=gtkComboMenus->isChecked(); + opts.gtkButtonOrder=gtkButtonOrder->isChecked(); + opts.mapKdeIcons=mapKdeIcons->isChecked(); + opts.passwordChar=toInt(passwordChar->text()); + opts.framelessGroupBoxes=framelessGroupBoxes->isChecked(); + opts.inactiveHighlight=inactiveHighlight->isChecked(); +} + +void QtCurveConfig::setWidgetOptions(const Options &opts) +{ + round->setCurrentItem(opts.round); + scrollbarType->setCurrentItem(opts.scrollbarType); + lighterPopupMenuBgnd->setChecked(opts.lighterPopupMenuBgnd); + toolbarBorders->setCurrentItem(opts.toolbarBorders); + sliderThumbs->setCurrentItem(opts.sliderThumbs); + handles->setCurrentItem(opts.handles); + appearance->setCurrentItem(opts.appearance); +#ifndef QTC_PLAIN_FOCUS_ONLY + stdFocus->setChecked(opts.stdFocus); +#endif + lvLines->setChecked(opts.lvLines); + drawStatusBarFrames->setChecked(opts.drawStatusBarFrames); + buttonEffect->setCurrentItem(opts.buttonEffect); + coloredMouseOver->setCurrentItem(opts.coloredMouseOver); + menubarMouseOver->setChecked(opts.menubarMouseOver); + shadeMenubarOnlyWhenActive->setChecked(opts.shadeMenubarOnlyWhenActive); + thinnerMenuItems->setChecked(opts.thinnerMenuItems); + fixParentlessDialogs->setChecked(opts.fixParentlessDialogs); + animatedProgress->setChecked(opts.animatedProgress); + stripedProgress->setCurrentItem(opts.stripedProgress); + embolden->setChecked(opts.embolden); + defBtnIndicator->setCurrentItem(opts.defBtnIndicator); + highlightTab->setChecked(opts.highlightTab); + menubarAppearance->setCurrentItem(opts.menubarAppearance); + toolbarAppearance->setCurrentItem(opts.toolbarAppearance); + lvAppearance->setCurrentItem(opts.lvAppearance); + sliderAppearance->setCurrentItem(opts.sliderAppearance); + tabAppearance->setCurrentItem(opts.tabAppearance); + toolbarSeparators->setCurrentItem(opts.toolbarSeparators); + splitters->setCurrentItem(opts.splitters); + shadeSliders->setCurrentItem(opts.shadeSliders); + shadeMenubars->setCurrentItem(opts.shadeMenubars); + highlightFactor->setValue((int)(opts.highlightFactor*100)-100); + customSlidersColor->setColor(opts.customSlidersColor); + customMenubarsColor->setColor(opts.customMenubarsColor); + customMenuNormTextColor->setColor(opts.customMenuNormTextColor); + customMenuSelTextColor->setColor(opts.customMenuSelTextColor); + customMenuTextColor->setChecked(opts.customMenuTextColor); + + customSlidersColor->setEnabled(SHADE_CUSTOM==opts.shadeSliders); + customMenubarsColor->setEnabled(SHADE_CUSTOM==opts.shadeMenubars); + customMenuNormTextColor->setEnabled(customMenuTextColor->isChecked()); + customMenuSelTextColor->setEnabled(customMenuTextColor->isChecked()); + customCheckRadioColor->setEnabled(SHADE_CUSTOM==opts.shadeCheckRadio); + + animatedProgress->setEnabled(STRIPE_NONE!=stripedProgress->currentItem()); + + fillSlider->setChecked(opts.fillSlider); + sliderStyle->setCurrentItem(opts.sliderStyle); + roundMbTopOnly->setChecked(opts.roundMbTopOnly); + gradientPbGroove->setChecked(opts.gradientPbGroove); + darkerBorders->setChecked(opts.darkerBorders); + vArrows->setChecked(opts.vArrows); + xCheck->setChecked(opts.xCheck); + colorSelTab->setChecked(opts.colorSelTab); + stdSidebarButtons->setChecked(opts.stdSidebarButtons); + borderMenuitems->setChecked(opts.borderMenuitems); + progressAppearance->setCurrentItem(opts.progressAppearance); + menuitemAppearance->setCurrentItem(opts.menuitemAppearance); + shadeCheckRadio->setCurrentItem(opts.shadeCheckRadio); + customCheckRadioColor->setColor(opts.customCheckRadioColor); + + shading->setCurrentItem(opts.shading); + gtkScrollViews->setChecked(opts.gtkScrollViews); + gtkComboMenus->setChecked(opts.gtkComboMenus); + gtkButtonOrder->setChecked(opts.gtkButtonOrder); + mapKdeIcons->setChecked(opts.mapKdeIcons); + setPasswordChar(opts.passwordChar); + framelessGroupBoxes->setChecked(opts.framelessGroupBoxes); + inactiveHighlight->setChecked(opts.inactiveHighlight); +} + +bool QtCurveConfig::settingsChanged() +{ + return round->currentItem()!=currentStyle.round || + toolbarBorders->currentItem()!=currentStyle.toolbarBorders || + appearance->currentItem()!=(int)currentStyle.appearance || +#ifndef QTC_PLAIN_FOCUS_ONLY + stdFocus->isChecked()!=currentStyle.stdFocus || +#endif + lvLines->isChecked()!=currentStyle.lvLines || + drawStatusBarFrames->isChecked()!=currentStyle.drawStatusBarFrames || + buttonEffect->currentItem()!=(int)currentStyle.buttonEffect || + coloredMouseOver->currentItem()!=(int)currentStyle.coloredMouseOver || + menubarMouseOver->isChecked()!=currentStyle.menubarMouseOver || + shadeMenubarOnlyWhenActive->isChecked()!=currentStyle.shadeMenubarOnlyWhenActive || + thinnerMenuItems->isChecked()!=currentStyle.thinnerMenuItems || + fixParentlessDialogs->isChecked()!=currentStyle.fixParentlessDialogs || + animatedProgress->isChecked()!=currentStyle.animatedProgress || + stripedProgress->currentItem()!=currentStyle.stripedProgress || + lighterPopupMenuBgnd->isChecked()!=currentStyle.lighterPopupMenuBgnd || + embolden->isChecked()!=currentStyle.embolden || + fillSlider->isChecked()!=currentStyle.fillSlider || + sliderStyle->currentItem()!=currentStyle.sliderStyle || + roundMbTopOnly->isChecked()!=currentStyle.roundMbTopOnly || + gradientPbGroove->isChecked()!=currentStyle.gradientPbGroove || + darkerBorders->isChecked()!=currentStyle.darkerBorders || + vArrows->isChecked()!=currentStyle.vArrows || + xCheck->isChecked()!=currentStyle.xCheck || + colorSelTab->isChecked()!=currentStyle.colorSelTab || + stdSidebarButtons->isChecked()!=currentStyle.stdSidebarButtons || + borderMenuitems->isChecked()!=currentStyle.borderMenuitems || + defBtnIndicator->currentItem()!=(int)currentStyle.defBtnIndicator || + sliderThumbs->currentItem()!=(int)currentStyle.sliderThumbs || + handles->currentItem()!=(int)currentStyle.handles || + scrollbarType->currentItem()!=(int)currentStyle.scrollbarType || + highlightTab->isChecked()!=currentStyle.highlightTab || + shadeSliders->currentItem()!=(int)currentStyle.shadeSliders || + shadeMenubars->currentItem()!=(int)currentStyle.shadeMenubars || + shadeCheckRadio->currentItem()!=(int)currentStyle.shadeCheckRadio || + menubarAppearance->currentItem()!=currentStyle.menubarAppearance || + toolbarAppearance->currentItem()!=currentStyle.toolbarAppearance || + lvAppearance->currentItem()!=currentStyle.lvAppearance || + sliderAppearance->currentItem()!=currentStyle.sliderAppearance || + tabAppearance->currentItem()!=currentStyle.tabAppearance || + progressAppearance->currentItem()!=currentStyle.progressAppearance || + menuitemAppearance->currentItem()!=currentStyle.menuitemAppearance || + toolbarSeparators->currentItem()!=currentStyle.toolbarSeparators || + splitters->currentItem()!=currentStyle.splitters || + + shading->currentItem()!=(int)currentStyle.shading || + gtkScrollViews->isChecked()!=currentStyle.gtkScrollViews || + gtkComboMenus->isChecked()!=currentStyle.gtkComboMenus || + gtkButtonOrder->isChecked()!=currentStyle.gtkButtonOrder || + mapKdeIcons->isChecked()!=currentStyle.mapKdeIcons || + framelessGroupBoxes->isChecked()!=currentStyle.framelessGroupBoxes || + inactiveHighlight->isChecked()!=currentStyle.inactiveHighlight || + + toInt(passwordChar->text())!=currentStyle.passwordChar || + + (highlightFactor->value()+100)!=(int)(currentStyle.highlightFactor*100) || + customMenuTextColor->isChecked()!=currentStyle.customMenuTextColor || + (SHADE_CUSTOM==currentStyle.shadeSliders && + customSlidersColor->color()!=currentStyle.customSlidersColor) || + (SHADE_CUSTOM==currentStyle.shadeMenubars && + customMenubarsColor->color()!=currentStyle.customMenubarsColor) || + (SHADE_CUSTOM==currentStyle.shadeCheckRadio && + customCheckRadioColor->color()!=currentStyle.customCheckRadioColor) || + (customMenuTextColor->isChecked() && + customMenuNormTextColor->color()!=currentStyle.customMenuNormTextColor) || + (customMenuTextColor->isChecked() && + customMenuSelTextColor->color()!=currentStyle.customMenuSelTextColor); +} + +#include "qtcurveconfig.moc" |