From fcd51b4c67176cfe5dc9e72d3731a861c678a3d5 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Sun, 13 Mar 2011 17:26:08 +0100 Subject: [PATCH] support availableScreenregion() FEATURE: bridge to Corona::availableScreenRegion(), as an array of rects --- .../javascript/plasmoid/appletinterface.cpp | 20 +++++++++++++++++++ .../javascript/plasmoid/appletinterface.h | 1 + 2 files changed, 21 insertions(+) diff --git a/scriptengines/javascript/plasmoid/appletinterface.cpp b/scriptengines/javascript/plasmoid/appletinterface.cpp index e062789d0..a541411a6 100644 --- a/scriptengines/javascript/plasmoid/appletinterface.cpp +++ b/scriptengines/javascript/plasmoid/appletinterface.cpp @@ -497,6 +497,26 @@ QScriptValue ContainmentInterface::screenGeometry(int id) const return val; } +QScriptValue ContainmentInterface::availableScreenRegion(int id) const +{ + QRegion reg; + if (containment()->corona()) { + reg = containment()->corona()->availableScreenRegion(id); + } + + QScriptValue regVal = m_appletScriptEngine->engine()->newArray(reg.rects().size()); + int i = 0; + foreach (QRect rect, reg.rects()) { + QScriptValue val = m_appletScriptEngine->engine()->newObject(); + val.setProperty("x", rect.x()); + val.setProperty("y", rect.y()); + val.setProperty("width", rect.width()); + val.setProperty("height", rect.height()); + regVal.setProperty(i++, val); + } + return regVal; +} + void ContainmentInterface::appletAddedForward(Plasma::Applet *applet, const QPointF &pos) { applet->setFlag(QGraphicsItem::ItemIsMovable, m_movableApplets); diff --git a/scriptengines/javascript/plasmoid/appletinterface.h b/scriptengines/javascript/plasmoid/appletinterface.h index edfcbc80a..ff0349c88 100644 --- a/scriptengines/javascript/plasmoid/appletinterface.h +++ b/scriptengines/javascript/plasmoid/appletinterface.h @@ -390,6 +390,7 @@ public: bool hasMovableApplets() const; Q_INVOKABLE QScriptValue screenGeometry(int id) const; + Q_INVOKABLE QScriptValue availableScreenRegion(int id) const; Q_SIGNALS: void appletAdded(QGraphicsWidget *applet, const QPointF &pos);