Hello community,

here is the log from the commit of package applet-window-buttons for 
openSUSE:Factory checked in at 2019-11-25 11:25:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/applet-window-buttons (Old)
 and      /work/SRC/openSUSE:Factory/.applet-window-buttons.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "applet-window-buttons"

Mon Nov 25 11:25:25 2019 rev:5 rq:750571 version:0.7.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/applet-window-buttons/applet-window-buttons.changes  
    2019-09-02 13:26:55.325294671 +0200
+++ 
/work/SRC/openSUSE:Factory/.applet-window-buttons.new.26869/applet-window-buttons.changes
   2019-11-25 11:25:36.722091692 +0100
@@ -1,0 +2,16 @@
+Sun Nov 24 15:58:03 UTC 2019 - Cor Blom <[email protected]>
+
+- Update to version 0.7.0:
+  * introduce a new Button Size percentage option and drop
+    thickness margin in order to set the buttons size
+  * introduce Hidden State in order for the user to choose how
+    buttons should behave when they should not be shown. Currently
+    two states are supported: Slide out and Preserve Empty Space
+  * introduce a new Color Scheme based on current Plasma Theme
+    used and make it also default
+  * live preview for changes in the settings window
+  * do not crash when the selected decoration does not exist in the
+    systemm, for example it was uninstalled
+  * update buttons for scheme changes
+
+-------------------------------------------------------------------
@@ -9 +25 @@
-- Update to version 0.6.1:
+- Update to version 0.6.0:

Old:
----
  applet-window-buttons-0.6.0.tar.gz

New:
----
  applet-window-buttons-0.7.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ applet-window-buttons.spec ++++++
--- /var/tmp/diff_new_pack.gO5qA2/_old  2019-11-25 11:25:39.974091111 +0100
+++ /var/tmp/diff_new_pack.gO5qA2/_new  2019-11-25 11:25:39.978091111 +0100
@@ -20,13 +20,13 @@
 %define qt5_version 5.9
 
 Name:           applet-window-buttons
-Version:        0.6.0
+Version:        0.7.0
 Release:        0
 Summary:        Plasma 5 applet to show window buttons in panels
 License:        GPL-2.0-or-later
 Group:          System/GUI/KDE
 URL:            https://github.com/psifidotos/applet-window-buttons
-Source:         
https://github.com/psifidotos/applet-window-buttons/archive/%{version}/%{name}-%{version}.tar.gz
+Source:         
https://github.com/psifidotos/applet-window-buttons/archive/v%{version}/%{name}-%{version}.tar.gz
 BuildRequires:  extra-cmake-modules
 BuildRequires:  fdupes
 BuildRequires:  kconfig-devel >= %{kf5_version}

++++++ applet-window-buttons-0.6.0.tar.gz -> applet-window-buttons-0.7.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/applet-window-buttons-0.6.0/CHANGELOG.md 
new/applet-window-buttons-0.7.0/CHANGELOG.md
--- old/applet-window-buttons-0.6.0/CHANGELOG.md        2019-08-28 
14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/CHANGELOG.md        2019-11-24 
08:12:31.000000000 +0100
@@ -1,5 +1,14 @@
 ### CHANGELOG
 
+#### Version 0.7.0
+
+* introduce a new Button Size percentage option and drop thickness margin in 
order to set the buttons size
+* introduce Hidden State in order for the user to choose how buttons should 
behave when they should not be shown. Currently two states are supported: Slide 
out and Preserve Empty Space 
+* introduce a new Color Scheme based on current Plasma Theme used and make it 
also default
+* live preview for changes in the settings window
+* do not crash when the selected decoration does not exist in the systemm, for 
example it was uninstalled
+* update buttons for scheme changes
+
 #### Version 0.6.0
 
 * new visibility mode: At least one window is shown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/applet-window-buttons-0.6.0/CMakeLists.txt 
new/applet-window-buttons-0.7.0/CMakeLists.txt
--- old/applet-window-buttons-0.6.0/CMakeLists.txt      2019-08-28 
14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/CMakeLists.txt      2019-11-24 
08:12:31.000000000 +0100
@@ -2,7 +2,7 @@
 cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
 
 set(CMAKE_CXX_STANDARD 14)
-set(VERSION 0.6.0)
+set(VERSION 0.7.0)
 set(AUTHOR "Michail Vourlakos")
 set(EMAIL "[email protected]")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/applet-window-buttons-0.6.0/README.md 
new/applet-window-buttons-0.7.0/README.md
--- old/applet-window-buttons-0.6.0/README.md   2019-08-28 14:05:02.000000000 
+0200
+++ new/applet-window-buttons-0.7.0/README.md   2019-11-24 08:12:31.000000000 
+0100
@@ -18,7 +18,7 @@
 </p>
 
 <p align="center">
-<img src="https://i.imgur.com/yleReE7.png"; width="580"><br/>
+<img src="https://i.imgur.com/xsiKK7J.png"; width="580"><br/>
 <i>Settings window</i>
 </p>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/CMakeLists.txt 
new/applet-window-buttons-0.7.0/libappletdecoration/CMakeLists.txt
--- old/applet-window-buttons-0.6.0/libappletdecoration/CMakeLists.txt  
2019-08-28 14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/libappletdecoration/CMakeLists.txt  
2019-11-24 08:12:31.000000000 +0100
@@ -25,6 +25,7 @@
     previewsettings.cpp
     schemecolors.cpp
     schemesmodel.cpp
+    themeextended.cpp
     types.cpp
     windowsystem.cpp
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/appletdecorationplugin.cpp 
new/applet-window-buttons-0.7.0/libappletdecoration/appletdecorationplugin.cpp
--- 
old/applet-window-buttons-0.6.0/libappletdecoration/appletdecorationplugin.cpp  
    2019-08-28 14:05:02.000000000 +0200
+++ 
new/applet-window-buttons-0.7.0/libappletdecoration/appletdecorationplugin.cpp  
    2019-11-24 08:12:31.000000000 +0100
@@ -28,6 +28,7 @@
 #include "previewbutton.h"
 #include "previewsettings.h"
 #include "schemesmodel.h"
+#include "themeextended.h"
 #include "windowsystem.h"
 
 #include "types.h"
