added PageLoader and pageController
This commit is contained in:
parent
116fa6777b
commit
03a0e2084a
27 changed files with 265 additions and 193 deletions
25
client/ui/controllers/pageController.cpp
Normal file
25
client/ui/controllers/pageController.cpp
Normal file
|
@ -0,0 +1,25 @@
|
|||
#include "pageController.h"
|
||||
|
||||
PageController::PageController(const QSharedPointer<ServersModel> &serversModel,
|
||||
QObject *parent) : QObject(parent), m_serversModel(serversModel)
|
||||
{
|
||||
}
|
||||
|
||||
void PageController::setStartPage()
|
||||
{
|
||||
if (m_serversModel->getServersCount()) {
|
||||
if (m_serversModel->getDefaultServerIndex() < 0) {
|
||||
m_serversModel->setDefaultServerIndex(0);
|
||||
}
|
||||
emit goToPage(PageLoader::PageEnum::PageStart, false);
|
||||
} else {
|
||||
emit goToPage(PageLoader::PageEnum::PageSetupWizardStart, false);
|
||||
}
|
||||
}
|
||||
|
||||
QString PageController::getPagePath(PageLoader::PageEnum page)
|
||||
{
|
||||
QMetaEnum metaEnum = QMetaEnum::fromType<PageLoader::PageEnum>();
|
||||
QString pageName = metaEnum.valueToKey(static_cast<int>(page));
|
||||
return "Pages2/" + pageName + ".qml";
|
||||
}
|
50
client/ui/controllers/pageController.h
Normal file
50
client/ui/controllers/pageController.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
#ifndef PAGECONTROLLER_H
|
||||
#define PAGECONTROLLER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QQmlEngine>
|
||||
|
||||
#include "ui/models/servers_model.h"
|
||||
|
||||
namespace PageLoader
|
||||
{
|
||||
Q_NAMESPACE
|
||||
enum class PageEnum { PageStart = 0, PageHome, PageSettings, PageShare,
|
||||
|
||||
PageSetupWizardStart, PageTest, PageSetupWizardCredentials, PageSetupWizardProtocols, PageSetupWizardEasy,
|
||||
PageSetupWizardProtocolSettings, PageSetupWizardInstalling, PageSetupWizardConfigSource,
|
||||
PageSetupWizardTextKey
|
||||
};
|
||||
Q_ENUM_NS(PageEnum)
|
||||
|
||||
static void declareQmlPageEnum() {
|
||||
qmlRegisterUncreatableMetaObject(
|
||||
PageLoader::staticMetaObject,
|
||||
"PageEnum",
|
||||
1, 0,
|
||||
"PageEnum",
|
||||
"Error: only enums"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class PageController : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PageController(const QSharedPointer<ServersModel> &serversModel,
|
||||
QObject *parent = nullptr);
|
||||
|
||||
public slots:
|
||||
void setStartPage();
|
||||
QString getPagePath(PageLoader::PageEnum page);
|
||||
|
||||
signals:
|
||||
void goToPage(PageLoader::PageEnum page, bool slide = true);
|
||||
void closePage();
|
||||
|
||||
private:
|
||||
QSharedPointer<ServersModel> m_serversModel;
|
||||
};
|
||||
|
||||
#endif // PAGECONTROLLER_H
|
Loading…
Add table
Add a link
Reference in a new issue