Make gridUnit available in the shell scripting

This makes it possible to set panel sizes based on the DPI and screen
size for example
wilder-5.14
Bhushan Shah 11 years ago
parent f5c61c4332
commit 4cdfdf52fb
  1. 11
      shell/scripting/scriptengine.cpp
  2. 3
      shell/scripting/scriptengine.h

@ -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;

@ -23,6 +23,8 @@
#include <QScriptEngine>
#include <QScriptValue>
#include <QFontMetrics>
#include <kactivities/controller.h>
#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,

Loading…
Cancel
Save