Use declarative type registration for remaining types

This commit is contained in:
Tobias Fella
2024-04-10 20:47:29 +02:00
parent c344a3ee55
commit 3c4c538de8
41 changed files with 62 additions and 62 deletions

1
.gitignore vendored
View File

@@ -12,3 +12,4 @@ kate.project.ctags.*
.idea/
cmake-build-*
src/res.generated.qrc
.qmlls.ini

View File

@@ -174,6 +174,7 @@ add_library(neochat STATIC
sharehandler.h
models/roomtreeitem.cpp
models/roomtreeitem.h
foreigntypes.h
)
set_source_files_properties(qml/OsmLocationPlugin.qml PROPERTIES

View File

@@ -7,8 +7,6 @@ import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat.config
FormCard.FormCardPage {
id: root

56
src/foreigntypes.h Normal file
View File

@@ -0,0 +1,56 @@
// SPDX-FileCopyrightText: 2024 Tobias Fella <tobias.fella@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#pragma once
#include <QQmlEngine>
#include <Quotient/accountregistry.h>
#include <Quotient/keyverificationsession.h>
#if __has_include("Quotient/e2ee/sssshandler.h")
#include <Quotient/e2ee/sssshandler.h>
#endif
#include "controller.h"
#include "neochatconfig.h"
struct ForeignConfig {
Q_GADGET
QML_FOREIGN(NeoChatConfig)
QML_NAMED_ELEMENT(Config)
QML_SINGLETON
public:
static NeoChatConfig *create(QQmlEngine *, QJSEngine *)
{
QQmlEngine::setObjectOwnership(NeoChatConfig::self(), QQmlEngine::CppOwnership);
return NeoChatConfig::self();
}
};
struct ForeignAccountRegistry {
Q_GADGET
QML_FOREIGN(Quotient::AccountRegistry)
QML_NAMED_ELEMENT(AccountRegistry)
QML_SINGLETON
public:
static Quotient::AccountRegistry *create(QQmlEngine *, QJSEngine *)
{
QQmlEngine::setObjectOwnership(&Controller::instance().accounts(), QQmlEngine::CppOwnership);
return &Controller::instance().accounts();
}
};
struct ForeignKeyVerificationSession {
Q_GADGET
QML_FOREIGN(Quotient::KeyVerificationSession)
QML_NAMED_ELEMENT(KeyVerificationSession)
QML_UNCREATABLE("")
};
#if __has_include("Quotient/e2ee/sssshandler.h")
struct ForeignSSSSHandler {
Q_GADGET
QML_FOREIGN(Quotient::SSSSHandler)
QML_NAMED_ELEMENT(SSSSHandler)
};
#endif

View File

@@ -10,7 +10,6 @@ import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat
import org.kde.neochat.settings
import org.kde.neochat.accounts
FormCard.FormCardPage {
id: root

View File

@@ -35,11 +35,6 @@
#include "neochat-version.h"
#include <Quotient/accountregistry.h>
#if __has_include("Quotient/e2ee/sssshandler.h")
#include <Quotient/e2ee/sssshandler.h>
#endif
#include <Quotient/keyverificationsession.h>
#include <Quotient/networkaccessmanager.h>
#include "blurhashimageprovider.h"
@@ -234,13 +229,6 @@ int main(int argc, char *argv[])
Q_IMPORT_QML_PLUGIN(org_kde_neochat_loginPlugin)
qml_register_types_org_kde_neochat();
qmlRegisterSingletonInstance("org.kde.neochat.config", 1, 0, "Config", NeoChatConfig::self());
qmlRegisterSingletonInstance("org.kde.neochat.accounts", 1, 0, "AccountRegistry", &Controller::instance().accounts());
qmlRegisterUncreatableType<KeyVerificationSession>("com.github.quotient_im.libquotient", 1, 0, "KeyVerificationSession", {});
#if __has_include("Quotient/e2ee/sssshandler.h")
qmlRegisterType<SSSSHandler>("com.github.quotient_im.libquotient", 1, 0, "SSSSHandler");
#endif
QQmlApplicationEngine engine;

View File

@@ -10,7 +10,6 @@ import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.settings
import org.kde.neochat.devtools
import org.kde.neochat.config
QQC2.Menu {
id: root

View File

@@ -10,7 +10,6 @@ import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat
import org.kde.neochat.accounts
Kirigami.Dialog {
id: root

View File

@@ -9,7 +9,6 @@ import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief A component for typing and sending chat messages.

View File

@@ -11,7 +11,6 @@ import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.kitemmodels
import org.kde.neochat
import org.kde.neochat.config
QQC2.ItemDelegate {
id: root

View File

@@ -10,7 +10,6 @@ import org.kde.kirigamiaddons.components as KirigamiComponents
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief The base menu for most message types.

View File

@@ -5,8 +5,6 @@ import QtQuick
import QtQuick.Controls as QQC2
import QtQml
import com.github.quotient_im.libquotient
import org.kde.kirigami as Kirigami
import org.kde.neochat

View File

@@ -8,7 +8,6 @@ import Qt.labs.platform
import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief The menu for media messages.

View File

@@ -9,8 +9,6 @@ import QtQuick.Layouts
import org.kde.neochat
import org.kde.neochat.settings
import org.kde.neochat.config
import org.kde.neochat.accounts
Labs.MenuBar {
id: root

View File

@@ -7,7 +7,6 @@ import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief A component that provides a set of actions when a message is hovered in the timeline.

View File

@@ -6,8 +6,6 @@ import QtQuick.Controls as QQC2
import QtQuick.Layouts
import QtQml
import com.github.quotient_im.libquotient
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat

View File

@@ -10,8 +10,6 @@ import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.login
import org.kde.neochat.settings
import org.kde.neochat.config
import org.kde.neochat.accounts
Kirigami.ApplicationWindow {
id: root

View File

@@ -10,7 +10,6 @@ import org.kde.kirigamiaddons.components as KirigamiComponents
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief The menu for normal messages.

View File

@@ -10,7 +10,6 @@ import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.labs.components as Components
import org.kde.neochat
import org.kde.neochat.config
Components.AlbumMaximizeComponent {
id: root

View File

@@ -12,7 +12,6 @@ import org.kde.kirigamiaddons.labs.components as Components
import org.kde.kitemmodels
import org.kde.neochat
import org.kde.neochat.config
Delegates.RoundedItemDelegate {
id: root

View File

@@ -11,7 +11,6 @@ import org.kde.kitemmodels
import org.kde.neochat
import org.kde.neochat.settings
import org.kde.neochat.config
Kirigami.OverlayDrawer {
id: root

View File

@@ -11,7 +11,6 @@ import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.kitemmodels
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief Component for visualising the room information.

View File

@@ -13,8 +13,6 @@ import org.kde.kirigamiaddons.components as KirigamiComponents
import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat
import org.kde.neochat.config
import org.kde.neochat.accounts
Kirigami.Page {
id: root

View File

@@ -12,7 +12,6 @@ import org.kde.kirigami as Kirigami
import org.kde.kitemmodels
import org.kde.neochat
import org.kde.neochat.config
Kirigami.Page {
id: root

View File

@@ -12,7 +12,6 @@ import org.kde.kirigami as Kirigami
import org.kde.kitemmodels
import org.kde.neochat
import org.kde.neochat.config
import org.kde.neochat.timeline
QQC2.ScrollView {

View File

@@ -9,8 +9,6 @@ import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import com.github.quotient_im.libquotient
import org.kde.neochat
FormCard.FormCardPage {

View File

@@ -10,8 +10,6 @@ import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat
import org.kde.neochat.settings
import org.kde.neochat.config
import org.kde.neochat.accounts
RowLayout {
id: root

View File

@@ -4,8 +4,6 @@
import QtQuick
import QtQml
import com.github.quotient_im.libquotient
import org.kde.neochat
Message {

View File

@@ -2,12 +2,8 @@
// SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
// SPDX-License-Identifier: LGPL-2.0-or-later
import QtQuick.Layouts
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat
import org.kde.coreaddons
FormCard.AboutPage {
title: i18nc("@title:window", "About NeoChat")
aboutData: AboutData
}

View File

@@ -12,7 +12,6 @@ import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.neochat
import org.kde.neochat.accounts
FormCard.FormCardPage {
id: root

View File

@@ -11,7 +11,6 @@ import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.neochat
import org.kde.neochat.config
FormCard.FormCardPage {
id: root

View File

@@ -7,7 +7,6 @@ import QtQuick.Layouts
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat
import org.kde.neochat.config
FormCard.FormComboBoxDelegate {
id: root

View File

@@ -10,7 +10,6 @@ import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat
import org.kde.neochat.devtools
import org.kde.neochat.config
FormCard.FormCardPage {
title: i18nc("@title:window", "General")

View File

@@ -7,8 +7,6 @@ import QtQuick.Layouts
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat.config
FormCard.FormCardPage {
id: root

View File

@@ -9,7 +9,6 @@ import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.kitemmodels
import org.kde.neochat

View File

@@ -12,7 +12,6 @@ import org.kde.coreaddons
import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief A component to show a file from a message.

View File

@@ -10,7 +10,6 @@ import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.components as KirigamiComponents
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief The base delegate for all messages in the timeline.

View File

@@ -6,7 +6,8 @@ import QtQuick
import QtQuick.Controls as QQC2
import org.kde.kirigami as Kirigami
import org.kde.neochat.config
import org.kde.neochat
Flow {
id: root

View File

@@ -8,7 +8,7 @@ import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.neochat.config
import org.kde.neochat
QQC2.ItemDelegate {
id: root

View File

@@ -8,7 +8,7 @@ import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.labs.components as KirigamiComponents
import org.kde.neochat.config
import org.kde.neochat
/**
* @brief A timeline delegate for visualising an aggregated list of consecutive state events.

View File

@@ -6,7 +6,6 @@ import QtQuick
import org.kde.kirigami as Kirigami
import org.kde.neochat
import org.kde.neochat.config
/**
* @brief The base Item for all delegates in the timeline.