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