diff --git a/src/plasmaquick/appletquickitem.cpp b/src/plasmaquick/appletquickitem.cpp --- a/src/plasmaquick/appletquickitem.cpp +++ b/src/plasmaquick/appletquickitem.cpp @@ -65,6 +65,7 @@ qmlObject = new KDeclarative::QmlObjectSharedEngine(q); if (!qmlObject->engine()->urlInterceptor()) { PackageUrlInterceptor *interceptor = new PackageUrlInterceptor(qmlObject->engine(), KPackage::Package()); + interceptor->setForcePlasmaStyle(true); qmlObject->engine()->setUrlInterceptor(interceptor); } } diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp --- a/src/plasmaquick/dialog.cpp +++ b/src/plasmaquick/dialog.cpp @@ -1042,6 +1042,10 @@ { QQuickWindow::resizeEvent(re); + if (re->size().isEmpty() || re->size() != re->oldSize()) { + return; + } + //A dialog can be resized even if no mainItem has ever been set if (!d->mainItem) { return; diff --git a/src/plasmaquick/packageurlinterceptor.h b/src/plasmaquick/packageurlinterceptor.h --- a/src/plasmaquick/packageurlinterceptor.h +++ b/src/plasmaquick/packageurlinterceptor.h @@ -55,6 +55,9 @@ void removeAllowedPath(const QString &path); QStringList allowedPaths() const; + bool forcePlasmaStyle() const; + void setForcePlasmaStyle(bool force); + QUrl intercept(const QUrl &path, QQmlAbstractUrlInterceptor::DataType type) Q_DECL_OVERRIDE; static inline QByteArray prefixForType(QQmlAbstractUrlInterceptor::DataType type, const QString &fileName) diff --git a/src/plasmaquick/packageurlinterceptor.cpp b/src/plasmaquick/packageurlinterceptor.cpp --- a/src/plasmaquick/packageurlinterceptor.cpp +++ b/src/plasmaquick/packageurlinterceptor.cpp @@ -45,6 +45,7 @@ KPackage::Package package; QStringList allowedPaths; QQmlEngine *engine; + bool forcePlasmaStyle = false; //FIXME: those are going to be stuffed here and stay.. // they should probably be removed when the last applet of that type is removed @@ -81,9 +82,23 @@ return d->allowedPaths; } +bool PackageUrlInterceptor::forcePlasmaStyle() const +{ + return d->forcePlasmaStyle; +} + +void PackageUrlInterceptor::setForcePlasmaStyle(bool force) +{ + d->forcePlasmaStyle = force; +} + QUrl PackageUrlInterceptor::intercept(const QUrl &path, QQmlAbstractUrlInterceptor::DataType type) { //qDebug() << "Intercepted URL:" << path << type; + + if (d->forcePlasmaStyle && path.path().contains("Controls.2/org.kde.desktop/")) { + return QUrl::fromLocalFile(path.path().replace(QLatin1String("Controls.2/org.kde.desktop/"), QLatin1String("Controls.2/Plasma/"))); + } QString pkgRoot; KPackage::Package package; if (d->package.isValid()) { diff --git a/src/plasmaquick/view.cpp b/src/plasmaquick/view.cpp --- a/src/plasmaquick/view.cpp +++ b/src/plasmaquick/view.cpp @@ -191,6 +191,7 @@ const auto pkg = corona->kPackage(); if (pkg.isValid()) { PackageUrlInterceptor *interceptor = new PackageUrlInterceptor(engine(), pkg); + interceptor->setForcePlasmaStyle(true); engine()->setUrlInterceptor(interceptor); KDeclarative::KDeclarative kdeclarative;