Move the screen prop up into AppletInterface.

This makes 'plasmoid.screen' available not just for con-
tainments, but for all applets, as required by the Task
Manager applet. Unfortunately Qt's APIs don't expose any
screen numbering, so that route was off the table.

Ack'ed by Marco Martin.
This commit is contained in:
Eike Hein 2013-09-04 11:40:32 +02:00
parent 47efcc2f03
commit c4075ddaed
4 changed files with 22 additions and 10 deletions

View File

@ -80,6 +80,10 @@ AppletInterface::AppletInterface(DeclarativeAppletScript *script, QQuickItem *pa
connect(m_appletScriptEngine, &DeclarativeAppletScript::contextChanged, connect(m_appletScriptEngine, &DeclarativeAppletScript::contextChanged,
this, &AppletInterface::contextChanged); this, &AppletInterface::contextChanged);
if (applet()->containment()) {
connect(applet()->containment(), &Plasma::Containment::screenChanged,
this, &ContainmentInterface::screenChanged);
}
m_qmlObject = new QmlObject(this); m_qmlObject = new QmlObject(this);
m_qmlObject->setInitializationDelayed(true); m_qmlObject->setInitializationDelayed(true);
@ -597,6 +601,15 @@ Plasma::Types::ItemStatus AppletInterface::status() const
return applet()->status(); return applet()->status();
} }
int AppletInterface::screen() const
{
if (applet()->containment()) {
return applet()->containment()->screen();
}
return -1;
}
QString AppletInterface::downloadPath(const QString &file) QString AppletInterface::downloadPath(const QString &file)
{ {
const QString downloadDir = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation) + "/Plasma/" + applet()->pluginInfo().pluginName() + '/'; const QString downloadDir = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation) + "/Plasma/" + applet()->pluginInfo().pluginName() + '/';

View File

@ -71,6 +71,12 @@ class AppletInterface : public QQuickItem
Q_PROPERTY(Plasma::Types::ItemStatus status READ status WRITE setStatus NOTIFY statusChanged) Q_PROPERTY(Plasma::Types::ItemStatus status READ status WRITE setStatus NOTIFY statusChanged)
Q_PROPERTY(QString associatedApplication WRITE setAssociatedApplication READ associatedApplication) Q_PROPERTY(QString associatedApplication WRITE setAssociatedApplication READ associatedApplication)
// TODO: This was moved up from ContainmentInterface because it is required by the
// Task Manager applet (for "Show only tasks from this screen") and no Qt API exposes
// screen numbering. An alternate solution that doesn't extend the applet interface
// would be preferrable if found.
Q_PROPERTY(int screen READ screen NOTIFY screenChanged)
//Size hints Note that the containments may chose to not respect them. //Size hints Note that the containments may chose to not respect them.
Q_PROPERTY(qreal minimumWidth READ minimumWidth NOTIFY minimumWidthChanged) Q_PROPERTY(qreal minimumWidth READ minimumWidth NOTIFY minimumWidthChanged)
Q_PROPERTY(qreal minimumHeight READ minimumHeight NOTIFY minimumHeightChanged) Q_PROPERTY(qreal minimumHeight READ minimumHeight NOTIFY minimumHeightChanged)
@ -149,6 +155,8 @@ public:
void setStatus(const Plasma::Types::ItemStatus &status); void setStatus(const Plasma::Types::ItemStatus &status);
Plasma::Types::ItemStatus status() const; Plasma::Types::ItemStatus status() const;
int screen() const;
QString activeConfig() const; QString activeConfig() const;
void setActiveConfig(const QString &name); void setActiveConfig(const QString &name);
@ -179,6 +187,7 @@ Q_SIGNALS:
void backgroundHintsChanged(); void backgroundHintsChanged();
void busyChanged(); void busyChanged();
void expandedChanged(); void expandedChanged();
void screenChanged();
void minimumWidthChanged(); void minimumWidthChanged();
void minimumHeightChanged(); void minimumHeightChanged();

View File

@ -63,8 +63,6 @@ ContainmentInterface::ContainmentInterface(DeclarativeAppletScript *parent)
this, &ContainmentInterface::appletRemovedForward); this, &ContainmentInterface::appletRemovedForward);
connect(containment(), &Plasma::Containment::appletAdded, connect(containment(), &Plasma::Containment::appletAdded,
this, &ContainmentInterface::appletAddedForward); this, &ContainmentInterface::appletAddedForward);
connect(containment(), &Plasma::Containment::screenChanged,
this, &ContainmentInterface::screenChanged);
connect(containment(), &Plasma::Containment::activityChanged, connect(containment(), &Plasma::Containment::activityChanged,
this, &ContainmentInterface::activityChanged); this, &ContainmentInterface::activityChanged);
connect(containment(), &Plasma::Containment::wallpaperChanged, connect(containment(), &Plasma::Containment::wallpaperChanged,
@ -127,11 +125,6 @@ void ContainmentInterface::setContainmentType(Plasma::Types::ContainmentType typ
m_appletScriptEngine->setContainmentType(type); m_appletScriptEngine->setContainmentType(type);
} }
int ContainmentInterface::screen() const
{
return containment()->screen();
}
void ContainmentInterface::lockWidgets(bool locked) void ContainmentInterface::lockWidgets(bool locked)
{ {
containment()->setImmutability(!locked ? Plasma::Types::Mutable : Plasma::Types::UserImmutable); containment()->setImmutability(!locked ? Plasma::Types::Mutable : Plasma::Types::UserImmutable);

View File

@ -40,7 +40,6 @@ class ContainmentInterface : public AppletInterface
Q_PROPERTY(QList <QObject *> applets READ applets NOTIFY appletsChanged) Q_PROPERTY(QList <QObject *> applets READ applets NOTIFY appletsChanged)
Q_PROPERTY(bool drawWallpaper READ drawWallpaper WRITE setDrawWallpaper) Q_PROPERTY(bool drawWallpaper READ drawWallpaper WRITE setDrawWallpaper)
Q_PROPERTY(Plasma::Types::ContainmentType containmentType READ containmentType WRITE setContainmentType) Q_PROPERTY(Plasma::Types::ContainmentType containmentType READ containmentType WRITE setContainmentType)
Q_PROPERTY(int screen READ screen NOTIFY screenChanged)
Q_PROPERTY(QString activity READ activity NOTIFY activityChanged) Q_PROPERTY(QString activity READ activity NOTIFY activityChanged)
public: public:
@ -57,7 +56,6 @@ public:
bool drawWallpaper(); bool drawWallpaper();
Plasma::Types::ContainmentType containmentType() const; Plasma::Types::ContainmentType containmentType() const;
void setContainmentType(Plasma::Types::ContainmentType type); void setContainmentType(Plasma::Types::ContainmentType type);
int screen() const;
QString activity() const; QString activity() const;
@ -78,7 +76,6 @@ protected:
Q_SIGNALS: Q_SIGNALS:
void appletAdded(QObject *applet, int x, int y); void appletAdded(QObject *applet, int x, int y);
void appletRemoved(QObject *applet); void appletRemoved(QObject *applet);
void screenChanged();
void activityChanged(); void activityChanged();
void availableScreenRegionChanged(); void availableScreenRegionChanged();
void appletsChanged(); void appletsChanged();