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 }