diff --git a/kcmkwin/kwincompositing/compositing.cpp b/kcmkwin/kwincompositing/compositing.cpp index a2dd26fa12..8c1e959e01 100644 --- a/kcmkwin/kwincompositing/compositing.cpp +++ b/kcmkwin/kwincompositing/compositing.cpp @@ -71,6 +71,12 @@ int Compositing::animationSpeed() const return kwinConfig.readEntry("AnimationSpeed", 3); } +int Compositing::windowThumbnail() const +{ + KConfigGroup kwinConfig(KSharedConfig::openConfig("kwinrc"), "Compositing"); + return kwinConfig.readEntry("HiddenPreviews", 5) - 4; +} + CompositingType::CompositingType(QObject *parent) : QAbstractItemModel(parent) { @@ -179,7 +185,7 @@ int CompositingType::currentOpenGLType() return currentIndex; } -void CompositingType::syncConfig(int openGLType, int animationSpeed) +void CompositingType::syncConfig(int openGLType, int animationSpeed, int windowThumbnail) { QString backend; bool glLegacy; @@ -214,6 +220,7 @@ void CompositingType::syncConfig(int openGLType, int animationSpeed) kwinConfig.writeEntry("GLLegacy", glLegacy); kwinConfig.writeEntry("GLCore", glCore); kwinConfig.writeEntry("AnimationSpeed", animationSpeed); + kwinConfig.writeEntry("HiddenPreviews", windowThumbnail + 4); kwinConfig.sync(); } diff --git a/kcmkwin/kwincompositing/compositing.h b/kcmkwin/kwincompositing/compositing.h index f13a71df20..2e4380b81a 100644 --- a/kcmkwin/kwincompositing/compositing.h +++ b/kcmkwin/kwincompositing/compositing.h @@ -33,12 +33,14 @@ class Compositing : public QObject Q_OBJECT Q_PROPERTY(int animationSpeed READ animationSpeed CONSTANT); + Q_PROPERTY(int windowThumbnail READ windowThumbnail CONSTANT); public: explicit Compositing(QObject *parent = 0); Q_INVOKABLE bool OpenGLIsUnsafe() const; Q_INVOKABLE bool OpenGLIsBroken(); int animationSpeed() const; + int windowThumbnail() const; private: @@ -82,7 +84,7 @@ public: virtual QHash< int, QByteArray > roleNames() const override; Q_INVOKABLE int currentOpenGLType(); - Q_INVOKABLE void syncConfig(int openGLType, int animationSpeed); + Q_INVOKABLE void syncConfig(int openGLType, int animationSpeed, int windowThumbnail); private: void generateCompositing(); diff --git a/kcmkwin/kwincompositing/qml/EffectView.qml b/kcmkwin/kwincompositing/qml/EffectView.qml index fd6b6db614..0a6797087e 100644 --- a/kcmkwin/kwincompositing/qml/EffectView.qml +++ b/kcmkwin/kwincompositing/qml/EffectView.qml @@ -95,6 +95,29 @@ Item { } } + Label { + id: windowThumbnailText + text: i18n("Keep Window Thumbnails:") + anchors { + top: animationSpeed.bottom + horizontalCenter: windowManagement.horizontalCenter + topMargin: 20 + } + } + + ComboBox { + id: windowThumbnail + model: [i18n("Always (Breaks Animations)"), i18n("Only for Shown Windows"), i18n("Never")] + currentIndex: compositing.windowThumbnail + Layout.fillWidth: true + anchors { + top: windowThumbnailText.bottom + left: col.right + right: parent.right + } + onCurrentIndexChanged: apply.enabled = true; + } + ColumnLayout { id: col height: parent.height @@ -174,7 +197,7 @@ Item { onClicked: { searchModel.syncConfig(); apply.enabled = false; - compositingType.syncConfig(openGLType.currentIndex, animationSpeed.value); + compositingType.syncConfig(openGLType.currentIndex, animationSpeed.value, windowThumbnail.currentIndex); } }