diff --git a/client/ui/pages_logic/ClientInfoLogic.cpp b/client/ui/pages_logic/ClientInfoLogic.cpp index 779b7884..74e3b4df 100644 --- a/client/ui/pages_logic/ClientInfoLogic.cpp +++ b/client/ui/pages_logic/ClientInfoLogic.cpp @@ -60,8 +60,7 @@ void ClientInfoLogic::onLineEditNameAliasEditingFinished() clientsTable); if (error != ErrorCode::NoError) { QMessageBox::warning(nullptr, APPLICATION_NAME, - tr("An error occurred while getting the list of clients.") + "\n" + errorString(error)); - return; + tr("An error occurred while saving the list of clients.") + "\n" + errorString(error)); } } } diff --git a/client/ui/pages_logic/ClientManagementLogic.cpp b/client/ui/pages_logic/ClientManagementLogic.cpp index 7e63e3dd..21409654 100644 --- a/client/ui/pages_logic/ClientManagementLogic.cpp +++ b/client/ui/pages_logic/ClientManagementLogic.cpp @@ -17,6 +17,8 @@ ClientManagementLogic::ClientManagementLogic(UiLogic *logic, QObject *parent): void ClientManagementLogic::onUpdatePage() { + set_busyIndicatorIsRunning(true); + qobject_cast(uiLogic()->clientManagementModel())->clearData(); DockerContainer selectedContainer = m_settings->defaultContainer(uiLogic()->selectedServerIndex); QString selectedContainerName = ContainerProps::containerHumanNames().value(selectedContainer); @@ -41,6 +43,8 @@ void ClientManagementLogic::onUpdatePage() clientsArray.push_back(clients[clientId].toObject()); } qobject_cast(uiLogic()->clientManagementModel())->setContent(clientsArray); + + set_busyIndicatorIsRunning(false); } void ClientManagementLogic::onClientItemClicked(int index) diff --git a/client/ui/pages_logic/ClientManagementLogic.h b/client/ui/pages_logic/ClientManagementLogic.h index 3ba17503..82a323ea 100644 --- a/client/ui/pages_logic/ClientManagementLogic.h +++ b/client/ui/pages_logic/ClientManagementLogic.h @@ -12,6 +12,7 @@ class ClientManagementLogic : public PageLogicBase Q_OBJECT AUTO_PROPERTY(QString, labelCurrentVpnProtocolText) + AUTO_PROPERTY(bool, busyIndicatorIsRunning); public: ClientManagementLogic(UiLogic *uiLogic, QObject *parent = nullptr); diff --git a/client/ui/qml/Pages/PageClientManagement.qml b/client/ui/qml/Pages/PageClientManagement.qml index 257b04cc..89a8e192 100644 --- a/client/ui/qml/Pages/PageClientManagement.qml +++ b/client/ui/qml/Pages/PageClientManagement.qml @@ -12,6 +12,7 @@ PageBase { id: root page: PageEnum.ClientManagement logic: ClientManagementLogic + enabled: !ClientManagementLogic.busyIndicatorIsRunning BackButton { id: back @@ -43,7 +44,13 @@ PageBase { anchors.left: parent.left font.pixelSize: 20 horizontalAlignment: Text.AlignHCenter - text: ServerSettingsLogic.labelCurrentVpnProtocolText + text: ClientManagementLogic.labelCurrentVpnProtocolText + } + + BusyIndicator { + anchors.horizontalCenter: parent.horizontalCenter + visible: ClientManagementLogic.busyIndicatorIsRunning + running: ClientManagementLogic.busyIndicatorIsRunning } SortFilterProxyModel {