@@ -51,6 +52,7 @@
     qmlRegisterType<Decoration::Applet::PreviewButtonItem>(uri, 0, 1, 
"Button");
     qmlRegisterType<Decoration::Applet::DecorationsModel>(uri, 0, 1, 
"DecorationsModel");
     qmlRegisterType<Decoration::Applet::SchemesModel>(uri, 0, 1, 
"ColorsModel");
+    qmlRegisterType<Decoration::Applet::ExtendedTheme>(uri, 0, 1, 
"PlasmaThemeExtended");
     qmlRegisterType<Decoration::Applet::WindowSystem>(uri, 0, 1, 
"WindowSystem");
 
     qmlRegisterType<Decoration::Applet::Padding>();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/decorationsmodel.h 
new/applet-window-buttons-0.7.0/libappletdecoration/decorationsmodel.h
--- old/applet-window-buttons-0.6.0/libappletdecoration/decorationsmodel.h      
2019-08-28 14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/libappletdecoration/decorationsmodel.h      
2019-11-24 08:12:31.000000000 +0100
@@ -56,6 +56,7 @@
     QString currentTheme() const;
 
 public Q_SLOTS:
+    Q_INVOKABLE bool decorationExists(const QString &plugin, const QString 
&theme);
     Q_INVOKABLE bool isAurorae(const QString &plugin, const QString &theme);
 
 signals:
@@ -71,7 +72,7 @@
     void setCurrentTheme(QString theme);
 
 private:
-    bool decorationExists(const QString &plugin, const QString &theme);
+
     bool pluginExists(const QString &plugin);
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/schemesmodel.cpp 
new/applet-window-buttons-0.7.0/libappletdecoration/schemesmodel.cpp
--- old/applet-window-buttons-0.6.0/libappletdecoration/schemesmodel.cpp        
2019-08-28 14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/libappletdecoration/schemesmodel.cpp        
2019-11-24 08:12:31.000000000 +0100
@@ -50,10 +50,22 @@
 
     switch (role) {
         case Qt::DisplayRole:
-            return index.row() == 0 ? "Current" : d->schemeName();
+            if (index.row() == 0) {
+                return "Current";
+            } else if (index.row() == 1) {
+                return "Plasma Theme";
+            }
+
+            return d->schemeName();
 
         case Qt::UserRole + 4:
-            return index.row() == 0 ? "kdeglobals" : d->schemeFile();
+            if (index.row() == 0) {
+                return "kdeglobals";
+            } else if (index.row() == 1) {
+                return "_plasmatheme_";
+            }
+
+            return d->schemeFile();
 
         case Qt::UserRole + 5:
             return d->backgroundColor();
@@ -149,6 +161,10 @@
         return 0;
     }
 
