From 071bebfc11db7b43bbd79ac9835fca59c2cc4009 Mon Sep 17 00:00:00 2001 From: Mitternacht822 Date: Thu, 3 Jul 2025 21:06:36 +0400 Subject: [PATCH] refactored the issue with signal connect in corecontroller --- client/core/controllers/coreController.cpp | 3 +++ client/ui/controllers/installController.cpp | 2 ++ client/ui/controllers/installController.h | 2 ++ client/ui/models/protocols_model.cpp | 21 ------------------- client/ui/models/protocols_model.h | 2 -- .../qml/Pages2/PageSettingsServerProtocol.qml | 1 - 6 files changed, 7 insertions(+), 24 deletions(-) diff --git a/client/core/controllers/coreController.cpp b/client/core/controllers/coreController.cpp index 0e72ef1a..04ef8d46 100644 --- a/client/core/controllers/coreController.cpp +++ b/client/core/controllers/coreController.cpp @@ -120,6 +120,9 @@ void CoreController::initControllers() connect(m_installController.get(), &InstallController::currentContainerUpdated, m_connectionController.get(), &ConnectionController::onCurrentContainerUpdated); // TODO remove this + connect(m_installController.get(), &InstallController::profileCleared, + m_protocolsModel.get(), &ProtocolsModel::updateModel); + m_importController.reset(new ImportController(m_serversModel, m_containersModel, m_settings)); m_engine->rootContext()->setContextProperty("ImportController", m_importController.get()); diff --git a/client/ui/controllers/installController.cpp b/client/ui/controllers/installController.cpp index eab8979a..3cfc327d 100755 --- a/client/ui/controllers/installController.cpp +++ b/client/ui/controllers/installController.cpp @@ -669,6 +669,8 @@ void InstallController::clearCachedProfile(QSharedPointer serv m_clientManagementModel->revokeClient(containerConfig, container, serverCredentials, serverIndex, serverController); emit cachedProfileCleared(tr("%1 cached profile cleared").arg(ContainerProps::containerHumanNames().value(container))); + QJsonObject updatedConfig = m_settings->containerConfig(serverIndex, container); + emit profileCleared(updatedConfig); } QRegularExpression InstallController::ipAddressPortRegExp() diff --git a/client/ui/controllers/installController.h b/client/ui/controllers/installController.h index 8e42b5b2..d18ba946 100644 --- a/client/ui/controllers/installController.h +++ b/client/ui/controllers/installController.h @@ -83,6 +83,8 @@ signals: void noInstalledContainers(); + void profileCleared(const QJsonObject &config); + private: void installServer(const DockerContainer container, const QMap &installedContainers, const ServerCredentials &serverCredentials, const QSharedPointer &serverController, diff --git a/client/ui/models/protocols_model.cpp b/client/ui/models/protocols_model.cpp index 9c29d336..019b2d2f 100644 --- a/client/ui/models/protocols_model.cpp +++ b/client/ui/models/protocols_model.cpp @@ -68,27 +68,6 @@ QVariant ProtocolsModel::data(const QModelIndex &index, int role) const return QVariant(); } -void ProtocolsModel::reload() -{ - beginResetModel(); - - QJsonObject config = getConfig(); - - QStringList keys = m_content.keys(); - if (keys.size() == 1) { - QString protocolKey = keys.first(); - - if (config.contains(protocolKey)) { - QJsonObject protocolConfig = config.value(protocolKey).toObject(); - protocolConfig.remove(config_key::last_config); - config[protocolKey] = protocolConfig; - } - } - - updateModel(config); - endResetModel(); -} - void ProtocolsModel::updateModel(const QJsonObject &content) { m_container = ContainerProps::containerFromString(content.value(config_key::container).toString()); diff --git a/client/ui/models/protocols_model.h b/client/ui/models/protocols_model.h index 986390ec..5c52ee86 100644 --- a/client/ui/models/protocols_model.h +++ b/client/ui/models/protocols_model.h @@ -26,8 +26,6 @@ public: QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; - Q_INVOKABLE void reload(); - public slots: void updateModel(const QJsonObject &content); diff --git a/client/ui/qml/Pages2/PageSettingsServerProtocol.qml b/client/ui/qml/Pages2/PageSettingsServerProtocol.qml index a5f6f7dc..fce9b2a3 100644 --- a/client/ui/qml/Pages2/PageSettingsServerProtocol.qml +++ b/client/ui/qml/Pages2/PageSettingsServerProtocol.qml @@ -186,7 +186,6 @@ PageType { PageController.showBusyIndicator(true) InstallController.clearCachedProfile() - ProtocolsModel.reload() PageController.showBusyIndicator(false) } var noButtonFunction = function() {