mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-12-03 15:48:48 +03:00
Get rid of platform dialogs/menus now that Qt6.8 supports native menus without them
This will look bad on some platforms and older versions for now, but should fix a lot of crashes and we can report the rest as bugs.
This commit is contained in:
parent
3a3c3def7c
commit
65c6e96e24
9 changed files with 94 additions and 99 deletions
|
@ -151,7 +151,7 @@ build-clazy:
|
|||
- apt-get -y install --no-install-suggests --no-install-recommends ca-certificates build-essential ninja-build cmake gcc make automake ccache liblmdb-dev
|
||||
libssl-dev libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediaquick5 libqt5svg5-dev
|
||||
qtmultimedia5-dev qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools qtdeclarative5-dev
|
||||
qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qt-labs-platform
|
||||
qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts
|
||||
qt5keychain-dev ccache libcurl4-openssl-dev libevent-dev libspdlog-dev git nlohmann-json3-dev libcmark-dev asciidoc time # libolm-dev
|
||||
# need recommended deps for wget
|
||||
- apt-get -y install wget
|
||||
|
@ -394,7 +394,7 @@ build-flatpak:
|
|||
- apt-get -y install --no-install-suggests --no-install-recommends ca-certificates build-essential ninja-build cmake gcc make automake ccache liblmdb-dev
|
||||
libssl-dev libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediaquick5 libqt5svg5-dev
|
||||
qtmultimedia5-dev qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools qtdeclarative5-dev
|
||||
qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qt-labs-platform
|
||||
qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts
|
||||
qt5keychain-dev ccache libcurl4-openssl-dev libevent-dev libspdlog-dev nlohmann-json3-dev libcmark-dev asciidoc libre2-dev libgtest-dev libgl1-mesa-dev qml-module-qtquick-particles2
|
||||
|
||||
# Installing the packages needed to build AppImage
|
||||
|
|
|
@ -365,7 +365,7 @@ cmake --build build
|
|||
*Build requirements + qml modules needed at runtime (you may not need all of them, but the following seem to work according to reports):*
|
||||
```bash
|
||||
sudo apt install --no-install-recommends g++ cmake make zlib1g-dev libssl-dev libolm-dev liblmdb-dev libcmark-dev nlohmann-json3-dev libspdlog-dev libevent-dev libcurl4-openssl-dev libre2-dev libxcb-ewmh-dev asciidoc-base \
|
||||
qt{base,declarative,tools,multimedia,quickcontrols2-}5-dev libqt6svg5-dev qt6keychain-dev qml-module-qt{gstreamer,multimedia,quick-extras,-labs-settings,-labs-platform,graphicaleffects,quick-controls2,quick-particles2} \
|
||||
qt{base,declarative,tools,multimedia,quickcontrols2-}5-dev libqt6svg5-dev qt6keychain-dev qml-module-qt{gstreamer,multimedia,quick-extras,-labs-settings,graphicaleffects,quick-controls2,quick-particles2} \
|
||||
libgstreamer1.0-dev libgstreamer-plugins-{base,bad}1.0-dev qtgstreamer-plugins-qt6 libnice-dev ninja-build
|
||||
```
|
||||
lmdb++-dev is too old so bundled lmdbxx must be used.
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import "./components"
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import QtQml
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
|
@ -195,7 +194,7 @@ Page {
|
|||
}
|
||||
}
|
||||
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: communityContextMenu
|
||||
|
||||
property bool hidden
|
||||
|
@ -209,14 +208,14 @@ Page {
|
|||
open();
|
||||
}
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
checkable: true
|
||||
checked: communityContextMenu.muted
|
||||
text: qsTr("Do not show notification counts for this community or tag.")
|
||||
|
||||
onTriggered: Communities.toggleTagMute(communityContextMenu.tagId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
checkable: true
|
||||
checked: communityContextMenu.hidden
|
||||
text: qsTr("Hide rooms with this tag or from this community by default.")
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
import "./ui"
|
||||
import "./dialogs"
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.2
|
||||
|
@ -393,7 +392,7 @@ Item {
|
|||
}
|
||||
}
|
||||
}
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: messageContextMenuC
|
||||
|
||||
property string eventId
|
||||
|
@ -448,7 +447,7 @@ Item {
|
|||
ReportMessage {}
|
||||
}
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("Go to &message")
|
||||
visible: filteredTimeline.filterByContent
|
||||
|
@ -458,21 +457,21 @@ Item {
|
|||
room.showEvent(messageContextMenuC.eventId);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Copy")
|
||||
visible: messageContextMenuC.text
|
||||
|
||||
onTriggered: Clipboard.text = messageContextMenuC.text
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("Copy &link location")
|
||||
visible: messageContextMenuC.link
|
||||
|
||||
onTriggered: Clipboard.text = messageContextMenuC.link
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
id: reactionOption
|
||||
|
||||
text: qsTr("Re&act")
|
||||
|
@ -483,39 +482,39 @@ Item {
|
|||
TimelineManager.focusMessageInput();
|
||||
})
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Repl&y")
|
||||
visible: room ? room.permissions.canSend(MtxEvent.TextMessage) : false
|
||||
|
||||
onTriggered: room.reply = (messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Edit")
|
||||
visible: messageContextMenuC.isEditable && (room ? room.permissions.canSend(MtxEvent.TextMessage) : false)
|
||||
|
||||
onTriggered: room.edit = (messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Thread")
|
||||
visible: (room ? room.permissions.canSend(MtxEvent.TextMessage) : false)
|
||||
|
||||
onTriggered: room.thread = (messageContextMenuC.threadId || messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: visible && room.pinnedMessages.includes(messageContextMenuC.eventId) ? qsTr("Un&pin") : qsTr("&Pin")
|
||||
visible: (room ? room.permissions.canChange(MtxEvent.PinnedEvents) : false)
|
||||
|
||||
onTriggered: visible && room.pinnedMessages.includes(messageContextMenuC.eventId) ? room.unpin(messageContextMenuC.eventId) : room.pin(messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("&Read receipts")
|
||||
|
||||
onTriggered: room.showReadReceipts(messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("&Forward")
|
||||
visible: messageContextMenuC.eventType == MtxEvent.ImageMessage || messageContextMenuC.eventType == MtxEvent.VideoMessage || messageContextMenuC.eventType == MtxEvent.AudioMessage || messageContextMenuC.eventType == MtxEvent.FileMessage || messageContextMenuC.eventType == MtxEvent.Sticker || messageContextMenuC.eventType == MtxEvent.TextMessage || messageContextMenuC.eventType == MtxEvent.LocationMessage || messageContextMenuC.eventType == MtxEvent.EmoteMessage || messageContextMenuC.eventType == MtxEvent.NoticeMessage
|
||||
|
||||
|
@ -526,15 +525,15 @@ Item {
|
|||
timelineRoot.destroyOnClose(forwardMess);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("&Mark as read")
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("View raw message")
|
||||
|
||||
onTriggered: room.viewRawMessage(messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("View decrypted raw message")
|
||||
// TODO(Nico): Fix this still being iterated over, when using keyboard to select options
|
||||
|
@ -542,7 +541,7 @@ Item {
|
|||
|
||||
onTriggered: room.viewDecryptedRawMessage(messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Remo&ve message")
|
||||
visible: (room ? room.permissions.canRedact() : false) || messageContextMenuC.isSender
|
||||
|
||||
|
@ -554,7 +553,7 @@ Item {
|
|||
timelineRoot.destroyOnClose(dialog);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Report message")
|
||||
enabled: visible
|
||||
onTriggered: function () {
|
||||
|
@ -564,21 +563,21 @@ Item {
|
|||
timelineRoot.destroyOnClose(dialog);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Save as")
|
||||
visible: messageContextMenuC.eventType == MtxEvent.ImageMessage || messageContextMenuC.eventType == MtxEvent.VideoMessage || messageContextMenuC.eventType == MtxEvent.AudioMessage || messageContextMenuC.eventType == MtxEvent.FileMessage || messageContextMenuC.eventType == MtxEvent.Sticker
|
||||
|
||||
onTriggered: room.saveMedia(messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Open in external program")
|
||||
visible: messageContextMenuC.eventType == MtxEvent.ImageMessage || messageContextMenuC.eventType == MtxEvent.VideoMessage || messageContextMenuC.eventType == MtxEvent.AudioMessage || messageContextMenuC.eventType == MtxEvent.FileMessage || messageContextMenuC.eventType == MtxEvent.Sticker
|
||||
|
||||
onTriggered: room.openMedia(messageContextMenuC.eventId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("Copy link to eve&nt")
|
||||
visible: messageContextMenuC.eventId
|
||||
|
@ -592,7 +591,7 @@ Item {
|
|||
ForwardCompleter {
|
||||
}
|
||||
}
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: replyContextMenuC
|
||||
|
||||
property string eventId
|
||||
|
@ -606,21 +605,21 @@ Item {
|
|||
open();
|
||||
}
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Copy")
|
||||
visible: replyContextMenuC.text
|
||||
|
||||
onTriggered: Clipboard.text = replyContextMenuC.text
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("Copy &link location")
|
||||
visible: replyContextMenuC.link
|
||||
|
||||
onTriggered: Clipboard.text = replyContextMenuC.link
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
enabled: visible
|
||||
text: qsTr("&Go to quoted message")
|
||||
visible: true
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
import "./components"
|
||||
import "./dialogs"
|
||||
import "./ui"
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import QtQml
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
@ -55,15 +53,15 @@ Page {
|
|||
|
||||
onClicked: roomJoinCreateMenu.open(parent)
|
||||
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: roomJoinCreateMenu
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Join a room")
|
||||
|
||||
onTriggered: Nheko.openJoinRoomDialog()
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Create a new room")
|
||||
|
||||
onTriggered: {
|
||||
|
@ -72,7 +70,7 @@ Page {
|
|||
timelineRoot.destroyOnClose(createRoom);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Start a direct chat")
|
||||
|
||||
onTriggered: {
|
||||
|
@ -81,7 +79,7 @@ Page {
|
|||
timelineRoot.destroyOnClose(createDirect);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Create a new community")
|
||||
|
||||
onTriggered: {
|
||||
|
@ -255,49 +253,49 @@ Page {
|
|||
Nheko.setStatusMessage(text);
|
||||
}
|
||||
}
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: userInfoMenu
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Profile settings")
|
||||
|
||||
onTriggered: userInfoPanel.openUserProfile()
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Set status message")
|
||||
|
||||
onTriggered: statusDialog.show()
|
||||
}
|
||||
Platform.MenuSeparator {
|
||||
MenuSeparator {
|
||||
}
|
||||
|
||||
Platform.MenuItemGroup {
|
||||
ButtonGroup {
|
||||
id: onlineStateGroup
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Automatic online status")
|
||||
group: onlineStateGroup
|
||||
ButtonGroup.group: onlineStateGroup
|
||||
checkable: true
|
||||
checked: Settings.presence == Settings.AutomaticPresence
|
||||
onTriggered: if (checked) Settings.presence = Settings.AutomaticPresence
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Online")
|
||||
group: onlineStateGroup
|
||||
ButtonGroup.group: onlineStateGroup
|
||||
checkable: true
|
||||
checked: Settings.presence == Settings.Online
|
||||
onTriggered: if (checked) Settings.presence = Settings.Online
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Unavailable")
|
||||
group: onlineStateGroup
|
||||
ButtonGroup.group: onlineStateGroup
|
||||
checkable: true
|
||||
checked: Settings.presence == Settings.Unavailable
|
||||
onTriggered: if (checked) Settings.presence = Settings.Unavailable
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Offline")
|
||||
group: onlineStateGroup
|
||||
ButtonGroup.group: onlineStateGroup
|
||||
checkable: true
|
||||
checked: Settings.presence == Settings.Offline
|
||||
onTriggered: if (checked) Settings.presence = Settings.Offline
|
||||
|
@ -734,7 +732,7 @@ Page {
|
|||
roomid: roomContextMenu.roomid
|
||||
}
|
||||
}
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: roomContextMenu
|
||||
|
||||
property string roomid
|
||||
|
@ -756,7 +754,7 @@ Page {
|
|||
Rooms.toggleTag(roomContextMenu.roomid, "u." + text, true);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Open separately")
|
||||
|
||||
onTriggered: {
|
||||
|
@ -768,27 +766,27 @@ Page {
|
|||
destroyOnClose(roomWindow);
|
||||
}
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Mark as read")
|
||||
|
||||
onTriggered: Rooms.getRoomById(roomContextMenu.roomid).markRoomAsRead()
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Room settings")
|
||||
|
||||
onTriggered: TimelineManager.openRoomSettings(roomContextMenu.roomid)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Leave room")
|
||||
|
||||
onTriggered: TimelineManager.openLeaveRoomDialog(roomContextMenu.roomid)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Copy room link")
|
||||
|
||||
onTriggered: Rooms.copyLink(roomContextMenu.roomid)
|
||||
}
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: tagsMenu
|
||||
|
||||
title: qsTr("Tag room as:")
|
||||
|
@ -796,7 +794,7 @@ Page {
|
|||
Instantiator {
|
||||
model: Communities.tagsWithDefault
|
||||
|
||||
delegate: Platform.MenuItem {
|
||||
delegate: MenuItem {
|
||||
property string t: modelData
|
||||
|
||||
checkable: true
|
||||
|
@ -820,7 +818,7 @@ Page {
|
|||
onObjectAdded: (index, object) => tagsMenu.insertItem(index, object)
|
||||
onObjectRemoved: (index, object) => tagsMenu.removeItem(object)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Create new tag...")
|
||||
|
||||
onTriggered: newTag.show()
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
import "./dialogs"
|
||||
import "./pages"
|
||||
import "./ui"
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Window
|
||||
import QtQuick.Dialogs
|
||||
import im.nheko
|
||||
|
||||
Pane {
|
||||
|
@ -342,15 +342,13 @@ Pane {
|
|||
return UIA.submit3pidToken(t);
|
||||
}
|
||||
}
|
||||
Platform.MessageDialog {
|
||||
MessageDialog {
|
||||
id: uiaConfirmationLinkDialog
|
||||
|
||||
buttons: Platform.MessageDialog.Ok
|
||||
buttons: MessageDialog.Ok
|
||||
text: qsTr("Wait for the confirmation link to arrive, then continue.")
|
||||
|
||||
// Broken on macos, see https://bugreports.qt.io/browse/QTBUG-102078
|
||||
//onAccepted: UIA.continue3pidReceived()
|
||||
onOkClicked: UIA.continue3pidReceived()
|
||||
onAccepted: UIA.continue3pidReceived()
|
||||
}
|
||||
Connections {
|
||||
function onConfirm3pidToken() {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.2
|
||||
|
@ -237,26 +236,26 @@ Pane {
|
|||
|
||||
onClicked: roomOptionsMenu.open(roomOptionsButton)
|
||||
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: roomOptionsMenu
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Invite users")
|
||||
visible: room ? room.permissions.canInvite() : false
|
||||
|
||||
onTriggered: TimelineManager.openInviteUsers(roomId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Members")
|
||||
|
||||
onTriggered: TimelineManager.openRoomMembers(room)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Leave room")
|
||||
|
||||
onTriggered: TimelineManager.openLeaveRoomDialog(roomId)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Settings")
|
||||
|
||||
onTriggered: TimelineManager.openRoomSettings(roomId)
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import QtQuick 2.15
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import im.nheko 1.0
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import im.nheko
|
||||
|
||||
Platform.Menu {
|
||||
Menu {
|
||||
id: spacesMenu
|
||||
|
||||
property string roomid
|
||||
|
@ -19,55 +19,60 @@ Platform.Menu {
|
|||
onAboutToShow: loadChildren = true
|
||||
//onAboutToHide: loadChildren = false
|
||||
|
||||
Platform.MenuItemGroup {
|
||||
ButtonGroup {
|
||||
id: modificationGroup
|
||||
visible: position != -1
|
||||
//visible: position != -1
|
||||
}
|
||||
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Official community for this room")
|
||||
group: modificationGroup
|
||||
ButtonGroup.group: modificationGroup
|
||||
visible: position != -1
|
||||
checkable: true
|
||||
checked: spacesMenu.position >= 0 && (modelData.childValid && modelData.parentValid && modelData.canonical)
|
||||
enabled: spacesMenu.position >= 0 && (modelData.canEditChild && modelData.canEditParent)
|
||||
onTriggered: if (checked) Communities.updateSpaceStatus(modelData.roomid, spacesMenu.roomid, true, true, true)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Affiliated community for this room")
|
||||
group: modificationGroup
|
||||
ButtonGroup.group: modificationGroup
|
||||
visible: position != -1
|
||||
checkable: true
|
||||
checked: spacesMenu.position >= 0 && (modelData.childValid && modelData.parentValid && !modelData.canonical)
|
||||
enabled: spacesMenu.position >= 0 && (modelData.canEditChild && modelData.canEditParent)
|
||||
onTriggered: if (checked) Communities.updateSpaceStatus(modelData.roomid, spacesMenu.roomid, true, true, false)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Listed only for community members")
|
||||
group: modificationGroup
|
||||
ButtonGroup.group: modificationGroup
|
||||
visible: position != -1
|
||||
checkable: true
|
||||
checked: spacesMenu.position >= 0 && (modelData.childValid && !modelData.parentValid)
|
||||
enabled: spacesMenu.position >= 0 && ((modelData.canEditChild || modelData.childValid) && (!modelData.parentValid || modelData.canEditParent))
|
||||
onTriggered: if (checked) Communities.updateSpaceStatus(modelData.roomid, spacesMenu.roomid, false, true, false)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Listed only for room members")
|
||||
group: modificationGroup
|
||||
ButtonGroup.group: modificationGroup
|
||||
visible: position != -1
|
||||
checkable: true
|
||||
checked: spacesMenu.position >= 0 && (!modelData.childValid && modelData.parentValid)
|
||||
enabled: spacesMenu.position >= 0 && ((modelData.canEditChild) && (modelData.parentValid || modelData.canEditParent))
|
||||
onTriggered: if (checked) Communities.updateSpaceStatus(modelData.roomid, spacesMenu.roomid, true, false, false)
|
||||
}
|
||||
Platform.MenuItem {
|
||||
MenuItem {
|
||||
text: qsTr("Not related")
|
||||
group: modificationGroup
|
||||
ButtonGroup.group: modificationGroup
|
||||
visible: position != -1
|
||||
checkable: true
|
||||
checked: spacesMenu.position >= 0 && (!modelData.childValid && !modelData.parentValid)
|
||||
enabled: spacesMenu.position >= 0 && ((modelData.canEditChild || !modelData.childValid) && (!modelData.parentValid || modelData.canEditParent))
|
||||
onTriggered: if (checked) Communities.updateSpaceStatus(modelData.roomid, spacesMenu.roomid, false, false, false)
|
||||
}
|
||||
|
||||
Platform.MenuSeparator {
|
||||
text: qsTr("Subcommunities")
|
||||
group: modificationGroup
|
||||
MenuSeparator {
|
||||
//text: qsTr("Subcommunities")
|
||||
ButtonGroup.group: modificationGroup
|
||||
visible: modificationGroup.visible && inst.model != undefined
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
import ".."
|
||||
import "../ui"
|
||||
import Qt.labs.platform 1.1 as Platform
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.2
|
||||
import QtQuick.Window 2.13
|
||||
import QtQuick.Dialogs
|
||||
import im.nheko 1.0
|
||||
|
||||
ApplicationWindow {
|
||||
|
@ -580,26 +580,23 @@ ApplicationWindow {
|
|||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
Platform.MessageDialog {
|
||||
MessageDialog {
|
||||
id: confirmEncryptionDialog
|
||||
|
||||
title: qsTr("End-to-End Encryption")
|
||||
text: qsTr(`Encryption is currently experimental and things might break unexpectedly. <br>
|
||||
Please take note that it can't be disabled afterwards.`)
|
||||
modality: Qt.NonModal
|
||||
// Broken on macos, see https://bugreports.qt.io/browse/QTBUG-102078
|
||||
//onAccepted: {
|
||||
onOkClicked: {
|
||||
onAccepted: {
|
||||
if (roomSettings.isEncryptionEnabled)
|
||||
return ;
|
||||
|
||||
roomSettings.enableEncryption();
|
||||
}
|
||||
//onRejected: {
|
||||
onCancelClicked: {
|
||||
onRejected: {
|
||||
encryptionToggle.checked = false;
|
||||
}
|
||||
buttons: Platform.MessageDialog.Ok | Platform.MessageDialog.Cancel
|
||||
buttons: MessageDialog.Ok | MessageDialog.Cancel
|
||||
}
|
||||
|
||||
Label {
|
||||
|
|
Loading…
Reference in a new issue