+    if (file == "_plasmatheme_") {
+        return 1;
+    }
+
     for (int i = 0; i < m_schemes.count(); i++) {
         SchemeColors *s = m_schemes[i];
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/themeextended.cpp 
new/applet-window-buttons-0.7.0/libappletdecoration/themeextended.cpp
--- old/applet-window-buttons-0.6.0/libappletdecoration/themeextended.cpp       
1970-01-01 01:00:00.000000000 +0100
+++ new/applet-window-buttons-0.7.0/libappletdecoration/themeextended.cpp       
2019-11-24 08:12:31.000000000 +0100
@@ -0,0 +1,174 @@
+/*
+ * Copyright 2018  Michail Vourlakos <[email protected]>
+ *
+ * This file is part of Latte-Dock
+ *
+ * Latte-Dock is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * Latte-Dock is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "themeextended.h"
+
+// local
+#include "commontools.h"
+#include "schemecolors.h"
+
+// Qt
+#include <QDebug>
+#include <QDir>
+
+// KDE
+#include <KDirWatch>
+#include <KConfigGroup>
+#include <KSharedConfig>
+
+#define DEFAULTCOLORSCHEME "default.colors"
+
+namespace Decoration {
+namespace Applet {
+
+ExtendedTheme::ExtendedTheme(QObject *parent) :
+    QObject(parent)
+{
+    load();
+
+    connect(&m_theme, &Plasma::Theme::themeChanged, this, 
&ExtendedTheme::load);
+    connect(&m_theme, &Plasma::Theme::themeChanged, this, 
&ExtendedTheme::themeChanged);
+}
+
+ExtendedTheme::~ExtendedTheme()
+{
+    m_colorsScheme->deleteLater();
+}
+
+void ExtendedTheme::load()
+{
+    loadThemePaths();
+}
+
+QObject *ExtendedTheme::colors() const
+{
+    return m_colorsScheme;
+}
+
+void ExtendedTheme::setOriginalSchemeFile(const QString &file)
+{
+    if (m_originalSchemePath == file) {
+        return;
+    }
+
+    m_originalSchemePath = file;
+
+    qDebug() << "Window Buttons : plasma theme original colors ::: " << 
m_originalSchemePath;
+
+    updateDefaultScheme();
+
+    emit themeChanged();
+}
+
+//! WM records need to be updated based on the colors that
+//! plasma will use in order to be consistent. Such an example
+//! are the Breeze color schemes that have different values for
+//! WM and the plasma theme records
+void ExtendedTheme::updateDefaultScheme()
+{
+    QString defaultFilePath = m_extendedThemeDir.path() + "/" + 
DEFAULTCOLORSCHEME;
+    if (QFileInfo(defaultFilePath).exists()) {
+        QFile(defaultFilePath).remove();
+    }
+
+    QFile(m_originalSchemePath).copy(defaultFilePath);
+    m_colorsSchemePath = defaultFilePath;
+
+    updateDefaultSchemeValues();
+
+    if (m_colorsScheme) {
+        disconnect(m_colorsScheme, &SchemeColors::colorsChanged, this, 
&ExtendedTheme::themeChanged);
+        m_colorsScheme->deleteLater();
+    }    
+
+    m_colorsScheme = new SchemeColors(this, m_colorsSchemePath, true);
+    connect(m_colorsScheme, &SchemeColors::colorsChanged, this, 
&ExtendedTheme::themeChanged);
+
+    qDebug() << "Window Buttons : plasma theme default colors ::: " << 
m_colorsSchemePath;
+
+    emit colorsChanged();
+}
+
+void ExtendedTheme::updateDefaultSchemeValues()
+{
+    //! update WM values based on original scheme
+    KSharedConfigPtr originalPtr = 
KSharedConfig::openConfig(m_originalSchemePath);
+    KSharedConfigPtr defaultPtr = 
KSharedConfig::openConfig(m_colorsSchemePath);
+
+    if (originalPtr && defaultPtr) {
+        KConfigGroup originalViewGroup(originalPtr, "Colors:View");
+        KConfigGroup defaultWMGroup(defaultPtr, "WM");
+
+        defaultWMGroup.writeEntry("activeBackground", 
originalViewGroup.readEntry("BackgroundNormal", QColor()));
+        defaultWMGroup.writeEntry("activeForeground", 
originalViewGroup.readEntry("ForegroundNormal", QColor()));
+
+        defaultWMGroup.sync();
+    }
+}
+
+void ExtendedTheme::loadThemePaths()
+{
+    m_themePath = AppletDecoration::standardPath("plasma/desktoptheme/" + 
m_theme.themeName());
+
+    if (QDir(m_themePath+"/widgets").exists()) {
+        m_themeWidgetsPath = m_themePath + "/widgets";
+    } else {
+        m_themeWidgetsPath = 
AppletDecoration::standardPath("plasma/desktoptheme/default/widgets");
+    }
+
+    qDebug() << "Window Buttons : current plasma theme ::: " << 
m_theme.themeName();
+    qDebug() << "Window Buttons : theme path ::: " << m_themePath;
+    qDebug() << "Window Buttons : theme widgets path ::: " << 
m_themeWidgetsPath;
+
+    //! clear kde connections
+    for (auto &c : m_kdeConnections) {
+        disconnect(c);
+    }
+
+    //! assign color schemes
+    QString themeColorScheme = m_themePath + "/colors";
+
+    if (QFileInfo(themeColorScheme).exists()) {
+        setOriginalSchemeFile(themeColorScheme);
+    } else {
+        //! when plasma theme uses the kde colors
+        //! we track when kde color scheme is changing
+        QString kdeSettingsFile = QDir::homePath() + "/.config/kdeglobals";
+
+        KDirWatch::self()->addFile(kdeSettingsFile);
+
+        m_kdeConnections[0] = connect(KDirWatch::self(), &KDirWatch::dirty, 
this, [ &, kdeSettingsFile](const QString & path) {
+            if (path == kdeSettingsFile) {
+                
this->setOriginalSchemeFile(SchemeColors::possibleSchemeFile("kdeglobals"));
+            }
+        });
+
+        m_kdeConnections[1] = connect(KDirWatch::self(), &KDirWatch::created, 
this, [ &, kdeSettingsFile](const QString & path) {
+            if (path == kdeSettingsFile) {
+                
this->setOriginalSchemeFile(SchemeColors::possibleSchemeFile("kdeglobals"));
+            }
+        });
+
+        setOriginalSchemeFile(SchemeColors::possibleSchemeFile("kdeglobals"));
+    }
+}
+
+}
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/themeextended.h 
new/applet-window-buttons-0.7.0/libappletdecoration/themeextended.h
--- old/applet-window-buttons-0.6.0/libappletdecoration/themeextended.h 
1970-01-01 01:00:00.000000000 +0100
+++ new/applet-window-buttons-0.7.0/libappletdecoration/themeextended.h 
2019-11-24 08:12:31.000000000 +0100
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2018  Michail Vourlakos <[email protected]>
+ *
+ * This file is part of Latte-Dock
+ *
+ * Latte-Dock is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * Latte-Dock is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef PLASMAEXTENDEDTHEME_H
+#define PLASMAEXTENDEDTHEME_H
+
+// C++
+#include <array>
+
+// Qt
+#include <QObject>
+#include <QTemporaryDir>
+
+// KDE
+#include <KConfigGroup>
+#include <KSharedConfig>
+
+// Plasma
+#include <Plasma/FrameSvg>
+#include <Plasma/Theme>
+
+namespace Decoration {
+namespace Applet {
+class SchemeColors;
+}
+}
+
+namespace Decoration {
+namespace Applet {
+
+class ExtendedTheme: public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(QObject *colors READ colors NOTIFY colorsChanged)
+
+public:
+    ExtendedTheme(QObject *parent = nullptr);
+    ~ExtendedTheme() override;;
+
+    QObject *colors() const;
+
+    void load();
+
+signals:
+    void colorsChanged();
+    void themeChanged();
+
+private:
+    void loadThemePaths();
+
+    void setOriginalSchemeFile(const QString &file);
+    void updateDefaultScheme();
+    void updateDefaultSchemeValues();
+
+private:
+    QString m_themePath;
+    QString m_themeWidgetsPath;
+    QString m_colorsSchemePath;
+    QString m_originalSchemePath;
+
+    std::array<QMetaObject::Connection, 2> m_kdeConnections;
+
+    QTemporaryDir m_extendedThemeDir;
+    KConfigGroup m_themeGroup;
+    Plasma::Theme m_theme;
+
+    SchemeColors *m_colorsScheme{nullptr};
+};
+
+}
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/libappletdecoration/types.h 
new/applet-window-buttons-0.7.0/libappletdecoration/types.h
--- old/applet-window-buttons-0.6.0/libappletdecoration/types.h 2019-08-28 
14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/libappletdecoration/types.h 2019-11-24 
08:12:31.000000000 +0100
@@ -82,6 +82,13 @@
     };
     Q_ENUM(Visibility)
 
+    enum HiddenState
+    {
+        SlideOut = 0,
+        EmptySpace
+    };
+    Q_ENUM(HiddenState)
+
     enum ContainmentType
     {
         Loading = 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/package/contents/config/main.xml 
new/applet-window-buttons-0.7.0/package/contents/config/main.xml
--- old/applet-window-buttons-0.6.0/package/contents/config/main.xml    
2019-08-28 14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/package/contents/config/main.xml    
2019-11-24 08:12:31.000000000 +0100
@@ -15,7 +15,7 @@
       <label>user preferred decoration plugin to use</label>
     </entry>
     <entry name="selectedScheme" type="String">
-      <default>kdeglobals</default>
+      <default>_plasmatheme_</default>
       <label>user preferred color scheme to use with the selected 
plugin</label>
     </entry>
     <entry name="selectedTheme" type="String">
@@ -38,9 +38,13 @@
       <default>true</default>
       <label>if false active window can be on any screen</label>
     </entry>
-    <entry name="slideAnimation" type="Bool">
-      <default>false</default>
-      <label>slide out/in when is shown or becomes hidden</label>
+    <entry name="hiddenState" type="Enum">
+      <choices>
+         <choice name="SlideOut"/>
+         <choice name="EmptySpace"/>
+      </choices>
+      <label>when the applet should be hidden how it should behave</label>
+      <default>0</default>
     </entry>
     <entry name="inactiveStateEnabled" type="Bool">
       <default>false</default>
@@ -50,10 +54,10 @@
       <default>true</default>
       <label>use the discovered decoration metrics in case there are any in 
order to look consistent with window titlebars</label>
     </entry>
-    <entry name="thicknessMargin" type="Int">
-      <default>2</default>
-      <label>margin used to increase or decrease the icons size based on the 
context that are present</label>
-    </entry>
+    <entry name="buttonSizePercentage" type="Int">
+      <default>90</default>
+      <label>the buttons size relevant to panel thickness</label>
+    </entry>    
     <entry name="lengthFirstMargin" type="Int">
       <default>0</default>
       <label>first margin used to increase or decrease the icons distance from 
surrounding applets</label>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/package/contents/ui/config/ColorsComboBox.qml 
new/applet-window-buttons-0.7.0/package/contents/ui/config/ColorsComboBox.qml
--- 
old/applet-window-buttons-0.6.0/package/contents/ui/config/ColorsComboBox.qml   
    2019-08-28 14:05:02.000000000 +0200
+++ 
new/applet-window-buttons-0.7.0/package/contents/ui/config/ColorsComboBox.qml   
    2019-11-24 08:12:31.000000000 +0100
@@ -66,6 +66,8 @@
                     width: 1.25 * label.height
                     height: label.height
 
+                    opacity: ((file == "kdeglobals") || (file == 
"_plasmatheme_")) ? 0 : 1
+
                     Rectangle{
                         width: height
                         height: 0.75 * label.height
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/package/contents/ui/config/ConfigGeneral.qml 
new/applet-window-buttons-0.7.0/package/contents/ui/config/ConfigGeneral.qml
--- 
old/applet-window-buttons-0.6.0/package/contents/ui/config/ConfigGeneral.qml    
    2019-08-28 14:05:02.000000000 +0200
+++ 
new/applet-window-buttons-0.7.0/package/contents/ui/config/ConfigGeneral.qml    
    2019-11-24 08:12:31.000000000 +0100
@@ -34,20 +34,21 @@
     property alias cfg_selectedScheme: root.selectedScheme
     property alias cfg_selectedTheme: root.selectedTheme
     property alias cfg_buttons: root.currentButtons
+    property alias cfg_buttonSizePercentage: buttonSizeSpn.value
     property alias cfg_visibility: root.visibility
     property alias cfg_filterByScreen: byScreenChk.checked
+    property alias cfg_hiddenState: root.hiddenState
     property alias cfg_inactiveStateEnabled: inactiveChk.checked
-    property alias cfg_slideAnimation: slideChk.checked
     property alias cfg_disabledMaximizedBorders: root.disabledBorders
     property alias cfg_useDecorationMetrics: decorationMetricsChk.checked
     property alias cfg_spacing: spacingSpn.value
-    property alias cfg_thicknessMargin: thickSpn.value
     property alias cfg_lengthFirstMargin: lengthFirstSpn.value
     property alias cfg_lengthLastMargin: lengthLastSpn.value
     property alias cfg_lengthMarginsLock: lockItem.locked
 
     // used as bridge to communicate properly between configuration and ui
     property bool useCurrent
+    property int hiddenState
     property int visibility
     property int disabledBorders
     property string selectedPlugin
@@ -56,10 +57,14 @@
     property string currentButtons
 
     // used from the ui
+    readonly property bool selectedDecorationExists: 
decorations.decorationExists(root.selectedPlugin, root.selectedTheme)
+
     readonly property real centerFactor: 0.3
     readonly property int minimumWidth: 220
-    property string currentPlugin: root.useCurrent ? decorations.currentPlugin 
: root.selectedPlugin
-    property string currentTheme: root.useCurrent ? decorations.currentTheme : 
root.selectedTheme
+    property string currentPlugin: root.useCurrent || 
!selectedDecorationExists ? decorations.currentPlugin : root.selectedPlugin
+    property string currentTheme: root.useCurrent || !selectedDecorationExists 
? decorations.currentTheme : root.selectedTheme
+
+
 
     ///START Decoration Items
     AppletDecoration.Bridge {
@@ -78,7 +83,7 @@
         id: auroraeThemeEngine
         theme: isEnabled ? currentTheme : ""
 
-        readonly property bool isEnabled: 
decorations.isAurorae(root.currentPlugin, root.currentTheme);
+        readonly property bool isEnabled: 
decorations.isAurorae(root.currentPlugin, root.currentTheme)
     }
 
     AppletDecoration.DecorationsModel {
@@ -89,6 +94,12 @@
         id: colorsModel
     }
 
+    AppletDecoration.PlasmaThemeExtended {
+        id: plasmaThemeExtended
+
+        readonly property bool isActive: selectedScheme === "_plasmatheme_"
+    }
+
     SystemPalette {
         id: palette
     }
@@ -158,13 +169,20 @@
 
             OrderableListView{
                 id: activeButtons
-                itemWidth: 36
-                itemHeight: 36
+                itemWidth: 38
+                itemHeight: 38
                 buttonsStr: root.currentButtons
                 orientation: ListView.Horizontal
                 color: !auroraeThemeEngine.isEnabled ? schemesBackgroundColor 
: auroraeThemeEngine.titleBackgroundColor
 
-                readonly property color schemesBackgroundColor: 
colorsModel.backgroundOf(colorsCmbBox.currentIndex)
+                buttonSize: buttonSizeSpn.value
+                buttonsFirstMargin: lengthFirstSpn.value
+                buttonsLastMargin: lengthLastSpn.value
+                buttonsSpacing: spacingSpn.value
+
+                readonly property color schemesBackgroundColor: 
plasmaThemeExtended.isActive ?
+                                                                    
plasmaThemeExtended.colors.backgroundColor :
+                                                                    
colorsModel.backgroundOf(colorsCmbBox.currentIndex)
             }
         }
 
@@ -230,6 +248,47 @@
         }
 
         GridLayout{
+            columns: 2
+            rows: 2
+            flow: GridLayout.TopToBottom
+
+            enabled: root.visibility !== AppletDecoration.Types.AlwaysVisible
+
+            Label{
+                Layout.minimumWidth: Math.max(centerFactor * root.width, 
minimumWidth)
+                Layout.rowSpan: 2
+                Layout.alignment: Qt.AlignTop | Qt.AlignRight
+                text: i18n("Hidden State:")
+                horizontalAlignment: Text.AlignRight
+            }
+
+            ExclusiveGroup { id: hiddenStateGroup }
+
+            RadioButton{
+                id: slideOutBtn
+                text: i18n("Slide out animation")
+                checked: root.hiddenState === AppletDecoration.Types.SlideOut
+                exclusiveGroup: hiddenStateGroup
+                onCheckedChanged: {
+                    if (checked) {
+                        root.hiddenState = AppletDecoration.Types.SlideOut;
+                    }
+                }
+            }
+            RadioButton{
+                id: emptySpaceBtn
+                text: i18n("Preserve as empty space")
+                checked: root.hiddenState === AppletDecoration.Types.EmptySpace
+                exclusiveGroup: hiddenStateGroup
+                onCheckedChanged: {
+                    if (checked) {
+                        root.hiddenState = AppletDecoration.Types.EmptySpace;
+                    }
+                }
+            }
+        }
+
+        GridLayout{
             Label{
                 Layout.minimumWidth: Math.max(centerFactor * root.width, 
minimumWidth)
                 text: i18n("Filters:")
@@ -260,11 +319,6 @@
                 id: inactiveChk
                 text: i18n("Draw buttons inactive state when needed")
             }
-
-            CheckBox{
-                id: slideChk
-                text: i18n("Slide animation in order to show or hide")
-            }
         }
 
         GridLayout{
@@ -316,37 +370,39 @@
                     Layout.minimumWidth: Math.max(centerFactor * root.width, 
minimumWidth)
                     text: i18n("Metrics:")
                     horizontalAlignment: Text.AlignRight
+                    visible: auroraeThemeEngine.isEnabled
                 }
 
                 CheckBox{
                     id: decorationMetricsChk
                     text: i18n("Use from decoration if any are found")
+                    visible: auroraeThemeEngine.isEnabled
                 }
 
-                Label{
+                Label {
                     Layout.minimumWidth: Math.max(centerFactor * root.width, 
minimumWidth)
-                    text: i18n("Icons spacing:")
+                    text: i18n("Size:")
                     horizontalAlignment: Text.AlignRight
                     enabled: !(auroraeThemeEngine.isEnabled && 
decorationMetricsChk.checked)
                 }
 
                 SpinBox{
-                    id: spacingSpn
-                    minimumValue: 0
-                    maximumValue: 24
-                    suffix: " " + i18nc("pixels","px.")
+                    id: buttonSizeSpn
+                    minimumValue: 40
+                    maximumValue: 100
+                    suffix: " %"
                     enabled: !(auroraeThemeEngine.isEnabled && 
decorationMetricsChk.checked)
                 }
 
                 Label{
                     Layout.minimumWidth: Math.max(centerFactor * root.width, 
minimumWidth)
-                    text: i18n("Thickness margin:")
+                    text: i18n("Spacing:")
                     horizontalAlignment: Text.AlignRight
                     enabled: !(auroraeThemeEngine.isEnabled && 
decorationMetricsChk.checked)
                 }
 
                 SpinBox{
-                    id: thickSpn
+                    id: spacingSpn
                     minimumValue: 0
                     maximumValue: 24
                     suffix: " " + i18nc("pixels","px.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/package/contents/ui/config/OrderableListView.qml
 
new/applet-window-buttons-0.7.0/package/contents/ui/config/OrderableListView.qml
--- 
old/applet-window-buttons-0.6.0/package/contents/ui/config/OrderableListView.qml
    2019-08-28 14:05:02.000000000 +0200
+++ 
new/applet-window-buttons-0.7.0/package/contents/ui/config/OrderableListView.qml
    2019-11-24 08:12:31.000000000 +0100
@@ -34,6 +34,11 @@
     property double itemWidth
     property double itemHeight
 
+    property int buttonSize: 100
+    property int buttonsFirstMargin: 0
+    property int buttonsLastMargin: 0
+    property int buttonsSpacing: 0
+
     Layout.minimumWidth: width
     Layout.preferredWidth: Layout.minimumWidth
     Layout.maximumWidth: Layout.maximumWidth
@@ -45,17 +50,31 @@
     property string buttonsStr
 
 
-    width: (itemWidth+listView.spacing) * (orientation == ListView.Vertical ? 
1 : controlButtonsModel.count) + 2 * margin
-    height: (itemHeight+listView.spacing) * (orientation == 
ListView.Horizontal ? 1 : controlButtonsModel.count)
+    width: listView.childrenRect.width + 2 * 
margin//(itemWidth+listView.spacing) * (orientation == ListView.Vertical ? 1 : 
controlButtonsModel.count) + 2 * margin
+    height: listView.childrenRect.height + 2 * margin 
//(itemHeight+listView.spacing) * (orientation == ListView.Horizontal ? 1 : 
controlButtonsModel.count)
 
     signal modelOrderChanged()
 
     property var tasksPreparedArray: []
 
-    readonly property int margin: 2
-    readonly property double iconHeight: itemHeight - margin * 2
+    readonly property int margin: 0
+    readonly property double iconHeight: itemHeight*(buttonSize/100) - margin 
* 2
+
+    readonly property string appliedScheme: {
+        if (selectedScheme === "_plasmatheme_") {
+            return plasmaThemeExtended.colors.schemeFile;
+        }
+
+        return selectedScheme;
+    }
 
-    Component.onCompleted: initializeControlButtonsModel();
+    Component.onCompleted: initButtons();
+
+    function initButtons() {
+        if (!buttonsRecreator.running){
+            buttonsRecreator.start();
+        }
+    }
 
     function initializeControlButtonsModel() {
         var buttonsList = buttonsStr.split('|');
@@ -77,11 +96,26 @@
         return str;
     }
 
+    function triggerUpdateFromPlasma() {
+        if (plasmaThemeExtended.isActive) {
+            listContent.initButtons();
+        }
+    }
+
     Connections{
         target: root
-        onCurrentPluginChanged: listContent.initializeControlButtonsModel();
+        onCurrentPluginChanged: listContent.initButtons();
+    }
+
+    Connections {
+        target: plasmaThemeExtended
+
+        onThemeChanged: triggerUpdateFromPlasma();
+        onColorsChanged: triggerUpdateFromPlasma();
     }
 
+    onButtonSizeChanged: listContent.initButtons();
+
     ListModel {
         id: controlButtonsModel
     }
@@ -99,23 +133,22 @@
 
     ListView {
         id: listView
-        anchors.fill: parent
-        anchors.leftMargin: parent.margin
-        spacing: 2
+        width: childrenRect.width
+        height: itemHeight
+
         model: controlButtonsModel
         orientation: listContent.orientation
-        delegate: auroraeThemeEngine.isEnabled ? auroraeButton : pluginButton
+        delegate: auroraeThemeEngine.isEnabled ? auroraeButtonComponent : 
pluginButtonComponent
         currentIndex: loc.initIndex
 
         property int splitterIndex: -1
 
-
         moveDisplaced: Transition {
             NumberAnimation { properties: "x"; duration: 150; easing.type: 
Easing.Linear }
         }
 
         move: Transition {
-            NumberAnimation { properties: "x"; duration: 150; easing.type: 
Easing.Linear }
+            NumberAnimation { properties: "x"; duration: 75; easing.type: 
Easing.Linear }
         }
     }
 
@@ -130,6 +163,8 @@
 
         property int index: listView.indexAt(mouseX, mouseY) // Item 
underneath cursor
 
+        readonly property bool buttonIsDragged: initButton!==-1 || initIndex 
!==-1
+
         onPressAndHold: {
             initIndex = listView.indexAt(mouseX, mouseY);
             initButton = controlButtonsModel.get(initIndex).buttonType;
@@ -143,18 +178,25 @@
             if (containsPress && initIndex !== -1 &&index !== -1 && index !== 
initIndex) {
                 controlButtonsModel.move(initIndex, index, 1);
                 initIndex = index;
-                listView.splitterIndex = 
ModelTools.indexOfSplitter(controlButtonsModel);
                 root.currentButtons = buttonsListStr();
+                listView.splitterIndex = 
ModelTools.indexOfSplitter(controlButtonsModel);
             }
         }
     }
 
     ///START Components
     Component {
-        id: pluginButton
+        id: pluginButtonComponent
         Rectangle{
-            y: listView.spacing
-            width: listContent.iconHeight + 2 * listContent.margin
+            id: decorationButton
+            readonly property bool isVisibleButton: index >= 0 && index < 
listView.splitterIndex
+            readonly property bool isFirstVisibleButton: index === 0 && 
listView.splitterIndex > 0
+            readonly property bool isLastVisibleButton: index>=0 && 
index===listView.splitterIndex-1
+            readonly property bool isButtonSplitter: index>=0 && 
index===listView.splitterIndex
+
+            y: (itemHeight - iconHeight) / 2
+            width: isButtonSplitter && !loc.buttonIsDragged ? 
Math.min(listContent.iconHeight/2, 6 + buttonsLastMargin) :
+                                                              
listContent.iconHeight + leftMargin + rightMargin
             height: listContent.iconHeight + 2 * listContent.margin
             color: {
                 if (listView.currentIndex === index) {
@@ -167,9 +209,63 @@
                 return "transparent";
             }
 
+            property int leftMargin: 0
+            property int rightMargin: 0
+
+            Behavior on leftMargin {
+                NumberAnimation {
+                    duration: 50
+                    easing.type: Easing.Linear
+                }
+            }
+
+            Behavior on rightMargin {
+                NumberAnimation {
+                    duration: 50
+                    easing.type: Easing.Linear
+                }
+            }
+
+            Binding {
+                target: decorationButton
+                property: "leftMargin"
+                value: {
+                    if (loc.buttonIsDragged) {
+                        return buttonsSpacing / 2;
+                    }
+
+                    if (isFirstVisibleButton) {
+                        return buttonsFirstMargin;
+                    } else if (isVisibleButton) {
+                        return buttonsSpacing;
+                    }
+
+                    return listContent.margin;
+                }
+            }
+
+            Binding {
+                target: decorationButton
+                property: "rightMargin"
+                value: {
+                    if (loc.buttonIsDragged) {
+                        return buttonsSpacing / 2;
+                    }
+
+                    if (isLastVisibleButton) {
+                        return buttonsLastMargin;
+                    }
+
+                    return listContent.margin;
+                }
+            }
+
+
             AppletDecoration.Button {
                 id: cButton
-                anchors.centerIn: parent
+                anchors.left: parent.left
+                anchors.verticalCenter: parent.verticalCenter
+                anchors.leftMargin: parent.leftMargin
 
                 opacity: listView.splitterIndex !==-1 && 
listView.splitterIndex<index ? 0.4 : 1
 
@@ -181,7 +277,7 @@
                 type: buttonType
                 isOnAllDesktops: false
                 isMaximized: false
-                scheme: selectedScheme
+                scheme: appliedScheme
 
                 visible: buttonType !== AppletDecoration.Types.Custom
             }
@@ -190,19 +286,27 @@
                 height: parent.height - listContent.margin
                 width: 4
                 border.width: 1
-                anchors.horizontalCenter: parent.horizontalCenter
+                anchors.left: parent.left
                 color: palette.highlight
                 border.color: palette.highlight
                 visible: buttonType === AppletDecoration.Types.Custom
+                opacity: 0.75
             }
         }
     }
 
     Component {
-        id: auroraeButton
+        id: auroraeButtonComponent
         Rectangle{
-            y: listView.spacing
-            width: auroraeThemeEngine.buttonRatio * listContent.iconHeight + 2 
* listContent.margin
+            id: auroraeButton
+            readonly property bool isVisibleButton: index >= 0 && index < 
listView.splitterIndex
+            readonly property bool isFirstVisibleButton: index === 0 && 
listView.splitterIndex > 0
+            readonly property bool isLastVisibleButton: index>=0 && 
index===listView.splitterIndex-1
+            readonly property bool isButtonSplitter: index>=0 && 
index===listView.splitterIndex
+
+            y: (itemHeight - iconHeight) / 2
+            width: isButtonSplitter && !loc.buttonIsDragged ? 
Math.min(listContent.iconHeight/2, 6 + buttonsLastMargin) :
+                                                              
auroraeThemeEngine.buttonRatio * listContent.iconHeight + leftMargin + 
rightMargin
             height: listContent.iconHeight + 2 * listContent.margin
             color: {
                 if (listView.currentIndex === index) {
@@ -215,8 +319,61 @@
                 return "transparent";
             }
 
+            property int leftMargin: 0
+            property int rightMargin: 0
+
+            Behavior on leftMargin {
+                NumberAnimation {
+                    duration: 50
+                    easing.type: Easing.Linear
+                }
+            }
+
+            Behavior on rightMargin {
+                NumberAnimation {
+                    duration: 50
+                    easing.type: Easing.Linear
+                }
+            }
+
+            Binding {
+                target: auroraeButton
+                property: "leftMargin"
+                value: {
+                    if (loc.buttonIsDragged) {
+                        return buttonsSpacing / 2;
+                    }
+
+                    if (isFirstVisibleButton) {
+                        return buttonsFirstMargin;
+                    } else if (isVisibleButton) {
+                        return buttonsSpacing;
+                    }
+
+                    return listContent.margin;
+                }
+            }
+
+            Binding {
+                target: auroraeButton
+                property: "rightMargin"
+                value: {
+                    if (loc.buttonIsDragged) {
+                        return buttonsSpacing / 2;
+                    }
+
+                    if (isLastVisibleButton) {
+                        return buttonsLastMargin;
+                    }
+
+                    return listContent.margin;
+                }
+            }
+
             AppletDecoration.AuroraeButton {
-                anchors.centerIn: parent
+                anchors.left: parent.left
+                anchors.verticalCenter: parent.verticalCenter
+                anchors.leftMargin: parent.leftMargin
 
                 opacity: listView.splitterIndex !==-1 && 
listView.splitterIndex<index ? 0.4 : 1
 
@@ -232,16 +389,25 @@
             }
 
             Rectangle{
+                anchors.left: parent.left
                 height: parent.height
                 width: 4
                 border.width: 1
-                anchors.horizontalCenter: parent.horizontalCenter
                 color: palette.highlight
                 border.color: palette.highlight
                 visible: buttonType === AppletDecoration.Types.Custom
+                opacity: 0.75
             }
         }
     }
     ///END Components
+
+    //! this timer is used in order to not call too many times the recreation
+    //! of buttons with no reason.
+    Timer{
+        id: buttonsRecreator
+        interval: 200
+        onTriggered: initializeControlButtonsModel();
+    }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/applet-window-buttons-0.6.0/package/contents/ui/main.qml 
new/applet-window-buttons-0.7.0/package/contents/ui/main.qml
--- old/applet-window-buttons-0.6.0/package/contents/ui/main.qml        
2019-08-28 14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/package/contents/ui/main.qml        
2019-11-24 08:12:31.000000000 +0100
@@ -47,6 +47,8 @@
     property int animatedMinimumWidth: minimumWidth
     property int animatedMinimumHeight: minimumHeight
 
+    readonly property bool inEditMode: latteInEditMode || 
plasmoid.userConfiguring
+
     readonly property bool plasma515: 
AppletDecoration.Environment.plasmaDesktopVersion >= 
AppletDecoration.Environment.makeVersion(5,15,0)
 
     readonly property bool mustHide: {
@@ -62,13 +64,22 @@
 
         return false;
     }
+
+    readonly property bool selectedDecorationExists: 
decorations.decorationExists(plasmoid.configuration.selectedPlugin, 
plasmoid.configuration.selectedTheme)
+
+    readonly property bool slideAnimationEnabled: ( (visibility !== 
AppletDecoration.Types.AlwaysVisible)
+                                                   && 
(plasmoid.configuration.hiddenState === AppletDecoration.Types.SlideOut) )
+    readonly property bool emptySpaceEnabled: ( (visibility !== 
AppletDecoration.Types.AlwaysVisible)
+                                                   && 
(plasmoid.configuration.hiddenState === AppletDecoration.Types.EmptySpace) )
+
+
     readonly property int containmentType: 
plasmoid.configuration.containmentType
     readonly property int disabledMaximizedBorders: 
plasmoid.configuration.disabledMaximizedBorders
     readonly property int visibility: plasmoid.configuration.visibility
 
     readonly property int minimumWidth: {
         if (plasmoid.formFactor === PlasmaCore.Types.Horizontal) {
-            if (mustHide && !plasmoid.userConfiguring && !latteInEditMode){
+            if (mustHide && slideAnimationEnabled && !plasmoid.userConfiguring 
&& !latteInEditMode){
                 return 0;
             }
         }
@@ -78,7 +89,7 @@
 
     readonly property int minimumHeight: {
         if (plasmoid.formFactor === PlasmaCore.Types.Vertical) {
-            if (mustHide && !plasmoid.userConfiguring && !latteInEditMode){
+            if (mustHide && slideAnimationEnabled && !plasmoid.userConfiguring 
&& !latteInEditMode){
                 return 0;
             }
         }
@@ -99,7 +110,6 @@
         return PlasmaCore.Types.ActiveStatus;
     }
 
-
     // START visual properties
     property bool inactiveStateEnabled: root.latteInEditMode || 
plasmoid.userConfiguring ? false : plasmoid.configuration.inactiveStateEnabled
 
@@ -110,7 +120,12 @@
                         ((root.width - auroraeThemeEngine.buttonHeight) / 2) - 
1;
         }
 
-        return plasmoid.configuration.thicknessMargin;
+
+        if (plasmoid.formFactor === PlasmaCore.Types.Horizontal) {
+            return (root.height - (root.height * 
(plasmoid.configuration.buttonSizePercentage/100))) / 2;
+        } else {
+            return (root.width - (root.width * 
(plasmoid.configuration.buttonSizePercentage/100))) / 2;
+        }
     }
 
     property int lengthFirstMargin: plasmoid.configuration.lengthFirstMargin
@@ -135,7 +150,7 @@
     readonly property bool existsWindowActive: (windowInfoLoader.item && 
windowInfoLoader.item.existsWindowActive)
                                                || 
containmentIdentifierTimer.running
     readonly property bool existsWindowShown: (windowInfoLoader.item && 
windowInfoLoader.item.existsWindowShown)
-                                               || 
containmentIdentifierTimer.running
+                                              || 
containmentIdentifierTimer.running
 
     readonly property bool isLastActiveWindowPinned: lastActiveTaskItem && 
lastActiveTaskItem.isOnAllDesktops
     readonly property bool isLastActiveWindowMaximized: lastActiveTaskItem && 
lastActiveTaskItem.isMaximized
@@ -149,12 +164,21 @@
     // END Window properties
 
     // START decoration properties
-    property string currentPlugin: plasmoid.configuration.useCurrentDecoration 
?
+    property string currentPlugin: plasmoid.configuration.useCurrentDecoration 
|| !selectedDecorationExists ?
                                        decorations.currentPlugin : 
plasmoid.configuration.selectedPlugin
-    property string currentTheme: plasmoid.configuration.useCurrentDecoration ?
+    property string currentTheme: plasmoid.configuration.useCurrentDecoration 
|| !selectedDecorationExists ?
                                       decorations.currentTheme : 
plasmoid.configuration.selectedTheme
-    property string currentScheme: enforceLattePalette && 
plasmoid.configuration.selectedScheme === "kdeglobals"
-                                   ? latteBridge.palette.scheme : 
plasmoid.configuration.selectedScheme
+    property string currentScheme: {
+        if (plasmaThemeExtended.isActive) {
+            return plasmaThemeExtended.colors.schemeFile;
+        }
+
+        if (enforceLattePalette && plasmoid.configuration.selectedScheme === 
"kdeglobals") {
+            return latteBridge.palette.scheme;
+        }
+
+        return plasmoid.configuration.selectedScheme;
+    }
     // END decoration properties
 
     //BEGIN Latte Dock Communicator
@@ -179,7 +203,7 @@
 
     //START Behaviors
     Behavior on animatedMinimumWidth {
-        enabled: plasmoid.configuration.slideAnimation && 
plasmoid.formFactor===PlasmaCore.Types.Horizontal
+        enabled: slideAnimationEnabled && 
plasmoid.formFactor===PlasmaCore.Types.Horizontal
         NumberAnimation {
             duration: 250
             easing.type: Easing.InCubic
@@ -187,7 +211,7 @@
     }
 
     Behavior on animatedMinimumHeight {
-        enabled: plasmoid.configuration.slideAnimation && 
plasmoid.formFactor===PlasmaCore.Types.Vertical
+        enabled: slideAnimationEnabled && 
plasmoid.formFactor===PlasmaCore.Types.Vertical
         NumberAnimation {
             duration: 250
             easing.type: Easing.InCubic
@@ -203,12 +227,30 @@
         }
     }
 
+    onCurrentSchemeChanged: {
+        //! This is needed from some themes e.g. Oxygen in order to paint 
properly
+        //! scheme changes. In the future it must be investigated if it is
+        //! Oxygen fault.
+        if (currentPlugin === "org.kde.oxygen") {
+            initButtons();
+        }
+    }
+
     onDisabledMaximizedBordersChanged: {
         if (containmentType === AppletDecoration.Types.Plasma && 
disabledMaximizedBorders !== 1) { /*SystemDecision*/
             windowSystem.setDisabledMaximizedBorders(disabledMaximizedBorders);
         }
     }
 
