void StelApp::init(QSettings* conf) { confSettings = conf; devicePixelsPerPixel = QOpenGLContext::currentContext()->screen()->devicePixelRatio(); setBaseFontSize(confSettings->value("gui/base_font_size", 13).toInt()); core = new StelCore(); if (saveProjW!=-1 && saveProjH!=-1) core->windowHasBeenResized(0, 0, saveProjW, saveProjH); // Initialize AFTER creation of openGL context textureMgr = new StelTextureMgr(); textureMgr->init(); networkAccessManager = new QNetworkAccessManager(this); // Activate http cache if Qt version >= 4.5 QNetworkDiskCache* cache = new QNetworkDiskCache(networkAccessManager); QString cachePath = StelFileMgr::getCacheDir(); qDebug() << "Cache directory is: " << QDir::toNativeSeparators(cachePath); cache->setCacheDirectory(cachePath); networkAccessManager->setCache(cache); connect(networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(reportFileDownloadFinished(QNetworkReply*))); // Stel Object Data Base manager stelObjectMgr = new StelObjectMgr(); stelObjectMgr->init(); getModuleMgr().registerModule(stelObjectMgr); localeMgr = new StelLocaleMgr(); skyCultureMgr = new StelSkyCultureMgr(); planetLocationMgr = new StelLocationMgr(); actionMgr = new StelActionMgr(); localeMgr->init(); // Init the solar system first SolarSystem* ssystem = new SolarSystem(); ssystem->init(); getModuleMgr().registerModule(ssystem); // Load hipparcos stars & names StarMgr* hip_stars = new StarMgr(); hip_stars->init(); getModuleMgr().registerModule(hip_stars); core->init(); // Init nebulas NebulaMgr* nebulas = new NebulaMgr(); nebulas->init(); getModuleMgr().registerModule(nebulas); // Init milky way MilkyWay* milky_way = new MilkyWay(); milky_way->init(); getModuleMgr().registerModule(milky_way); // Init zodiacal light ZodiacalLight* zodiacal_light = new ZodiacalLight(); zodiacal_light->init(); getModuleMgr().registerModule(zodiacal_light); // Init sky image manager skyImageMgr = new StelSkyLayerMgr(); skyImageMgr->init(); getModuleMgr().registerModule(skyImageMgr); // Init audio manager audioMgr = new StelAudioMgr(); // Init video manager videoMgr = new StelVideoMgr(); // Constellations ConstellationMgr* asterisms = new ConstellationMgr(hip_stars); asterisms->init(); getModuleMgr().registerModule(asterisms); // Landscape, atmosphere & cardinal points section LandscapeMgr* landscape = new LandscapeMgr(); landscape->init(); getModuleMgr().registerModule(landscape); GridLinesMgr* gridLines = new GridLinesMgr(); gridLines->init(); getModuleMgr().registerModule(gridLines); // Sporadic Meteors SporadicMeteorMgr* meteors = new SporadicMeteorMgr(10, 72); meteors->init(); getModuleMgr().registerModule(meteors); // User labels LabelMgr* skyLabels = new LabelMgr(); skyLabels->init(); getModuleMgr().registerModule(skyLabels); skyCultureMgr->init(); //Create the script manager here, maybe some modules/plugins may want to connect to it //It has to be initialized later after all modules have been loaded by calling initScriptMgr #ifndef DISABLE_SCRIPTING scriptAPIProxy = new StelMainScriptAPIProxy(this); scriptMgr = new StelScriptMgr(this); #endif // Initialisation of the color scheme emit colorSchemeChanged("color"); setVisionModeNight(confSettings->value("viewing/flag_night").toBool()); // Enable viewport effect at startup if he set setViewportEffect(confSettings->value("video/viewport_effect", "none").toString()); // Proxy Initialisation setupNetworkProxy(); updateI18n(); // Init actions. actionMgr->addAction("actionShow_Night_Mode", N_("Display Options"), N_("Night mode"), this, "nightMode"); setFlagShowDecimalDegrees(confSettings->value("gui/flag_show_decimal_degrees", false).toBool()); setFlagOldAzimuthUsage(confSettings->value("gui/flag_use_azimuth_from_south", false).toBool()); initialized = true; }
ApplicationSettings::ApplicationSettings(QObject *parent): QObject(parent), m_baseFontSizeMin(-7), m_baseFontSizeMax(7), m_config(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/gcompris/" + GCOMPRIS_APPLICATION_NAME + ".conf", QSettings::IniFormat) { // initialize from settings file or default // general group m_config.beginGroup(GENERAL_GROUP_KEY); m_isAudioEffectsEnabled = m_config.value(ENABLE_AUDIO_EFFECTS_KEY, true).toBool(); m_isFullscreen = m_config.value(FULLSCREEN_KEY, true).toBool(); m_isAudioVoicesEnabled = m_config.value(ENABLE_AUDIO_VOICES_KEY, true).toBool(); m_isVirtualKeyboard = m_config.value(VIRTUALKEYBOARD_KEY, ApplicationInfo::getInstance()->isMobile()).toBool(); m_locale = m_config.value(LOCALE_KEY, GC_DEFAULT_LOCALE).toString(); m_font = m_config.value(FONT_KEY, GC_DEFAULT_FONT).toString(); m_fontCapitalization = m_config.value(FONT_CAPITALIZATION, GC_DEFAULT_FONT_CAPITALIZATION).toUInt(); m_isEmbeddedFont = m_config.value(IS_CURRENT_FONT_EMBEDDED, true).toBool(); // The default demo mode based on the platform #if defined(WITH_ACTIVATION_CODE) m_isDemoMode = m_config.value(DEMO_KEY, true).toBool(); #else m_isDemoMode = m_config.value(DEMO_KEY, false).toBool(); #endif #if defined(WITH_KIOSK_MODE) m_isKioskMode = m_config.value(KIOSK_KEY, true).toBool(); #else m_isKioskMode = m_config.value(KIOSK_KEY, false).toBool(); #endif // Option only useful if we are in demo mode (else all the activities are available and unlocked) // By default, all the activities are displayed (even locked ones) m_showLockedActivities = m_config.value(SHOW_LOCKED_ACTIVITIES_KEY, m_isDemoMode).toBool(); m_sectionVisible = m_config.value(SECTION_VISIBLE, true).toBool(); m_isAutomaticDownloadsEnabled = m_config.value(ENABLE_AUTOMATIC_DOWNLOADS, !ApplicationInfo::getInstance()->isMobile() && ApplicationInfo::isDownloadAllowed()).toBool(); m_filterLevelMin = m_config.value(FILTER_LEVEL_MIN, 1).toUInt(); m_filterLevelMax = m_config.value(FILTER_LEVEL_MAX, 6).toUInt(); m_defaultCursor = m_config.value(DEFAULT_CURSOR, false).toBool(); m_noCursor = m_config.value(NO_CURSOR, false).toBool(); setBaseFontSize(m_config.value(BASE_FONT_SIZE_KEY, 0).toInt()); m_config.sync(); // make sure all defaults are written back m_config.endGroup(); // admin group m_config.beginGroup(ADMIN_GROUP_KEY); m_downloadServerUrl = m_config.value(DOWNLOAD_SERVER_URL_KEY, "http://gcompris.net").toString(); m_config.endGroup(); // internal group m_config.beginGroup(INTERNAL_GROUP_KEY); m_exeCount = m_config.value(EXE_COUNT_KEY, 0).toUInt(); m_config.endGroup(); // no group m_isBarHidden = false; connect(this, SIGNAL(showLockedActivitiesChanged()), this, SLOT(notifyShowLockedActivitiesChanged())); connect(this, SIGNAL(audioVoicesEnabledChanged()), this, SLOT(notifyAudioVoicesEnabledChanged())); connect(this, SIGNAL(audioEffectsEnabledChanged()), this, SLOT(notifyAudioEffectsEnabledChanged())); connect(this, SIGNAL(fullscreenChanged()), this, SLOT(notifyFullscreenChanged())); connect(this, SIGNAL(localeChanged()), this, SLOT(notifyLocaleChanged())); connect(this, SIGNAL(fontChanged()), this, SLOT(notifyFontChanged())); connect(this, SIGNAL(virtualKeyboardChanged()), this, SLOT(notifyVirtualKeyboardChanged())); connect(this, SIGNAL(automaticDownloadsEnabledChanged()), this, SLOT(notifyAutomaticDownloadsEnabledChanged())); connect(this, SIGNAL(filterLevelMinChanged()), this, SLOT(notifyFilterLevelMinChanged())); connect(this, SIGNAL(filterLevelMaxChanged()), this, SLOT(notifyFilterLevelMaxChanged())); connect(this, SIGNAL(sectionVisibleChanged()), this, SLOT(notifySectionVisibleChanged())); connect(this, SIGNAL(demoModeChanged()), this, SLOT(notifyDemoModeChanged())); connect(this, SIGNAL(kioskModeChanged()), this, SLOT(notifyKioskModeChanged())); connect(this, SIGNAL(downloadServerUrlChanged()), this, SLOT(notifyDownloadServerUrlChanged())); connect(this, SIGNAL(exeCountChanged()), this, SLOT(notifyExeCountChanged())); connect(this, SIGNAL(barHiddenChanged()), this, SLOT(notifyBarHiddenChanged())); }