diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index de856b40b..116196506 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -200,7 +200,6 @@ qt_add_qml_module(neochat URI org.kde.neochat NO_PLUGIN qml/ExplorerDelegate.qml qml/InviteUserPage.qml qml/ImageEditorPage.qml - qml/WelcomePage.qml qml/NeochatMaximizeComponent.qml qml/FancyEffectsContainer.qml qml/TypingPane.qml @@ -213,19 +212,6 @@ qt_add_qml_module(neochat URI org.kde.neochat NO_PLUGIN qml/PieProgressBar.qml qml/QuickFormatBar.qml qml/EmojiPicker.qml - qml/LoginStep.qml - qml/Login.qml - qml/Homeserver.qml - qml/Username.qml - qml/RegisterPassword.qml - qml/Captcha.qml - qml/Terms.qml - qml/Email.qml - qml/Password.qml - qml/LoginRegister.qml - qml/Loading.qml - qml/LoginMethod.qml - qml/Sso.qml qml/UserDetailDialog.qml qml/CreateRoomDialog.qml qml/EmojiDialog.qml @@ -299,6 +285,7 @@ qt_add_qml_module(neochat URI org.kde.neochat NO_PLUGIN add_subdirectory(settings) add_subdirectory(timeline) add_subdirectory(devtools) +add_subdirectory(login) if(UNIX) qt_target_qml_sources(neochat QML_FILES qml/ShareAction.qml) @@ -390,7 +377,7 @@ if (NOT ANDROID AND NOT WIN32 AND NOT APPLE) endif() target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models ${CMAKE_CURRENT_SOURCE_DIR}/enums) -target_link_libraries(neochat PRIVATE settingsplugin timelineplugin devtoolsplugin) +target_link_libraries(neochat PRIVATE settingsplugin timelineplugin devtoolsplugin loginplugin) target_link_libraries(neochat PUBLIC Qt::Core Qt::Quick diff --git a/src/login/CMakeLists.txt b/src/login/CMakeLists.txt new file mode 100644 index 000000000..36f1d3a99 --- /dev/null +++ b/src/login/CMakeLists.txt @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2024 James Graham +# SPDX-License-Identifier: BSD-2-Clause + +qt_add_library(login STATIC) +qt_add_qml_module(login + URI org.kde.neochat.login + OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/neochat/login + QML_FILES + WelcomePage.qml + LoginStep.qml + Captcha.qml + Email.qml + Homeserver.qml + Loading.qml + Login.qml + LoginMethod.qml + LoginRegister.qml + Password.qml + RegisterPassword.qml + Sso.qml + Terms.qml + Username.qml +) diff --git a/src/qml/Captcha.qml b/src/login/Captcha.qml similarity index 100% rename from src/qml/Captcha.qml rename to src/login/Captcha.qml diff --git a/src/qml/Email.qml b/src/login/Email.qml similarity index 100% rename from src/qml/Email.qml rename to src/login/Email.qml diff --git a/src/qml/Homeserver.qml b/src/login/Homeserver.qml similarity index 100% rename from src/qml/Homeserver.qml rename to src/login/Homeserver.qml diff --git a/src/qml/Loading.qml b/src/login/Loading.qml similarity index 100% rename from src/qml/Loading.qml rename to src/login/Loading.qml diff --git a/src/qml/Login.qml b/src/login/Login.qml similarity index 100% rename from src/qml/Login.qml rename to src/login/Login.qml diff --git a/src/qml/LoginMethod.qml b/src/login/LoginMethod.qml similarity index 100% rename from src/qml/LoginMethod.qml rename to src/login/LoginMethod.qml diff --git a/src/qml/LoginRegister.qml b/src/login/LoginRegister.qml similarity index 100% rename from src/qml/LoginRegister.qml rename to src/login/LoginRegister.qml diff --git a/src/qml/LoginStep.qml b/src/login/LoginStep.qml similarity index 100% rename from src/qml/LoginStep.qml rename to src/login/LoginStep.qml diff --git a/src/qml/Password.qml b/src/login/Password.qml similarity index 100% rename from src/qml/Password.qml rename to src/login/Password.qml diff --git a/src/qml/RegisterPassword.qml b/src/login/RegisterPassword.qml similarity index 100% rename from src/qml/RegisterPassword.qml rename to src/login/RegisterPassword.qml diff --git a/src/qml/Sso.qml b/src/login/Sso.qml similarity index 100% rename from src/qml/Sso.qml rename to src/login/Sso.qml diff --git a/src/qml/Terms.qml b/src/login/Terms.qml similarity index 100% rename from src/qml/Terms.qml rename to src/login/Terms.qml diff --git a/src/qml/Username.qml b/src/login/Username.qml similarity index 100% rename from src/qml/Username.qml rename to src/login/Username.qml diff --git a/src/qml/WelcomePage.qml b/src/login/WelcomePage.qml similarity index 99% rename from src/qml/WelcomePage.qml rename to src/login/WelcomePage.qml index 0c8346d2e..ce64dccb3 100644 --- a/src/qml/WelcomePage.qml +++ b/src/login/WelcomePage.qml @@ -129,7 +129,7 @@ FormCard.FormCardPage { Loader { id: module Layout.fillWidth: true - sourceComponent: Qt.createComponent('org.kde.neochat', root.initialStep) + sourceComponent: Qt.createComponent('org.kde.neochat.login', root.initialStep) Connections { id: stepConnections diff --git a/src/main.cpp b/src/main.cpp index 9bdcfb721..72901e92b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -231,6 +231,7 @@ int main(int argc, char *argv[]) Q_IMPORT_QML_PLUGIN(org_kde_neochat_settingsPlugin) Q_IMPORT_QML_PLUGIN(org_kde_neochat_timelinePlugin) Q_IMPORT_QML_PLUGIN(org_kde_neochat_devtoolsPlugin) + Q_IMPORT_QML_PLUGIN(org_kde_neochat_loginPlugin) qml_register_types_org_kde_neochat(); qmlRegisterSingletonInstance("org.kde.neochat.config", 1, 0, "Config", NeoChatConfig::self()); diff --git a/src/qml/AccountSwitchDialog.qml b/src/qml/AccountSwitchDialog.qml index 2013d5205..aecb02220 100644 --- a/src/qml/AccountSwitchDialog.qml +++ b/src/qml/AccountSwitchDialog.qml @@ -61,7 +61,7 @@ Kirigami.Dialog { } onClicked: { - pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'WelcomePage'), {}, { + pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat.login', 'WelcomePage'), {}, { title: i18nc("@title:window", "Login") }); if (switchUserButton.checked) { diff --git a/src/qml/main.qml b/src/qml/main.qml index ad3bb80c7..52f167c0c 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -8,6 +8,7 @@ import QtQuick.Controls as QQC2 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 diff --git a/src/settings/AccountsPage.qml b/src/settings/AccountsPage.qml index 59e660209..afd622578 100644 --- a/src/settings/AccountsPage.qml +++ b/src/settings/AccountsPage.qml @@ -101,7 +101,7 @@ FormCard.FormCardPage { id: addAccountDelegate text: i18n("Add Account") icon.name: "list-add" - onClicked: applicationWindow().pageStack.layers.push(Qt.createComponent('org.kde.neochat', 'WelcomePage')) + onClicked: applicationWindow().pageStack.layers.push(Qt.createComponent('org.kde.neochat.login', 'WelcomePage')) } }