From f55bd5e1a11a0d17c9116c7a9d5e652bf1815837 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Tue, 23 Jan 2024 23:56:16 +0700 Subject: [PATCH 1/2] fixed first container selection on HomeContainersListView after server cleanup --- client/ui/qml/Components/HomeContainersListView.qml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/client/ui/qml/Components/HomeContainersListView.qml b/client/ui/qml/Components/HomeContainersListView.qml index 2c07ca65f..3043e97fa 100644 --- a/client/ui/qml/Components/HomeContainersListView.qml +++ b/client/ui/qml/Components/HomeContainersListView.qml @@ -30,7 +30,9 @@ ListView { target: ServersModel function onCurrentlyProcessedServerIndexChanged() { - menuContent.checkCurrentItem() + if (ContainersModel.getDefaultContainer()) { + menuContent.checkCurrentItem() + } } } @@ -76,9 +78,8 @@ ListView { } if (checked) { - ServersModel.setDefaultContainer(proxyContainersModel.mapToSource(index)) - containersDropDown.menuVisible = false + ServersModel.setDefaultContainer(proxyContainersModel.mapToSource(index)) } else { if (!isSupported && isInstalled) { PageController.showErrorMessage(qsTr("The selected protocol is not supported on the current platform")) From 0160b0f9dcd3c8acb078569439b739073afe1c51 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Tue, 23 Jan 2024 23:57:14 +0700 Subject: [PATCH 2/2] editServer now does not update the whole model, but only the modified element --- client/ui/models/servers_model.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/client/ui/models/servers_model.cpp b/client/ui/models/servers_model.cpp index 1922e1882..ad9b00593 100644 --- a/client/ui/models/servers_model.cpp +++ b/client/ui/models/servers_model.cpp @@ -251,10 +251,9 @@ void ServersModel::addServer(const QJsonObject &server) void ServersModel::editServer(const QJsonObject &server) { - beginResetModel(); m_settings->editServer(m_currentlyProcessedServerIndex, server); - m_servers = m_settings->serversArray(); - endResetModel(); + m_servers.replace(m_currentlyProcessedServerIndex, m_settings->serversArray().at(m_currentlyProcessedServerIndex)); + emit dataChanged(index(m_currentlyProcessedServerIndex, 0), index(m_currentlyProcessedServerIndex, 0)); updateContainersModel(); }