Move maximize button click config to Options

In order to drop dependency on KDecorationOptions.
This commit is contained in:
Martin Gräßlin 2014-12-02 09:43:24 +01:00
parent c2e53b9a2f
commit cb38028d98
2 changed files with 69 additions and 3 deletions

View file

@ -377,6 +377,33 @@ void Options::setOperationTitlebarDblClick(WindowOperation operationTitlebarDblC
emit operationTitlebarDblClickChanged();
}
void Options::setOperationMaxButtonLeftClick(WindowOperation op)
{
if (opMaxButtonLeftClick == op) {
return;
}
opMaxButtonLeftClick = op;
emit operationMaxButtonLeftClickChanged();
}
void Options::setOperationMaxButtonRightClick(WindowOperation op)
{
if (opMaxButtonRightClick == op) {
return;
}
opMaxButtonRightClick = op;
emit operationMaxButtonRightClickChanged();
}
void Options::setOperationMaxButtonMiddleClick(WindowOperation op)
{
if (opMaxButtonMiddleClick == op) {
return;
}
opMaxButtonMiddleClick = op;
emit operationMaxButtonMiddleClickChanged();
}
void Options::setCommandActiveTitlebar1(MouseCommand commandActiveTitlebar1)
{
if (CmdActiveTitlebar1 == commandActiveTitlebar1) {
@ -820,9 +847,9 @@ void Options::loadConfig()
// Electric borders
KConfigGroup config(m_settings->config(), "Windows");
OpTitlebarDblClick = windowOperation(config.readEntry("TitlebarDoubleClickCommand", "Maximize"), true);
setOpMaxButtonLeftClick(windowOperation(config.readEntry("MaximizeButtonLeftClickCommand", "Maximize"), true));
setOpMaxButtonMiddleClick(windowOperation(config.readEntry("MaximizeButtonMiddleClickCommand", "Maximize (vertical only)"), true));
setOpMaxButtonRightClick(windowOperation(config.readEntry("MaximizeButtonRightClickCommand", "Maximize (horizontal only)"), true));
setOperationMaxButtonLeftClick(windowOperation(config.readEntry("MaximizeButtonLeftClickCommand", "Maximize"), true));
setOperationMaxButtonMiddleClick(windowOperation(config.readEntry("MaximizeButtonMiddleClickCommand", "Maximize (vertical only)"), true));
setOperationMaxButtonRightClick(windowOperation(config.readEntry("MaximizeButtonRightClickCommand", "Maximize (horizontal only)"), true));
// Mouse bindings
config = KConfigGroup(m_settings->config(), "MouseBindings");
@ -1129,4 +1156,11 @@ double Options::animationTimeFactor() const
return factors[ animationSpeed ];
}
KDecorationDefines::WindowOperation Options::operationMaxButtonClick(Qt::MouseButtons button) const
{
return button == Qt::RightButton ? opMaxButtonRightClick :
button == Qt::MidButton ? opMaxButtonMiddleClick :
opMaxButtonLeftClick;
}
} // namespace

View file

@ -118,6 +118,9 @@ class Options : public KDecorationOptions
*/
Q_PROPERTY(bool legacyFullscreenSupport READ isLegacyFullscreenSupport WRITE setLegacyFullscreenSupport NOTIFY legacyFullscreenSupportChanged)
Q_PROPERTY(WindowOperation operationTitlebarDblClick READ operationTitlebarDblClick WRITE setOperationTitlebarDblClick NOTIFY operationTitlebarDblClickChanged)
Q_PROPERTY(WindowOperation operationMaxButtonLeftClick READ operationMaxButtonLeftClick WRITE setOperationMaxButtonLeftClick NOTIFY operationMaxButtonLeftClickChanged)
Q_PROPERTY(WindowOperation operationMaxButtonMiddleClick READ operationMaxButtonMiddleClick WRITE setOperationMaxButtonMiddleClick NOTIFY operationMaxButtonMiddleClickChanged)
Q_PROPERTY(WindowOperation operationMaxButtonRightClick READ operationMaxButtonRightClick WRITE setOperationMaxButtonRightClick NOTIFY operationMaxButtonRightClickChanged)
Q_PROPERTY(MouseCommand commandActiveTitlebar1 READ commandActiveTitlebar1 WRITE setCommandActiveTitlebar1 NOTIFY commandActiveTitlebar1Changed)
Q_PROPERTY(MouseCommand commandActiveTitlebar2 READ commandActiveTitlebar2 WRITE setCommandActiveTitlebar2 NOTIFY commandActiveTitlebar2Changed)
Q_PROPERTY(MouseCommand commandActiveTitlebar3 READ commandActiveTitlebar3 WRITE setCommandActiveTitlebar3 NOTIFY commandActiveTitlebar3Changed)
@ -347,6 +350,17 @@ public:
WindowOperation operationTitlebarDblClick() const {
return OpTitlebarDblClick;
}
WindowOperation operationMaxButtonLeftClick() const {
return opMaxButtonLeftClick;
}
WindowOperation operationMaxButtonRightClick() const {
return opMaxButtonRightClick;
}
WindowOperation operationMaxButtonMiddleClick() const {
return opMaxButtonMiddleClick;
}
WindowOperation operationMaxButtonClick(Qt::MouseButtons button) const;
enum MouseCommand {
MouseRaise, MouseLower, MouseOperationsMenu, MouseToggleRaiseAndLower,
@ -570,6 +584,9 @@ public:
void setFocusStealingPreventionLevel(int focusStealingPreventionLevel);
void setLegacyFullscreenSupport(bool legacyFullscreenSupport);
void setOperationTitlebarDblClick(WindowOperation operationTitlebarDblClick);
void setOperationMaxButtonLeftClick(WindowOperation op);
void setOperationMaxButtonRightClick(WindowOperation op);
void setOperationMaxButtonMiddleClick(WindowOperation op);
void setCommandActiveTitlebar1(MouseCommand commandActiveTitlebar1);
void setCommandActiveTitlebar2(MouseCommand commandActiveTitlebar2);
void setCommandActiveTitlebar3(MouseCommand commandActiveTitlebar3);
@ -615,6 +632,15 @@ public:
static WindowOperation defaultOperationTitlebarDblClick() {
return MaximizeOp;
}
static WindowOperation defaultOperationMaxButtonLeftClick() {
return MaximizeOp;
}
static WindowOperation defaultOperationMaxButtonRightClick() {
return HMaximizeOp;
}
static WindowOperation defaultOperationMaxButtonMiddleClick() {
return VMaximizeOp;
}
static MouseCommand defaultCommandActiveTitlebar1() {
return MouseRaise;
}
@ -754,6 +780,9 @@ Q_SIGNALS:
void focusStealingPreventionLevelChanged();
void legacyFullscreenSupportChanged();
void operationTitlebarDblClickChanged();
void operationMaxButtonLeftClickChanged();
void operationMaxButtonRightClickChanged();
void operationMaxButtonMiddleClickChanged();
void commandActiveTitlebar1Changed();
void commandActiveTitlebar2Changed();
void commandActiveTitlebar3Changed();
@ -846,6 +875,9 @@ private:
OpenGLPlatformInterface m_glPlatformInterface;
WindowOperation OpTitlebarDblClick;
WindowOperation opMaxButtonRightClick = defaultOperationMaxButtonRightClick();
WindowOperation opMaxButtonMiddleClick = defaultOperationMaxButtonMiddleClick();
WindowOperation opMaxButtonLeftClick = defaultOperationMaxButtonRightClick();
// mouse bindings
MouseCommand CmdActiveTitlebar1;