2023-05-15 13:38:17 +08:00
|
|
|
#include "pageController.h"
|
|
|
|
|
|
2023-07-24 16:31:04 +09:00
|
|
|
#include <QApplication>
|
|
|
|
|
|
|
|
|
|
PageController::PageController(const QSharedPointer<ServersModel> &serversModel, QObject *parent)
|
|
|
|
|
: QObject(parent), m_serversModel(serversModel)
|
2023-05-15 13:38:17 +08:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-25 15:40:17 +08:00
|
|
|
QString PageController::getInitialPage()
|
2023-05-15 13:38:17 +08:00
|
|
|
{
|
|
|
|
|
if (m_serversModel->getServersCount()) {
|
|
|
|
|
if (m_serversModel->getDefaultServerIndex() < 0) {
|
2023-06-01 11:25:33 +08:00
|
|
|
auto defaultServerIndex = m_serversModel->index(0);
|
2023-06-21 20:56:00 +09:00
|
|
|
m_serversModel->setData(defaultServerIndex, true, ServersModel::Roles::IsDefaultRole);
|
2023-05-15 13:38:17 +08:00
|
|
|
}
|
2023-05-25 15:40:17 +08:00
|
|
|
return getPagePath(PageLoader::PageEnum::PageStart);
|
2023-05-15 13:38:17 +08:00
|
|
|
} else {
|
2023-05-25 15:40:17 +08:00
|
|
|
return getPagePath(PageLoader::PageEnum::PageSetupWizardStart);
|
2023-05-15 13:38:17 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QString PageController::getPagePath(PageLoader::PageEnum page)
|
|
|
|
|
{
|
|
|
|
|
QMetaEnum metaEnum = QMetaEnum::fromType<PageLoader::PageEnum>();
|
|
|
|
|
QString pageName = metaEnum.valueToKey(static_cast<int>(page));
|
2023-05-25 15:40:17 +08:00
|
|
|
return "qrc:/ui/qml/Pages2/" + pageName + ".qml";
|
2023-05-15 13:38:17 +08:00
|
|
|
}
|
2023-07-24 16:31:04 +09:00
|
|
|
|
|
|
|
|
void PageController::closeWindow()
|
|
|
|
|
{
|
|
|
|
|
#ifdef Q_OS_ANDROID
|
|
|
|
|
qApp->quit();
|
|
|
|
|
#else
|
|
|
|
|
if (m_serversModel->getServersCount() == 0) {
|
|
|
|
|
qApp->quit();
|
|
|
|
|
} else {
|
|
|
|
|
emit hideMainWindow();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PageController::keyPressEvent(Qt::Key key)
|
|
|
|
|
{
|
|
|
|
|
switch (key) {
|
|
|
|
|
case Qt::Key_Back: emit closePage();
|
|
|
|
|
default: return;
|
|
|
|
|
}
|
|
|
|
|
}
|