From e79ced22aebd1c9d5455fd9b5371ca122779d9ba Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Thu, 4 Aug 2022 14:41:49 +0200 Subject: [PATCH] Clean up QML registration Signed-off-by: Claudio Cambra --- src/gui/main.cpp | 24 +------------------- src/gui/owncloudgui.cpp | 50 ++++++++++++++++++++++++++++++++--------- src/gui/systray.cpp | 27 ---------------------- 3 files changed, 40 insertions(+), 61 deletions(-) diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 7b457366a9823..d5d106efd0b4b 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -16,7 +16,6 @@ #include #include -#include #ifdef Q_OS_UNIX #include @@ -24,14 +23,9 @@ #endif #include "application.h" -#include "fileactivitylistmodel.h" +#include "cocoainitializer.h" #include "theme.h" #include "common/utility.h" -#include "cocoainitializer.h" -#include "userstatusselectormodel.h" -#include "emojimodel.h" -#include "tray/syncstatussummary.h" -#include "tray/unifiedsearchresultslistmodel.h" #if defined(BUILD_UPDATER) #include "updater/updater.h" @@ -67,22 +61,6 @@ int main(int argc, char **argv) Q_INIT_RESOURCE(resources); Q_INIT_RESOURCE(theme); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "SyncStatusSummary"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "EmojiModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "UserStatusSelectorModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "ActivityListModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "FileActivityListModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "Theme"); - qmlRegisterUncreatableType( - "com.nextcloud.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); - qRegisterMetaType("UnifiedSearchResultsListModel*"); - - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "UserStatus", "Access to Status enum"); - - qRegisterMetaTypeStreamOperators(); - qRegisterMetaType("UserStatus"); - - // Work around a bug in KDE's qqc2-desktop-style which breaks // buttons with icons not based on a name, by forcing a style name // the platformtheme plugin won't try to force qqc2-desktops-style diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index db4d4e3c6554c..f9a1c8056a196 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -12,23 +12,31 @@ * for more details. */ -#include "application.h" #include "owncloudgui.h" -#include "theme.h" -#include "folderman.h" -#include "progressdispatcher.h" -#include "owncloudsetupwizard.h" -#include "sharedialog.h" -#include "settingsdialog.h" -#include "logger.h" -#include "logbrowser.h" + #include "account.h" +#include "accountmanager.h" #include "accountstate.h" +#include "application.h" +#include "callstatechecker.h" +#include "emojimodel.h" +#include "fileactivitylistmodel.h" +#include "folderman.h" +#include "guiutility.h" +#include "logbrowser.h" +#include "logger.h" #include "openfilemanager.h" -#include "accountmanager.h" +#include "owncloudsetupwizard.h" +#include "progressdispatcher.h" +#include "settingsdialog.h" +#include "sharedialog.h" +#include "theme.h" +#include "wheelhandler.h" #include "common/syncjournalfilerecord.h" #include "creds/abstractcredentials.h" -#include "guiutility.h" +#include "tray/syncstatussummary.h" +#include "tray/unifiedsearchresultslistmodel.h" + #ifdef WITH_LIBCLOUDPROVIDERS #include "cloudproviders/cloudprovidermanager.h" #endif @@ -107,6 +115,26 @@ ownCloudGui::ownCloudGui(Application *parent) this, &ownCloudGui::slotShowOptionalTrayMessage); connect(Logger::instance(), &Logger::guiMessage, this, &ownCloudGui::slotShowGuiMessage); + + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "SyncStatusSummary"); + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "EmojiModel"); + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "UserStatusSelectorModel"); + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "ActivityListModel"); + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "FileActivityListModel"); + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "WheelHandler"); + qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "CallStateChecker"); + + qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); + qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "UserStatus", "Access to Status enum"); + + qRegisterMetaTypeStreamOperators(); + qRegisterMetaType("UnifiedSearchResultsListModel*"); + qRegisterMetaType("UserStatus"); + + qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "UserModel", UserModel::instance()); + qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "UserAppsModel", UserAppsModel::instance()); + qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "Theme", Theme::instance()); + qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "Systray", Systray::instance()); } void ownCloudGui::createTray() diff --git a/src/gui/systray.cpp b/src/gui/systray.cpp index 51ba0e267f2f1..05ced5e36bd78 100644 --- a/src/gui/systray.cpp +++ b/src/gui/systray.cpp @@ -74,33 +74,6 @@ void Systray::setTrayEngine(QQmlApplicationEngine *trayEngine) Systray::Systray() : QSystemTrayIcon(nullptr) { - qmlRegisterSingletonType("com.nextcloud.desktopclient", 1, 0, "UserModel", - [](QQmlEngine *, QJSEngine *) -> QObject * { - return UserModel::instance(); - } - ); - - qmlRegisterSingletonType("com.nextcloud.desktopclient", 1, 0, "UserAppsModel", - [](QQmlEngine *, QJSEngine *) -> QObject * { - return UserAppsModel::instance(); - } - ); - - qmlRegisterSingletonType("com.nextcloud.desktopclient", 1, 0, "Theme", - [](QQmlEngine *, QJSEngine *) -> QObject * { - return Theme::instance(); - } - ); - - qmlRegisterSingletonType("com.nextcloud.desktopclient", 1, 0, "Systray", - [](QQmlEngine *, QJSEngine *) -> QObject * { - return Systray::instance(); - } - ); - - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "WheelHandler"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "CallStateChecker"); - #if defined(Q_OS_MACOS) && defined(BUILD_OWNCLOUD_OSX_BUNDLE) setUserNotificationCenterDelegate(); checkNotificationAuth(MacNotificationAuthorizationOptions::Default); // No provisional auth, ask user explicitly first time