void Settings::ParseInitConfig() { QFile launcherFile(DirectoryManager::GetInstance()->GetConfigDir() + InitFile); if (!launcherFile.open(QFile::ReadOnly)) { Logger::GetInstance()->AddLog(tr("Error read launcher config")); return; } YAML::Parser launcherParser; std::istringstream launcherStream(launcherFile.readAll().data()); launcherParser.Load(launcherStream); launcherFile.close(); YAML::Node launcherSettings; if (!launcherParser.GetNextDocument(launcherSettings)) { Logger::GetInstance()->AddLog(tr("Error parse launcher settings.")); return; } AppsConfig newConfig; const YAML::Node* pTimer = launcherSettings.FindValue(CONFIG_UPDATE_INTERVAL); if (pTimer) { QString interval; setString(interval, pTimer); m_nUpdateTimer = interval.toInt() * 60 * 1000; } const YAML::Node* Launcher = launcherSettings.FindValue(LAUNCHER); if (Launcher) { const YAML::Node* LauncherVer = Launcher->FindValue(LAUNCHER_VER); if (LauncherVer) setString(newConfig.m_Launcher.m_Version, LauncherVer); const YAML::Node* LauncherUrl = Launcher->FindValue(LAUNCHER_UPDATE_URL); if (LauncherUrl) setString(newConfig.m_Launcher.m_Url, LauncherUrl); } QFile docFile(DirectoryManager::GetInstance()->GetDocumentsDirectory() + InitFile); if(docFile.open(QFile::ReadOnly)) { YAML::Parser docParser; std::istringstream docStream(docFile.readAll().data()); docParser.Load(docStream); docFile.close(); YAML::Node docSettings; docParser.GetNextDocument(docSettings); ParseAppConfig(&docSettings, STABLE, newConfig.m_Stable); ParseAppConfig(&docSettings, QA, newConfig.m_Test); ParseAppConfig(&docSettings, DEVELOPMENT, newConfig.m_Development); ParseAppConfig(&docSettings, DEPENDENCIES, newConfig.m_Dependencies); } m_Config = newConfig; }
// -------------------------------------------------------------------------- int appLauncherMain(int argc, char** argv) { #ifdef QT_MAC_USE_COCOA // See http://doc.trolltech.com/4.7/qt.html#ApplicationAttribute-enum // Setting the application to be a plugin will avoid the loading of qt_menu.nib files QCoreApplication::setAttribute(Qt::AA_MacPluginApplication, true); #endif ctkAppArguments appArguments(argc, argv); // See http://qt-project.org/doc/qt-4.8/qapplication.html#QApplication appArguments.setArgumentToFilterList( ctkAppArguments::ArgToFilterListType() << ctkAppArguments::ArgToFilterType("-style", ctkAppArguments::ARG_TO_FILTER_EQUAL_VALUE | ctkAppArguments::ARG_TO_FILTER_SPACE_VALUE) << ctkAppArguments::ArgToFilterType("-stylesheet", ctkAppArguments::ARG_TO_FILTER_EQUAL_VALUE | ctkAppArguments::ARG_TO_FILTER_SPACE_VALUE) << ctkAppArguments::ArgToFilterType("-session", ctkAppArguments::ARG_TO_FILTER_EQUAL_VALUE | ctkAppArguments::ARG_TO_FILTER_SPACE_VALUE) << ctkAppArguments::ArgToFilterType("-widgetcount") << ctkAppArguments::ArgToFilterType("-reverse") << ctkAppArguments::ArgToFilterType("-graphicssystem") << ctkAppArguments::ArgToFilterType("-qmljsdebugger=", ctkAppArguments::ARG_TO_FILTER_EQUAL_VALUE) #ifdef QT_DEBUG << ctkAppArguments::ArgToFilterType("-nograb") #endif #ifdef Q_WS_X11 << ctkAppArguments::ArgToFilterType("-display") << ctkAppArguments::ArgToFilterType("-geometry") << ctkAppArguments::ArgToFilterType("-fn") << ctkAppArguments::ArgToFilterType("-font") << ctkAppArguments::ArgToFilterType("-bg") << ctkAppArguments::ArgToFilterType("-background") << ctkAppArguments::ArgToFilterType("-fg") << ctkAppArguments::ArgToFilterType("-foreground") << ctkAppArguments::ArgToFilterType("-btn") << ctkAppArguments::ArgToFilterType("-button") << ctkAppArguments::ArgToFilterType("-name") << ctkAppArguments::ArgToFilterType("-title") << ctkAppArguments::ArgToFilterType("-visual") << ctkAppArguments::ArgToFilterType("-ncols") << ctkAppArguments::ArgToFilterType("-cmap") << ctkAppArguments::ArgToFilterType("-im") << ctkAppArguments::ArgToFilterType("-inputstyle") # ifdef QT_DEBUG << ctkAppArguments::ArgToFilterType("-dograb") << ctkAppArguments::ArgToFilterType("-sync") # endif #endif ); QFileInfo launcherFile(QDir::current(), QString(argv[0])); // Initialize resources in static libs Q_INIT_RESOURCE(CTKAppLauncherBase); QScopedPointer<ctkAppLauncher> appLauncher(new ctkAppLauncher); appLauncher->setArguments(appArguments.arguments()); bool exec = appLauncher->initialize(launcherFile.absoluteFilePath()); exec = appLauncher->configure() && exec; if (!exec) { return EXIT_SUCCESS; } QScopedPointer<QCoreApplication> app; if (appLauncher->disableSplash()) { app.reset(new QCoreApplication( appArguments.argumentCount(ctkAppArguments::ARG_REGULAR_LIST), appArguments.argumentValues(ctkAppArguments::ARG_REGULAR_LIST))); } else { app.reset(new QApplication( appArguments.argumentCount(ctkAppArguments::ARG_REGULAR_LIST), appArguments.argumentValues(ctkAppArguments::ARG_REGULAR_LIST))); } appLauncher->setApplication(*app.data()); QTimer::singleShot(0, appLauncher.data(), SLOT(startLauncher())); int res = app->exec(); // Delete application launcher appLauncher before the application app so that // graphical items such as pixmaps, widgets, etc can be released. appLauncher.reset(); return res; }