示例#1
0
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 );
   	}
}
示例#2
0
ConfigSettings::ConfigSettings(string fname, string template_fname) {
	file_name = fname;
	template_file_name = template_fname;

	if(!loadSettingsFile()){ //loads settings
		copySettingsTemplate();
	}
	else{
		copyMissingSettings();
	}
}
示例#3
0
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.";
}
示例#4
0
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();
	// }
}
示例#5
0
//clears data read and loads from the settings file
bool ConfigSettings::reloadSettingsFile(){
	settings.clear();
	return loadSettingsFile();
}