added PageSettings and PageSettingsServersList.

- replaced PageLoader with PageType with stackView property.
- added error handling when installing a server/container
This commit is contained in:
vladimir.kuznetsov 2023-05-25 15:40:17 +08:00
parent ca6b7fbeb2
commit e00656d757
31 changed files with 486 additions and 142 deletions

View file

@ -3,6 +3,7 @@
#include <QJsonObject>
#include "core/servercontroller.h"
#include "core/errorstrings.h"
InstallController::InstallController(const QSharedPointer<ServersModel> &serversModel,
const QSharedPointer<ContainersModel> &containersModel,
@ -12,7 +13,7 @@ InstallController::InstallController(const QSharedPointer<ServersModel> &servers
}
ErrorCode InstallController::install(DockerContainer container, int port, TransportProto transportProto)
void InstallController::install(DockerContainer container, int port, TransportProto transportProto)
{
Proto mainProto = ContainerProps::defaultProtocol(container);
@ -26,13 +27,13 @@ ErrorCode InstallController::install(DockerContainer container, int port, Transp
};
if (m_shouldCreateServer) {
return installServer(container, config);
installServer(container, config);
} else {
return installContainer(container, config);
installContainer(container, config);
}
}
ErrorCode InstallController::installServer(DockerContainer container, QJsonObject& config)
void InstallController::installServer(DockerContainer container, QJsonObject& config)
{
//todo check if container already installed
ServerController serverController(m_settings);
@ -51,15 +52,14 @@ ErrorCode InstallController::installServer(DockerContainer container, QJsonObjec
m_settings->addServer(server);
m_settings->setDefaultServer(m_settings->serversCount() - 1);
//todo change to server finished
emit installContainerFinished();
emit installServerFinished();
return;
}
//todo error processing
return errorCode;
emit installationErrorOccurred(errorString(errorCode));
}
ErrorCode InstallController::installContainer(DockerContainer container, QJsonObject& config)
void InstallController::installContainer(DockerContainer container, QJsonObject& config)
{
//todo check if container already installed
ServerCredentials serverCredentials = m_serversModel->getCurrentlyProcessedServerCredentials();
@ -69,10 +69,10 @@ ErrorCode InstallController::installContainer(DockerContainer container, QJsonOb
if (errorCode == ErrorCode::NoError) {
m_containersModel->setData(m_containersModel->index(container), config, ContainersModel::Roles::ConfigRole);
emit installContainerFinished();
return;
}
//todo error processing
return errorCode;
emit installationErrorOccurred(errorString(errorCode));
}
void InstallController::setCurrentlyInstalledServerCredentials(const QString &hostName, const QString &userName, const QString &secretData)

View file

@ -18,15 +18,18 @@ public:
QObject *parent = nullptr);
public slots:
ErrorCode install(DockerContainer container, int port, TransportProto transportProto);
void install(DockerContainer container, int port, TransportProto transportProto);
void setCurrentlyInstalledServerCredentials(const QString &hostName, const QString &userName, const QString &secretData);
void setShouldCreateServer(bool shouldCreateServer);
signals:
void installContainerFinished();
void installServerFinished();
void installationErrorOccurred(QString errorMessage);
private:
ErrorCode installServer(DockerContainer container, QJsonObject& config);
ErrorCode installContainer(DockerContainer container, QJsonObject& config);
void installServer(DockerContainer container, QJsonObject& config);
void installContainer(DockerContainer container, QJsonObject& config);
QSharedPointer<ServersModel> m_serversModel;
QSharedPointer<ContainersModel> m_containersModel;

View file

@ -5,15 +5,15 @@ PageController::PageController(const QSharedPointer<ServersModel> &serversModel,
{
}
void PageController::setStartPage()
QString PageController::getInitialPage()
{
if (m_serversModel->getServersCount()) {
if (m_serversModel->getDefaultServerIndex() < 0) {
m_serversModel->setDefaultServerIndex(0);
}
emit goToPage(PageLoader::PageEnum::PageStart, false);
return getPagePath(PageLoader::PageEnum::PageStart);
} else {
emit goToPage(PageLoader::PageEnum::PageSetupWizardStart, false);
return getPagePath(PageLoader::PageEnum::PageSetupWizardStart);
}
}
@ -21,5 +21,5 @@ QString PageController::getPagePath(PageLoader::PageEnum page)
{
QMetaEnum metaEnum = QMetaEnum::fromType<PageLoader::PageEnum>();
QString pageName = metaEnum.valueToKey(static_cast<int>(page));
return "Pages2/" + pageName + ".qml";
return "qrc:/ui/qml/Pages2/" + pageName + ".qml";
}

View file

@ -36,12 +36,12 @@ public:
QObject *parent = nullptr);
public slots:
void setStartPage();
QString getInitialPage();
QString getPagePath(PageLoader::PageEnum page);
signals:
void goToPage(PageLoader::PageEnum page, bool slide = true);
void closePage();
void goToPageHome();
void showErrorMessage(QString errorMessage);
private:
QSharedPointer<ServersModel> m_serversModel;