From e8aa29d3c227f07a91eac034c95ae465acf66d64 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Tue, 30 Apr 2024 22:32:59 +0200 Subject: [PATCH] Move direct chat confirmation dialog to separate file --- src/CMakeLists.txt | 1 + src/qml/AskDirectChatConfirmation.qml | 40 +++++++++++++++++++++++++++ src/qml/Main.qml | 38 ++----------------------- 3 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 src/qml/AskDirectChatConfirmation.qml diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8bd3cad99..4a5448607 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -271,6 +271,7 @@ qt_add_qml_module(neochat URI org.kde.neochat NO_PLUGIN qml/CodeMaximizeComponent.qml qml/EditStateDialog.qml qml/ConsentDialog.qml + qml/AskDirectChatConfirmation.qml ) add_subdirectory(settings) diff --git a/src/qml/AskDirectChatConfirmation.qml b/src/qml/AskDirectChatConfirmation.qml new file mode 100644 index 000000000..d73867ddf --- /dev/null +++ b/src/qml/AskDirectChatConfirmation.qml @@ -0,0 +1,40 @@ +// SPDX-FileCopyrightText: 2024 Tobias Fella +// SPDX-License-Identifier: LGPL-2.0-or-later + +import QtQuick +import QtQuick.Controls as QQC2 + +import org.kde.kirigami as Kirigami + +import org.kde.neochat + +Kirigami.Dialog { + id: root + + required property var user + + width: Math.min(Kirigami.Units.gridUnit * 24, QQC2.ApplicationWindow.window.width) + height: Kirigami.Units.gridUnit * 8 + + standardButtons: QQC2.Dialog.Close + title: i18nc("@title:dialog", "Start a chat") + + contentItem: QQC2.Label { + text: i18n("Do you want to start a chat with %1?", root.user.displayName) + textFormat: Text.PlainText + wrapMode: Text.Wrap + horizontalAlignment: Qt.AlignHCenter + verticalAlignment: Qt.AlignVCenter + } + + customFooterActions: [ + Kirigami.Action { + text: i18nc("@action:button", "Start Chat") + icon.name: "im-user" + onTriggered: { + root.user.requestDirectChat(); + root.close(); + } + } + ] +} diff --git a/src/qml/Main.qml b/src/qml/Main.qml index 5571d4e45..2afe8a735 100644 --- a/src/qml/Main.qml +++ b/src/qml/Main.qml @@ -125,10 +125,11 @@ Kirigami.ApplicationWindow { } function onAskDirectChatConfirmation(user) { - askDirectChatConfirmationComponent.createObject(this, { + Qt.createComponent("org.kde.neochat", "AskDirectChatConfirmation").createObject(this, { user: user }).open(); } + function onExternalUrl(url) { let dialog = Qt.createComponent("org.kde.neochat", "ConfirmUrlDialog").createObject(applicationWindow()); dialog.link = url; @@ -310,41 +311,6 @@ Kirigami.ApplicationWindow { } } - Component { - id: askDirectChatConfirmationComponent - - Kirigami.Dialog { - id: askDirectChatConfirmation - - required property var user - - width: Math.min(Kirigami.Units.gridUnit * 24, root.width) - height: Kirigami.Units.gridUnit * 8 - - standardButtons: QQC2.Dialog.Close - title: i18n("Start a chat") - - contentItem: QQC2.Label { - text: i18n("Do you want to start a chat with %1?", askDirectChatConfirmation.user.displayName) - textFormat: Text.PlainText - wrapMode: Text.Wrap - horizontalAlignment: Qt.AlignHCenter - verticalAlignment: Qt.AlignVCenter - } - - customFooterActions: [ - Kirigami.Action { - text: i18nc("@action", "Start Chat") - icon.name: "im-user" - onTriggered: { - askDirectChatConfirmation.user.requestDirectChat(); - askDirectChatConfirmation.close(); - } - } - ] - } - } - property QQC2.Control hoverLinkIndicator: QQC2.Control { parent: root.overlay.parent property alias text: linkText.rawText