diff --git a/kcms/activities/ActivitiesTab.cpp b/kcms/activities/ActivitiesTab.cpp index 5123f51be7f50b3bfd8fa8d4cd3a226c38127907..33e4cbc625e3c7dc2275c75597ccc57bbc7769c4 100644 --- a/kcms/activities/ActivitiesTab.cpp +++ b/kcms/activities/ActivitiesTab.cpp @@ -35,26 +35,19 @@ #include "kactivities-kcm-features.h" -#include "utils.h" - class ActivitiesTab::Private { public: - std::unique_ptr viewActivities; ExtraActivitiesInterface *extraActivitiesInterface; }; ActivitiesTab::ActivitiesTab(QWidget *parent) - : QWidget(parent) + : QQuickWidget(parent) , d() { - new QVBoxLayout(this); - - d->extraActivitiesInterface = new ExtraActivitiesInterface(this); - - d->viewActivities = createView(this); - d->viewActivities->rootContext()->setContextProperty( - QStringLiteral("kactivitiesExtras"), d->extraActivitiesInterface); - setViewSource(d->viewActivities, QStringLiteral("/qml/activitiesTab/main.qml")); + setClearColor(QGuiApplication::palette().window().color()); + setResizeMode(QQuickWidget::SizeRootObjectToView); + rootContext()->setContextProperty(QStringLiteral("kactivitiesExtras"), d->extraActivitiesInterface); + setSource(QUrl::fromLocalFile(KAMD_KCM_DATADIR + QStringLiteral("/qml/activitiesTab/main.qml"))); } ActivitiesTab::~ActivitiesTab() diff --git a/kcms/activities/ActivitiesTab.h b/kcms/activities/ActivitiesTab.h index 24162b12db0fbe8140385eaf7923dc3e7a9ec8c8..f88a7ab25876d43d50e89af58a9b407fdd841c5c 100644 --- a/kcms/activities/ActivitiesTab.h +++ b/kcms/activities/ActivitiesTab.h @@ -21,14 +21,14 @@ #ifndef ACTIVITIES_TAB_H #define ACTIVITIES_TAB_H -#include +#include #include /** * ActivitiesTab */ -class ActivitiesTab : public QWidget { +class ActivitiesTab : public QQuickWidget { Q_OBJECT public: explicit ActivitiesTab(QWidget *parent); diff --git a/kcms/activities/CMakeLists.txt b/kcms/activities/CMakeLists.txt index 70a423e271ddb769afebe96a7e7d9cd0a2eee49a..a5d152858554490bfa0f51767f760cbb6e41777e 100644 --- a/kcms/activities/CMakeLists.txt +++ b/kcms/activities/CMakeLists.txt @@ -56,6 +56,7 @@ add_library (kcm_activities MODULE ${KAMD_KCM_SRCS}) target_link_libraries (kcm_activities Qt5::Quick + Qt5::QuickWidgets Qt5::Core Qt5::Sql Qt5::Qml diff --git a/kcms/activities/PrivacyTab.cpp b/kcms/activities/PrivacyTab.cpp index 7f36bf8172f1789d87db248bbace4361b2a7b411..5bc155f240378a53ab47536f87c444e5b3448940 100644 --- a/kcms/activities/PrivacyTab.cpp +++ b/kcms/activities/PrivacyTab.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include #include #include @@ -43,22 +43,16 @@ #include "common/dbus/common.h" -#include "utils.h" - class PrivacyTab::Private : public Ui::PrivacyTabBase { public: KActivityManagerdSettings *mainConfig; KActivityManagerdPluginsSettings *pluginConfig; BlacklistedApplicationsModel *blacklistedApplicationsModel; - QObject *viewBlacklistedApplicationsRoot; - std::unique_ptr viewBlacklistedApplications; Private(QObject *parent) : mainConfig(new KActivityManagerdSettings(parent)) , pluginConfig(new KActivityManagerdPluginsSettings(parent)) - , viewBlacklistedApplicationsRoot(nullptr) - , viewBlacklistedApplications(nullptr) { } }; @@ -104,14 +98,10 @@ PrivacyTab::PrivacyTab(QWidget *parent) connect(d->blacklistedApplicationsModel, &BlacklistedApplicationsModel::changed, this, &PrivacyTab::blackListModelChanged); connect(d->blacklistedApplicationsModel, &BlacklistedApplicationsModel::defaulted, this, &PrivacyTab::blackListModelDefaulted); - new QGridLayout(d->viewBlacklistedApplicationsContainer); - - d->viewBlacklistedApplications - = createView(d->viewBlacklistedApplicationsContainer); + d->viewBlacklistedApplications->setClearColor(QGuiApplication::palette().window().color()); d->viewBlacklistedApplications->rootContext()->setContextProperty( QStringLiteral("applicationModel"), d->blacklistedApplicationsModel); - setViewSource(d->viewBlacklistedApplications, - QStringLiteral("/qml/privacyTab/BlacklistApplicationView.qml")); + d->viewBlacklistedApplications->setSource(QUrl::fromLocalFile(KAMD_KCM_DATADIR + QStringLiteral("/qml/privacyTab/BlacklistApplicationView.qml"))); // React to changes diff --git a/kcms/activities/imports/dialog.cpp b/kcms/activities/imports/dialog.cpp index 0ef4f011516cbfa7329dff542194195914493d27..7f36ce639626aac6aade3f0529b81d7a9419606d 100644 --- a/kcms/activities/imports/dialog.cpp +++ b/kcms/activities/imports/dialog.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -47,7 +48,6 @@ #include "common/dbus/common.h" #include "utils/continue_with.h" #include "utils/d_ptr_implementation.h" -#include "../utils.h" class Dialog::Private { public: @@ -82,11 +82,14 @@ public: view->rootContext()->setContextProperty(QStringLiteral("dialog"), q); - if (setViewSource(view, QStringLiteral("/qml/activityDialog/") + file)) { + const QString sourceFile = QStringLiteral(KAMD_KCM_DATADIR) +"qml/activityDialog/" + file; + + if (QFile::exists(sourceFile)) { + view->setSource(QUrl::fromLocalFile(sourceFile)); tabs->addTab(view, title); } else { message->setText(i18n("Error loading the QML files. Check your installation.\nMissing %1", - QStringLiteral(KAMD_KCM_DATADIR) + QStringLiteral("/qml/activityDialog/") + file)); + sourceFile)); message->setVisible(true); } diff --git a/kcms/activities/ui/PrivacyTabBase.ui b/kcms/activities/ui/PrivacyTabBase.ui index cef3bfccdbb4aa8e801cdbf5d15f1ff3251ecf4a..a14bfbcc7bfd8ef075ef57e65b89ef713dda6c32 100644 --- a/kcms/activities/ui/PrivacyTabBase.ui +++ b/kcms/activities/ui/PrivacyTabBase.ui @@ -6,7 +6,7 @@ 0 0 - 500 + 629 500 @@ -63,33 +63,33 @@ true - - - - - For a&ll applications - - - true - - - - - - - &Do not remember - - - - - - - O&nly for specific applications: - - - - - + + + + + For a&ll applications + + + true + + + + + + + &Do not remember + + + + + + + O&nly for specific applications: + + + + + @@ -101,13 +101,22 @@ - + - + 0 0 + + + 0 + 200 + + + + QQuickWidget::SizeRootObjectToView + @@ -132,25 +141,14 @@ QFrame
kmessagewidget.h
+ + QQuickWidget + QWidget +
QtQuickWidgets/QQuickWidget
+
- - radioRememberSpecificApplications - toggled(bool) - viewBlacklistedApplicationsContainer - setEnabled(bool) - - - 352 - 167 - - - 249 - 363 - - - radioRememberSpecificApplications toggled(bool) diff --git a/kcms/activities/utils.h b/kcms/activities/utils.h deleted file mode 100644 index 13a7f0f45f0a968c28c3362c31c9b8698aa7374a..0000000000000000000000000000000000000000 --- a/kcms/activities/utils.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2015 - 2016 by Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License or (at your option) version 3 or any later version - * accepted by the membership of KDE e.V. (or its successor approved - * by the membership of KDE e.V.), which shall act as a proxy - * defined in Section 14 of version 3 of the license. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef UTILS_H -#define UTILS_H - -#include - -inline std::unique_ptr createView(QWidget *parent) -{ - auto view = new QQuickView(); - view->setColor(QGuiApplication::palette().window().color()); - view->setResizeMode(QQuickView::SizeRootObjectToView); - - auto container = QWidget::createWindowContainer(view, parent); - container->setFocusPolicy(Qt::TabFocus); - - parent->layout()->addWidget(container); - - return std::unique_ptr(view); -} - -template -inline bool setViewSource(View &view, const QString &file) -{ - QString sourceFile = QStringLiteral(KAMD_KCM_DATADIR) + file; - - if (QFile::exists(sourceFile)) { - view->setSource(QUrl::fromLocalFile(sourceFile)); - - return true; - - } else { - return false; - } - -} - -#endif // UTILS_H -