+    onExistsWindowActiveChanged: {
+        //! This is needed from some themes e.g. Breeze in order to paint 
properly
+        //! active/inactive buttons. In the future it must be investigated if 
it is
+        //! Breeze fault
+        if (root.inactiveStateEnabled && (currentPlugin==="org.kde.breeze" || 
currentPlugin === "org.kde.oxygen")) {
+            initButtons();
+        }
+    }
+
     Connections{
         target: !auroraeThemeEngine.isEnabled ? root : null
         onThickPaddingChanged: initButtons();
@@ -278,6 +320,21 @@
         id: decorations
     }
 
+    AppletDecoration.PlasmaThemeExtended {
+        id: plasmaThemeExtended
+
+        readonly property bool isActive: plasmoid.configuration.selectedScheme 
=== "_plasmatheme_"
+
+        function triggerUpdate() {
+            if (isActive) {
+                initButtons();
+            }
+        }
+
+        onThemeChanged: triggerUpdate();
+        onColorsChanged: triggerUpdate();
+    }
+
     AppletDecoration.AuroraeTheme {
         id: auroraeThemeEngine
         theme: isEnabled ? currentTheme : ""
@@ -325,7 +382,7 @@
 
     function performActiveWindowAction(windowOperation) {
         if (windowOperation === AppletDecoration.Types.ActionClose) {
-             windowInfoLoader.item.toggleClose();
+            windowInfoLoader.item.toggleClose();
         } else if (windowOperation === AppletDecoration.Types.ToggleMaximize) {
             windowInfoLoader.item.toggleMaximized();
         } else if (windowOperation === AppletDecoration.Types.ToggleMinimize) {
@@ -352,6 +409,19 @@
                                                    root.height - 2 * 
thickPadding :
                                                    root.width - 2 * 
thickPadding
 
+        onButtonThicknessChanged: console.log("Window Buttons Applet :: Button 
Thickness ::: " + buttonThickness);
+
+        opacity: emptySpaceEnabled && mustHide && !inEditMode ? 0 : 1
+        visible: opacity === 0 ? false : true
+
+        Behavior on opacity {
+            enabled: emptySpaceEnabled
+            NumberAnimation {
+                duration: 250
+                easing.type: Easing.InCubic
+            }
+        }
+
         Repeater {
             id: buttonsRepeater
             model: controlButtonsModel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/applet-window-buttons-0.6.0/package/metadata.desktop 
new/applet-window-buttons-0.7.0/package/metadata.desktop
--- old/applet-window-buttons-0.6.0/package/metadata.desktop    2019-08-28 
14:05:02.000000000 +0200
+++ new/applet-window-buttons-0.7.0/package/metadata.desktop    2019-11-24 
08:12:31.000000000 +0100
@@ -15,7 +15,7 @@
 [email protected]
 X-KDE-PluginInfo-License=GPLv2
 X-KDE-PluginInfo-Name=org.kde.windowbuttons
-X-KDE-PluginInfo-Version=0.6.0
+X-KDE-PluginInfo-Version=0.7.0
 X-KDE-PluginInfo-Website=https://github.com/psifidotos/applet-window-buttons
 X-KDE-ServiceTypes=Plasma/Applet
 


Reply via email to