Warning, file /plasma/breeze/kstyle/config/breezestyleconfig.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "breezestyleconfig.h" 0008 0009 #include "../breeze.h" 0010 #include "../config-breeze.h" 0011 #include "breezestyleconfigdata.h" 0012 0013 #include <QDBusConnection> 0014 #include <QDBusMessage> 0015 0016 extern "C" { 0017 Q_DECL_EXPORT QWidget *allocate_kstyle_config(QWidget *parent) 0018 { 0019 return new Breeze::StyleConfig(parent); 0020 } 0021 } 0022 0023 namespace Breeze 0024 { 0025 //__________________________________________________________________ 0026 StyleConfig::StyleConfig(QWidget *parent) 0027 : QWidget(parent) 0028 { 0029 setupUi(this); 0030 0031 // load setup from configData 0032 load(); 0033 0034 connect(_tabBarDrawCenteredTabs, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0035 connect(_toolBarDrawItemSeparator, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0036 connect(_viewDrawFocusIndicator, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0037 connect(_dockWidgetDrawFrame, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0038 connect(_sidePanelDrawFrame, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0039 connect(_menuItemDrawThinFocus, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0040 connect(_sliderDrawTickMarks, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0041 connect(_splitterProxyEnabled, &QAbstractButton::toggled, this, &StyleConfig::updateChanged); 0042 connect(_mnemonicsMode, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); 0043 connect(_scrollBarAddLineButtons, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); 0044 connect(_scrollBarSubLineButtons, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); 0045 connect(_windowDragMode, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); 0046 connect(_menuOpacity, &QAbstractSlider::valueChanged, this, &StyleConfig::updateChanged); 0047 } 0048 0049 //__________________________________________________________________ 0050 void StyleConfig::save() 0051 { 0052 StyleConfigData::setTabBarDrawCenteredTabs(_tabBarDrawCenteredTabs->isChecked()); 0053 StyleConfigData::setToolBarDrawItemSeparator(_toolBarDrawItemSeparator->isChecked()); 0054 StyleConfigData::setViewDrawFocusIndicator(_viewDrawFocusIndicator->isChecked()); 0055 StyleConfigData::setDockWidgetDrawFrame(_dockWidgetDrawFrame->isChecked()); 0056 StyleConfigData::setSidePanelDrawFrame(_sidePanelDrawFrame->isChecked()); 0057 StyleConfigData::setMenuItemDrawStrongFocus(!_menuItemDrawThinFocus->isChecked()); 0058 StyleConfigData::setSliderDrawTickMarks(_sliderDrawTickMarks->isChecked()); 0059 StyleConfigData::setSplitterProxyEnabled(_splitterProxyEnabled->isChecked()); 0060 StyleConfigData::setMnemonicsMode(_mnemonicsMode->currentIndex()); 0061 StyleConfigData::setScrollBarAddLineButtons(_scrollBarAddLineButtons->currentIndex()); 0062 StyleConfigData::setScrollBarSubLineButtons(_scrollBarSubLineButtons->currentIndex()); 0063 StyleConfigData::setWindowDragMode(_windowDragMode->currentIndex()); 0064 StyleConfigData::setMenuOpacity(_menuOpacity->value()); 0065 0066 StyleConfigData::self()->save(); 0067 0068 // emit dbus signal 0069 QDBusMessage message( 0070 QDBusMessage::createSignal(QStringLiteral("/BreezeStyle"), QStringLiteral("org.kde.Breeze.Style"), QStringLiteral("reparseConfiguration"))); 0071 QDBusConnection::sessionBus().send(message); 0072 } 0073 0074 //__________________________________________________________________ 0075 void StyleConfig::defaults() 0076 { 0077 StyleConfigData::self()->setDefaults(); 0078 load(); 0079 } 0080 0081 //__________________________________________________________________ 0082 void StyleConfig::reset() 0083 { 0084 // reparse configuration 0085 StyleConfigData::self()->load(); 0086 0087 load(); 0088 } 0089 0090 //__________________________________________________________________ 0091 void StyleConfig::updateChanged() 0092 { 0093 bool modified(false); 0094 0095 // check if any value was modified 0096 if (_tabBarDrawCenteredTabs->isChecked() != StyleConfigData::tabBarDrawCenteredTabs()) { 0097 modified = true; 0098 } else if (_toolBarDrawItemSeparator->isChecked() != StyleConfigData::toolBarDrawItemSeparator()) { 0099 modified = true; 0100 } else if (_viewDrawFocusIndicator->isChecked() != StyleConfigData::viewDrawFocusIndicator()) { 0101 modified = true; 0102 } else if (_dockWidgetDrawFrame->isChecked() != StyleConfigData::dockWidgetDrawFrame()) { 0103 modified = true; 0104 } else if (_sidePanelDrawFrame->isChecked() != StyleConfigData::sidePanelDrawFrame()) { 0105 modified = true; 0106 } else if (_menuItemDrawThinFocus->isChecked() == StyleConfigData::menuItemDrawStrongFocus()) { 0107 modified = true; 0108 } else if (_sliderDrawTickMarks->isChecked() != StyleConfigData::sliderDrawTickMarks()) { 0109 modified = true; 0110 } else if (_mnemonicsMode->currentIndex() != StyleConfigData::mnemonicsMode()) { 0111 modified = true; 0112 } else if (_scrollBarAddLineButtons->currentIndex() != StyleConfigData::scrollBarAddLineButtons()) { 0113 modified = true; 0114 } else if (_scrollBarSubLineButtons->currentIndex() != StyleConfigData::scrollBarSubLineButtons()) { 0115 modified = true; 0116 } else if (_splitterProxyEnabled->isChecked() != StyleConfigData::splitterProxyEnabled()) { 0117 modified = true; 0118 } else if (_windowDragMode->currentIndex() != StyleConfigData::windowDragMode()) { 0119 modified = true; 0120 } else if (_menuOpacity->value() != StyleConfigData::menuOpacity()) { 0121 modified = true; 0122 } 0123 emit changed(modified); 0124 } 0125 0126 //__________________________________________________________________ 0127 void StyleConfig::load() 0128 { 0129 _tabBarDrawCenteredTabs->setChecked(StyleConfigData::tabBarDrawCenteredTabs()); 0130 _toolBarDrawItemSeparator->setChecked(StyleConfigData::toolBarDrawItemSeparator()); 0131 _viewDrawFocusIndicator->setChecked(StyleConfigData::viewDrawFocusIndicator()); 0132 _dockWidgetDrawFrame->setChecked(StyleConfigData::dockWidgetDrawFrame()); 0133 _sidePanelDrawFrame->setChecked(StyleConfigData::sidePanelDrawFrame()); 0134 _menuItemDrawThinFocus->setChecked(!StyleConfigData::menuItemDrawStrongFocus()); 0135 _sliderDrawTickMarks->setChecked(StyleConfigData::sliderDrawTickMarks()); 0136 _mnemonicsMode->setCurrentIndex(StyleConfigData::mnemonicsMode()); 0137 _splitterProxyEnabled->setChecked(StyleConfigData::splitterProxyEnabled()); 0138 _scrollBarAddLineButtons->setCurrentIndex(StyleConfigData::scrollBarAddLineButtons()); 0139 _scrollBarSubLineButtons->setCurrentIndex(StyleConfigData::scrollBarSubLineButtons()); 0140 _windowDragMode->setCurrentIndex(StyleConfigData::windowDragMode()); 0141 _menuOpacity->setValue(StyleConfigData::menuOpacity()); 0142 } 0143 0144 }