Warning, /network/neochat/src/qml/GlobalMenu.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2021 Carson Black <uhhadd@gmail.com> 0002 // SPDX-License-Identifier: GPL-3.0-or-later 0003 0004 import Qt.labs.platform as Labs 0005 0006 import QtQuick 0007 import QtQuick.Window 0008 import QtQuick.Layouts 0009 0010 import org.kde.neochat 0011 import org.kde.neochat.config 0012 import org.kde.neochat.accounts 0013 0014 Labs.MenuBar { 0015 id: root 0016 0017 required property NeoChatConnection connection 0018 0019 Labs.Menu { 0020 title: i18nc("menu", "NeoChat") 0021 0022 // TODO: make about page its own thing so we can go to it instead of settings where it's currently at 0023 // Labs.MenuItem { 0024 // text: i18nc("menu", "About NeoChat") 0025 // } 0026 Labs.MenuItem { 0027 enabled: pageStack.layers.currentItem.title !== i18n("Configure NeoChat...") 0028 text: i18nc("menu", "Configure NeoChat...") 0029 0030 shortcut: StandardKey.Preferences 0031 onTriggered: pageStack.pushDialogLayer("qrc:/org/kde/neochat/qml/SettingsPage.qml", { 0032 connection: root.connection 0033 }, { 0034 title: i18n("Configure") 0035 }) 0036 } 0037 Labs.MenuItem { 0038 text: i18nc("menu", "Quit NeoChat") 0039 0040 shortcut: StandardKey.Quit 0041 onTriggered: Qt.quit() 0042 } 0043 } 0044 Labs.Menu { 0045 title: i18nc("menu", "File") 0046 0047 Labs.MenuItem { 0048 text: i18nc("menu", "New Private Chat…") 0049 enabled: pageStack.layers.currentItem.title !== i18n("Start a Chat") && AccountRegistry.accountCount > 0 0050 onTriggered: pushReplaceLayer("qrc:/org/kde/neochat/qml/StartChatPage.qml", {connection: root.connection}) 0051 } 0052 Labs.MenuItem { 0053 text: i18nc("menu", "New Group…") 0054 enabled: pageStack.layers.currentItem.title !== i18n("Start a Chat") && AccountRegistry.accountCount > 0 0055 shortcut: StandardKey.New 0056 onTriggered: { 0057 const dialog = createRoomDialog.createObject(root.overlay) 0058 dialog.open() 0059 } 0060 } 0061 Labs.MenuItem { 0062 text: i18nc("menu", "Browse Chats…") 0063 onTriggered: { 0064 let dialog = pageStack.pushDialogLayer("qrc:/org/kde/neochat/qml/JoinRoomPage.qml", {connection: root.connection}, {title: i18nc("@title", "Explore Rooms")}) 0065 dialog.roomSelected.connect((roomId, displayName, avatarUrl, alias, topic, memberCount, isJoined) => { 0066 if (isJoined) { 0067 RoomManager.enterRoom(root.connection.room(roomId)) 0068 } else { 0069 RoomManager.resolveResource(roomId, "join") 0070 } 0071 }) 0072 } 0073 } 0074 } 0075 EditMenu { 0076 title: i18nc("menu", "Edit") 0077 field: (root.activeFocusItem instanceof TextEdit || root.activeFocusItem instanceof TextInput) ? root.activeFocusItem : null 0078 } 0079 Labs.Menu { 0080 title: i18nc("menu", "View") 0081 0082 Labs.MenuItem { 0083 text: i18nc("menu item that opens a UI element called the 'Quick Switcher', which offers a fast keyboard-based interface for switching in between chats.", "Open Quick Switcher") 0084 shortcut: "Ctrl+K" 0085 onTriggered: quickView.item.open() 0086 } 0087 } 0088 Labs.Menu { 0089 title: i18nc("menu", "Window") 0090 0091 // Labs.MenuItem { 0092 // text: settings.userWantsSidebars ? i18nc("menu", "Hide Sidebar") : i18nc("menu", "Show Sidebar") 0093 // onTriggered: settings.userWantsSidebars = !settings.userWantsSidebars 0094 // } 0095 Labs.MenuItem { 0096 text: root.visibility === Window.FullScreen ? i18nc("menu", "Exit Full Screen") : i18nc("menu", "Enter Full Screen") 0097 onTriggered: root.visibility === Window.FullScreen ? root.showNormal() : root.showFullScreen() 0098 } 0099 } 0100 // TODO: offline help system (https://invent.kde.org/network/neochat/-/issues/411) 0101 Labs.Menu { 0102 title: i18nc("menu", "Help") 0103 0104 Labs.MenuItem { 0105 text: i18nc("menu", "Matrix FAQ") 0106 onTriggered: UrlHelper.openUrl("https://matrix.org/faq/") 0107 } 0108 } 0109 }