From 8164026891c8c916c5a542d5c4d58b0f38fa3079 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Thu, 26 Oct 2023 23:34:39 +0500 Subject: [PATCH] fixed server config update, after container config change --- client/amnezia_application.cpp | 2 ++ client/ui/models/containers_model.cpp | 12 ++---------- client/ui/models/containers_model.h | 1 + client/ui/models/servers_model.cpp | 6 ++++++ client/ui/models/servers_model.h | 2 ++ 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/client/amnezia_application.cpp b/client/amnezia_application.cpp index 3e227863..25a131f8 100644 --- a/client/amnezia_application.cpp +++ b/client/amnezia_application.cpp @@ -288,6 +288,8 @@ void AmneziaApplication::initModels() &ContainersModel::setCurrentlyProcessedServerIndex); connect(m_serversModel.get(), &ServersModel::defaultServerIndexChanged, m_containersModel.get(), &ContainersModel::setCurrentlyProcessedServerIndex); + connect(m_containersModel.get(), &ContainersModel::containersModelUpdated, m_serversModel.get(), + &ServersModel::updateContainersConfig); m_languageModel.reset(new LanguageModel(m_settings, this)); m_engine->rootContext()->setContextProperty("LanguageModel", m_languageModel.get()); diff --git a/client/ui/models/containers_model.cpp b/client/ui/models/containers_model.cpp index 6a4c0e63..3fff22d4 100644 --- a/client/ui/models/containers_model.cpp +++ b/client/ui/models/containers_model.cpp @@ -22,10 +22,6 @@ bool ContainersModel::setData(const QModelIndex &index, const QVariant &value, i DockerContainer container = ContainerProps::allContainers().at(index.row()); switch (role) { - case NameRole: - // return ContainerProps::containerHumanNames().value(container); - case DescriptionRole: - // return ContainerProps::containerDescriptions().value(container); case ConfigRole: { m_settings->setContainerConfig(m_currentlyProcessedServerIndex, container, value.toJsonObject()); m_containers = m_settings->containers(m_currentlyProcessedServerIndex); @@ -35,19 +31,15 @@ bool ContainersModel::setData(const QModelIndex &index, const QVariant &value, i break; } } - case ServiceTypeRole: - // return ContainerProps::containerService(container); - case DockerContainerRole: - // return container; - case IsInstalledRole: - // return m_settings->containers(m_currentlyProcessedServerIndex).contains(container); case IsDefaultRole: { //todo remove m_settings->setDefaultContainer(m_currentlyProcessedServerIndex, container); m_defaultContainerIndex = container; emit defaultContainerChanged(); } + default: break; } + emit containersModelUpdated(); emit dataChanged(index, index); return true; } diff --git a/client/ui/models/containers_model.h b/client/ui/models/containers_model.h index 997b21e3..8f087d87 100644 --- a/client/ui/models/containers_model.h +++ b/client/ui/models/containers_model.h @@ -73,6 +73,7 @@ protected: signals: void defaultContainerChanged(); + void containersModelUpdated(); private: QMap m_containers; diff --git a/client/ui/models/servers_model.cpp b/client/ui/models/servers_model.cpp index a2a28630..f3b2337f 100644 --- a/client/ui/models/servers_model.cpp +++ b/client/ui/models/servers_model.cpp @@ -193,6 +193,12 @@ bool ServersModel::isDefaultServerConfigContainsAmneziaDns() return primaryDns == protocols::dns::amneziaDnsIp; } +void ServersModel::updateContainersConfig() +{ + auto server = m_settings->server(m_currentlyProcessedServerIndex); + m_servers.replace(m_currentlyProcessedServerIndex, server); +} + QHash ServersModel::roleNames() const { QHash roles; diff --git a/client/ui/models/servers_model.h b/client/ui/models/servers_model.h index ad1d5a83..97d8015f 100644 --- a/client/ui/models/servers_model.h +++ b/client/ui/models/servers_model.h @@ -59,6 +59,8 @@ public slots: bool isDefaultServerConfigContainsAmneziaDns(); + void updateContainersConfig(); + protected: QHash roleNames() const override;