diff --git a/kcmkwin/kwintabbox/CMakeLists.txt b/kcmkwin/kwintabbox/CMakeLists.txt
--- a/kcmkwin/kwintabbox/CMakeLists.txt
+++ b/kcmkwin/kwintabbox/CMakeLists.txt
@@ -15,6 +15,7 @@
ki18n_wrap_ui(kcm_kwintabbox_PART_SRCS main.ui)
qt5_add_dbus_interface(kcm_kwintabbox_PART_SRCS ${KWin_SOURCE_DIR}/org.kde.kwin.Effects.xml kwin_effects_interface)
+kconfig_add_kcfg_files(kcm_kwintabbox_PART_SRCS kwintabboxsettings.kcfgc kwinswitcheffectsettings.kcfgc kwinpluginssettings.kcfgc)
add_library(kcm_kwintabbox MODULE ${kcm_kwintabbox_PART_SRCS})
target_link_libraries(kcm_kwintabbox
diff --git a/kcmkwin/kwintabbox/kwinpluginssettings.kcfg b/kcmkwin/kwintabbox/kwinpluginssettings.kcfg
new file mode 100644
--- /dev/null
+++ b/kcmkwin/kwintabbox/kwinpluginssettings.kcfg
@@ -0,0 +1,18 @@
+
+
+
+
+
+ BuiltInEffects::enabledByDefault(BuiltInEffect::CoverSwitch)
+
+
+ BuiltInEffects::enabledByDefault(BuiltInEffect::FlipSwitch)
+
+
+ false
+
+
+
diff --git a/kcmkwin/kwintabbox/kwinpluginssettings.kcfgc b/kcmkwin/kwintabbox/kwinpluginssettings.kcfgc
new file mode 100644
--- /dev/null
+++ b/kcmkwin/kwintabbox/kwinpluginssettings.kcfgc
@@ -0,0 +1,7 @@
+File=kwinpluginssettings.kcfg
+NameSpace=KWin::TabBox
+ClassName=PluginsSettings
+IncludeFiles=effect_builtins.h
+Mutators=true
+DefaultValueGetters=true
+ParentInConstructor=true
diff --git a/kcmkwin/kwintabbox/kwinswitcheffectsettings.kcfg b/kcmkwin/kwintabbox/kwinswitcheffectsettings.kcfg
new file mode 100644
--- /dev/null
+++ b/kcmkwin/kwintabbox/kwinswitcheffectsettings.kcfg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ false
+
+
+ false
+
+
+
diff --git a/kcmkwin/kwintabbox/kwinswitcheffectsettings.kcfgc b/kcmkwin/kwintabbox/kwinswitcheffectsettings.kcfgc
new file mode 100644
--- /dev/null
+++ b/kcmkwin/kwintabbox/kwinswitcheffectsettings.kcfgc
@@ -0,0 +1,6 @@
+File=kwinswitcheffectsettings.kcfg
+NameSpace=KWin::TabBox
+ClassName=SwitchEffectSettings
+Mutators=true
+DefaultValueGetters=true
+ParentInConstructor=true
diff --git a/kcmkwin/kwintabbox/kwintabboxsettings.kcfg b/kcmkwin/kwintabbox/kwintabboxsettings.kcfg
new file mode 100644
--- /dev/null
+++ b/kcmkwin/kwintabbox/kwintabboxsettings.kcfg
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+ TabBoxConfig::defaultDesktopMode()
+
+
+ TabBoxConfig::defaultActivitiesMode()
+
+
+ TabBoxConfig::defaultApplicationsMode()
+
+
+ TabBoxConfig::defaultMinimizedMode()
+
+
+ TabBoxConfig::defaultShowDesktopMode()
+
+
+ TabBoxConfig::defaultMultiScreenMode()
+
+
+ TabBoxConfig::defaultSwitchingMode()
+
+
+ TabBoxConfig::defaultLayoutName()
+
+
+ TabBoxConfig::defaultShowTabBox()
+
+
+ TabBoxConfig::defaultHighlightWindow()
+
+
+
diff --git a/kcmkwin/kwintabbox/kwintabboxsettings.kcfgc b/kcmkwin/kwintabbox/kwintabboxsettings.kcfgc
new file mode 100644
--- /dev/null
+++ b/kcmkwin/kwintabbox/kwintabboxsettings.kcfgc
@@ -0,0 +1,7 @@
+File=kwintabboxsettings.kcfg
+NameSpace=KWin::TabBox
+ClassName=TabBoxSettings
+IncludeFiles=\"tabboxconfig.h\"
+Mutators=true
+DefaultValueGetters=true
+ParentInConstructor=true
diff --git a/kcmkwin/kwintabbox/main.h b/kcmkwin/kwintabbox/main.h
--- a/kcmkwin/kwintabbox/main.h
+++ b/kcmkwin/kwintabbox/main.h
@@ -3,6 +3,7 @@
This file is part of the KDE project.
Copyright (C) 2009 Martin Gräßlin
+Copyright (C) 2020 Cyril Ross
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +24,6 @@
#include
#include
-#include "tabboxconfig.h"
#include "ui_main.h"
@@ -35,7 +35,9 @@
enum class BuiltInEffect;
namespace TabBox
{
-
+class TabBoxSettings;
+class SwitchEffectSettings;
+class PluginsSettings;
}
@@ -68,10 +70,8 @@
void shortcutChanged(const QKeySequence &seq);
void slotGHNS();
private:
- void updateUiFromConfig(KWinTabBoxConfigForm* ui, const TabBox::TabBoxConfig& config);
- void updateConfigFromUi(const KWinTabBoxConfigForm* ui, TabBox::TabBoxConfig& config);
- void loadConfig(const KConfigGroup& config, KWin::TabBox::TabBoxConfig& tabBoxConfig);
- void saveConfig(KConfigGroup& config, const KWin::TabBox::TabBoxConfig& tabBoxConfig);
+ void updateUiFromConfig(KWinTabBoxConfigForm* ui, const TabBox::TabBoxSettings& config);
+ void updateConfigFromUi(const KWinTabBoxConfigForm* ui, TabBox::TabBoxSettings& config);
void initLayoutLists();
private:
@@ -85,10 +85,12 @@
KSharedConfigPtr m_config;
KActionCollection* m_actionCollection;
KShortcutsEditor* m_editor;
- TabBox::TabBoxConfig m_tabBoxConfig;
- TabBox::TabBoxConfig m_tabBoxAlternativeConfig;
+ TabBox::TabBoxSettings *m_tabBoxConfig;
+ TabBox::TabBoxSettings *m_tabBoxAlternativeConfig;
+ TabBox::SwitchEffectSettings *m_coverSwitchConfig;
+ TabBox::SwitchEffectSettings *m_flipSwitchConfig;
+ TabBox::PluginsSettings *m_pluginsConfig;
- bool effectEnabled(const BuiltInEffect& effect, const KConfigGroup& cfg) const;
};
} // namespace
diff --git a/kcmkwin/kwintabbox/main.cpp b/kcmkwin/kwintabbox/main.cpp
--- a/kcmkwin/kwintabbox/main.cpp
+++ b/kcmkwin/kwintabbox/main.cpp
@@ -3,6 +3,7 @@
This file is part of the KDE project.
Copyright (C) 2009 Martin Gräßlin
+Copyright (C) 2020 Cyril Ross
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -48,8 +49,10 @@
#include
// own
-#include "tabboxconfig.h"
#include "layoutpreview.h"
+#include "kwintabboxsettings.h"
+#include "kwinswitcheffectsettings.h"
+#include "kwinpluginssettings.h"
K_PLUGIN_FACTORY(KWinTabBoxConfigFactory, registerPlugin();)
@@ -67,6 +70,11 @@
KWinTabBoxConfig::KWinTabBoxConfig(QWidget* parent, const QVariantList& args)
: KCModule(parent, args)
, m_config(KSharedConfig::openConfig("kwinrc"))
+ , m_tabBoxConfig(new TabBoxSettings(QStringLiteral("TabBox"), this))
+ , m_tabBoxAlternativeConfig(new TabBoxSettings(QStringLiteral("TabBoxAlternative"), this))
+ , m_coverSwitchConfig(new SwitchEffectSettings(QStringLiteral("Effect-CoverSwitch"), this))
+ , m_flipSwitchConfig(new SwitchEffectSettings(QStringLiteral("Effect-FlipSwitch"), this))
+ , m_pluginsConfig(new PluginsSettings(this))
{
QTabWidget* tabWidget = new QTabWidget(this);
m_primaryTabBoxUi = new KWinTabBoxConfigForm(tabWidget);
@@ -163,8 +171,9 @@
if ((policy == "FocusUnderMouse") || (policy == "FocusStrictlyUnderMouse")) {
tabWidget->setEnabled(false);
infoLabel->show();
- } else
+ } else {
infoLabel->hide();
+ }
}
KWinTabBoxConfig::~KWinTabBoxConfig()
@@ -263,22 +272,36 @@
{
KCModule::load();
- const QString group[2] = { "TabBox", "TabBoxAlternative" };
- KWinTabBoxConfigForm* ui[2] = { m_primaryTabBoxUi, m_alternativeTabBoxUi };
- TabBoxConfig *tabBoxConfig[2] = { &m_tabBoxConfig, &m_tabBoxAlternativeConfig };
+ m_tabBoxConfig->load();
+ m_tabBoxAlternativeConfig->load();
- for (int i = 0; i < 2; ++i) {
- KConfigGroup config(m_config, group[i]);
- loadConfig(config, *(tabBoxConfig[i]));
+ m_coverSwitchConfig->load();
+ m_flipSwitchConfig->load();
+
+ m_pluginsConfig->load();
- updateUiFromConfig(ui[i], *(tabBoxConfig[i]));
+ updateUiFromConfig(m_primaryTabBoxUi, *m_tabBoxConfig);
+ updateUiFromConfig(m_alternativeTabBoxUi , *m_tabBoxAlternativeConfig);
- KConfigGroup effectconfig(m_config, "Plugins");
- if (effectEnabled(BuiltInEffect::CoverSwitch, effectconfig) && KConfigGroup(m_config, "Effect-CoverSwitch").readEntry(group[i], false))
- ui[i]->effectCombo->setCurrentIndex(CoverSwitch);
- else if (effectEnabled(BuiltInEffect::FlipSwitch, effectconfig) && KConfigGroup(m_config, "Effect-FlipSwitch").readEntry(group[i], false))
- ui[i]->effectCombo->setCurrentIndex(FlipSwitch);
+ if (m_pluginsConfig->coverswitchEnabled()) {
+ if (m_coverSwitchConfig->tabBox()) {
+ m_primaryTabBoxUi->effectCombo->setCurrentIndex(CoverSwitch);
+ }
+ if (m_coverSwitchConfig->tabBoxAlternative()) {
+ m_alternativeTabBoxUi->effectCombo->setCurrentIndex(CoverSwitch);
+ }
+ }
+ if (m_pluginsConfig->flipswitchEnabled()) {
+ if (m_flipSwitchConfig->tabBox()) {
+ m_primaryTabBoxUi->effectCombo->setCurrentIndex(FlipSwitch);
+ }
+ if (m_flipSwitchConfig->tabBoxAlternative()) {
+ m_alternativeTabBoxUi->effectCombo->setCurrentIndex(FlipSwitch);
+ }
+ }
+ KWinTabBoxConfigForm* ui[2] = { m_primaryTabBoxUi, m_alternativeTabBoxUi };
+ for (int i = 0; i < 2; ++i) {
QString action;
#define LOAD_SHORTCUT(_BTN_)\
action = ui[i]->_BTN_->property("shortcutAction").toString();\
@@ -297,59 +320,15 @@
emit changed(false);
}
-void KWinTabBoxConfig::loadConfig(const KConfigGroup& config, KWin::TabBox::TabBoxConfig& tabBoxConfig)
-{
- tabBoxConfig.setClientDesktopMode(TabBoxConfig::ClientDesktopMode(
- config.readEntry("DesktopMode", TabBoxConfig::defaultDesktopMode())));
- tabBoxConfig.setClientActivitiesMode(TabBoxConfig::ClientActivitiesMode(
- config.readEntry("ActivitiesMode", TabBoxConfig::defaultActivitiesMode())));
- tabBoxConfig.setClientApplicationsMode(TabBoxConfig::ClientApplicationsMode(
- config.readEntry("ApplicationsMode", TabBoxConfig::defaultApplicationsMode())));
- tabBoxConfig.setClientMinimizedMode(TabBoxConfig::ClientMinimizedMode(
- config.readEntry("MinimizedMode", TabBoxConfig::defaultMinimizedMode())));
- tabBoxConfig.setShowDesktopMode(TabBoxConfig::ShowDesktopMode(
- config.readEntry("ShowDesktopMode", TabBoxConfig::defaultShowDesktopMode())));
- tabBoxConfig.setClientMultiScreenMode(TabBoxConfig::ClientMultiScreenMode(
- config.readEntry("MultiScreenMode", TabBoxConfig::defaultMultiScreenMode())));
- tabBoxConfig.setClientSwitchingMode(TabBoxConfig::ClientSwitchingMode(
- config.readEntry("SwitchingMode", TabBoxConfig::defaultSwitchingMode())));
-
- tabBoxConfig.setShowTabBox(config.readEntry("ShowTabBox", TabBoxConfig::defaultShowTabBox()));
- tabBoxConfig.setHighlightWindows(config.readEntry("HighlightWindows", TabBoxConfig::defaultHighlightWindow()));
-
- tabBoxConfig.setLayoutName(config.readEntry("LayoutName", TabBoxConfig::defaultLayoutName()));
-}
-
-void KWinTabBoxConfig::saveConfig(KConfigGroup& config, const KWin::TabBox::TabBoxConfig& tabBoxConfig)
-{
- // combo boxes
- config.writeEntry("DesktopMode", int(tabBoxConfig.clientDesktopMode()));
- config.writeEntry("ActivitiesMode", int(tabBoxConfig.clientActivitiesMode()));
- config.writeEntry("ApplicationsMode", int(tabBoxConfig.clientApplicationsMode()));
- config.writeEntry("MinimizedMode", int(tabBoxConfig.clientMinimizedMode()));
- config.writeEntry("ShowDesktopMode", int(tabBoxConfig.showDesktopMode()));
- config.writeEntry("MultiScreenMode", int(tabBoxConfig.clientMultiScreenMode()));
- config.writeEntry("SwitchingMode", int(tabBoxConfig.clientSwitchingMode()));
- config.writeEntry("LayoutName", tabBoxConfig.layoutName());
-
- // check boxes
- config.writeEntry("ShowTabBox", tabBoxConfig.isShowTabBox());
- config.writeEntry("HighlightWindows", tabBoxConfig.isHighlightWindows());
-
- config.sync();
-}
-
void KWinTabBoxConfig::save()
{
KCModule::save();
- KConfigGroup config(m_config, "TabBox");
// sync ui to config
- updateConfigFromUi(m_primaryTabBoxUi, m_tabBoxConfig);
- updateConfigFromUi(m_alternativeTabBoxUi, m_tabBoxAlternativeConfig);
- saveConfig(config, m_tabBoxConfig);
- config = KConfigGroup(m_config, "TabBoxAlternative");
- saveConfig(config, m_tabBoxAlternativeConfig);
+ updateConfigFromUi(m_primaryTabBoxUi, *m_tabBoxConfig);
+ updateConfigFromUi(m_alternativeTabBoxUi, *m_tabBoxAlternativeConfig);
+ m_tabBoxConfig->save();
+ m_tabBoxAlternativeConfig->save();
// effects
bool highlightWindows = m_primaryTabBoxUi->highlightWindowCheck->isChecked() ||
@@ -364,22 +343,24 @@
m_alternativeTabBoxUi->effectCombo->currentIndex() == FlipSwitch;
// activate effects if not active
- KConfigGroup effectconfig(m_config, "Plugins");
- if (coverSwitch || coverSwitchAlternative)
- effectconfig.writeEntry("coverswitchEnabled", true);
- if (flipSwitch || flipSwitchAlternative)
- effectconfig.writeEntry("flipswitchEnabled", true);
- if (highlightWindows)
- effectconfig.writeEntry("highlightwindowEnabled", true);
- effectconfig.sync();
- KConfigGroup coverswitchconfig(m_config, "Effect-CoverSwitch");
- coverswitchconfig.writeEntry("TabBox", coverSwitch);
- coverswitchconfig.writeEntry("TabBoxAlternative", coverSwitchAlternative);
- coverswitchconfig.sync();
- KConfigGroup flipswitchconfig(m_config, "Effect-FlipSwitch");
- flipswitchconfig.writeEntry("TabBox", flipSwitch);
- flipswitchconfig.writeEntry("TabBoxAlternative", flipSwitchAlternative);
- flipswitchconfig.sync();
+ if (coverSwitch || coverSwitchAlternative) {
+ m_pluginsConfig->setCoverswitchEnabled(true);
+ }
+ if (flipSwitch || flipSwitchAlternative) {
+ m_pluginsConfig->setFlipswitchEnabled(true);
+ }
+ if (highlightWindows) {
+ m_pluginsConfig->setHighlightwindowEnabled(true);
+ }
+ m_pluginsConfig->save();
+
+ m_coverSwitchConfig->setTabBox(coverSwitch);
+ m_coverSwitchConfig->setTabBoxAlternative(coverSwitchAlternative);
+ m_coverSwitchConfig->save();
+
+ m_flipSwitchConfig->setTabBox(flipSwitch);
+ m_flipSwitchConfig->setTabBoxAlternative(flipSwitchAlternative);
+ m_flipSwitchConfig->save();
// Reload KWin.
QDBusMessage message = QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
@@ -396,35 +377,17 @@
void KWinTabBoxConfig::defaults()
{
- const KWinTabBoxConfigForm* ui[2] = { m_primaryTabBoxUi, m_alternativeTabBoxUi};
- for (int i = 0; i < 2; ++i) {
- // combo boxes
-#define CONFIGURE(SETTING, MODE, IS, VALUE) \
- ui[i]->SETTING->setChecked(TabBoxConfig::default##MODE##Mode() IS TabBoxConfig::VALUE)
- CONFIGURE(filterDesktops, Desktop, !=, AllDesktopsClients);
- CONFIGURE(currentDesktop, Desktop, ==, OnlyCurrentDesktopClients);
- CONFIGURE(otherDesktops, Desktop, ==, ExcludeCurrentDesktopClients);
- CONFIGURE(filterActivities, Activities, !=, AllActivitiesClients);
- CONFIGURE(currentActivity, Activities, ==, OnlyCurrentActivityClients);
- CONFIGURE(otherActivities, Activities, ==, ExcludeCurrentActivityClients);
- CONFIGURE(filterScreens, MultiScreen, !=, IgnoreMultiScreen);
- CONFIGURE(currentScreen, MultiScreen, ==, OnlyCurrentScreenClients);
- CONFIGURE(otherScreens, MultiScreen, ==, ExcludeCurrentScreenClients);
- CONFIGURE(oneAppWindow, Applications, ==, OneWindowPerApplication);
- CONFIGURE(filterMinimization, Minimized, !=, IgnoreMinimizedStatus);
- CONFIGURE(visibleWindows, Minimized, ==, ExcludeMinimizedClients);
- CONFIGURE(hiddenWindows, Minimized, ==, OnlyMinimizedClients);
-
- ui[i]->switchingModeCombo->setCurrentIndex(TabBoxConfig::defaultSwitchingMode());
-
- // checkboxes
- ui[i]->showTabBox->setChecked(TabBoxConfig::defaultShowTabBox());
- ui[i]->highlightWindowCheck->setChecked(TabBoxConfig::defaultHighlightWindow());
- CONFIGURE(showDesktop, ShowDesktop, ==, ShowDesktopClient);
-#undef CONFIGURE
- // effects
- ui[i]->effectCombo->setCurrentIndex(ui[i]->effectCombo->findData("sidebar"));
- }
+ KCModule::defaults();
+
+ m_tabBoxConfig->setDefaults();
+ m_tabBoxAlternativeConfig->setDefaults();
+
+ m_pluginsConfig->setDefaults();
+ m_coverSwitchConfig->setDefaults();
+ m_flipSwitchConfig->setDefaults();
+
+ updateUiFromConfig(m_primaryTabBoxUi, *m_tabBoxConfig);
+ updateUiFromConfig(m_alternativeTabBoxUi, *m_tabBoxAlternativeConfig);
QString action;
auto RESET_SHORTCUT = [this](KKeySequenceWidget *widget, const QKeySequence &sequence = QKeySequence()) {
@@ -444,59 +407,58 @@
emit changed(true);
}
-bool KWinTabBoxConfig::effectEnabled(const BuiltInEffect& effect, const KConfigGroup& cfg) const
-{
- return cfg.readEntry(BuiltInEffects::nameForEffect(effect) + "Enabled", BuiltInEffects::enabledByDefault(effect));
-}
-
-void KWinTabBoxConfig::updateUiFromConfig(KWinTabBoxConfigForm* ui, const KWin::TabBox::TabBoxConfig& config)
+void KWinTabBoxConfig::updateUiFromConfig(KWinTabBoxConfigForm* ui, const KWin::TabBox::TabBoxSettings& config)
{
#define CONFIGURE(SETTING, MODE, IS, VALUE) ui->SETTING->setChecked(config.MODE##Mode() IS TabBoxConfig::VALUE)
- CONFIGURE(filterDesktops, clientDesktop, !=, AllDesktopsClients);
- CONFIGURE(currentDesktop, clientDesktop, ==, OnlyCurrentDesktopClients);
- CONFIGURE(otherDesktops, clientDesktop, ==, ExcludeCurrentDesktopClients);
- CONFIGURE(filterActivities, clientActivities, !=, AllActivitiesClients);
- CONFIGURE(currentActivity, clientActivities, ==, OnlyCurrentActivityClients);
- CONFIGURE(otherActivities, clientActivities, ==, ExcludeCurrentActivityClients);
- CONFIGURE(filterScreens, clientMultiScreen, !=, IgnoreMultiScreen);
- CONFIGURE(currentScreen, clientMultiScreen, ==, OnlyCurrentScreenClients);
- CONFIGURE(otherScreens, clientMultiScreen, ==, ExcludeCurrentScreenClients);
- CONFIGURE(oneAppWindow, clientApplications, ==, OneWindowPerApplication);
- CONFIGURE(filterMinimization, clientMinimized, !=, IgnoreMinimizedStatus);
- CONFIGURE(visibleWindows, clientMinimized, ==, ExcludeMinimizedClients);
- CONFIGURE(hiddenWindows, clientMinimized, ==, OnlyMinimizedClients);
-
- ui->switchingModeCombo->setCurrentIndex(config.clientSwitchingMode());
+ CONFIGURE(filterDesktops, desktop, !=, AllDesktopsClients);
+ CONFIGURE(currentDesktop, desktop, ==, OnlyCurrentDesktopClients);
+ CONFIGURE(otherDesktops, desktop, ==, ExcludeCurrentDesktopClients);
+ CONFIGURE(filterActivities, activities, !=, AllActivitiesClients);
+ CONFIGURE(currentActivity, activities, ==, OnlyCurrentActivityClients);
+ CONFIGURE(otherActivities, activities, ==, ExcludeCurrentActivityClients);
+ CONFIGURE(filterScreens, multiScreen, !=, IgnoreMultiScreen);
+ CONFIGURE(currentScreen, multiScreen, ==, OnlyCurrentScreenClients);
+ CONFIGURE(otherScreens, multiScreen, ==, ExcludeCurrentScreenClients);
+ CONFIGURE(oneAppWindow, applications, ==, OneWindowPerApplication);
+ CONFIGURE(filterMinimization, minimized, !=, IgnoreMinimizedStatus);
+ CONFIGURE(visibleWindows, minimized, ==, ExcludeMinimizedClients);
+ CONFIGURE(hiddenWindows, minimized, ==, OnlyMinimizedClients);
+
+ ui->switchingModeCombo->setCurrentIndex(config.switchingMode());
// check boxes
- ui->showTabBox->setChecked(config.isShowTabBox());
- ui->highlightWindowCheck->setChecked(config.isHighlightWindows());
+ ui->showTabBox->setChecked(config.showTabBox());
+ ui->highlightWindowCheck->setChecked(config.highlightWindows());
ui->effectCombo->setCurrentIndex(ui->effectCombo->findData(config.layoutName()));
CONFIGURE(showDesktop, showDesktop, ==, ShowDesktopClient);
#undef CONFIGURE
}
-void KWinTabBoxConfig::updateConfigFromUi(const KWin::KWinTabBoxConfigForm* ui, TabBox::TabBoxConfig& config)
+void KWinTabBoxConfig::updateConfigFromUi(const KWin::KWinTabBoxConfigForm* ui, TabBoxSettings &config)
{
- if (ui->filterDesktops->isChecked())
- config.setClientDesktopMode(ui->currentDesktop->isChecked() ? TabBoxConfig::OnlyCurrentDesktopClients : TabBoxConfig::ExcludeCurrentDesktopClients);
- else
- config.setClientDesktopMode(TabBoxConfig::AllDesktopsClients);
- if (ui->filterActivities->isChecked())
- config.setClientActivitiesMode(ui->currentActivity->isChecked() ? TabBoxConfig::OnlyCurrentActivityClients : TabBoxConfig::ExcludeCurrentActivityClients);
- else
- config.setClientActivitiesMode(TabBoxConfig::AllActivitiesClients);
- if (ui->filterScreens->isChecked())
- config.setClientMultiScreenMode(ui->currentScreen->isChecked() ? TabBoxConfig::OnlyCurrentScreenClients : TabBoxConfig::ExcludeCurrentScreenClients);
- else
- config.setClientMultiScreenMode(TabBoxConfig::IgnoreMultiScreen);
- config.setClientApplicationsMode(ui->oneAppWindow->isChecked() ? TabBoxConfig::OneWindowPerApplication : TabBoxConfig::AllWindowsAllApplications);
- if (ui->filterMinimization->isChecked())
- config.setClientMinimizedMode(ui->visibleWindows->isChecked() ? TabBoxConfig::ExcludeMinimizedClients : TabBoxConfig::OnlyMinimizedClients);
- else
- config.setClientMinimizedMode(TabBoxConfig::IgnoreMinimizedStatus);
-
- config.setClientSwitchingMode(TabBoxConfig::ClientSwitchingMode(ui->switchingModeCombo->currentIndex()));
+ if (ui->filterDesktops->isChecked()) {
+ config.setDesktopMode(ui->currentDesktop->isChecked() ? TabBoxConfig::OnlyCurrentDesktopClients : TabBoxConfig::ExcludeCurrentDesktopClients);
+ } else {
+ config.setDesktopMode(TabBoxConfig::AllDesktopsClients);
+ }
+ if (ui->filterActivities->isChecked()) {
+ config.setActivitiesMode(ui->currentActivity->isChecked() ? TabBoxConfig::OnlyCurrentActivityClients : TabBoxConfig::ExcludeCurrentActivityClients);
+ } else {
+ config.setActivitiesMode(TabBoxConfig::AllActivitiesClients);
+ }
+ if (ui->filterScreens->isChecked()) {
+ config.setMultiScreenMode(ui->currentScreen->isChecked() ? TabBoxConfig::OnlyCurrentScreenClients : TabBoxConfig::ExcludeCurrentScreenClients);
+ } else {
+ config.setMultiScreenMode(TabBoxConfig::IgnoreMultiScreen);
+ }
+ config.setApplicationsMode(ui->oneAppWindow->isChecked() ? TabBoxConfig::OneWindowPerApplication : TabBoxConfig::AllWindowsAllApplications);
+ if (ui->filterMinimization->isChecked()) {
+ config.setMinimizedMode(ui->visibleWindows->isChecked() ? TabBoxConfig::ExcludeMinimizedClients : TabBoxConfig::OnlyMinimizedClients);
+ } else {
+ config.setMinimizedMode(TabBoxConfig::IgnoreMinimizedStatus);
+ }
+
+ config.setSwitchingMode(TabBoxConfig::ClientSwitchingMode(ui->switchingModeCombo->currentIndex()));
config.setShowTabBox(ui->showTabBox->isChecked());
config.setHighlightWindows(ui->highlightWindowCheck->isChecked());
@@ -523,7 +485,8 @@
ui->highlightWindowCheck->setEnabled(index >= Layout);
}
-void KWinTabBoxConfig::tabBoxToggled(bool on) {
+void KWinTabBoxConfig::tabBoxToggled(bool on)
+{
CHECK_CURRENT_TABBOX_UI
on = !on || ui->effectCombo->currentIndex() >= Layout;
ui->highlightWindowCheck->setEnabled(on);