diff --git a/src/desktoptheme/breeze/icons/configure.svgz b/src/desktoptheme/breeze/icons/configure.svgz index 90fa8a67c..330b3f41a 100644 Binary files a/src/desktoptheme/breeze/icons/configure.svgz and b/src/desktoptheme/breeze/icons/configure.svgz differ diff --git a/src/plasma/containment.cpp b/src/plasma/containment.cpp index c897f3f04..ce63e9113 100644 --- a/src/plasma/containment.cpp +++ b/src/plasma/containment.cpp @@ -145,6 +145,13 @@ void Containment::init() actions()->addAction("lock widgets", lockDesktopAction); } } + + //HACK: this is valid only in the systray case + connect(this, &Containment::configureRequested, [=] (Plasma::Applet *a) { + if (Plasma::Applet *p = qobject_cast(parent())) { + emit p->containment()->configureRequested(a); + } + }); } // helper function for sorting the list of applets diff --git a/src/plasmaquick/configview.cpp b/src/plasmaquick/configview.cpp index 727291c0e..cc316626d 100644 --- a/src/plasmaquick/configview.cpp +++ b/src/plasmaquick/configview.cpp @@ -53,11 +53,13 @@ public: ConfigView *q; QWeakPointer applet; ConfigModel *configModel; + Plasma::Corona *corona; }; ConfigViewPrivate::ConfigViewPrivate(Plasma::Applet *appl, ConfigView *view) : q(view), - applet(appl) + applet(appl), + corona(0) { } @@ -75,8 +77,16 @@ void ConfigViewPrivate::init() q->setColor(Qt::transparent); q->setTitle(i18n("%1 Settings", applet.data()->title())); - if (!applet.data()->containment()->corona()->package().isValid()) { + //systray case + if (!applet.data()->containment()->corona()) { + Plasma::Applet *a = qobject_cast(applet.data()->containment()->parent()); + if (a) { + corona = a->containment()->corona(); + } + } else if (!applet.data()->containment()->corona()->package().isValid()) { qWarning() << "Invalid home screen package"; + } else { + corona = applet.data()->containment()->corona(); } q->setResizeMode(QQuickView::SizeViewToRootObject); @@ -116,7 +126,7 @@ ConfigView::~ConfigView() void ConfigView::init() { - setSource(QUrl::fromLocalFile(d->applet.data()->containment()->corona()->package().filePath("appletconfigurationui"))); + setSource(QUrl::fromLocalFile(d->corona->package().filePath("appletconfigurationui"))); } ConfigModel *ConfigView::configModel() const