diff --git a/client/ui/pages_logic/GeneralSettingsLogic.cpp b/client/ui/pages_logic/GeneralSettingsLogic.cpp index a71a7f91..dc6375cc 100644 --- a/client/ui/pages_logic/GeneralSettingsLogic.cpp +++ b/client/ui/pages_logic/GeneralSettingsLogic.cpp @@ -13,6 +13,7 @@ GeneralSettingsLogic::GeneralSettingsLogic(UiLogic *logic, QObject *parent): void GeneralSettingsLogic::onUpdatePage() { uiLogic()->selectedServerIndex = m_settings->defaultServerIndex(); + set_existsAnyServer(uiLogic()->selectedServerIndex >= 0); uiLogic()->selectedDockerContainer = m_settings->defaultContainer(m_settings->defaultServerIndex()); set_pushButtonGeneralSettingsShareConnectionEnable(m_settings->haveAuthData(m_settings->defaultServerIndex())); diff --git a/client/ui/pages_logic/GeneralSettingsLogic.h b/client/ui/pages_logic/GeneralSettingsLogic.h index 85671590..ddaf755f 100644 --- a/client/ui/pages_logic/GeneralSettingsLogic.h +++ b/client/ui/pages_logic/GeneralSettingsLogic.h @@ -10,6 +10,7 @@ class GeneralSettingsLogic : public PageLogicBase Q_OBJECT AUTO_PROPERTY(bool, pushButtonGeneralSettingsShareConnectionEnable) + AUTO_PROPERTY(bool, existsAnyServer) public: Q_INVOKABLE void onUpdatePage() override; diff --git a/client/ui/qml/Controls/SettingButtonType.qml b/client/ui/qml/Controls/SettingButtonType.qml index 65148c6d..b2596549 100644 --- a/client/ui/qml/Controls/SettingButtonType.qml +++ b/client/ui/qml/Controls/SettingButtonType.qml @@ -8,11 +8,12 @@ BasicButtonType { background: Item {} contentItem: Item { - anchors.fill: parent +// anchors.fill: parent SvgImageType { anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter svg.source: root.icon.source + enabled: root.enabled color: "#100A44" width: 25 height: 25 diff --git a/client/ui/qml/Controls/SvgImageType.qml b/client/ui/qml/Controls/SvgImageType.qml index 2022ee32..aee928ba 100644 --- a/client/ui/qml/Controls/SvgImageType.qml +++ b/client/ui/qml/Controls/SvgImageType.qml @@ -18,6 +18,6 @@ Item { ColorOverlay { anchors.fill: image source: image - color: root.color + color: root.enabled ? root.color : "grey" } } diff --git a/client/ui/qml/Pages/PageGeneralSettings.qml b/client/ui/qml/Pages/PageGeneralSettings.qml index 9ae285ff..b3615205 100644 --- a/client/ui/qml/Pages/PageGeneralSettings.qml +++ b/client/ui/qml/Pages/PageGeneralSettings.qml @@ -85,6 +85,7 @@ PageBase { Layout.preferredHeight: 30 icon.source: "qrc:/images/svg/vpn_key_black_24dp.svg" text: qsTr("Server Settings") + enabled: GeneralSettingsLogic.existsAnyServer onClicked: { GeneralSettingsLogic.onPushButtonGeneralSettingsServerSettingsClicked() } @@ -101,7 +102,8 @@ PageBase { Layout.preferredHeight: 30 icon.source: "qrc:/images/svg/share_black_24dp.svg" text: qsTr("Share connection") - enabled: GeneralSettingsLogic.pushButtonGeneralSettingsShareConnectionEnable + enabled: GeneralSettingsLogic.pushButtonGeneralSettingsShareConnectionEnable && + GeneralSettingsLogic.existsAnyServer onClicked: { GeneralSettingsLogic.onPushButtonGeneralSettingsShareConnectionClicked() } @@ -118,6 +120,7 @@ PageBase { Layout.preferredHeight: 30 icon.source: "qrc:/images/svg/format_list_bulleted_black_24dp.svg" text: qsTr("Servers") + enabled: GeneralSettingsLogic.existsAnyServer onClicked: { UiLogic.goToPage(PageEnum.ServersList) } @@ -135,7 +138,12 @@ PageBase { icon.source: "qrc:/images/svg/control_point_black_24dp.svg" text: qsTr("Add server") onClicked: { - UiLogic.goToPage(PageEnum.Start) + if(GeneralSettingsLogic.existsAnyServer) + // If there is any server set we will go to Start Page + UiLogic.goToPage(PageEnum.Start) + else + // Else just come back to start page + UiLogic.closePage() } } diff --git a/client/ui/qml/Pages/PageStart.qml b/client/ui/qml/Pages/PageStart.qml index 423eaf27..76aeb266 100644 --- a/client/ui/qml/Pages/PageStart.qml +++ b/client/ui/qml/Pages/PageStart.qml @@ -15,6 +15,23 @@ PageBase { visible: pageLoader.depth > 1 } + ImageButtonType { + anchors { + right: parent.right + top: parent.top + } + + width: 41 + height: 41 + imgMarginHover: 8 + imgMargin: 9 + icon.source: "qrc:/images/settings_grey.png" + visible: !GeneralSettingsLogic.existsAnyServer + onClicked: { + UiLogic.goToPage(PageEnum.GeneralSettings) + } + } + Caption { id: caption text: start_switch_page.checked ?