[kcm-kwinrules] Add option for window decoration scheme

This commit is contained in:
Martin Gräßlin 2013-11-05 13:50:31 +01:00
parent 49cf996aa7
commit affa7da944
3 changed files with 194 additions and 131 deletions

View file

@ -21,8 +21,10 @@
#include <klineedit.h>
#include <krestrictedline.h>
#include <kcombobox.h>
#include <kcolorschememanager.h>
#include <QCheckBox>
#include <kpushbutton.h>
#include <QFileInfo>
#include <QLabel>
#include <kwindowsystem.h>
#include <KDE/KLocalizedString>
@ -102,6 +104,7 @@ RulesWidget::RulesWidget(QWidget* parent)
SETUP(above, set);
SETUP(below, set);
SETUP(noborder, set);
SETUP(decocolor, force);
SETUP(skiptaskbar, set);
SETUP(skippager, set);
SETUP(skipswitcher, set);
@ -152,6 +155,9 @@ RulesWidget::RulesWidget(QWidget* parent)
activity->addItem(i18n("All Activities"), QString::fromLatin1(NULL_UUID));
#undef NULL_UUID
#endif
KColorSchemeManager *schemes = new KColorSchemeManager(this);
decocolor->setModel(schemes->model());
}
#undef SETUP
@ -181,6 +187,7 @@ UPDATE_ENABLE_SLOT(placement)
UPDATE_ENABLE_SLOT(above)
UPDATE_ENABLE_SLOT(below)
UPDATE_ENABLE_SLOT(noborder)
UPDATE_ENABLE_SLOT(decocolor)
UPDATE_ENABLE_SLOT(skiptaskbar)
UPDATE_ENABLE_SLOT(skippager)
UPDATE_ENABLE_SLOT(skipswitcher)
@ -456,6 +463,21 @@ void RulesWidget::setRules(Rules* rules)
CHECKBOX_SET_RULE(above,);
CHECKBOX_SET_RULE(below,);
CHECKBOX_SET_RULE(noborder,);
auto decoColorToCombo = [this](const QString &value) {
for (int i = 0; i < decocolor->count(); ++i) {
if (decocolor->itemData(i).toString() == value) {
return i;
}
}
// search for Oxygen
for (int i = 0; i < decocolor->count(); ++i) {
if (QFileInfo(decocolor->itemData(i).toString()).baseName() == QStringLiteral("Oxygen")) {
return i;
}
}
return 0;
};
COMBOBOX_FORCE_RULE(decocolor, decoColorToCombo);
CHECKBOX_SET_RULE(skiptaskbar,);
CHECKBOX_SET_RULE(skippager,);
CHECKBOX_SET_RULE(skipswitcher,);
@ -555,6 +577,10 @@ Rules* RulesWidget::rules() const
CHECKBOX_SET_RULE(above,);
CHECKBOX_SET_RULE(below,);
CHECKBOX_SET_RULE(noborder,);
auto comboToDecocolor = [this](int index) -> QString {
return QFileInfo(decocolor->itemData(index).toString()).baseName();
};
COMBOBOX_FORCE_RULE(decocolor, comboToDecocolor);
CHECKBOX_SET_RULE(skiptaskbar,);
CHECKBOX_SET_RULE(skippager,);
CHECKBOX_SET_RULE(skipswitcher,);

View file

@ -73,6 +73,7 @@ private Q_SLOTS:
void updateEnableabove();
void updateEnablebelow();
void updateEnablenoborder();
void updateEnabledecocolor();
void updateEnableskiptaskbar();
void updateEnableskippager();
void updateEnableskipswitcher();

View file

