void Configurator::initUiFromSettings() { // load section from the file if( false == loadSettingsFile() ) return; // focus the right section int sectionIndex = 0; if( false == _startSectionName.isEmpty() ) { for( ; sectionIndex < _sections->count(); sectionIndex++ ) { QString sectionName = _sections->widget(sectionIndex)->objectName(); if( _startSectionName == sectionName ) break; } } _sections->setCurrentIndex( sectionIndex ); // focus the right sectionItem QListWidget* listWidget = qobject_cast<QListWidget*>( _sections->currentWidget() ); if( 0 != listWidget ) { int sectionItemIndex = 0; for( ; sectionItemIndex < listWidget->count(); sectionItemIndex++ ) { QString itemName = listWidget->item( sectionItemIndex )->data( Qt::UserRole ).toString(); if( _startSectionItemName == itemName ) break; } sectionItemIndex = (sectionItemIndex >= listWidget->count()) ? 0 : sectionItemIndex; listWidget->setCurrentRow( sectionItemIndex ); } }
ConfigSettings::ConfigSettings(string fname, string template_fname) { file_name = fname; template_file_name = template_fname; if(!loadSettingsFile()){ //loads settings copySettingsTemplate(); } else{ copyMissingSettings(); } }
MapSettings::MapSettings(QString _filename, QObject* _parent) : QObject(_parent), settings(NULL) { m_userHomeDir = QDir::home().absolutePath(); // Get config file from [application root directory]/config m_appRootDir = QCoreApplication::applicationDirPath(); QDir appRoot(m_appRootDir); appRoot.cdUp(); m_configDir = appRoot.absolutePath() + "/config"; // If _filename starts with a "/", assume it is a full path if (_filename.startsWith("/")) { m_settingsFile = _filename; m_configDir = QFileInfo(m_settingsFile).absolutePath(); } // Otherwise, add it to the default m_configDir else { m_settingsFile = m_configDir + "/" + _filename; } // Enumerate resources for debugging missing map HTML file if (DEBUG_MAP) { qDebug() << "Debugging Map HTML Resources..."; QDirIterator it1(":/html", QDirIterator::Subdirectories); while (it1.hasNext()) { qDebug() << it1.next(); } qDebug() << "Debugging Map Aircraft Resources..."; QDirIterator it2(":/ac", QDirIterator::Subdirectories); while (it2.hasNext()) { qDebug() << it2.next(); } } if (!QFile::exists(m_settingsFile)) { qWarning() << "Warning: Map settings file" << m_settingsFile << "does not exist. Exiting."; exit(1); } qDebug() << "Loading settings file:\n " << m_settingsFile; loadSettingsFile(m_settingsFile); qDebug() << " Done loading maps settings."; }
QtSwift::QtSwift(const po::variables_map& options) : networkFactories_(&clientMainThreadCaller_), autoUpdater_(NULL), idleDetector_(&idleQuerier_, networkFactories_.getTimerFactory(), 1000) { QCoreApplication::setApplicationName(SWIFT_APPLICATION_NAME); QCoreApplication::setOrganizationName(SWIFT_ORGANIZATION_NAME); QCoreApplication::setOrganizationDomain(SWIFT_ORGANIZATION_DOMAIN); QCoreApplication::setApplicationVersion(buildVersion); qtSettings_ = new QtSettingsProvider(); xmlSettings_ = loadSettingsFile(P2QSTRING(pathToString(Paths::getExecutablePath() / "system-settings.xml"))); settingsHierachy_ = new SettingsProviderHierachy(); settingsHierachy_->addProviderToTopOfStack(xmlSettings_); settingsHierachy_->addProviderToTopOfStack(qtSettings_); networkFactories_.getTLSContextFactory()->setDisconnectOnCardRemoval(settingsHierachy_->getSetting(SettingConstants::DISCONNECT_ON_CARD_REMOVAL)); std::map<std::string, std::string> emoticons; loadEmoticonsFile(":/emoticons/emoticons.txt", emoticons); loadEmoticonsFile(P2QSTRING(pathToString(Paths::getExecutablePath() / "emoticons.txt")), emoticons); if (options.count("netbook-mode")) { splitter_ = new QtSingleWindow(qtSettings_); } else { splitter_ = NULL; } int numberOfAccounts = 1; try { numberOfAccounts = options["multi-account"].as<int>(); } catch (...) { /* This seems to fail on a Mac when the .app is launched directly (the usual path).*/ numberOfAccounts = 1; } if (options.count("debug")) { Log::setLogLevel(Swift::Log::debug); } bool enableAdHocCommandOnJID = options.count("enable-jid-adhocs") > 0; tabs_ = NULL; if (options.count("no-tabs") && !splitter_) { tabs_ = new QtChatTabsShortcutOnlySubstitute(); } else { tabs_ = new QtChatTabs(splitter_ != NULL, settingsHierachy_, options.count("trellis")); } bool startMinimized = options.count("start-minimized") > 0; applicationPathProvider_ = new PlatformApplicationPathProvider(SWIFT_APPLICATION_NAME); storagesFactory_ = new FileStoragesFactory(applicationPathProvider_->getDataDir(), networkFactories_.getCryptoProvider()); certificateStorageFactory_ = new CertificateFileStorageFactory(applicationPathProvider_->getDataDir(), tlsFactories_.getCertificateFactory(), networkFactories_.getCryptoProvider()); chatWindowFactory_ = new QtChatWindowFactory(splitter_, settingsHierachy_, qtSettings_, tabs_, "", emoticons); soundPlayer_ = new QtSoundPlayer(applicationPathProvider_); // Ugly, because the dock depends on the tray, but the temporary // multi-account hack creates one tray per account. QtSystemTray* systemTray = new QtSystemTray(); systemTrays_.push_back(systemTray); #if defined(HAVE_GROWL) notifier_ = new GrowlNotifier(SWIFT_APPLICATION_NAME); #elif defined(SWIFTEN_PLATFORM_WINDOWS) notifier_ = new WindowsNotifier(SWIFT_APPLICATION_NAME, applicationPathProvider_->getResourcePath("/images/logo-icon-32.png"), systemTray->getQSystemTrayIcon()); #elif defined(SWIFTEN_PLATFORM_LINUX) notifier_ = new FreeDesktopNotifier(SWIFT_APPLICATION_NAME); #elif defined(SWIFTEN_PLATFORM_MACOSX) notifier_ = new NotificationCenterNotifier(); #else notifier_ = new NullNotifier(); #endif #if defined(SWIFTEN_PLATFORM_MACOSX) dock_ = new MacOSXDock(&cocoaApplication_); #else dock_ = new NullDock(); #endif #if defined(SWIFTEN_PLATFORM_MACOSX) uriHandler_ = new QtURIHandler(); #elif defined(SWIFTEN_PLATFORM_WIN32) uriHandler_ = new NullURIHandler(); #else uriHandler_ = new QtDBUSURIHandler(); #endif statusCache_ = new StatusCache(applicationPathProvider_); if (splitter_) { splitter_->show(); } for (int i = 0; i < numberOfAccounts; i++) { if (i > 0) { // Don't add the first tray (see note above) systemTrays_.push_back(new QtSystemTray()); } QtUIFactory* uiFactory = new QtUIFactory(settingsHierachy_, qtSettings_, tabs_, splitter_, systemTrays_[i], chatWindowFactory_, networkFactories_.getTimerFactory(), statusCache_, startMinimized, !emoticons.empty(), enableAdHocCommandOnJID); uiFactories_.push_back(uiFactory); MainController* mainController = new MainController( &clientMainThreadCaller_, &networkFactories_, uiFactory, settingsHierachy_, systemTrays_[i], soundPlayer_, storagesFactory_, certificateStorageFactory_, dock_, notifier_, uriHandler_, &idleDetector_, emoticons, options.count("latency-debug") > 0); mainControllers_.push_back(mainController); } // PlatformAutoUpdaterFactory autoUpdaterFactory; // if (autoUpdaterFactory.isSupported()) { // autoUpdater_ = autoUpdaterFactory.createAutoUpdater(SWIFT_APPCAST_URL); // autoUpdater_->checkForUpdates(); // } }
//clears data read and loads from the settings file bool ConfigSettings::reloadSettingsFile(){ settings.clear(); return loadSettingsFile(); }