summaryrefslogtreecommitdiffstats
path: root/src/MainWindow.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2023-06-19 01:38:40 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2023-06-19 01:38:40 +0200
commitce1a64bc19ffc21e115bdf2587bb053d7a417f3e (patch)
treea195d127228218772a535448de642f0bb7b6d053 /src/MainWindow.cpp
parent2cb04fd741f0ffe29badb0d0e4772d127b91e9d9 (diff)
Move to automatic type registration
Diffstat (limited to 'src/MainWindow.cpp')
-rw-r--r--src/MainWindow.cpp215
1 files changed, 52 insertions, 163 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 51b23e0f..d06171de 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -25,21 +25,15 @@
#include "InviteesModel.h"
#include "JdenticonProvider.h"
#include "Logging.h"
-#include "LoginPage.h"
#include "MainWindow.h"
#include "MatrixClient.h"
#include "MemberList.h"
#include "MxcImageProvider.h"
#include "PowerlevelsEditModels.h"
-#include "ReadReceiptsModel.h"
-#include "RegisterPage.h"
-#include "RoomDirectoryModel.h"
-#include "RoomsModel.h"
#include "SingleImagePackModel.h"
#include "TrayIcon.h"
#include "UserDirectoryModel.h"
#include "UserSettingsPage.h"
-#include "UsersModel.h"
#include "Utils.h"
#include "dock/Dock.h"
#include "emoji/Provider.h"
@@ -48,12 +42,6 @@
#include "timeline/DelegateChooser.h"
#include "timeline/TimelineFilter.h"
#include "timeline/TimelineViewManager.h"
-#include "ui/HiddenEvents.h"
-#include "ui/MxcAnimatedImage.h"
-#include "ui/MxcMediaProxy.h"
-#include "ui/NhekoCursorShape.h"
-#include "ui/NhekoDropArea.h"
-#include "ui/NhekoEventObserver.h"
#include "ui/NhekoGlobalObject.h"
#include "ui/RoomSummary.h"
#include "ui/UIA.h"
@@ -83,7 +71,7 @@ MainWindow::MainWindow(QWindow *parent)
registerQmlTypes();
setColor(Theme::paletteFromTheme(userSettings_->theme()).window().color());
- setSource(QUrl(QStringLiteral("qrc:///qml/Root.qml")));
+ setSource(QUrl(QStringLiteral("qrc:///resources/qml/Root.qml")));
trayIcon_ = new TrayIcon(QStringLiteral(":/logos/nheko.svg"), this);
@@ -132,156 +120,57 @@ MainWindow::MainWindow(QWindow *parent)
void
MainWindow::registerQmlTypes()
{
- qmlRegisterUncreatableMetaObject(qml_mtx_events::staticMetaObject,
- "im.nheko",
- 1,
- 0,
- "MtxEvent",
- QStringLiteral("Can't instantiate enum!"));
- qmlRegisterUncreatableMetaObject(
- olm::staticMetaObject, "im.nheko", 1, 0, "Olm", QStringLiteral("Can't instantiate enum!"));
- qmlRegisterUncreatableMetaObject(crypto::staticMetaObject,
- "im.nheko",
- 1,
- 0,
- "Crypto",
- QStringLiteral("Can't instantiate enum!"));
- qmlRegisterUncreatableMetaObject(verification::staticMetaObject,
- "im.nheko",
- 1,
- 0,
- "VerificationStatus",
- QStringLiteral("Can't instantiate enum!"));
-
- qmlRegisterType<DelegateChoice>("im.nheko", 1, 0, "DelegateChoice");
- qmlRegisterType<DelegateChooser>("im.nheko", 1, 0, "DelegateChooser");
- qmlRegisterType<NhekoDropArea>("im.nheko", 1, 0, "NhekoDropArea");
- qmlRegisterType<NhekoCursorShape>("im.nheko", 1, 0, "CursorShape");
- qmlRegisterType<NhekoEventObserver>("im.nheko", 1, 0, "EventObserver");
- qmlRegisterType<MxcAnimatedImage>("im.nheko", 1, 0, "MxcAnimatedImage");
- qmlRegisterType<MxcMediaProxy>("im.nheko", 1, 0, "MxcMedia");
- qmlRegisterType<RoomDirectoryModel>("im.nheko", 1, 0, "RoomDirectoryModel");
- qmlRegisterType<UserDirectoryModel>("im.nheko", 1, 0, "UserDirectoryModel");
- qmlRegisterType<LoginPage>("im.nheko", 1, 0, "Login");
- qmlRegisterType<RegisterPage>("im.nheko", 1, 0, "Registration");
- qmlRegisterType<HiddenEvents>("im.nheko", 1, 0, "HiddenEvents");
- qmlRegisterType<TimelineFilter>("im.nheko", 1, 0, "TimelineFilter");
- qmlRegisterUncreatableType<RoomSummary>(
- "im.nheko",
- 1,
- 0,
- "RoomSummary",
- QStringLiteral("Please use joinRoom to create a room summary."));
- qmlRegisterUncreatableType<AliasEditingModel>(
- "im.nheko",
- 1,
- 0,
- "AliasEditingModel",
- QStringLiteral("Please use editAliases to create the models"));
-
- qmlRegisterUncreatableType<PowerlevelEditingModels>(
- "im.nheko",
- 1,
- 0,
- "PowerlevelEditingModels",
- QStringLiteral("Please use editPowerlevels to create the models"));
- qmlRegisterUncreatableType<DeviceVerificationFlow>(
- "im.nheko",
- 1,
- 0,
- "DeviceVerificationFlow",
- QStringLiteral("Can't create verification flow from QML!"));
- qmlRegisterUncreatableType<UserProfile>(
- "im.nheko",
- 1,
- 0,
- "UserProfileModel",
- QStringLiteral("UserProfile needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<MemberList>(
- "im.nheko",
- 1,
- 0,
- "MemberList",
- QStringLiteral("MemberList needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<RoomSettings>(
- "im.nheko",
- 1,
- 0,
- "RoomSettingsModel",
- QStringLiteral("Room Settings needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<TimelineModel>(
- "im.nheko", 1, 0, "Room", QStringLiteral("Room needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<ImagePackListModel>(
- "im.nheko",
- 1,
- 0,
- "ImagePackListModel",
- QStringLiteral("ImagePackListModel needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<SingleImagePackModel>(
- "im.nheko",
- 1,
- 0,
- "SingleImagePackModel",
- QStringLiteral("SingleImagePackModel needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<InviteesModel>(
- "im.nheko",
- 1,
- 0,
- "InviteesModel",
- QStringLiteral("InviteesModel needs to be instantiated on the C++ side"));
- qmlRegisterUncreatableType<ReadReceiptsProxy>(
- "im.nheko",
- 1,
- 0,
- "ReadReceiptsProxy",
- QStringLiteral("ReadReceiptsProxy needs to be instantiated on the C++ side"));
-
- qmlRegisterSingletonType<Clipboard>(
- "im.nheko", 1, 0, "Clipboard", [](QQmlEngine *, QJSEngine *) -> QObject * {
- return new Clipboard();
- });
- qmlRegisterSingletonType<Nheko>(
- "im.nheko", 1, 0, "Nheko", [](QQmlEngine *, QJSEngine *) -> QObject * {
- return new Nheko();
- });
- qmlRegisterSingletonType<UserSettingsModel>(
- "im.nheko", 1, 0, "UserSettingsModel", [](QQmlEngine *, QJSEngine *) -> QObject * {
- return new UserSettingsModel();
- });
-
- qmlRegisterSingletonInstance("im.nheko", 1, 0, "Settings", userSettings_.data());
-
- qmlRegisterUncreatableType<FilteredCommunitiesModel>(
- "im.nheko",
- 1,
- 0,
- "FilteredCommunitiesModel",
- QStringLiteral("Use Communities.filtered() to create a FilteredCommunitiesModel"));
-
- qmlRegisterUncreatableType<MediaUpload>(
- "im.nheko", 1, 0, "MediaUpload", QStringLiteral("MediaUploads can not be created in Qml"));
- qmlRegisterUncreatableMetaObject(emoji::staticMetaObject,
- "im.nheko.EmojiModel",
- 1,
- 0,
- "EmojiCategory",
- QStringLiteral("Error: Only enums"));
-
- qmlRegisterType<RoomDirectoryModel>("im.nheko", 1, 0, "RoomDirectoryModel");
-
- qmlRegisterSingletonType<SelfVerificationStatus>(
- "im.nheko", 1, 0, "SelfVerificationStatus", [](QQmlEngine *, QJSEngine *) -> QObject * {
- auto ptr = new SelfVerificationStatus();
- QObject::connect(ChatPage::instance(),
- &ChatPage::initializeEmptyViews,
- ptr,
- &SelfVerificationStatus::invalidate);
- return ptr;
- });
- qmlRegisterSingletonInstance("im.nheko", 1, 0, "MainWindow", this);
- qmlRegisterSingletonInstance("im.nheko", 1, 0, "UIA", UIA::instance());
- qmlRegisterSingletonInstance(
- "im.nheko", 1, 0, "CallManager", ChatPage::instance()->callManager());
+ // qmlRegisterUncreatableType<DeviceVerificationFlow>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "DeviceVerificationFlow",
+ // QStringLiteral("Can't create verification flow from QML!"));
+ // qmlRegisterUncreatableType<UserProfile>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "UserProfileModel",
+ // QStringLiteral("UserProfile needs to be instantiated on the C++ side"));
+ // qmlRegisterUncreatableType<MemberList>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "MemberList",
+ // QStringLiteral("MemberList needs to be instantiated on the C++ side"));
+ // qmlRegisterUncreatableType<RoomSettings>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "RoomSettingsModel",
+ // QStringLiteral("Room Settings needs to be instantiated on the C++ side"));
+ // qmlRegisterUncreatableType<TimelineModel>(
+ // "im.nheko", 1, 0, "Room", QStringLiteral("Room needs to be instantiated on the C++ side"));
+ // qmlRegisterUncreatableType<ImagePackListModel>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "ImagePackListModel",
+ // QStringLiteral("ImagePackListModel needs to be instantiated on the C++ side"));
+ // qmlRegisterUncreatableType<SingleImagePackModel>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "SingleImagePackModel",
+ // QStringLiteral("SingleImagePackModel needs to be instantiated on the C++ side"));
+ // qmlRegisterUncreatableType<InviteesModel>(
+ // "im.nheko",
+ // 1,
+ // 0,
+ // "InviteesModel",
+ // QStringLiteral("InviteesModel needs to be instantiated on the C++ side"));
+
+ // qmlRegisterUncreatableMetaObject(emoji::staticMetaObject,
+ // "im.nheko.EmojiModel",
+ // 1,
+ // 0,
+ // "EmojiCategory",
+ // QStringLiteral("Error: Only enums"));
imgProvider = new MxcImageProvider();
engine()->addImageProvider(QStringLiteral("MxcImage"), imgProvider);