track KWin Colors Script presence in system

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

@ -32,10 +32,13 @@
// KDE // KDE
#include <KActivities/Consumer> #include <KActivities/Consumer>
#include <KDirWatch>
#define KWINMETAFORWARDTOLATTESTRING "org.kde.lattedock,/Latte,org.kde.LatteDock,activateLauncherMenu" #define KWINMETAFORWARDTOLATTESTRING "org.kde.lattedock,/Latte,org.kde.LatteDock,activateLauncherMenu"
#define KWINMETAFORWARDTOPLASMASTRING "org.kde.plasmashell,/PlasmaShell,org.kde.PlasmaShell,activateLauncherMenu" #define KWINMETAFORWARDTOPLASMASTRING "org.kde.plasmashell,/PlasmaShell,org.kde.PlasmaShell,activateLauncherMenu"
#define KWINCOLORSSCRIPT "kwin/scripts/lattewindowcolors"
namespace Latte { namespace Latte {
UniversalSettings::UniversalSettings(KSharedConfig::Ptr config, QObject *parent) UniversalSettings::UniversalSettings(KSharedConfig::Ptr config, QObject *parent)
@ -83,6 +86,17 @@ void UniversalSettings::load()
//! load configuration //! load configuration
loadConfig(); 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 //! this is needed to inform globalshortcuts to update its modifiers tracking
emit metaPressAndHoldEnabledChanged(); emit metaPressAndHoldEnabledChanged();
} }
@ -285,6 +299,35 @@ void UniversalSettings::setCanDisableBorders(bool enable)
emit canDisableBordersChanged(); 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 bool UniversalSettings::metaForwardedToLatte() const
{ {
return kwin_metaForwardedToLatte(); return kwin_metaForwardedToLatte();

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

Loading…
Cancel
Save