aboutsummaryrefslogtreecommitdiff
path: root/src/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.qml')
-rw-r--r--src/main.qml418
1 files changed, 0 insertions, 418 deletions
diff --git a/src/main.qml b/src/main.qml
deleted file mode 100644
index a622c18..0000000
--- a/src/main.qml
+++ /dev/null
@@ -1,418 +0,0 @@
-/*
- * This file is part of Remote Support Desktop
- * https://gitlab.das-netzwerkteam.de/RemoteWebApp/remote-support-desktop
- * Copyright 2020, 2021 Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
- * Copyright 2020, 2021 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
- * SPDX-License-Identifier: GPL-2.0-or-later
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.9
-import QtQuick.Window 2.2
-import QtQuick.Extras 1.4
-import QtQuick.Controls 2.2
-import QtQuick.Controls.Styles 1.4
-import QtQuick.Dialogs 1.2
-import QtQuick.Controls.Material 2.3
-import "scenes" as Scenes
-
-/*!
- The main.qml file contains the window, with its header, sidebar, toast and main_content.
- */
-
-ApplicationWindow {
- readonly property int normal_width: 650
- readonly property int normal_height: 500
- readonly property bool inPortrait: window.width < window.height
-
- minimumWidth: 400
- minimumHeight: 460
-
- width: normal_width
- height: normal_height
-
- id: window
- visible: true
- title: qsTr("Remote Support for your Desktop")
-
- onClosing: {
- mainqmladaptor.onCloseHandler();
- }
-
- function minimizeWindow() {
- showMinimized();
- console.log("Minimizing window now...");
- }
-
- function showWindow() {
- showNormal();
- console.log("Opening window now...");
- }
-
- function main_content_pop(item) {
- if(item) {
- if(item.search(main_content.currentItem.objectName) >= 0) return
- }
- return main_content.pop(item)
- }
-
- function main_content_push(item) {
- if(item) {
- if(item.search(main_content.currentItem.objectName) >= 0) return
- }
- return main_content.push(item)
- }
-
- function main_content_replace(item) {
- if(item) {
- if(item.search(main_content.currentItem.objectName) >= 0) return
- }
- return main_content.replace(item)
- }
-
- MessageDialog {
- id: message_dialog
- objectName: "message_dialog"
- title: qsTr("Remote Support for your Desktop")
- text: qsTr("You are not supposed to see this message.\nThis is a bug.")
- icon: StandardIcon.Critical
- }
-
- ToastManager {
- id: toast
-
- anchors.leftMargin: inPortrait ? 0 : sidebar_drawer.width
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- anchors.top: parent.top
- }
-
- Connections {
- target: mainqmladaptor
- function onShowToastSignal(text, durationMs, type) {
- toast.show(text, durationMs, type)
- }
- }
-
- Connections {
- target: mainqmladaptor
- function onShowMessageDialogChanged(show) {
- message_dialog.visible = show
- }
- }
-
- StackView {
- id: main_content
- objectName: "main_content"
-
- anchors.top: top_menu_bar_frame.bottom
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.leftMargin: !inPortrait ? sidebar_drawer.width : 0
- anchors.topMargin: 0
-
- // Our Application will start with the following content:
- initialItem: "scenes/Scene_placeholder.qml"
-
- replaceEnter: Transition {
- PropertyAnimation {
- property: "opacity"
- from: 0
- to:1
- duration: 100
- }
- }
- replaceExit: Transition {
- PropertyAnimation {
- property: "opacity"
- from: 1
- to:0
- duration: 100
- }
- }
- }
-
- Connections {
- target: mainqmladaptor
- function onMessageDialogTextChanged(text) {
- message_dialog.text = text
- }
- }
-
- Connections {
- target: mainqmladaptor
- function onMessageDialogTitleChanged(title) {
- message_dialog.title = title
- }
- }
-
- Connections {
- target: mainqmladaptor
- function onMessageDialogIconChanged(iconindex) {
- message_dialog.icon = iconindex
- }
- }
-
- /*!
- This is our sidebar (sidemenu) for navigation purposes.
- It will collapse if the window gets resized to a portrait format.
- Then it can be opened using the now visible button in the header
- or by swiping from left to right.
- main_content's leftMargin depends on sidebar_drawers's width
- We don't want them to overlap on different window heights und widths.
- */
- Drawer {
- id: sidebar_drawer
- objectName: "sidebar_drawer"
-
- y: top_menu_bar_frame.height
- width: !inPortrait ?
- Math.min(300, Math.max(200, window.width * 0.333)) :
- (window.width * 0.5)
- height: window.height - top_menu_bar_frame.height
-
- modal: inPortrait
- interactive: inPortrait
- position: inPortrait ? 0 : 1
- dragMargin: 1
- margins: -2
- visible: !inPortrait
-
- signal rwaHostSelected(string host_uuid)
- property bool rwaHostIsSelected: false
-
- ListView {
- id: sidebar_listview
- boundsBehavior: Flickable.StopAtBounds
- interactive: true
- clip: true
- anchors.fill: parent
- model: mainModel
-
- header: Rectangle {
- height: 50
- width: parent.width
- color: Material.background
-
- ComboBox {
- id: server_chooser
- objectName: "server_chooser"
-
- padding: 0
- width: parent.width
- height: 56 - y
- y: -6
-
- model: mainqmladaptor.rwaHostModel
- textRole: "alias"
-
- onCurrentIndexChanged: {
- var rwa_host = mainqmladaptor.rwaHostModel
- if (rwa_host[currentIndex] !== undefined) {
- sidebar_drawer.rwaHostSelected(rwa_host[currentIndex].uuid)
- displayText = rwa_host[currentIndex].alias
- }
- }
-
-
- }
- }
-
- footer: ItemDelegate {
- id: footer
- text: " " + qsTr("Settings")
- width: parent.width
- enabled: false
-
- onClicked: {
- var scene_url = "scenes/Scene_placeholder.qml"
- header_text.text = qsTr("Settings")
- if (inPortrait) sidebar_drawer.close()
-
- if (scene_url.search(main_content.currentItem.objectName) >= 0) return
- main_content.replace(scene_url, StackView.Transition)
- }
-
- MenuSeparator {
- parent: footer
- width: parent.width
- anchors.verticalCenter: parent.top
- }
- }
-
- VisualItemModel {
- id: mainModel
-
- ListItem {
- text: " " + qsTr("Remote Control")
- scene_url: "scenes/remote_control/Scene_remote_control.qml"
- onListItemClick: {
- header_text.text = qsTr("Allow remote control")
- if (inPortrait) sidebar_drawer.close()
-
- if (scene_url.search(main_content.currentItem.objectName) >= 0) return
- main_content.replace(scene_url, StackView.Transition)
- }
-
- // Disabled till a RWAHost object is selected.
- enabled: sidebar_drawer.rwaHostIsSelected
- }
- ListItem {
- text: " " + qsTr("Remote View")
- scene_url: "scenes/Scene_remote_view.qml"
- onListItemClick: {
- header_text.text = qsTr("Allow remote view")
- if (inPortrait) sidebar_drawer.close()
-
- if (scene_url.search(main_content.currentItem.objectName) >= 0) return
- main_content.replace(scene_url, StackView.Transition)
- }
-
- // Disabled till a RWAHost object is selected.
- //enabled: sidebar_drawer.rwaHostIsSelected
-
- // But remote view is not implemented yet
- enabled: false
- }
- ListItem {
- text: " " + qsTr("Add RWA-Server")
- scene_url: "scenes/add_rwahost_wizard/Scene_step_1.qml"
- onListItemClick: {
- header_text.text = qsTr("Server addition wizard")
- if (inPortrait) sidebar_drawer.close()
-
- if (scene_url.search(main_content.currentItem.objectName) >= 0) return
- main_content.push(scene_url, StackView.ReplaceTransition)
- }
- }
- }
-
- ScrollIndicator.vertical: ScrollIndicator { }
- }
- }
-
- // Set dark/light theme based on the slider setting
- Material.theme: inPortrait ? (theme_portrait.position < 1 ? Material.Light : Material.Dark)
- : (theme_landscape.position < 1 ? Material.Light : Material.Dark)
-
- ToolBar {
- id: top_menu_bar_frame
- width: parent.width
- height: parent.height * 0.10
-
- background: Rectangle {
- color: parent.Material.background
- border.color: parent.Material.background
- }
- Material.background: "#0d5eaf"
- Material.foreground: "#ffffff"
-
- anchors.margins: 0
- anchors.left: parent.left
- anchors.top: parent.top
-
- Switch {
- id: theme_landscape
- width: 150
- implicitWidth: 100
- visible: !inPortrait
- parent: inPortrait ? sidebar_listview : top_menu_bar_frame
-
- height: parent.height
- anchors.margins: 10
- text: qsTr("Dark theme")
- anchors.left: parent.left
- anchors.verticalCenterOffset: 0
- anchors.leftMargin: 0
- anchors.verticalCenter: parent.verticalCenter
-
- /*!
- Here is the default setting for dark/light mode
- */
- checked: true
-
- onCheckedChanged: {
- theme_portrait.checked = checked
- }
- }
-
- Switch {
- id: theme_portrait
- visible: inPortrait
- parent: sidebar_listview
-
- height: 50
- width: parent.width
-
- anchors.bottom: parent.bottom
- text: qsTr("Dark theme")
-
- checked: theme_landscape.checked
- onCheckedChanged: {
- theme_landscape.checked = checked
- }
- }
-
- Label {
- id: header_text
- height: parent.height
- color: "white"
- text: qsTr("Allow Remote Control")
- font.pointSize: 20
- fontSizeMode: Text.Fit
- horizontalAlignment: Text.AlignRight
- verticalAlignment: Text.AlignVCenter
- anchors.left: inPortrait ? burger_button.right : parent.left
- anchors.leftMargin: inPortrait ? 5 : theme_landscape.width
- anchors.right: parent.right
- anchors.rightMargin: 5
- anchors.verticalCenter: parent.verticalCenter
- padding: 5
- }
-
- Button {
- id: burger_button
- width: 50
- height: parent.height + 10
- visible: inPortrait
-
- text: "≡"
- checkable: false
- font.pointSize: 24
- flat: true
- anchors.left: parent.left
- anchors.leftMargin: 0
- anchors.verticalCenter: parent.verticalCenter
- enabled: !sidebar_drawer.opened
-
- onClicked: {
- sidebar_drawer.open()
- enabled: false
- }
- }
- }
-}
-
-/*##^## Designer {
- D{i:14;anchors_width:650}
-}
- ##^##*/