added display of vpn containers and services on the settings page

- added PageSettingsData and implementation of 'remove all containers'  button
This commit is contained in:
vladimir.kuznetsov 2023-05-27 22:46:41 +08:00
parent e00656d757
commit 1e180489a4
19 changed files with 393 additions and 102 deletions

View file

@ -1,5 +1,7 @@
#include "containers_model.h"
#include "core/servercontroller.h"
ContainersModel::ContainersModel(std::shared_ptr<Settings> settings, QObject *parent) : m_settings(settings), QAbstractListModel(parent)
{
}
@ -106,6 +108,22 @@ int ContainersModel::getCurrentlyInstalledContainerIndex()
return m_currentlyInstalledContainerIndex;
}
void ContainersModel::removeAllContainers()
{
ServerController serverController(m_settings);
auto errorCode = serverController.removeAllContainers(m_settings->serverCredentials(m_currentlyProcessedServerIndex));
if (errorCode == ErrorCode::NoError) {
beginResetModel();
m_settings->setContainers(m_currentlyProcessedServerIndex, {});
m_settings->setDefaultContainer(m_currentlyProcessedServerIndex, DockerContainer::None);
endResetModel();
}
//todo process errors
}
QHash<int, QByteArray> ContainersModel::roleNames() const {
QHash<int, QByteArray> roles;
roles[NameRole] = "name";