diff --git a/shell/scripting/scriptengine.cpp b/shell/scripting/scriptengine.cpp index 09b71a554..84d7d7483 100644 --- a/shell/scripting/scriptengine.cpp +++ b/shell/scripting/scriptengine.cpp @@ -812,6 +812,7 @@ void ScriptEngine::setupEngine() m_scriptSelf.setProperty("applicationPath", newFunction(ScriptEngine::applicationPath)); m_scriptSelf.setProperty("knownWallpaperPlugins", newFunction(ScriptEngine::knownWallpaperPlugins)); m_scriptSelf.setProperty("ConfigFile", newFunction(ScriptEngine::configFile)); + m_scriptSelf.setProperty("gridUnit", ScriptEngine::gridUnit()); setGlobalObject(m_scriptSelf); } @@ -845,6 +846,16 @@ QScriptValue ScriptEngine::desktops(QScriptContext *context, QScriptEngine *engi return containments; } +QScriptValue ScriptEngine::gridUnit() +{ + int gridUnit = QFontMetrics(QGuiApplication::font()).boundingRect("M").height(); + if (gridUnit % 2 != 0) { + gridUnit++; + } + + return gridUnit; +} + Plasma::Corona *ScriptEngine::corona() const { return m_corona; diff --git a/shell/scripting/scriptengine.h b/shell/scripting/scriptengine.h index 6909ded28..5ac892430 100644 --- a/shell/scripting/scriptengine.h +++ b/shell/scripting/scriptengine.h @@ -23,6 +23,8 @@ #include #include +#include + #include #include "../shellcorona.h" @@ -90,6 +92,7 @@ private: static QScriptValue userDataPath(QScriptContext *context, QScriptEngine *engine); static QScriptValue knownWallpaperPlugins(QScriptContext *context, QScriptEngine *engine); static QScriptValue configFile(QScriptContext *context, QScriptEngine *engine); + static QScriptValue gridUnit(); // helpers static QScriptValue createContainment(const QString &type, const QString &defautPlugin,