#include "FluApp.h" #include #include #include #include #include #include #include #include FluApp::FluApp(QObject *parent):QObject{parent}{ vsync(true); useSystemAppBar(false); } FluApp::~FluApp(){ } void FluApp::init(QObject *application){ this->_application = application; QJSEngine * jsEngine = qjsEngine(_application); std::string jsFunction = R"( (function () { console.log("FluentUI");}) )"; QJSValue function = jsEngine->evaluate(QString::fromStdString(jsFunction)); jsEngine->globalObject().setProperty("__fluentui",function); } void FluApp::run(){ navigate(initialRoute()); } void FluApp::navigate(const QString& route,const QJsonObject& argument,FluRegister* fluRegister){ if(!routes().contains(route)){ qCritical()<<"No route found "<property("_route").toString(); if(r == route){ win = pair.second; break; } } if(win){ int launchMode = win->property("launchMode").toInt(); if(launchMode == 1){ win->setProperty("argument",argument); win->show(); win->raise(); win->requestActivate(); return; }else if(launchMode == 2){ win->close(); } } win = qobject_cast(component.createWithInitialProperties(properties)); if(fluRegister){ fluRegister->to(win); } win->setColor(QColor(Qt::transparent)); } void FluApp::exit(int retCode){ for (const auto& pair : _windows.toStdMap()) { pair.second->close(); removeWindow(pair.second); } qApp->exit(retCode); } void FluApp::addWindow(QQuickWindow* window){ _windows.insert(window->winId(),window); } void FluApp::removeWindow(QQuickWindow* window){ if(window){ _windows.remove(window->winId()); window->deleteLater(); window = nullptr; } }