@ -24,7 +24,7 @@
<item row="0" column="0">
<widget class="QLabel" name="textLabel1">
<property name="text">
<string>De&amp;scription:</string>
<string>&amp;Description:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -106,7 +106,7 @@
<item row="6" column="0">
<widget class="QLabel" name="textLabel3">
<property name="text">
<string>Window &amp;role:</string>
<string>Window ro&amp;le:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -1902,7 +1902,36 @@ like your complete screen area.</string>
<string>Appearance &amp;&amp; &amp;Fixes</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="22" column="1" rowspan="2">
<item row="11" column="5" rowspan="2" colspan="2">
<widget class="YesNoBox" name="acceptfocus" native="true">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="2" rowspan="2" colspan="3">
<widget class="KComboBox" name="rule_opacityactive">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
<item row="23" column="1" rowspan="2">
<widget class="QCheckBox" name="enable_blockcompositing">
<property name="text">
<string>Block compositing</string>
@ -1953,21 +1982,21 @@ like your complete screen area.</string>
</item>
</widget>
</item>
<item row="1" column="1" rowspan="2" colspan="6">
<item row="2" column="1" rowspan="2" colspan="6">
<widget class="Line" name="line_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QCheckBox" name="enable_opacityactive">
<property name="text">
<string>A&amp;ctive opacity</string>
</property>
</widget>
</item>
<item row="9" column="0" rowspan="3">
<item row="10" column="0" rowspan="3">
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1980,29 +2009,7 @@ like your complete screen area.</string>
</property>
</spacer>
</item>
<item row="2" column="2" rowspan="2" colspan="3">
<widget class="KComboBox" name="rule_opacityactive">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
<item row="3" column="5" colspan="2">
<item row="4" column="5" colspan="2">
<widget class="QSpinBox" name="opacityactive">
<property name="enabled">
<bool>false</bool>
@ -2018,14 +2025,14 @@ like your complete screen area.</string>
</property>
</widget>
</item>
<item row="4" column="1">
<item row="5" column="1">
<widget class="QCheckBox" name="enable_opacityinactive">
<property name="text">
<string>I&amp;nactive opacity</string>
</property>
</widget>
</item>
<item row="4" column="2" colspan="3">
<item row="5" column="2" colspan="3">
<widget class="KComboBox" name="rule_opacityinactive">
<property name="enabled">
<bool>false</bool>
@ -2047,7 +2054,7 @@ like your complete screen area.</string>
</item>
</widget>
</item>
<item row="4" column="5" colspan="2">
<item row="5" column="5" colspan="2">
<widget class="QSpinBox" name="opacityinactive">
<property name="enabled">
<bool>false</bool>
@ -2063,7 +2070,7 @@ like your complete screen area.</string>
</property>
</widget>
</item>
<item row="8" column="3">
<item row="9" column="3">
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -2079,7 +2086,7 @@ like your complete screen area.</string>
</property>
</spacer>
</item>
<item row="10" column="1" rowspan="2">
<item row="11" column="1" rowspan="2">
<widget class="QCheckBox" name="enable_acceptfocus">
<property name="toolTip">
<string>Windows may prevent to get the focus (activate) when being clicked.
@ -2091,7 +2098,7 @@ from getting focused on a mouse click.</string>
</property>
</widget>
</item>
<item row="10" column="2" rowspan="2" colspan="3">
<item row="11" column="2" rowspan="2" colspan="3">
<widget class="KComboBox" name="rule_acceptfocus">
<property name="enabled">
<bool>false</bool>
@ -2113,14 +2120,14 @@ from getting focused on a mouse click.</string>
</item>
</widget>
</item>
<item row="10" column="5" rowspan="2" colspan="2">
<widget class="YesNoBox" name="acceptfocus" native="true">
<property name="enabled">
<bool>false</bool>
<item row="14" column="1" rowspan="3" colspan="6">
<widget class="Line" name="line_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="12" column="1">
<item row="13" column="1">
<widget class="QCheckBox" name="enable_disableglobalshortcuts">
<property name="toolTip">
<string>When used, a window will receive
@ -2140,7 +2147,7 @@ while it's active!</string>
</property>
</widget>
</item>
<item row="12" column="2" colspan="3">
<item row="13" column="2" colspan="3">
<widget class="KComboBox" name="rule_disableglobalshortcuts">
<property name="enabled">
<bool>false</bool>
@ -2162,35 +2169,35 @@ while it's active!</string>
</item>
</widget>
</item>
<item row="13" column="1" rowspan="3" colspan="6">
<widget class="Line" name="line_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="16" column="5" rowspan="2" colspan="2">
<widget class="YesNoBox" name="closeable" native="true">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="16" column="1" rowspan="2">
<item row="17" column="1" rowspan="2">
<widget class="QCheckBox" name="enable_closeable">
<property name="text">
<string>&amp;Closeable</string>
</property>
</widget>
</item>
<item row="18" column="1">
<item row="19" column="1">
<widget class="QCheckBox" name="enable_type">
<property name="text">
<string>Window &amp;type</string>
</property>
</widget>
</item>
<item row="18" column="2" colspan="3">
<item row="17" column="5" rowspan="2" colspan="2">
<widget class="YesNoBox" name="closeable" native="true">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="20" column="1" rowspan="3" colspan="6">
<widget class="Line" name="line_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="19" column="2" colspan="3">
<widget class="KComboBox" name="rule_type">
<property name="enabled">
<bool>false</bool>
@ -2212,7 +2219,7 @@ while it's active!</string>
</item>
</widget>
</item>
<item row="18" column="5" colspan="2">
<item row="19" column="5" colspan="2">
<widget class="KComboBox" name="type">
<property name="enabled">
<bool>false</bool>
@ -2264,7 +2271,7 @@ while it's active!</string>
</item>
</widget>
</item>
<item row="6" column="3">
<item row="7" column="3">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -2280,21 +2287,21 @@ while it's active!</string>
</property>
</spacer>
</item>
<item row="19" column="1" rowspan="3" colspan="6">
<widget class="Line" name="line_7">
<item row="8" column="0" colspan="8">
<widget class="Line" name="line_15">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="22" column="5" rowspan="2" colspan="2">
<item row="23" column="5" rowspan="2" colspan="2">
<widget class="YesNoBox" name="blockcompositing" native="true">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="24" column="2" colspan="2">
<item row="25" column="2" colspan="2">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -2307,14 +2314,14 @@ while it's active!</string>
</property>
</spacer>
</item>
<item row="12" column="5" colspan="2">
<item row="13" column="5" colspan="2">
<widget class="YesNoBox" name="disableglobalshortcuts" native="true">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="9" column="7" rowspan="3">
<item row="10" column="7" rowspan="3">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -2327,13 +2334,6 @@ while it's active!</string>
</property>
</spacer>
</item>
<item row="7" column="0" colspan="8">
<widget class="Line" name="line_15">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="5" colspan="2">
<widget class="YesNoBox" name="noborder" native="true">
<property name="enabled">
@ -2341,7 +2341,7 @@ while it's active!</string>
</property>
</widget>
</item>
<item row="16" column="2" rowspan="2" colspan="3">
<item row="17" column="2" rowspan="2" colspan="3">
<widget class="KComboBox" name="rule_closeable">
<property name="enabled">
<bool>false</bool>
@ -2363,51 +2363,7 @@ while it's active!</string>
</item>
</widget>
</item>
<item row="22" column="2" rowspan="2" colspan="3">
<widget class="KComboBox" name="rule_blockcompositing">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
<item row="9" column="2" colspan="3">
<widget class="KComboBox" name="rule_fsplevel">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
<item row="9" column="5" colspan="2">
<item row="10" column="5" colspan="2">
<widget class="KComboBox" name="fsplevel">
<property name="enabled">
<bool>false</bool>
@ -2439,7 +2395,51 @@ while it's active!</string>
</item>
</widget>
</item>
<item row="9" column="1">
<item row="23" column="2" rowspan="2" colspan="3">
<widget class="KComboBox" name="rule_blockcompositing">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
<item row="10" column="2" colspan="3">
<widget class="KComboBox" name="rule_fsplevel">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
<item row="10" column="1">
<widget class="QCheckBox" name="enable_fsplevel">
<property name="toolTip">
<string>KWin tries to prevent windows from taking the focus
@ -2453,6 +2453,42 @@ but this may sometimes fail or superact.
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="enable_decocolor">
<property name="text">
<string>Titlebar color &amp;scheme</string>
</property>
</widget>
</item>
<item row="1" column="5" colspan="2">
<widget class="KComboBox" name="decocolor">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="KComboBox" name="rule_decocolor">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Do Not Affect</string>
</property>
</item>
<item>
<property name="text">
<string>Force</string>
</property>
</item>
<item>
<property name="text">
<string>Force Temporarily</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</widget>
@ -2461,14 +2497,9 @@ but this may sometimes fail or superact.
</widget>
<customwidgets>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header>kcombobox.h</header>
</customwidget>
<customwidget>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header>klineedit.h</header>
<class>KRestrictedLine</class>
<extends>KLineEdit</extends>
<header>krestrictedline.h</header>
</customwidget>
<customwidget>
<class>KPushButton</class>
@ -2476,9 +2507,14 @@ but this may sometimes fail or superact.
<header>kpushbutton.h</header>
</customwidget>
<customwidget>
<class>KRestrictedLine</class>
<extends>KLineEdit</extends>
<header>krestrictedline.h</header>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header>klineedit.h</header>
</customwidget>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header>kcombobox.h</header>
</customwidget>
<customwidget>
<class>YesNoBox</class>