/* 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #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"