diff --git a/client/ui/pages_logic/ServerContainersLogic.cpp b/client/ui/pages_logic/ServerContainersLogic.cpp index 27f865b5d..4a7d23431 100644 --- a/client/ui/pages_logic/ServerContainersLogic.cpp +++ b/client/ui/pages_logic/ServerContainersLogic.cpp @@ -29,6 +29,7 @@ void ServerContainersLogic::onUpdatePage() ProtocolsModel *p_model = qobject_cast(uiLogic()->protocolsModel()); p_model->setSelectedServerIndex(uiLogic()->selectedServerIndex); + set_isManagedServer(m_settings->haveAuthData(uiLogic()->selectedServerIndex)); emit updatePage(); } diff --git a/client/ui/pages_logic/ServerContainersLogic.h b/client/ui/pages_logic/ServerContainersLogic.h index 3f2a26cd0..d0081516c 100644 --- a/client/ui/pages_logic/ServerContainersLogic.h +++ b/client/ui/pages_logic/ServerContainersLogic.h @@ -19,6 +19,8 @@ public: Q_INVOKABLE void onPushButtonRemoveClicked(DockerContainer c); Q_INVOKABLE void onPushButtonContinueClicked(DockerContainer c, int port, TransportProto tp); + AUTO_PROPERTY(bool, isManagedServer) + public: explicit ServerContainersLogic(UiLogic *uiLogic, QObject *parent = nullptr); ~ServerContainersLogic() = default; diff --git a/client/ui/pages_logic/ServerSettingsLogic.cpp b/client/ui/pages_logic/ServerSettingsLogic.cpp index 3b123174a..22555a917 100644 --- a/client/ui/pages_logic/ServerSettingsLogic.cpp +++ b/client/ui/pages_logic/ServerSettingsLogic.cpp @@ -37,11 +37,17 @@ void ServerSettingsLogic::onUpdatePage() set_pushButtonShareFullVisible(m_settings->haveAuthData(uiLogic()->selectedServerIndex)); const QJsonObject &server = m_settings->server(uiLogic()->selectedServerIndex); const QString &port = server.value(config_key::port).toString(); - set_labelServerText(QString("%1@%2%3%4") - .arg(server.value(config_key::userName).toString()) - .arg(server.value(config_key::hostName).toString()) - .arg(port.isEmpty() ? "" : ":") - .arg(port)); + + const QString &userName = server.value(config_key::userName).toString(); + const QString &hostName = server.value(config_key::hostName).toString(); + QString name = QString("%1%2%3%4%5") + .arg(userName) + .arg(userName.isEmpty() ? "" : "@") + .arg(hostName) + .arg(port.isEmpty() ? "" : ":") + .arg(port); + + set_labelServerText(name); set_lineEditDescriptionText(server.value(config_key::description).toString()); DockerContainer selectedContainer = m_settings->defaultContainer(uiLogic()->selectedServerIndex); diff --git a/client/ui/pages_logic/StartPageLogic.cpp b/client/ui/pages_logic/StartPageLogic.cpp index 09ebde9de..98fe7c7e0 100644 --- a/client/ui/pages_logic/StartPageLogic.cpp +++ b/client/ui/pages_logic/StartPageLogic.cpp @@ -269,7 +269,7 @@ bool StartPageLogic::importConnectionFromOpenVpnConfig(const QString &config) QJsonObject o; o[config_key::containers] = arr; o[config_key::defaultContainer] = "amnezia-openvpn"; - o[config_key::description] = QString("OpenVpn server"); + o[config_key::description] = m_settings->nextAvailableServerName(); const static QRegularExpression dnsRegExp("dhcp-option DNS (\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b)"); @@ -316,7 +316,7 @@ bool StartPageLogic::importConnectionFromWireguardConfig(const QString &config) QJsonObject o; o[config_key::containers] = arr; o[config_key::defaultContainer] = "amnezia-wireguard"; - o[config_key::description] = QString("Wireguard server"); + o[config_key::description] = m_settings->nextAvailableServerName(); const static QRegularExpression dnsRegExp("DNS = (\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b).*(\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b)"); QRegularExpressionMatch dnsMatch = dnsRegExp.match(config); diff --git a/client/ui/qml/Pages/PageServerContainers.qml b/client/ui/qml/Pages/PageServerContainers.qml index cecff662f..9ce89a8b3 100644 --- a/client/ui/qml/Pages/PageServerContainers.qml +++ b/client/ui/qml/Pages/PageServerContainers.qml @@ -289,7 +289,7 @@ PageBase { ImageButtonType { id: button_remove - visible: index === tb_c.currentIndex + visible: (index === tb_c.currentIndex) && ServerContainersLogic.isManagedServer Layout.alignment: Qt.AlignRight checkable: true icon.source: "qrc:/images/delete.png" @@ -316,7 +316,7 @@ PageBase { ImageButtonType { id: button_share - visible: index === tb_c.currentIndex + visible: (index === tb_c.currentIndex) && ServerContainersLogic.isManagedServer Layout.alignment: Qt.AlignRight icon.source: "qrc:/images/share.png" implicitWidth: 30 diff --git a/client/ui/qml/Pages/PageServerList.qml b/client/ui/qml/Pages/PageServerList.qml index 2d3143f47..9ed7040a3 100644 --- a/client/ui/qml/Pages/PageServerList.qml +++ b/client/ui/qml/Pages/PageServerList.qml @@ -93,14 +93,14 @@ PageBase { id: label_address x: 20 y: 40 - width: 141 + width: listWidget_servers.width - 100 height: 16 text: address } Text { x: 10 y: 10 - width: 181 + width: listWidget_servers.width - 100 height: 21 font.family: "Lato" font.styleName: "normal"