track KWin Colors Script presence in system

pull/6/head
Michail Vourlakos 6 years ago
parent a5ce2f97c6
commit 88ba9f4b75

@ -32,10 +32,13 @@
// KDE
#include <KActivities/Consumer>
#include <KDirWatch>
#define KWINMETAFORWARDTOLATTESTRING "org.kde.lattedock,/Latte,org.kde.LatteDock,activateLauncherMenu"
#define KWINMETAFORWARDTOPLASMASTRING "org.kde.plasmashell,/PlasmaShell,org.kde.PlasmaShell,activateLauncherMenu"
#define KWINCOLORSSCRIPT "kwin/scripts/lattewindowcolors"
namespace Latte {
UniversalSettings::UniversalSettings(KSharedConfig::Ptr config, QObject *parent)
@ -83,6 +86,17 @@ void UniversalSettings::load()
//! load configuration
loadConfig();
//! Track KWin Colors Script Presence
updateColorsScriptIsPresent();
QStringList colorsScriptPaths = Layouts::Importer::standardPathsFor(KWINCOLORSSCRIPT);
for(auto path: colorsScriptPaths) {
KDirWatch::self()->addDir(path);
}
connect(KDirWatch::self(), &KDirWatch::dirty, this, &UniversalSettings::colorsScriptChanged);
connect(KDirWatch::self(), &KDirWatch::created, this, &UniversalSettings::colorsScriptChanged);
//! this is needed to inform globalshortcuts to update its modifiers tracking
emit metaPressAndHoldEnabledChanged();
}
@ -285,6 +299,35 @@ void UniversalSettings::setCanDisableBorders(bool enable)
emit canDisableBordersChanged();
}
bool UniversalSettings::colorsScriptIsPresent() const
{
return m_colorsScriptIsPresent;
}
void UniversalSettings::setColorsScriptIsPresent(bool present)
{
if (m_colorsScriptIsPresent == present) {
return;
}
m_colorsScriptIsPresent = present;
emit colorsScriptIsPresentChanged();
}
void UniversalSettings::updateColorsScriptIsPresent()
{
setColorsScriptIsPresent(!Layouts::Importer::standardPath(KWINCOLORSSCRIPT).isEmpty());
}
void UniversalSettings::colorsScriptChanged(const QString &file)
{
if (!file.endsWith(KWINCOLORSSCRIPT)) {
return;
}
updateColorsScriptIsPresent();
}
bool UniversalSettings::metaForwardedToLatte() const
{
return kwin_metaForwardedToLatte();

@ -54,6 +54,7 @@ class UniversalSettings : public QObject
{
Q_OBJECT
Q_PROPERTY(bool autostart READ autostart WRITE setAutostart NOTIFY autostartChanged)
Q_PROPERTY(bool colorsScriptIsPresent READ colorsScriptIsPresent NOTIFY colorsScriptIsPresentChanged)
Q_PROPERTY(bool showInfoWindow READ showInfoWindow WRITE setShowInfoWindow NOTIFY showInfoWindowChanged)
Q_PROPERTY(QString currentLayoutName READ currentLayoutName WRITE setCurrentLayoutName NOTIFY currentLayoutNameChanged)
@ -76,6 +77,8 @@ public:
bool canDisableBorders() const;
void setCanDisableBorders(bool enable);
bool colorsScriptIsPresent() const;
bool metaForwardedToLatte() const;
void forwardMetaToLatte(bool forward);
@ -127,6 +130,7 @@ public slots:
signals:
void autostartChanged();
void canDisableBordersChanged();
void colorsScriptIsPresentChanged();
void currentLayoutNameChanged();
void downloadWindowSizeChanged();
void lastNonAssignedLayoutNameChanged();
@ -147,17 +151,23 @@ private slots:
void saveConfig();
void saveScalesConfig();
void updateColorsScriptIsPresent();
void colorsScriptChanged(const QString &file);
private:
void cleanupSettings();
bool kwin_metaForwardedToLatte() const;
void kwin_forwardMetaToLatte(bool forward);
void setColorsScriptIsPresent(bool present);
Types::LayoutsMemoryUsage layoutsMemoryUsage() const;
void setLayoutsMemoryUsage(Types::LayoutsMemoryUsage layoutsMemoryUsage);
private:
bool m_canDisableBorders{false};
bool m_colorsScriptIsPresent{false};
bool m_metaPressAndHoldEnabled{true};
bool m_showInfoWindow{true};

Loading…
Cancel
Save