diff --git a/src/app/qml/AccountSwitchDialog.qml b/src/app/qml/AccountSwitchDialog.qml index f4f2a9b1c..6e71d7ee5 100644 --- a/src/app/qml/AccountSwitchDialog.qml +++ b/src/app/qml/AccountSwitchDialog.qml @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later import QtQuick +import QtQuick.Controls as QQC2 import QtQuick.Layouts import org.kde.kirigami as Kirigami @@ -16,8 +17,6 @@ Kirigami.Dialog { required property NeoChatConnection connection - parent: applicationWindow().overlay - leftPadding: 0 rightPadding: 0 topPadding: 0 @@ -25,7 +24,7 @@ Kirigami.Dialog { standardButtons: Kirigami.Dialog.NoButton - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) title: i18nc("@title: dialog to switch between logged in accounts", "Switch Account") onVisibleChanged: if (visible) { diff --git a/src/app/qml/AttachmentPane.qml b/src/app/qml/AttachmentPane.qml index 71a9f852f..52d5d4b02 100644 --- a/src/app/qml/AttachmentPane.qml +++ b/src/app/qml/AttachmentPane.qml @@ -48,7 +48,7 @@ ColumnLayout { onClicked: { let imageEditor = (Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(imageEditorPage); imageEditor.newPathChanged.connect(function (newPath) { - applicationWindow().pageStack.layers.pop(); + imageEditor.closeDialog(); root.attachmentPath = newPath; }); } diff --git a/src/app/qml/JoinRoomDialog.qml b/src/app/qml/JoinRoomDialog.qml index 105fd5e92..a9158c465 100644 --- a/src/app/qml/JoinRoomDialog.qml +++ b/src/app/qml/JoinRoomDialog.qml @@ -25,7 +25,7 @@ Kirigami.Dialog { standardButtons: Kirigami.Dialog.NoButton - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) title: i18nc("@title:dialog", "Join Room") contentItem: ColumnLayout { diff --git a/src/app/qml/Main.qml b/src/app/qml/Main.qml index 624eda530..177de6e6d 100644 --- a/src/app/qml/Main.qml +++ b/src/app/qml/Main.qml @@ -336,7 +336,7 @@ Kirigami.ApplicationWindow { } } function handleShare(): void { - const dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), { + const dialog = root.pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), { connection: root.connection }, { title: i18nc("@title", "Share"), diff --git a/src/app/qml/NewPollDialog.qml b/src/app/qml/NewPollDialog.qml index 4ed8b17a5..7bcb60026 100644 --- a/src/app/qml/NewPollDialog.qml +++ b/src/app/qml/NewPollDialog.qml @@ -34,7 +34,7 @@ Kirigami.Dialog { } ] - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) title: i18nc("@title: create new poll in the room", "Create Poll") contentItem: ColumnLayout { diff --git a/src/app/qml/RecommendedSpaceDialog.qml b/src/app/qml/RecommendedSpaceDialog.qml index 4b941f6d1..57afc311b 100644 --- a/src/app/qml/RecommendedSpaceDialog.qml +++ b/src/app/qml/RecommendedSpaceDialog.qml @@ -15,8 +15,6 @@ Kirigami.Dialog { property var connection - parent: applicationWindow().overlay - leftPadding: 0 rightPadding: 0 topPadding: 0 @@ -24,7 +22,7 @@ Kirigami.Dialog { title: i18nc("@title Join ", "Join %1", SpaceHierarchyCache.recommendedSpaceDisplayName) - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) contentItem: ColumnLayout { FormCard.AbstractFormDelegate { diff --git a/src/app/qml/RoomPage.qml b/src/app/qml/RoomPage.qml index 47c2cd204..49e506156 100644 --- a/src/app/qml/RoomPage.qml +++ b/src/app/qml/RoomPage.qml @@ -63,9 +63,9 @@ Kirigami.Page { actions: [ Kirigami.Action { - visible: Kirigami.Settings.isMobile || !applicationWindow().pageStack.wideMode + visible: Kirigami.Settings.isMobile || !root.Kirigami.PageStack.pageStack.wideMode icon.name: "view-right-new" - onTriggered: applicationWindow().openRoomDrawer() + onTriggered: (root.QQC2.ApplicationWindow.window as Main).openRoomDrawer() } ] @@ -202,7 +202,7 @@ Kirigami.Page { } function onShowEventSource(eventId) { - applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'MessageSourceSheet'), { + (root.Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat', 'MessageSourceSheet'), { sourceText: root.currentRoom.getEventJsonSource(eventId) }, { title: i18nc("@title:dialog", "Message Source"), diff --git a/src/app/qml/ShareAction.qml b/src/app/qml/ShareAction.qml index 0c130f98a..96707cc6a 100644 --- a/src/app/qml/ShareAction.qml +++ b/src/app/qml/ShareAction.qml @@ -23,8 +23,6 @@ Kirigami.Action { text: i18n("Share") tooltip: i18n("Share the selected media") - visible: false - /** * This property holds the input data for purpose. * @@ -60,7 +58,7 @@ Kirigami.Action { if (id != root.eventId) { return; } - applicationWindow().pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat", "ShareDialog"), { + pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat", "ShareDialog"), { title: root.text, index: index, model: root._instantiator.model diff --git a/src/app/qml/UserDetailDialog.qml b/src/app/qml/UserDetailDialog.qml index d1e18b0d0..7f91a2200 100644 --- a/src/app/qml/UserDetailDialog.qml +++ b/src/app/qml/UserDetailDialog.qml @@ -261,7 +261,7 @@ Kirigami.Dialog { icon.name: "delete" icon.color: Kirigami.Theme.negativeTextColor onTriggered: { - let dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { + let dialog = pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { title: i18nc("@title:dialog", "Remove Messages"), placeholder: i18nc("@info:placeholder", "Reason for removing this user's recent messages"), actionText: i18nc("@action:button 'Remove' as in 'Remove these messages'", "Remove"), diff --git a/src/chatbar/ChatBar.qml b/src/chatbar/ChatBar.qml index 93e541895..2340c72dc 100644 --- a/src/chatbar/ChatBar.qml +++ b/src/chatbar/ChatBar.qml @@ -87,7 +87,7 @@ QQC2.Control { displayHint: Kirigami.DisplayHint.IconOnly onTriggered: { - let dialog = (Clipboard.hasImage ? attachDialog : openFileDialog).createObject(applicationWindow().overlay); + let dialog = (Clipboard.hasImage ? attachDialog : openFileDialog).createObject(root.QQC2.Overlay.overlay); dialog.chosen.connect(path => _private.chatBarCache.attachmentPath = path); dialog.open(); } diff --git a/src/chatbar/EmojiDialog.qml b/src/chatbar/EmojiDialog.qml index f5b904035..3c0941e20 100644 --- a/src/chatbar/EmojiDialog.qml +++ b/src/chatbar/EmojiDialog.qml @@ -65,7 +65,7 @@ QQC2.Popup { padding: 2 implicitHeight: Kirigami.Units.gridUnit * 20 + 2 * padding - width: Math.min(contentItem.categoryIconSize * 11 + 2 * padding, applicationWindow().width) + width: Math.min(contentItem.categoryIconSize * 11 + 2 * padding, QQC2.ApplicationWindow.window.width) contentItem: EmojiPicker { id: emojiPicker height: 400 diff --git a/src/libneochat/qml/GroupChatDrawerHeader.qml b/src/libneochat/qml/GroupChatDrawerHeader.qml index bcf239040..6c87c33a6 100644 --- a/src/libneochat/qml/GroupChatDrawerHeader.qml +++ b/src/libneochat/qml/GroupChatDrawerHeader.qml @@ -121,9 +121,9 @@ ColumnLayout { wrapMode: Text.Wrap onLinkActivated: link => UrlHelper.openUrl(link) onHoveredLinkChanged: if (hoveredLink.length > 0 && hoveredLink !== "1") { - applicationWindow().hoverLinkIndicator.text = hoveredLink; + (QQC2.ApplicationWindow.window as Main).hoverLinkIndicator.text = hoveredLink; } else { - applicationWindow().hoverLinkIndicator.text = ""; + (QQC2.ApplicationWindow.window as Main).hoverLinkIndicator.text = ""; } } } diff --git a/src/messagecontent/ImageComponent.qml b/src/messagecontent/ImageComponent.qml index 8023edd80..b9db46562 100644 --- a/src/messagecontent/ImageComponent.qml +++ b/src/messagecontent/ImageComponent.qml @@ -90,7 +90,7 @@ Item { fillMode: Image.PreserveAspectFit autoTransform: true - paused: !applicationWindow().active + paused: !QQC2.ApplicationWindow.window.active } } diff --git a/src/messagecontent/TextComponent.qml b/src/messagecontent/TextComponent.qml index 4b985ad66..5b93c00b8 100644 --- a/src/messagecontent/TextComponent.qml +++ b/src/messagecontent/TextComponent.qml @@ -3,6 +3,7 @@ // SPDX-License-Identifier: GPL-3.0-only import QtQuick +import QtQuick.Controls as QQC2 import QtQuick.Layouts import org.kde.kirigami as Kirigami @@ -136,9 +137,9 @@ a{ RoomManager.resolveResource(link, "join"); } onHoveredLinkChanged: if (hoveredLink.length > 0 && hoveredLink !== "1") { - applicationWindow().hoverLinkIndicator.text = hoveredLink; + (QQC2.ApplicationWindow.window as Main).hoverLinkIndicator.text = hoveredLink; } else { - applicationWindow().hoverLinkIndicator.text = ""; + (QQC2.ApplicationWindow.window as Main).hoverLinkIndicator.text = ""; } HoverHandler { diff --git a/src/roominfo/RoomDrawerPage.qml b/src/roominfo/RoomDrawerPage.qml index 9219bbd9f..13b3f6ff5 100644 --- a/src/roominfo/RoomDrawerPage.qml +++ b/src/roominfo/RoomDrawerPage.qml @@ -101,16 +101,16 @@ Kirigami.Page { } Connections { - target: applicationWindow().pageStack + target: root.Kirigami.PageStack.pageStack onWideModeChanged: { - if (applicationWindow().pageStack.wideMode) { - applicationWindow().pageStack.pop(); + if ((root.Kirigami.PageStack.pageStack as Kirigami.PageRow).wideMode) { + root.Kirigami.PageStack.pop(); } } } onBackRequested: event => { event.accepted = true; - applicationWindow().pageStack.pop(); + Kirigami.PageStack.pop(); } } diff --git a/src/roominfo/RoomInformation.qml b/src/roominfo/RoomInformation.qml index 9df9c3239..c6d1a267b 100644 --- a/src/roominfo/RoomInformation.qml +++ b/src/roominfo/RoomInformation.qml @@ -177,7 +177,7 @@ QQC2.ScrollView { icon.name: "list-add-user" onClicked: { - applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'InviteUserPage'), { + pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'InviteUserPage'), { room: root.room }, { title: i18nc("@title", "Invite a User") diff --git a/src/settings/SelectParentDialog.qml b/src/settings/SelectParentDialog.qml index 52121ccc3..f5d9336ab 100644 --- a/src/settings/SelectParentDialog.qml +++ b/src/settings/SelectParentDialog.qml @@ -24,7 +24,7 @@ Kirigami.Dialog { title: i18nc("@title", "Select new official parent") - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) leftPadding: 0 rightPadding: 0 topPadding: 0 diff --git a/src/settings/SelectSpacesDialog.qml b/src/settings/SelectSpacesDialog.qml index 420c84c35..394d12712 100644 --- a/src/settings/SelectSpacesDialog.qml +++ b/src/settings/SelectSpacesDialog.qml @@ -26,14 +26,12 @@ Kirigami.Dialog { */ property list restrictedIds: room.restrictedIds - parent: applicationWindow().overlay - leftPadding: 0 rightPadding: 0 topPadding: 0 bottomPadding: 0 - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) title: i18nc("@title", "Select Spaces") standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel diff --git a/src/spaces/RemoveChildDialog.qml b/src/spaces/RemoveChildDialog.qml index 2ccaeb9e4..3d83b17e4 100644 --- a/src/spaces/RemoveChildDialog.qml +++ b/src/spaces/RemoveChildDialog.qml @@ -3,6 +3,7 @@ import QtQuick import QtQuick.Layouts +import QtQuick.Controls as QQC2 import org.kde.kirigami as Kirigami import org.kde.kirigamiaddons.formcard as FormCard @@ -26,7 +27,7 @@ Kirigami.Dialog { title: i18nc("@title", "Remove Child") - width: Math.min(applicationWindow().width, Kirigami.Units.gridUnit * 24) + width: Math.min(QQC2.ApplicationWindow.window.width, Kirigami.Units.gridUnit * 24) standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel diff --git a/src/spaces/SpaceHomePage.qml b/src/spaces/SpaceHomePage.qml index e738875ae..9b5143b87 100644 --- a/src/spaces/SpaceHomePage.qml +++ b/src/spaces/SpaceHomePage.qml @@ -77,7 +77,7 @@ ColumnLayout { visible: root.room.canSendState("invite") text: i18nc("@button", "Invite user to space") icon.name: "list-add-user" - onClicked: applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat.libneochat', 'InviteUserPage'), { + onClicked: (Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat.libneochat', 'InviteUserPage'), { room: root.room }, { title: i18nc("@title", "Invite a User") diff --git a/src/timeline/DelegateContextMenu.qml b/src/timeline/DelegateContextMenu.qml index bc88341d2..be1556925 100644 --- a/src/timeline/DelegateContextMenu.qml +++ b/src/timeline/DelegateContextMenu.qml @@ -89,7 +89,7 @@ KirigamiComponents.ConvergentContextMenu { icon.name: "edit-delete-remove" icon.color: "red" onTriggered: { - let dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { + let dialog = (root.Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { title: i18nc("@title:dialog", "Remove Message"), placeholder: i18nc("@info:placeholder", "Reason for removing this message"), actionText: i18nc("@action:button 'Remove' as in 'Remove this message'", "Remove"), @@ -134,7 +134,7 @@ KirigamiComponents.ConvergentContextMenu { icon.name: "dialog-warning-symbolic" visible: !author.isLocalMember onTriggered: { - let dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { + let dialog = (root.Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { title: i18nc("@title:dialog", "Report Message"), placeholder: i18nc("@info:placeholder", "Reason for reporting this message"), icon: "dialog-warning-symbolic", @@ -263,8 +263,6 @@ KirigamiComponents.ConvergentContextMenu { bottomPadding: 0 topPadding: 0 - parent: applicationWindow().overlay - QQC2.StackView { id: stackView width: parent.width diff --git a/src/timeline/FileDelegateContextMenu.qml b/src/timeline/FileDelegateContextMenu.qml index e88d3fbf8..9affc349c 100644 --- a/src/timeline/FileDelegateContextMenu.qml +++ b/src/timeline/FileDelegateContextMenu.qml @@ -99,26 +99,7 @@ DelegateContextMenu { separator: true } - Kirigami.Action { - visible: author.id === currentRoom.localMember.id || currentRoom.canSendState("redact") - text: i18n("Remove…") - icon.name: "edit-delete-remove" - icon.color: "red" - onTriggered: { - let dialog = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ReasonDialog'), { - title: i18nc("@title:dialog", "Remove Message"), - placeholder: i18nc("@info:placeholder", "Reason for removing this message"), - actionText: i18nc("@action:button 'Remove' as in 'Remove this message'", "Remove"), - icon: "delete" - }, { - title: i18nc("@title:dialog", "Remove Message"), - width: Kirigami.Units.gridUnit * 25 - }); - dialog.accepted.connect(reason => { - currentRoom.redactEvent(root.eventId, reason); - }); - } - } + DelegateContextMenu.RemoveMessageAction {} DelegateContextMenu.PinMessageAction {} diff --git a/src/timeline/MessageDelegateContextMenu.qml b/src/timeline/MessageDelegateContextMenu.qml index 0a091624f..145813a64 100644 --- a/src/timeline/MessageDelegateContextMenu.qml +++ b/src/timeline/MessageDelegateContextMenu.qml @@ -52,7 +52,7 @@ DelegateContextMenu { text: i18nc("@action:inmenu As in 'Forward this message'", "Forward…") icon.name: "mail-forward-symbolic" onTriggered: { - let page = applicationWindow().pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), { + let page = (root.Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(Qt.createComponent('org.kde.neochat', 'ChooseRoomDialog'), { connection: root.connection }, { title: i18nc("@title", "Forward Message"), diff --git a/src/timeline/TimelineView.qml b/src/timeline/TimelineView.qml index 6f0f82454..9902b6987 100644 --- a/src/timeline/TimelineView.qml +++ b/src/timeline/TimelineView.qml @@ -8,6 +8,7 @@ import QtQuick.Layouts import org.kde.kirigami as Kirigami import org.kde.kirigamiaddons.components as KirigamiComponents +import org.kde.neochat import org.kde.neochat.libneochat as LibNeoChat QQC2.ScrollView { @@ -137,7 +138,7 @@ QQC2.ScrollView { if (!messageListView.atYEnd || !_private.room.partiallyReadStats.empty()) { messageListView.positionViewAtBeginning(); } else { - applicationWindow().pageStack.get(0).forceActiveFocus(); + (root.Kirigami.PageStack.pageStack as Kirigami.PageRow).get(0).forceActiveFocus(); } } } @@ -149,7 +150,7 @@ QQC2.ScrollView { target: messageListView.model.sourceModel.timelineMessageModel function onModelAboutToBeReset() { - applicationWindow().hoverLinkIndicator.text = ""; + (root.QQC2.ApplicationWindow.window as Main).hoverLinkIndicator.text = ""; _private.hasScrolledUpBefore = false; }