added protocol settings pages and models for openvpn, cloak and shadowsocks

This commit is contained in:
vladimir.kuznetsov 2023-07-13 11:29:26 +09:00
parent a97417fd38
commit c13b9754eb
42 changed files with 2130 additions and 576 deletions

View file

@ -1,6 +1,6 @@
#include "ServerContainersLogic.h"
#include "ShareConnectionLogic.h"
#include "ServerConfiguringProgressLogic.h"
#include "ShareConnectionLogic.h"
#include <QApplication>
@ -9,24 +9,22 @@
#include "core/servercontroller.h"
#include <functional>
#include "../uilogic.h"
#include "../pages_logic/VpnLogic.h"
#include "vpnconnection.h"
#include "../uilogic.h"
#include "core/errorstrings.h"
#include "vpnconnection.h"
ServerContainersLogic::ServerContainersLogic(UiLogic *logic, QObject *parent):
PageLogicBase(logic, parent)
ServerContainersLogic::ServerContainersLogic(UiLogic *logic, QObject *parent) : PageLogicBase(logic, parent)
{
}
void ServerContainersLogic::onUpdatePage()
{
// ContainersModel *c_model = qobject_cast<ContainersModel *>(uiLogic()->containersModel());
// c_model->setSelectedServerIndex(uiLogic()->m_selectedServerIndex);
// ContainersModel *c_model = qobject_cast<ContainersModel *>(uiLogic()->containersModel());
// c_model->setSelectedServerIndex(uiLogic()->m_selectedServerIndex);
ProtocolsModel *p_model = qobject_cast<ProtocolsModel *>(uiLogic()->protocolsModel());
p_model->setSelectedServerIndex(uiLogic()->m_selectedServerIndex);
// p_model->setSelectedServerIndex(uiLogic()->m_selectedServerIndex);
set_isManagedServer(m_settings->haveAuthData(uiLogic()->m_selectedServerIndex));
uiLogic()->m_installCredentials = m_settings->serverCredentials(uiLogic()->m_selectedServerIndex);
@ -35,25 +33,29 @@ void ServerContainersLogic::onUpdatePage()
void ServerContainersLogic::onPushButtonProtoSettingsClicked(DockerContainer c, Proto p)
{
qDebug()<< "ServerContainersLogic::onPushButtonProtoSettingsClicked" << c << p;
qDebug() << "ServerContainersLogic::onPushButtonProtoSettingsClicked" << c << p;
uiLogic()->m_selectedDockerContainer = c;
uiLogic()->protocolLogic(p)->updateProtocolPage(m_settings->protocolConfig(uiLogic()->m_selectedServerIndex, uiLogic()->m_selectedDockerContainer, p),
uiLogic()->m_selectedDockerContainer,
m_settings->haveAuthData(uiLogic()->m_selectedServerIndex));
uiLogic()->protocolLogic(p)->updateProtocolPage(
m_settings->protocolConfig(uiLogic()->m_selectedServerIndex, uiLogic()->m_selectedDockerContainer, p),
uiLogic()->m_selectedDockerContainer, m_settings->haveAuthData(uiLogic()->m_selectedServerIndex));
emit uiLogic()->goToProtocolPage(p);
}
void ServerContainersLogic::onPushButtonDefaultClicked(DockerContainer c)
{
if (m_settings->defaultContainer(uiLogic()->m_selectedServerIndex) == c) return;
if (m_settings->defaultContainer(uiLogic()->m_selectedServerIndex) == c)
return;
m_settings->setDefaultContainer(uiLogic()->m_selectedServerIndex, c);
uiLogic()->onUpdateAllPages();
if (uiLogic()->m_selectedServerIndex != m_settings->defaultServerIndex()) return;
if (!uiLogic()->m_vpnConnection) return;
if (!uiLogic()->m_vpnConnection->isConnected()) return;
if (uiLogic()->m_selectedServerIndex != m_settings->defaultServerIndex())
return;
if (!uiLogic()->m_vpnConnection)
return;
if (!uiLogic()->m_vpnConnection->isConnected())
return;
uiLogic()->pageLogic<VpnLogic>()->onDisconnect();
uiLogic()->pageLogic<VpnLogic>()->onConnect();
@ -67,16 +69,19 @@ void ServerContainersLogic::onPushButtonShareClicked(DockerContainer c)
void ServerContainersLogic::onPushButtonRemoveClicked(DockerContainer container)
{
//buttonSetEnabledFunc(false);
// buttonSetEnabledFunc(false);
ServerController serverController(m_settings);
ErrorCode e = serverController.removeContainer(m_settings->serverCredentials(uiLogic()->m_selectedServerIndex), container);
ErrorCode e =
serverController.removeContainer(m_settings->serverCredentials(uiLogic()->m_selectedServerIndex), container);
m_settings->removeContainerConfig(uiLogic()->m_selectedServerIndex, container);
//buttonSetEnabledFunc(true);
// buttonSetEnabledFunc(true);
if (m_settings->defaultContainer(uiLogic()->m_selectedServerIndex) == container) {
const auto &c = m_settings->containers(uiLogic()->m_selectedServerIndex);
if (c.isEmpty()) m_settings->setDefaultContainer(uiLogic()->m_selectedServerIndex, DockerContainer::None);
else m_settings->setDefaultContainer(uiLogic()->m_selectedServerIndex, c.keys().first());
if (c.isEmpty())
m_settings->setDefaultContainer(uiLogic()->m_selectedServerIndex, DockerContainer::None);
else
m_settings->setDefaultContainer(uiLogic()->m_selectedServerIndex, c.keys().first());
}
uiLogic()->onUpdateAllPages();
}
@ -96,7 +101,8 @@ void ServerContainersLogic::onPushButtonContinueClicked(DockerContainer c, int p
if (!uiLogic()->isContainerAlreadyAddedToGui(c)) {
auto installAction = [this, c, &config]() {
ServerController serverController(m_settings);
return serverController.setupContainer(m_settings->serverCredentials(uiLogic()->m_selectedServerIndex), c, config);
return serverController.setupContainer(m_settings->serverCredentials(uiLogic()->m_selectedServerIndex),
c, config);
};
errorCode = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction(installAction);
@ -107,16 +113,16 @@ void ServerContainersLogic::onPushButtonContinueClicked(DockerContainer c, int p
}
}
} else {
emit uiLogic()->showWarningMessage("Attention! The container you are trying to install is already installed on the server. "
"All installed containers have been added to the application ");
emit uiLogic()->showWarningMessage(
"Attention! The container you are trying to install is already installed on the server. "
"All installed containers have been added to the application ");
}
uiLogic()->onUpdateAllPages();
}
if (errorCode != ErrorCode::NoError) {
emit uiLogic()->showWarningMessage(tr("Error occurred while configuring server.") + "\n" +
tr("Error message: ") + errorString(errorCode) + "\n" +
tr("See logs for details."));
emit uiLogic()->showWarningMessage(tr("Error occurred while configuring server.") + "\n" + tr("Error message: ")
+ errorString(errorCode) + "\n" + tr("See logs for details."));
}
emit uiLogic()->closePage();
}