From d98fdbdc5cd4a6b5cc2b15f33a910b300b8bc167 Mon Sep 17 00:00:00 2001 From: pokamest Date: Sat, 21 Oct 2023 14:17:45 +0100 Subject: [PATCH] Revert "added new drawer2type for replacing drawertype" --- client/resources.qrc | 1 - .../ConnectionTypeSelectionDrawer.qml | 7 +- .../qml/Components/HomeContainersListView.qml | 2 +- client/ui/qml/Components/QuestionDrawer.qml | 10 +- .../qml/Components/SelectLanguageDrawer.qml | 8 +- .../qml/Components/ShareConnectionDrawer.qml | 27 +- client/ui/qml/Controls2/Drawer2Type.qml | 314 ---------------- client/ui/qml/Controls2/DropDownType.qml | 21 +- client/ui/qml/Pages2/PageHome.qml | 340 +++++++++++------- .../qml/Pages2/PageProtocolCloakSettings.qml | 2 - .../Pages2/PageProtocolOpenVpnSettings.qml | 11 +- client/ui/qml/Pages2/PageProtocolRaw.qml | 15 +- .../PageProtocolShadowSocksSettings.qml | 2 - .../ui/qml/Pages2/PageServiceDnsSettings.qml | 7 +- .../ui/qml/Pages2/PageServiceSftpSettings.qml | 7 +- .../Pages2/PageServiceTorWebsiteSettings.qml | 7 +- .../ui/qml/Pages2/PageSettingsApplication.qml | 8 +- client/ui/qml/Pages2/PageSettingsBackup.qml | 7 +- client/ui/qml/Pages2/PageSettingsDns.qml | 7 +- client/ui/qml/Pages2/PageSettingsLogging.qml | 7 +- .../ui/qml/Pages2/PageSettingsServerData.qml | 24 +- .../ui/qml/Pages2/PageSettingsServerInfo.qml | 12 +- .../qml/Pages2/PageSettingsServerProtocol.qml | 7 +- .../qml/Pages2/PageSettingsSplitTunneling.qml | 29 +- .../PageSetupWizardProtocolSettings.qml | 11 +- client/ui/qml/Pages2/PageSetupWizardStart.qml | 3 +- client/ui/qml/Pages2/PageShare.qml | 7 - client/ui/qml/Pages2/PageStart.qml | 12 +- 28 files changed, 276 insertions(+), 639 deletions(-) delete mode 100644 client/ui/qml/Controls2/Drawer2Type.qml diff --git a/client/resources.qrc b/client/resources.qrc index 91578418..4c63383c 100644 --- a/client/resources.qrc +++ b/client/resources.qrc @@ -216,7 +216,6 @@ ui/qml/Pages2/PageServiceDnsSettings.qml ui/qml/Controls2/TopCloseButtonType.qml images/controls/x-circle.svg - ui/qml/Controls2/Drawer2Type.qml ui/qml/Pages2/PageProtocolAwgSettings.qml server_scripts/awg/template.conf server_scripts/awg/start.sh diff --git a/client/ui/qml/Components/ConnectionTypeSelectionDrawer.qml b/client/ui/qml/Components/ConnectionTypeSelectionDrawer.qml index 71ec889f..1f7b2f29 100644 --- a/client/ui/qml/Components/ConnectionTypeSelectionDrawer.qml +++ b/client/ui/qml/Components/ConnectionTypeSelectionDrawer.qml @@ -8,16 +8,13 @@ import "../Controls2" import "../Controls2/TextTypes" import "../Config" -Drawer2Type { +DrawerType { id: root width: parent.width - height: parent.height - contentHeight: parent.height * 0.4375 + height: parent.height * 0.4375 ColumnLayout { - parent: root.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right diff --git a/client/ui/qml/Components/HomeContainersListView.qml b/client/ui/qml/Components/HomeContainersListView.qml index d410f252..f05b90d6 100644 --- a/client/ui/qml/Components/HomeContainersListView.qml +++ b/client/ui/qml/Components/HomeContainersListView.qml @@ -63,7 +63,7 @@ ListView { isDefault = true menuContent.currentIndex = index - containersDropDown.menu.close() + containersDropDown.menuVisible = false } else { if (!isSupported && isInstalled) { PageController.showErrorMessage(qsTr("The selected protocol is not supported on the current platform")) diff --git a/client/ui/qml/Components/QuestionDrawer.qml b/client/ui/qml/Components/QuestionDrawer.qml index 72067f97..16cdcb39 100644 --- a/client/ui/qml/Components/QuestionDrawer.qml +++ b/client/ui/qml/Components/QuestionDrawer.qml @@ -5,7 +5,7 @@ import QtQuick.Layouts import "../Controls2" import "../Controls2/TextTypes" -Drawer2Type { +DrawerType { id: root property string headerText @@ -15,14 +15,12 @@ Drawer2Type { property var yesButtonFunction property var noButtonFunction - property real drawerHeight: 0.5 width: parent.width - height: parent.height - contentHeight: parent.height * drawerHeight + height: content.implicitHeight + 32 ColumnLayout { - parent: root.contentParent + id: content anchors.top: parent.top anchors.left: parent.left @@ -31,8 +29,6 @@ Drawer2Type { anchors.rightMargin: 16 anchors.leftMargin: 16 - // visible: false - spacing: 8 Header2TextType { diff --git a/client/ui/qml/Components/SelectLanguageDrawer.qml b/client/ui/qml/Components/SelectLanguageDrawer.qml index e6fdc2b5..d318aab8 100644 --- a/client/ui/qml/Components/SelectLanguageDrawer.qml +++ b/client/ui/qml/Components/SelectLanguageDrawer.qml @@ -5,18 +5,15 @@ import QtQuick.Layouts import "../Controls2" import "../Controls2/TextTypes" -Drawer2Type { +DrawerType { id: root width: parent.width - height: parent.height - contentHeight: parent.height * 0.9 + height: parent.height * 0.9 ColumnLayout { id: backButton - parent: root.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -31,7 +28,6 @@ Drawer2Type { } FlickableType { - parent: root.contentParent anchors.top: backButton.bottom anchors.left: parent.left anchors.right: parent.right diff --git a/client/ui/qml/Components/ShareConnectionDrawer.qml b/client/ui/qml/Components/ShareConnectionDrawer.qml index 03e7b500..1158dadc 100644 --- a/client/ui/qml/Components/ShareConnectionDrawer.qml +++ b/client/ui/qml/Components/ShareConnectionDrawer.qml @@ -16,7 +16,7 @@ import "../Controls2/TextTypes" import "../Config" import "../Components" -Drawer2Type { +DrawerType { id: root property alias headerText: header.headerText @@ -28,10 +28,9 @@ Drawer2Type { property string configFileName: "amnezia_config.vpn" width: parent.width - height: parent.height - contentHeight: parent.height * 0.9 + height: parent.height * 0.9 - onDrawerClosed: { + onClosed: { configExtension = ".vpn" configCaption = qsTr("Save AmneziaVPN config") configFileName = "amnezia_config" @@ -42,9 +41,6 @@ Drawer2Type { Header2Type { id: header - - parent: root.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -54,8 +50,6 @@ Drawer2Type { } FlickableType { - parent: root.contentParent - anchors.top: header.bottom anchors.bottom: parent.bottom contentHeight: content.height + 32 @@ -132,37 +126,30 @@ Drawer2Type { text: qsTr("Show connection settings") onClicked: { - configContentDrawer.open() + configContentDrawer.visible = true } } - Drawer2Type { + DrawerType { id: configContentDrawer - parent: root width: parent.width - height: parent.height - - contentHeight: parent.height * 0.9 + height: parent.height * 0.9 BackButtonType { id: backButton - parent: configContentDrawer.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right anchors.topMargin: 16 backButtonFunction: function() { - configContentDrawer.close() + configContentDrawer.visible = false } } FlickableType { - parent: configContentDrawer.contentParent - anchors.top: backButton.bottom anchors.left: parent.left anchors.right: parent.right diff --git a/client/ui/qml/Controls2/Drawer2Type.qml b/client/ui/qml/Controls2/Drawer2Type.qml deleted file mode 100644 index fa393982..00000000 --- a/client/ui/qml/Controls2/Drawer2Type.qml +++ /dev/null @@ -1,314 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import QtQuick.Shapes - -Item { - id: root - - Connections { - target: PageController - - function onForceCloseDrawer() { - if (root.expanded()) { - collapse() - } - } - } - - signal drawerClosed - signal collapsedEntered - signal collapsedExited - signal collapsedEnter - signal collapsedPressChanged - - - visible: false - - property bool needCloseButton: true - - property string defaultColor: "#1C1D21" - property string borderColor: "#2C2D30" - property string semitransparentColor: "#90000000" - - property bool needCollapsed: false - - property int contentHeight: 0 - property Item contentParent: contentArea - - property bool dragActive: dragArea.drag.active - - property int collapsedHeight: 0 - - property bool fullMouseAreaVisible: true - property MouseArea drawerDragArea: dragArea - - state: "collapsed" - - Rectangle { - id: draw2Background - - anchors.fill: parent - height: parent.height - width: parent.width - radius: 16 - color: "transparent" - border.color: "transparent" - border.width: 1 - visible: true - - MouseArea { - id: fullMouseArea - anchors.fill: parent - enabled: root.expanded() - hoverEnabled: true - visible: fullMouseAreaVisible - - onClicked: { - if (root.expanded()) { - collapse() - } - } - } - - Rectangle { - id: placeAreaHolder - - // for apdating home drawer, normal drawer will reset it - height: 0 - - anchors.right: parent.right - anchors.left: parent.left - visible: true - color: "transparent" - - Drag.active: dragArea.drag.active - } - - - Rectangle { - id: contentArea - - anchors.top: placeAreaHolder.bottom - height: contentHeight - radius: 16 - color: root.defaultColor - border.width: 1 - border.color: root.borderColor - width: parent.width - visible: true - - Rectangle { - width: parent.radius - height: parent.radius - anchors.bottom: parent.bottom - anchors.right: parent.right - anchors.left: parent.left - color: parent.color - } - - MouseArea { - id: dragArea - - anchors.fill: parent - - cursorShape: root.collapsed() ? Qt.PointingHandCursor : Qt.ArrowCursor - hoverEnabled: true - - drag.target: placeAreaHolder - drag.axis: Drag.YAxis - drag.maximumY: root.height - root.collapsedHeight - drag.minimumY: root.collapsedHeight > 0 ? root.height - root.height * 0.9 : 0 - - /** If drag area is released at any point other than min or max y, transition to the other state */ - onReleased: { - if (root.collapsed() && placeAreaHolder.y < drag.maximumY) { - root.state = "expanded" - return - } - if (root.expanded() && placeAreaHolder.y > drag.minimumY) { - root.state = "collapsed" - return - } - } - - onClicked: { - if (root.expanded()) { - collapse() - return - } - - if (root.collapsed()) { - root.state = "expanded" - } - } - - onExited: { - collapsedExited() - } - - onEntered: { - collapsedEnter() - } - - onPressedChanged: { - collapsedPressChanged() - } - } - } - } - - onStateChanged: { - if (root.collapsed()) { - var initialPageNavigationBarColor = PageController.getInitialPageNavigationBarColor() - if (initialPageNavigationBarColor !== 0xFF1C1D21) { - PageController.updateNavigationBarColor(initialPageNavigationBarColor) - } - - if (needCloseButton) { - PageController.drawerClose() - } - - drawerClosed() - - return - } - - if (root.expanded()) { - if (PageController.getInitialPageNavigationBarColor() !== 0xFF1C1D21) { - PageController.updateNavigationBarColor(0xFF1C1D21) - } - - if (needCloseButton) { - PageController.drawerOpen() - } - - return - } - } - - /** Two states of buttonContent, great place to add any future animations for the drawer */ - states: [ - State { - name: "collapsed" - PropertyChanges { - target: placeAreaHolder - y: dragArea.drag.maximumY - } - }, - - State { - name: "expanded" - PropertyChanges { - target: placeAreaHolder - y: dragArea.drag.minimumY - } - } - ] - - transitions: [ - Transition { - from: "expanded" - to: "collapsed" - PropertyAnimation { - target: placeAreaHolder - properties: "y" - duration: 200 - } - - onRunningChanged: { - if (!running) { - draw2Background.color = "transparent" - fullMouseArea.visible = false - } - } - }, - - Transition { - from: "collapsed" - to: "expanded" - PropertyAnimation { - target: placeAreaHolder - properties: "y" - duration: 200 - } - - onRunningChanged: { - if (!running) { - draw2Background.color = semitransparentColor - fullMouseArea.visible = true - } - } - } - ] - - NumberAnimation { - id: animationVisible - target: placeAreaHolder - property: "y" - from: parent.height - to: 0 - duration: 200 - } - - // for normal drawer - function open() { - if (root.expanded()) { - return - } - - draw2Background.color = semitransparentColor - fullMouseArea.visible = true - - collapsedHeight = 0 - - root.y = 0 - root.state = "expanded" - root.visible = true - root.height = parent.height - - contentArea.height = contentHeight - - placeAreaHolder.y = 0 - placeAreaHolder.height = root.height - contentHeight - - animationVisible.running = true - } - - function close() { - collapse() - } - - function collapse() { - draw2Background.color = "transparent" - root.state = "collapsed" - } - - // for page home - function expand() { - draw2Background.color = semitransparentColor - root.state = "expanded" - } - - function expanded() { - return root.state === "expanded" ? true : false - } - - function collapsed() { - return root.state === "collapsed" ? true : false - } - - - onVisibleChanged: { - // e.g cancel, ...... - if (!visible) { - if (root.expanded()) { - if (needCloseButton) { - PageController.drawerClose() - } - - close() - } - } - } -} diff --git a/client/ui/qml/Controls2/DropDownType.qml b/client/ui/qml/Controls2/DropDownType.qml index c666408a..b91f0b7a 100644 --- a/client/ui/qml/Controls2/DropDownType.qml +++ b/client/ui/qml/Controls2/DropDownType.qml @@ -40,10 +40,6 @@ Item { property alias menuVisible: menu.visible - property Item drawerParent: root - - property Drawer2Type menu: menu - implicitWidth: rootButtonContent.implicitWidth implicitHeight: rootButtonContent.implicitHeight @@ -159,26 +155,21 @@ Item { onClicked: { if (rootButtonClickedFunction && typeof rootButtonClickedFunction === "function") { rootButtonClickedFunction() + } else { + menu.visible = true } - - menu.open() } } - Drawer2Type { + DrawerType { id: menu - parent: drawerParent - width: parent.width - height: parent.height - contentHeight: parent.height * drawerHeight + height: parent.height * drawerHeight ColumnLayout { id: header - parent: menu.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -187,14 +178,12 @@ Item { BackButtonType { backButtonImage: root.headerBackButtonImage backButtonFunction: function() { - menu.close() + root.menuVisible = false } } } FlickableType { - parent: menu.contentParent - anchors.top: header.bottom anchors.topMargin: 16 contentHeight: col.implicitHeight diff --git a/client/ui/qml/Pages2/PageHome.qml b/client/ui/qml/Pages2/PageHome.qml index 414d604b..cc49e4f0 100644 --- a/client/ui/qml/Pages2/PageHome.qml +++ b/client/ui/qml/Pages2/PageHome.qml @@ -30,13 +30,13 @@ PageType { target: PageController function onRestorePageHomeState(isContainerInstalled) { - buttonContent.collapse() + buttonContent.state = "expanded" if (isContainerInstalled) { containersDropDown.menuVisible = true } } function onForceCloseDrawer() { - buttonContent.collapse() + buttonContent.state = "collapsed" } } @@ -73,8 +73,14 @@ PageType { expandedServersMenuDescription.text = description + root.defaultServerHostName } - Component.onCompleted: { - updateDescriptions() + Component.onCompleted: updateDescriptions() + + MouseArea { + anchors.fill: parent + enabled: buttonContent.state === "expanded" + onClicked: { + buttonContent.state = "collapsed" + } } Item { @@ -86,10 +92,56 @@ PageType { } } + MouseArea { + id: dragArea + + anchors.fill: buttonBackground + cursorShape: buttonContent.state === "collapsed" ? Qt.PointingHandCursor : Qt.ArrowCursor + hoverEnabled: true + + drag.target: buttonContent + drag.axis: Drag.YAxis + drag.maximumY: root.height - buttonContent.collapsedHeight + drag.minimumY: root.height - root.height * 0.9 + + /** If drag area is released at any point other than min or max y, transition to the other state */ + onReleased: { + if (buttonContent.state === "collapsed" && buttonContent.y < dragArea.drag.maximumY) { + buttonContent.state = "expanded" + return + } + if (buttonContent.state === "expanded" && buttonContent.y > dragArea.drag.minimumY) { + buttonContent.state = "collapsed" + return + } + } + + onEntered: { + collapsedButtonChevron.backgroundColor = collapsedButtonChevron.hoveredColor + collapsedButtonHeader.opacity = 0.8 + } + onExited: { + collapsedButtonChevron.backgroundColor = collapsedButtonChevron.defaultColor + collapsedButtonHeader.opacity = 1 + } + onPressedChanged: { + collapsedButtonChevron.backgroundColor = pressed ? collapsedButtonChevron.pressedColor : entered ? collapsedButtonChevron.hoveredColor : collapsedButtonChevron.defaultColor + collapsedButtonHeader.opacity = 0.7 + } + + + onClicked: { + if (buttonContent.state === "collapsed") { + buttonContent.state = "expanded" + } + } + } + Rectangle { id: buttonBackground - anchors { left: buttonContent.left; right: buttonContent.right; top: buttonContent.top } + anchors { left: buttonContent.left; right: buttonContent.right; top: buttonContent.top } + height: root.height radius: 16 color: root.defaultColor border.color: root.borderColor @@ -105,126 +157,161 @@ PageType { } } - Drawer2Type { + ColumnLayout { id: buttonContent - visible: true - - fullMouseAreaVisible: false + /** Initial height of button content */ + property int collapsedHeight: 0 /** True when expanded objects should be visible */ - property bool expandedVisibility: buttonContent.expanded() || (buttonContent.collapsed() && buttonContent.dragActive) + property bool expandedVisibility: buttonContent.state === "expanded" || (buttonContent.state === "collapsed" && dragArea.drag.active === true) /** True when collapsed objects should be visible */ - property bool collapsedVisibility: buttonContent.collapsed() && !buttonContent.dragActive + property bool collapsedVisibility: buttonContent.state === "collapsed" && dragArea.drag.active === false - width: parent.width - height: parent.height - contentHeight: parent.height * 0.9 + Drag.active: dragArea.drag.active + anchors.right: root.right + anchors.left: root.left + y: root.height - buttonContent.height + Component.onCompleted: { + buttonContent.state = "collapsed" + } - ColumnLayout { - id: collapsedButtonContent - - parent: buttonContent.contentParent - - visible: buttonContent.collapsedVisibility - - anchors.right: parent.right - anchors.left: parent.left - anchors.top: parent.top - - onImplicitHeightChanged: { - if (buttonContent.collapsed() && buttonContent.collapsedHeight === 0) { - buttonContent.collapsedHeight = implicitHeight - } - } - - DividerType { - Layout.topMargin: 10 - Layout.fillWidth: false - Layout.preferredWidth: 20 - Layout.preferredHeight: 2 - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - } - - RowLayout { - Layout.topMargin: 14 - Layout.leftMargin: 24 - Layout.rightMargin: 24 - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - Header1TextType { - id: collapsedButtonHeader - Layout.maximumWidth: root.width - 48 - 18 - 12 // todo - - maximumLineCount: 2 - elide: Qt.ElideRight - - text: root.defaultServerName - - Layout.alignment: Qt.AlignLeft - } - - - ImageButtonType { - id: collapsedButtonChevron - - hoverEnabled: false - image: "qrc:/images/controls/chevron-down.svg" - imageColor: "#d7d8db" - - horizontalPadding: 0 - padding: 0 - spacing: 0 - - Rectangle { - id: rightImageBackground - anchors.fill: parent - radius: 16 - color: "transparent" - - Behavior on color { - PropertyAnimation { duration: 200 } - } - } - - onClicked: { - if (buttonContent.collapsed()) { - buttonContent.expand() - } - } - } - } - - LabelTextType { - id: collapsedServerMenuDescription - Layout.bottomMargin: 44 - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - visible: buttonContent.collapsedVisibility + /** Set once based on first implicit height change once all children are layed out */ + onImplicitHeightChanged: { + if (buttonContent.state === "collapsed" && collapsedHeight == 0) { + collapsedHeight = implicitHeight } } - Component.onCompleted: { - buttonContent.collapse() + onStateChanged: { + if (buttonContent.state === "collapsed") { + var initialPageNavigationBarColor = PageController.getInitialPageNavigationBarColor() + if (initialPageNavigationBarColor !== 0xFF1C1D21) { + PageController.updateNavigationBarColor(initialPageNavigationBarColor) + } + PageController.drawerClose() + return + } + if (buttonContent.state === "expanded") { + if (PageController.getInitialPageNavigationBarColor() !== 0xFF1C1D21) { + PageController.updateNavigationBarColor(0xFF1C1D21) + } + PageController.drawerOpen() + return + } + } + + /** Two states of buttonContent, great place to add any future animations for the drawer */ + states: [ + State { + name: "collapsed" + PropertyChanges { + target: buttonContent + y: root.height - collapsedHeight + } + }, + State { + name: "expanded" + PropertyChanges { + target: buttonContent + y: dragArea.drag.minimumY + + } + } + ] + + transitions: [ + Transition { + from: "collapsed" + to: "expanded" + PropertyAnimation { + target: buttonContent + properties: "y" + duration: 200 + } + }, + Transition { + from: "expanded" + to: "collapsed" + PropertyAnimation { + target: buttonContent + properties: "y" + duration: 200 + } + } + ] + + DividerType { + Layout.topMargin: 10 + Layout.fillWidth: false + Layout.preferredWidth: 20 + Layout.preferredHeight: 2 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + visible: (buttonContent.collapsedVisibility || buttonContent.expandedVisibility) + } + + RowLayout { + Layout.topMargin: 14 + Layout.leftMargin: 24 + Layout.rightMargin: 24 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + visible: buttonContent.collapsedVisibility + + spacing: 0 + + Header1TextType { + id: collapsedButtonHeader + Layout.maximumWidth: buttonContent.width - 48 - 18 - 12 // todo + + maximumLineCount: 2 + elide: Qt.ElideRight + + text: root.defaultServerName + horizontalAlignment: Qt.AlignHCenter + + Behavior on opacity { + PropertyAnimation { duration: 200 } + } + } + + ImageButtonType { + id: collapsedButtonChevron + + Layout.leftMargin: 8 + + hoverEnabled: false + image: "qrc:/images/controls/chevron-down.svg" + imageColor: "#d7d8db" + + icon.width: 18 + icon.height: 18 + backgroundRadius: 16 + horizontalPadding: 4 + topPadding: 4 + bottomPadding: 3 + + onClicked: { + if (buttonContent.state === "collapsed") { + buttonContent.state = "expanded" + } + } + } + } + + LabelTextType { + id: collapsedServerMenuDescription + Layout.bottomMargin: 44 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + visible: buttonContent.collapsedVisibility } ColumnLayout { id: serversMenuHeader - parent: buttonContent.contentParent - - anchors.top: parent.top - anchors.right: parent.right - anchors.left: parent.left - + Layout.alignment: Qt.AlignTop | Qt.AlignHCenter + Layout.fillWidth: true visible: buttonContent.expandedVisibility - - DividerType { - Layout.topMargin: 10 - Layout.fillWidth: false - Layout.preferredWidth: 20 - Layout.preferredHeight: 2 - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - } Header1TextType { Layout.fillWidth: true @@ -253,8 +340,6 @@ PageType { DropDownType { id: containersDropDown - drawerParent: root - rootButtonImageColor: "#0E0E11" rootButtonBackgroundColor: "#D7D8DB" rootButtonBackgroundHoveredColor: Qt.rgba(215, 216, 219, 0.8) @@ -316,18 +401,12 @@ PageType { Flickable { id: serversContainer - - parent: buttonContent.contentParent - - anchors.top: serversMenuHeader.bottom - anchors.right: parent.right - anchors.left: parent.left - anchors.bottom: parent.bottom - anchors.topMargin: 16 + Layout.alignment: Qt.AlignTop | Qt.AlignHCenter + Layout.fillWidth: true + Layout.topMargin: 16 contentHeight: col.implicitHeight - + implicitHeight: root.height - (root.height * 0.1) - serversMenuHeader.implicitHeight - 52 //todo 52 is tabbar height visible: buttonContent.expandedVisibility - clip: true ScrollBar.vertical: ScrollBar { @@ -437,7 +516,7 @@ PageType { onClicked: function() { ServersModel.currentlyProcessedIndex = index PageController.goToPage(PageEnum.PageSettingsServerInfo) - buttonContent.collapse() + buttonContent.state = "collapsed" } } } @@ -452,22 +531,5 @@ PageType { } } } - - onCollapsedEnter: { - collapsedButtonChevron.backgroundColor = collapsedButtonChevron.hoveredColor - collapsedButtonHeader.opacity = 0.8 - } - - onCollapsedExited: { - collapsedButtonChevron.backgroundColor = collapsedButtonChevron.defaultColor - collapsedButtonHeader.opacity = 1 - } - - onCollapsedPressChanged: { - collapsedButtonChevron.backgroundColor = buttonContent.drawerDragArea.pressed ? - collapsedButtonChevron.pressedColor : buttonContent.drawerDragArea.entered ? - collapsedButtonChevron.hoveredColor : collapsedButtonChevron.defaultColor - collapsedButtonHeader.opacity = 0.7 - } } } diff --git a/client/ui/qml/Pages2/PageProtocolCloakSettings.qml b/client/ui/qml/Pages2/PageProtocolCloakSettings.qml index b0f36971..78e666a7 100644 --- a/client/ui/qml/Pages2/PageProtocolCloakSettings.qml +++ b/client/ui/qml/Pages2/PageProtocolCloakSettings.qml @@ -117,8 +117,6 @@ PageType { Layout.fillWidth: true Layout.topMargin: 16 - drawerParent: root - descriptionText: qsTr("Cipher") headerText: qsTr("Cipher") diff --git a/client/ui/qml/Pages2/PageProtocolOpenVpnSettings.qml b/client/ui/qml/Pages2/PageProtocolOpenVpnSettings.qml index 8ce5e554..cd2dd51d 100644 --- a/client/ui/qml/Pages2/PageProtocolOpenVpnSettings.qml +++ b/client/ui/qml/Pages2/PageProtocolOpenVpnSettings.qml @@ -157,8 +157,6 @@ PageType { Layout.fillWidth: true Layout.topMargin: 20 - drawerParent: root - enabled: !autoNegotiateEncryprionSwitcher.checked descriptionText: qsTr("Hash") @@ -205,8 +203,6 @@ PageType { Layout.fillWidth: true Layout.topMargin: 16 - drawerParent: root - enabled: !autoNegotiateEncryprionSwitcher.checked descriptionText: qsTr("Cipher") @@ -374,14 +370,14 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) InstallController.removeCurrentlyProcessedContainer() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -406,7 +402,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageProtocolRaw.qml b/client/ui/qml/Pages2/PageProtocolRaw.qml index accfd0bd..f3621d96 100644 --- a/client/ui/qml/Pages2/PageProtocolRaw.qml +++ b/client/ui/qml/Pages2/PageProtocolRaw.qml @@ -90,19 +90,15 @@ PageType { DividerType {} - Drawer2Type { + DrawerType { id: configContentDrawer - parent: root width: parent.width - height: parent.height - contentHeight: parent.height * 0.9 + height: parent.height * 0.9 BackButtonType { id: backButton - parent: configContentDrawer.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -185,14 +181,14 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) InstallController.removeCurrentlyProcessedContainer() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } MouseArea { @@ -207,7 +203,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageProtocolShadowSocksSettings.qml b/client/ui/qml/Pages2/PageProtocolShadowSocksSettings.qml index 75853d1f..2453281f 100644 --- a/client/ui/qml/Pages2/PageProtocolShadowSocksSettings.qml +++ b/client/ui/qml/Pages2/PageProtocolShadowSocksSettings.qml @@ -95,8 +95,6 @@ PageType { Layout.fillWidth: true Layout.topMargin: 20 - drawerParent: root - descriptionText: qsTr("Cipher") headerText: qsTr("Cipher") diff --git a/client/ui/qml/Pages2/PageServiceDnsSettings.qml b/client/ui/qml/Pages2/PageServiceDnsSettings.qml index 9ad3b289..10fe6f56 100644 --- a/client/ui/qml/Pages2/PageServiceDnsSettings.qml +++ b/client/ui/qml/Pages2/PageServiceDnsSettings.qml @@ -68,14 +68,14 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) InstallController.removeCurrentlyProcessedContainer() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } MouseArea { @@ -89,7 +89,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageServiceSftpSettings.qml b/client/ui/qml/Pages2/PageServiceSftpSettings.qml index 1a591268..b12302dd 100644 --- a/client/ui/qml/Pages2/PageServiceSftpSettings.qml +++ b/client/ui/qml/Pages2/PageServiceSftpSettings.qml @@ -253,14 +253,14 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) InstallController.removeCurrentlyProcessedContainer() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } } @@ -270,7 +270,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageServiceTorWebsiteSettings.qml b/client/ui/qml/Pages2/PageServiceTorWebsiteSettings.qml index 9771c4db..3bfa5bb0 100644 --- a/client/ui/qml/Pages2/PageServiceTorWebsiteSettings.qml +++ b/client/ui/qml/Pages2/PageServiceTorWebsiteSettings.qml @@ -131,21 +131,20 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) InstallController.removeCurrentlyProcessedContainer() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } } QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageSettingsApplication.qml b/client/ui/qml/Pages2/PageSettingsApplication.qml index 31f59438..05e468f0 100644 --- a/client/ui/qml/Pages2/PageSettingsApplication.qml +++ b/client/ui/qml/Pages2/PageSettingsApplication.qml @@ -119,7 +119,6 @@ PageType { SelectLanguageDrawer { id: selectLanguageDrawer - parent: root } @@ -152,14 +151,14 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false SettingsController.clearSettings() PageController.replaceStartPage() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -167,7 +166,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageSettingsBackup.qml b/client/ui/qml/Pages2/PageSettingsBackup.qml index eabf1f48..81be0465 100644 --- a/client/ui/qml/Pages2/PageSettingsBackup.qml +++ b/client/ui/qml/Pages2/PageSettingsBackup.qml @@ -139,19 +139,18 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.showBusyIndicator(true) SettingsController.restoreAppConfig(filePath) PageController.showBusyIndicator(false) } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } QuestionDrawer { id: questionDrawer - parent: root } } diff --git a/client/ui/qml/Pages2/PageSettingsDns.qml b/client/ui/qml/Pages2/PageSettingsDns.qml index 8afb9bcc..5670464f 100644 --- a/client/ui/qml/Pages2/PageSettingsDns.qml +++ b/client/ui/qml/Pages2/PageSettingsDns.qml @@ -92,7 +92,7 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false SettingsController.primaryDns = "1.1.1.1" primaryDns.textFieldText = SettingsController.primaryDns SettingsController.secondaryDns = "1.0.0.1" @@ -100,9 +100,9 @@ PageType { PageController.showNotificationMessage(qsTr("Settings have been reset")) } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -124,7 +124,6 @@ PageType { } QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageSettingsLogging.qml b/client/ui/qml/Pages2/PageSettingsLogging.qml index d282d0f0..840c41d4 100644 --- a/client/ui/qml/Pages2/PageSettingsLogging.qml +++ b/client/ui/qml/Pages2/PageSettingsLogging.qml @@ -147,16 +147,16 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.showBusyIndicator(true) SettingsController.clearLogs() PageController.showBusyIndicator(false) PageController.showNotificationMessage(qsTr("Logs have been cleaned up")) } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -172,7 +172,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageSettingsServerData.qml b/client/ui/qml/Pages2/PageSettingsServerData.qml index 09066ccb..3eb07ce9 100644 --- a/client/ui/qml/Pages2/PageSettingsServerData.qml +++ b/client/ui/qml/Pages2/PageSettingsServerData.qml @@ -14,8 +14,6 @@ import "../Components" PageType { id: root - property Item questionDrawerParent - Connections { target: InstallController @@ -96,15 +94,15 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.showBusyIndicator(true) SettingsController.clearCachedProfiles() PageController.showBusyIndicator(false) } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -143,7 +141,7 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.showBusyIndicator(true) if (ServersModel.isDefaultServerCurrentlyProcessed() && ConnectionController.isConnected) { ConnectionController.closeConnection() @@ -152,9 +150,9 @@ PageType { PageController.showBusyIndicator(false) } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -174,7 +172,7 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) if (ServersModel.isDefaultServerCurrentlyProcessed() && ConnectionController.isConnected) { ConnectionController.closeConnection() @@ -182,9 +180,9 @@ PageType { InstallController.removeAllContainers() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -194,10 +192,6 @@ PageType { QuestionDrawer { id: questionDrawer - - drawerHeight: 0.5 - - parent: questionDrawerParent } } } diff --git a/client/ui/qml/Pages2/PageSettingsServerInfo.qml b/client/ui/qml/Pages2/PageSettingsServerInfo.qml index e14c6ab5..e2e7868c 100644 --- a/client/ui/qml/Pages2/PageSettingsServerInfo.qml +++ b/client/ui/qml/Pages2/PageSettingsServerInfo.qml @@ -71,17 +71,15 @@ PageType { } actionButtonFunction: function() { - serverNameEditDrawer.open() + serverNameEditDrawer.visible = true } } - Drawer2Type { + DrawerType { id: serverNameEditDrawer - parent: root width: root.width - height: root.height // * 0.35 - contentHeight: root.height * 0.35 + height: root.height * 0.35 onVisibleChanged: { if (serverNameEditDrawer.visible) { @@ -90,8 +88,6 @@ PageType { } ColumnLayout { - parent: serverNameEditDrawer.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -99,7 +95,6 @@ PageType { anchors.leftMargin: 16 anchors.rightMargin: 16 - TextFieldWithHeaderType { id: serverName @@ -169,7 +164,6 @@ PageType { } PageSettingsServerData { stackView: root.stackView - questionDrawerParent: root } } } diff --git a/client/ui/qml/Pages2/PageSettingsServerProtocol.qml b/client/ui/qml/Pages2/PageSettingsServerProtocol.qml index a518167c..30758da4 100644 --- a/client/ui/qml/Pages2/PageSettingsServerProtocol.qml +++ b/client/ui/qml/Pages2/PageSettingsServerProtocol.qml @@ -119,14 +119,14 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false PageController.goToPage(PageEnum.PageDeinstalling) InstallController.removeCurrentlyProcessedContainer() } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } MouseArea { @@ -141,7 +141,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } diff --git a/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml b/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml index 7811e2bb..cc4973f1 100644 --- a/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml +++ b/client/ui/qml/Pages2/PageSettingsSplitTunneling.qml @@ -116,8 +116,6 @@ PageType { DropDownType { id: selector - drawerParent: root - Layout.fillWidth: true Layout.topMargin: 32 Layout.leftMargin: 16 @@ -210,13 +208,13 @@ PageType { questionDrawer.noButtonText = qsTr("Cancel") questionDrawer.yesButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false SitesController.removeSite(index) } questionDrawer.noButtonFunction = function() { - questionDrawer.close() + questionDrawer.visible = false } - questionDrawer.open() + questionDrawer.visible = true } } @@ -224,7 +222,6 @@ PageType { QuestionDrawer { id: questionDrawer - parent: root } } } @@ -279,18 +276,13 @@ PageType { } } - Drawer2Type { + DrawerType { id: moreActionsDrawer width: parent.width - height: parent.height - contentHeight: parent.height * 0.4375 - - parent: root + height: parent.height * 0.4375 FlickableType { - parent: moreActionsDrawer.contentParent - anchors.fill: parent contentHeight: moreActionsDrawerContent.height ColumnLayout { @@ -349,20 +341,15 @@ PageType { } } - Drawer2Type { + DrawerType { id: importSitesDrawer width: parent.width - height: parent.height - contentHeight: parent.height * 0.4375 - - parent: root + height: parent.height * 0.4375 BackButtonType { id: importSitesDrawerBackButton - parent: importSitesDrawer.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -374,8 +361,6 @@ PageType { } FlickableType { - parent: importSitesDrawer.contentParent - anchors.top: importSitesDrawerBackButton.bottom anchors.left: parent.left anchors.right: parent.right diff --git a/client/ui/qml/Pages2/PageSetupWizardProtocolSettings.qml b/client/ui/qml/Pages2/PageSetupWizardProtocolSettings.qml index 86d3c1fd..7698c755 100644 --- a/client/ui/qml/Pages2/PageSetupWizardProtocolSettings.qml +++ b/client/ui/qml/Pages2/PageSetupWizardProtocolSettings.qml @@ -97,20 +97,15 @@ PageType { } } - Drawer2Type { + DrawerType { id: showDetailsDrawer width: parent.width - height: parent.height - contentHeight: parent.height * 0.9 - - parent: root + height: parent.height * 0.9 BackButtonType { id: showDetailsBackButton - parent: showDetailsDrawer.contentParent - anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -122,8 +117,6 @@ PageType { } FlickableType { - parent: showDetailsDrawer.contentParent - anchors.top: showDetailsBackButton.bottom anchors.left: parent.left anchors.right: parent.right diff --git a/client/ui/qml/Pages2/PageSetupWizardStart.qml b/client/ui/qml/Pages2/PageSetupWizardStart.qml index 059aedab..ba78c985 100644 --- a/client/ui/qml/Pages2/PageSetupWizardStart.qml +++ b/client/ui/qml/Pages2/PageSetupWizardStart.qml @@ -115,7 +115,7 @@ PageType { text: qsTr("I have the data to connect") onClicked: { - connectionTypeSelection.open() + connectionTypeSelection.visible = true } } @@ -140,7 +140,6 @@ PageType { ConnectionTypeSelectionDrawer { id: connectionTypeSelection - parent: root } } diff --git a/client/ui/qml/Pages2/PageShare.qml b/client/ui/qml/Pages2/PageShare.qml index 5e97cb42..25aad3de 100644 --- a/client/ui/qml/Pages2/PageShare.qml +++ b/client/ui/qml/Pages2/PageShare.qml @@ -179,8 +179,6 @@ PageType { DropDownType { id: serverSelector - drawerParent: root - signal severSelectorIndexChanged property int currentIndex: 0 @@ -243,8 +241,6 @@ PageType { DropDownType { id: protocolSelector - drawerParent: root - visible: accessTypeSelector.currentIndex === 0 Layout.fillWidth: true @@ -334,8 +330,6 @@ PageType { DropDownType { id: exportTypeSelector - drawerParent: root - property int currentIndex: 0 Layout.fillWidth: true @@ -377,7 +371,6 @@ PageType { ShareConnectionDrawer { id: shareConnectionDrawer - parent: root } BasicButtonType { diff --git a/client/ui/qml/Pages2/PageStart.qml b/client/ui/qml/Pages2/PageStart.qml index 65c351bf..ab02ace4 100644 --- a/client/ui/qml/Pages2/PageStart.qml +++ b/client/ui/qml/Pages2/PageStart.qml @@ -135,8 +135,6 @@ PageType { var pagePath = PageController.getPagePath(PageEnum.PageHome) ServersModel.currentlyProcessedIndex = ServersModel.defaultIndex tabBarStackView.push(pagePath, { "objectName" : pagePath }) - - connectionTypeSelection.parent = tabBarStackView } // onWidthChanged: { @@ -176,12 +174,6 @@ PageType { strokeColor: "#2C2D30" fillColor: "#1C1D21" } - - MouseArea { - id: noPropagateMouseEvent - anchors.fill: parent - enabled: true - } } TabImageButtonType { @@ -252,9 +244,7 @@ PageType { ConnectionTypeSelectionDrawer { id: connectionTypeSelection - z: 1 - - onDrawerClosed: { + onAboutToHide: { tabBar.setCurrentIndex(tabBar.previousIndex) } }