From 85414eb65f5eb3fff953f46b9229c613d60d9ff9 Mon Sep 17 00:00:00 2001 From: ronoaer Date: Fri, 8 Sep 2023 21:31:47 +0800 Subject: [PATCH] fixed protocol reloads old value in settings page --- client/amnezia_application.cpp | 2 +- client/amnezia_application.h | 2 +- client/ui/controllers/installController.cpp | 9 ++++++++- client/ui/controllers/installController.h | 3 +++ client/ui/qml/Pages2/PageProtocolCloakSettings.qml | 10 +++++++++- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/client/amnezia_application.cpp b/client/amnezia_application.cpp index 8db6f8de..1725e1f8 100644 --- a/client/amnezia_application.cpp +++ b/client/amnezia_application.cpp @@ -330,7 +330,7 @@ void AmneziaApplication::initControllers() m_pageController.reset(new PageController(m_serversModel, m_settings)); m_engine->rootContext()->setContextProperty("PageController", m_pageController.get()); - m_installController.reset(new InstallController(m_serversModel, m_containersModel, m_settings)); + m_installController.reset(new InstallController(m_serversModel, m_containersModel, m_protocolsModel, m_settings)); m_engine->rootContext()->setContextProperty("InstallController", m_installController.get()); connect(m_installController.get(), &InstallController::passphraseRequestStarted, m_pageController.get(), &PageController::showPassphraseRequestDrawer); diff --git a/client/amnezia_application.h b/client/amnezia_application.h index 1ace6d8b..2dd74fcb 100644 --- a/client/amnezia_application.h +++ b/client/amnezia_application.h @@ -91,7 +91,7 @@ private: QSharedPointer m_containersModel; QSharedPointer m_serversModel; QSharedPointer m_languageModel; - QScopedPointer m_protocolsModel; + QSharedPointer m_protocolsModel; QSharedPointer m_sitesModel; QScopedPointer m_openVpnConfigModel; diff --git a/client/ui/controllers/installController.cpp b/client/ui/controllers/installController.cpp index 1db84b36..c0e9acbb 100644 --- a/client/ui/controllers/installController.cpp +++ b/client/ui/controllers/installController.cpp @@ -40,8 +40,13 @@ namespace InstallController::InstallController(const QSharedPointer &serversModel, const QSharedPointer &containersModel, + const QSharedPointer &protocolsModel, const std::shared_ptr &settings, QObject *parent) - : QObject(parent), m_serversModel(serversModel), m_containersModel(containersModel), m_settings(settings) + : QObject(parent), + m_serversModel(serversModel), + m_containersModel(containersModel), + m_protocolModel(protocolsModel), + m_settings(settings) { } @@ -252,6 +257,8 @@ void InstallController::updateContainer(QJsonObject config) auto errorCode = serverController.updateContainer(serverCredentials, container, oldContainerConfig, config); if (errorCode == ErrorCode::NoError) { m_containersModel->setData(modelIndex, config, ContainersModel::Roles::ConfigRole); + m_protocolModel->updateModel(config); + emit updateContainerFinished(); return; } diff --git a/client/ui/controllers/installController.h b/client/ui/controllers/installController.h index 4060c97c..47fc5dab 100644 --- a/client/ui/controllers/installController.h +++ b/client/ui/controllers/installController.h @@ -8,6 +8,7 @@ #include "core/defs.h" #include "ui/models/containers_model.h" #include "ui/models/servers_model.h" +#include "ui/models/protocols_model.h" class InstallController : public QObject { @@ -15,6 +16,7 @@ class InstallController : public QObject public: explicit InstallController(const QSharedPointer &serversModel, const QSharedPointer &containersModel, + const QSharedPointer &protocolsModel, const std::shared_ptr &settings, QObject *parent = nullptr); ~InstallController(); @@ -71,6 +73,7 @@ private: QSharedPointer m_serversModel; QSharedPointer m_containersModel; + QSharedPointer m_protocolModel; std::shared_ptr m_settings; ServerCredentials m_currentlyInstalledServerCredentials; diff --git a/client/ui/qml/Pages2/PageProtocolCloakSettings.qml b/client/ui/qml/Pages2/PageProtocolCloakSettings.qml index b53fdfdf..e15c5ec7 100644 --- a/client/ui/qml/Pages2/PageProtocolCloakSettings.qml +++ b/client/ui/qml/Pages2/PageProtocolCloakSettings.qml @@ -91,7 +91,15 @@ PageType { textField.onEditingFinished: { if (textFieldText !== site) { - site = textFieldText + var tmpText = textFieldText + tmpText = tmpText.toLocaleLowerCase() + + var indexHttps = tmpText.indexOf("https://") + if (indexHttps === 0) { + tmpText = textFieldText.substring(8) + } else { + site = textFieldText + } } } }