Beispiel #1
0
void WritePasswordJobPrivate::scheduledStart() {
    DATA_BLOB blob_in, blob_out;
    blob_in.pbData = reinterpret_cast<BYTE*>( data.data() );
    blob_in.cbData = data.size();
    const BOOL res = CryptProtectData( &blob_in,
                                       L"QKeychain-encrypted data",
                                       NULL,
                                       NULL,
                                       NULL,
                                       0,
                                       &blob_out );
    if ( !res ) {
        q->emitFinishedWithError( OtherError, tr("Encryption failed") ); //TODO more details available?
        return;
    }

    const QByteArray encrypted( reinterpret_cast<char*>( blob_out.pbData ), blob_out.cbData );
    LocalFree( blob_out.pbData );

    //Use settings member if there, create local settings object if not
    std::auto_ptr<QSettings> local( !q->settings() ? new QSettings( q->service() ) : 0 );
    QSettings* actual = q->settings() ? q->settings() : local.get();
    actual->setValue( key, encrypted );
    actual->sync();
    if ( actual->status() != QSettings::NoError ) {

        const QString errorString = actual->status() == QSettings::AccessError
                ? tr("Could not store encrypted data in settings: access error")
                : tr("Could not store encrypted data in settings: format error");
        q->emitFinishedWithError( OtherError, errorString );
        return;
    }

    q->emitFinished();
}
Beispiel #2
0
void DeletePasswordJobPrivate::scheduledStart() {
    //Use settings member if there, create local settings object if not
    std::auto_ptr<QSettings> local( !q->settings() ? new QSettings( q->service() ) : 0 );
    QSettings* actual = q->settings() ? q->settings() : local.get();
    actual->remove( key );
    actual->sync();
    if ( actual->status() != QSettings::NoError ) {
        const QString err = actual->status() == QSettings::AccessError
                ? tr("Could not delete encrypted data from settings: access error")
                : tr("Could not delete encrypted data from settings: format error");
        q->emitFinishedWithError( OtherError, err );
    } else {
        q->emitFinished();
    }
}
Beispiel #3
0
static bool setProgID(const QString &ProgID,
               const QString &typeDescription,
               const QString &friendlyName)
{
    QString RootKeyName;
    QString classId;
    if (QSysInfo::WindowsVersion >= QSysInfo::WV_NT){
        classId = "Software/Classes/" + ProgID;
        RootKeyName = "HKEY_CURRENT_USER";
    }else{
        classId = ProgID;
        RootKeyName = "HKEY_CLASSES_ROOT";  // Windows 95/98/ME
    }

    QSettings Reg (RootKeyName, QSettings::NativeFormat);
    if (!Reg.isWritable() || Reg.status() != QSettings::NoError)
        return false;

    QString appPath = qApp->applicationFilePath();
    appPath.replace('/', '\\'); //Explorer gives 'Access Denied' if we write the path with forward slashes to the registry

    if(!typeDescription.isNull())
        Reg.setValue(classId + REG_DEFAULT, typeDescription);/// Without this, will no able to create new text document.
    if(!friendlyName.isNull())
        Reg.setValue(classId + "/shell/open/FriendlyAppName", friendlyName);
    Reg.setValue(classId + "/shell/open/command/.", QString("\"%1\" \"%2\"").arg(appPath, "%1"));
    Reg.setValue(classId + "/DefaultIcon/.", QString("\"%1\",0").arg(appPath)); /// Use the first icon of current program for default format icon.

    return true;
}
Beispiel #4
0
bool setAssociation(const QString &extension,
                    const QString &typeDescription,
                    const QString &friendlyName)
{
    if(!isSupportAssociation()) return false;

#ifndef Q_WS_WIN
    return false;
#else

    QSettings RegCR ("HKEY_CLASSES_ROOT", QSettings::NativeFormat); //Read only on NT+
    QSettings RegCU ("HKEY_CURRENT_USER", QSettings::NativeFormat);

    if (QSysInfo::WindowsVersion < QSysInfo::WV_NT && !RegCR.isWritable())  //Win98
        return false;

    QString ext("." + extension);
    QString ProgID = makeProgID(extension);

    //Check if ProgID exists in the registry, otherwise create it.
    if (!hasProgID(ProgID) && !setProgID(ProgID, typeDescription, friendlyName))
        return false;

    if(checkAssociation(extension))
        return true;

    //Create the associations
    if (QSysInfo::WindowsVersion >= QSysInfo::WV_NT){
        RegCU.setValue("Software/Classes/" + ext + REG_DEFAULT, ProgID); //Extension class

        //Explorer FileExt association
        QString FileExtsKey = QString("Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/") + ext;
        removeUserChoice(extension);
        RegCU.remove(FileExtsKey + "/Application"); /// Windows XP
    }else{ //Windows ME/98/95 support
        RegCR.setValue(ext + REG_DEFAULT, ProgID);
    }

    RegCU.sync();
    RegCR.sync();
//    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);// Refresh Explorer cache.

    return (RegCU.status() == QSettings::NoError && RegCR.status() == QSettings::NoError);

#endif  // Q_WS_WIN
}
void DBThread::Initialize()
{
    QSettings settings;//(QSettings::UserScope, "osmscout.fransschreuder", "osmscout");
    std::cout<<"Settings.status: "<<settings.status()<<std::endl;
    int selectedMap = settings.value("selectedmap", 0).toInt();
    settings.setValue("selectedmap", selectedMap);
    std::cout<<"Settings filename "<<settings.fileName().toLocal8Bit().data()<<std::endl;


    QStringList mapDirs = findValidMapDirs();
    if(mapDirs.size()<=0)
    {
        std::cout<<"Could not find valid map dir"<<std::endl;
        return;
    }
    if(selectedMap>=mapDirs.size())
    {
        selectedMap = 0;
    }
    QString databaseDirectory = mapDirs[selectedMap];
    QString stylesheetFilename=databaseDirectory+"/standard.oss";
  if (database->Open(databaseDirectory.toLocal8Bit().data())) {
    osmscout::TypeConfigRef typeConfig=database->GetTypeConfig();

    if (typeConfig) {
      styleConfig=new osmscout::StyleConfig(typeConfig);

      delete painter;
      painter=NULL;

      if (styleConfig->Load(stylesheetFilename.toLocal8Bit().data())) {
          painter=new osmscout::MapPainterQt(styleConfig);
      }
      else {
        //qDebug() << "Cannot load style sheet!";
        styleConfig=NULL;
      }
    }
    else {
      //qDebug() << "TypeConfig invalid!";
      styleConfig=NULL;
    }
  }
  else {
    //qDebug() << "Cannot open database!";
    return;
  }


  DatabaseLoadedResponse response;

  if (!database->GetBoundingBox(response.boundingBox)) {
    //qDebug() << "Cannot read initial bounding box";
    return;
  }
  emit InitialisationFinished(response);
}
Beispiel #6
0
void PassWordForm::readSettings()
{
    QSettings settings;
    if (settings.status() == QSettings::NoError)
    {
        QString user = settings.value("defaultUser").toString();
        if (user.size() > 0)
            LoginSelector->setCurrentIndex(LoginSelector->findText(user));
    }
}
bool QsLanguage::saveActiveLanguage(int langId)
{
   QSettings settings;
   if( -1 == indexOf(langId) )
      return false;
   settings.setValue(QLatin1String("language"), langId);
   settings.sync();

   if( QSettings::NoError == settings.status() )
      return true;
   return false;
}
/*!
  \internal

  Stores access token into settings. Returns false if writing settings fails.
*/
bool Facebook::storeCredentials()
{
    QSettings settings;
    settings.setValue(AccessTokenString, m_accessToken);
    settings.setValue(ExpirationDateTimeString, m_expirationDateTime);
    settings.setValue(ScreenNameString, m_screenName);

    qDebug() << "Store: Access token:" << m_accessToken << "Expiration:" 
			 << m_expirationDateTime;

    return settings.status() == QSettings::NoError;
}
/*!
  \internal

  Removes access token from settings. Returns false if removing access
  token from settings fails.
*/
bool Facebook::removeCredentials()
{
    m_accessToken.clear();
    m_expirationDateTime = QDateTime::currentDateTime();

    QSettings settings;
    settings.remove(AccessTokenString);
    settings.remove(ExpirationDateTimeString);
    settings.remove(ScreenNameString);

    return settings.status() == QSettings::NoError;
}
Beispiel #10
0
/*!
 * Copies settings from a QSettings object to another QSettings object.
 * \param originalSettings Settings to copy.
 * \param newSettings Target of the copy.
 * \return true if copying succeeds, false if it fails.
 */
static bool copySettings(const QSettings &originalSettings,
                         QSettings &newSettings)
{
    QStringList keys = originalSettings.allKeys();
    foreach(const QString & key, originalSettings.allKeys()) {
        newSettings.setValue(key, originalSettings.value(key));
        if (newSettings.status() != QSettings::NoError) {
            return false;
        }
    }
    return true;
}
Beispiel #11
0
// --------------------------------------------------------------------------
void ctkSettingsPanel::setSetting(const QString& key, const QVariant& newVal)
{
  Q_D(ctkSettingsPanel);
  QSettings* settings = d->settings(key);
  if (!settings)
    {
    return;
    }
  QVariant oldVal = settings->value(key);
  settings->setValue(key, newVal);
  d->Properties[key].setValue(newVal);
  if (settings->status() != QSettings::NoError)
    {
    logger.warn( QString("Error #%1 while writing setting \"%2\"")
      .arg(static_cast<int>(settings->status()))
      .arg(key));
    }
  if (oldVal != newVal)
    {
    emit settingChanged(key, newVal);
    }
}
void InspectorClientQt::storeSetting(const String& key, const InspectorController::Setting& setting)
{
    QSettings qsettings;
    if (qsettings.status() == QSettings::AccessError) {
        qWarning("QWebInspector: QSettings couldn't persist configuration setting [%s].",
                 qPrintable(static_cast<QString>(key)));
        return;
    }

    QVariant valueToStore = settingToVariant(setting);
    QString settingKey(settingStoragePrefix + key);
    qsettings.setValue(settingKey, valueToStore);
    qsettings.setValue(settingKey + settingStorageTypeSuffix, QVariant::typeToName(valueToStore.type()));
}
//----------------------------------------------------------------------------
void ctkDICOMServerNodeWidget::readSettings()
{
  Q_D(ctkDICOMServerNodeWidget);

  d->NodeTable->setRowCount(0);

  QSettings settings;

  QMap<QString, QVariant> node;
  if (settings.status() == QSettings::AccessError ||
      settings.value("ServerNodeCount").toInt() == 0)
    {
    d->StorageAETitle->setText("CTKSTORE");
    d->StoragePort->setText("11112");
    d->CallingAETitle->setText("CTKSTORE");

    // a dummy example
    QMap<QString, QVariant> defaultServerNode;
    defaultServerNode["Name"] = QString("ExampleHost");
    defaultServerNode["CheckState"] = static_cast<int>(Qt::Unchecked);
    defaultServerNode["AETitle"] = QString("AETITLE");
    defaultServerNode["Address"] = QString("dicom.example.com");
    defaultServerNode["Port"] = QString("11112");
    defaultServerNode["CGET"] = static_cast<int>(Qt::Unchecked);
    this->addServerNode(defaultServerNode);

    // the uk example - see http://www.dicomserver.co.uk/ 
    // and http://www.medicalconnections.co.uk/
    defaultServerNode["Name"] = QString("MedicalConnections");
    defaultServerNode["CheckState"] = static_cast<int>(Qt::Unchecked);
    defaultServerNode["AETitle"] = QString("ANYAE");
    defaultServerNode["Address"] = QString("dicomserver.co.uk");
    defaultServerNode["Port"] = QString("11112");
    defaultServerNode["CGET"] = static_cast<int>(Qt::Checked);
    this->addServerNode(defaultServerNode);

    return;
    }

  d->StorageAETitle->setText(settings.value("StorageAETitle").toString());
  d->StoragePort->setText(settings.value("StoragePort").toString());
  d->CallingAETitle->setText(settings.value("CallingAETitle").toString());

  const int count = settings.value("ServerNodeCount").toInt();
  for (int row = 0; row < count; ++row)
    {
    node = settings.value(QString("ServerNodes/%1").arg(row)).toMap();
    this->addServerNode(node);
    }
}
/*!
  \internal

  Restores access token from settings. Returns false if reading settings fails.
*/
bool Facebook::restoreCredentials()
{
    QSettings settings;
    setAccessToken(settings.value(AccessTokenString).toString());
    setScreenName(settings.value(ScreenNameString).toString());
    m_expirationDateTime = settings.value(ExpirationDateTimeString).toDateTime();

    qDebug() << "Restore: Access token for user"
             << m_screenName << ":"
             << m_accessToken
             << "Expiration:" << m_expirationDateTime;

    return settings.status() == QSettings::NoError;
}
void InspectorClientQt::populateSetting(const String& key, InspectorController::Setting& setting)
{
    QSettings qsettings;
    if (qsettings.status() == QSettings::AccessError) {
        // QCoreApplication::setOrganizationName and QCoreApplication::setApplicationName haven't been called
        qWarning("QWebInspector: QSettings couldn't read configuration setting [%s].",
                 qPrintable(static_cast<QString>(key)));
        return;
    }

    QString settingKey(settingStoragePrefix + key);
    QString storedValueType = qsettings.value(settingKey + settingStorageTypeSuffix).toString();
    QVariant storedValue = qsettings.value(settingKey);
    storedValue.convert(QVariant::nameToType(storedValueType.toAscii().data()));
    setting = variantToSetting(storedValue);
}
Beispiel #16
0
void MessageWindow::readSettings()
{
    QString configName = "messagesWindow";
    QHash<QString, int> settingValues;
    QSettings settings;
    if (settings.status() == QSettings::NoError)
    {
        settings.beginGroup(configName);
        if (settings.contains("x") &&
            settings.contains("y") &&
            settings.contains("width") &&
            settings.contains("height") &&
            settings.value("width", 0).toInt() > 0 &&
            settings.value("height", 0).toInt() > 0)
        {
            settingValues.insert("x", settings.value("x").toInt());
            settingValues.insert("y", settings.value("y").toInt());
            settingValues.insert("width", settings.value("width").toInt());
            settingValues.insert("height", settings.value("height").toInt());
        }
        else
        {
            // Если локальные значения координат и размеров окна прочитать не удалось, попытаемся загрузить их с сервера
            app->showMessageOnStatusBar(tr("Загрузка с сервера геометрии окна справочника ") + configName + "...");
            QSqlQuery config = app->getDBFactory()->getConfig();
            config.first();
            while (config.isValid())
            {
                if (config.record().value("group").toString() == configName)
                {
                    settingValues.remove(config.record().value("name").toString());
                    settingValues.insert(config.record().value("name").toString(), config.record().value("value").toInt());
                }
                config.next();
            }
            app->showMessageOnStatusBar("");
        }
        settings.endGroup();

        int x = settingValues.value("x", 0);
        int y = settingValues.value("y", 0);
        int w = settingValues.value("width", 400);
        int h = settingValues.value("height", 200);

        subWindow->setGeometry(x, y, w, h);
    }
}
void InspectorClientQt::storeSetting(const String& key, const String& setting)
{
#ifdef QT_NO_SETTINGS
    Q_UNUSED(key)
    Q_UNUSED(setting)
    qWarning("QWebInspector: QSettings is not supported by Qt.");
#else
    QSettings qsettings;
    if (qsettings.status() == QSettings::AccessError) {
        qWarning("QWebInspector: QSettings couldn't persist configuration setting [%s].",
                 qPrintable(static_cast<QString>(key)));
        return;
    }

    QVariant valueToStore = settingToVariant(setting);
    QString settingKey(settingStoragePrefix + QString(key));
    qsettings.setValue(settingKey, valueToStore);
    qsettings.setValue(settingKey + settingStorageTypeSuffix, QVariant::typeToName(valueToStore.type()));
#endif // QT_NO_SETTINGS
}
	void AkregatorImportPage::handleAccepted ()
	{
		QString filename = Ui_.FileLocation_->text ();
		if (!CheckValidity (filename))
			return;

		Entity e = Util::MakeEntity (QUrl::fromLocalFile (filename),
				QString (),
				FromUserInitiated,
				"text/x-opml");

		if (Ui_.ImportSettings_->checkState () == Qt::Checked)
		{
			QSettings settings (QDir::homePath () + "/.kde/share/config/akregatorrc",
					QSettings::IniFormat);
			if (settings.status () == QSettings::NoError)
			{
				if (settings.contains ("Show Tray Icon"))
					e.Additional_ ["ShowTrayIcon"] = settings.value ("Show Tray Icon");
				if (settings.contains ("Fetch On Startup"))
					e.Additional_ ["UpdateOnStartup"] = settings.value ("Fetch On Startup");
				if (settings.contains ("Auto Fetch Interval"))
					e.Additional_ ["UpdateTimeout"] = settings.value ("Auto Fetch Interval");

				settings.beginGroup ("Archive");
				if (settings.contains ("Max Article Number"))
					e.Additional_ ["MaxArticles"] = settings.value ("Max Article Number");
				if (settings.contains ("Max Article Age"))
					e.Additional_ ["MaxAge"] = settings.value ("Max Article Age");
				settings.endGroup ();

				e.Additional_ ["UserVisibleName"] = tr ("Akregator settings");
			}
			else
				QMessageBox::critical (0,
						"LeechCraft",
						tr ("Could not access or parse Akregator settings."));
		}
		emit gotEntity (e);
	}
void InspectorClientQt::populateSetting(const String& key, String* setting)
{
#ifdef QT_NO_SETTINGS
    Q_UNUSED(key)
    Q_UNUSED(setting)
    qWarning("QWebInspector: QSettings is not supported by Qt.");
#else
    QSettings qsettings;
    if (qsettings.status() == QSettings::AccessError) {
        // QCoreApplication::setOrganizationName and QCoreApplication::setApplicationName haven't been called
        qWarning("QWebInspector: QSettings couldn't read configuration setting [%s].",
                 qPrintable(static_cast<QString>(key)));
        return;
    }

    QString settingKey(settingStoragePrefix + QString(key));
    QString storedValueType = qsettings.value(settingKey + settingStorageTypeSuffix).toString();
    QVariant storedValue = qsettings.value(settingKey);
    storedValue.convert(QVariant::nameToType(storedValueType.toAscii().data()));
    *setting = variantToSetting(storedValue);
#endif // QT_NO_SETTINGS
}
Beispiel #20
0
LoggingConfig::LoggingConfig(const QString& logConfiguration, const QString& logDirectory,
                             const QString& logFilePrefix)
  : logConfig(logConfiguration), logDir(logDirectory), logPrefix(logFilePrefix)
{
  QSettings *settings = nullptr;

  if(!logConfig.isEmpty())
  {
    QFileInfo logFile(logConfig);

    QString logFileInConfig = atools::settings::Settings::getPath() + QDir::separator() + logFile.fileName();

    if(QFile::exists(logFileInConfig))
      // Try in the configuration directory
      settings = new QSettings(logFileInConfig, QSettings::IniFormat);
    else if(QFile::exists(logConfig))
      // Try resource or full path
      settings = new QSettings(logConfig, QSettings::IniFormat);
  }
  else
    // Use default configuration file
    settings = atools::settings::Settings::getQSettings();

  if(settings->status() != QSettings::NoError)
    qWarning() << "Error reading log configuration file" << settings->fileName() << ":" << settings->status();

  // Read general parameters
  readConfigurationSection(settings);

  QHash<QString, QTextStream *> channelMap;
  // Create all file streams and add them to the channelMap
  readChannels(settings, channelMap);

  // Assign log levels to channels
  readLevels(settings, channelMap);

  delete settings;
}
Beispiel #21
0
bool ProfilModel::loadProfils()
{
    if (!QFile::exists(Profil::ProfilDirectory))
        if (!QDir(qApp->applicationDirPath()).mkdir(Profil::ProfilDirectory))
            return createDefaultProfils(false);

    QDir    pdir(qApp->applicationDirPath().toLocal8Bit() + "/" + Profil::ProfilDirectory);
    QStringList dirFilter;
    dirFilter << "*.ini";
    pdir.setNameFilters(dirFilter);
    QStringList strlt = pdir.entryList();
    QStringListIterator it(strlt);
    if (strlt.isEmpty())
        return createDefaultProfils();
    while (it.hasNext())
    {
        Profil* newProfil;
        QString fileName = qApp->applicationDirPath().toLocal8Bit() + "/" + Profil::ProfilDirectory + "/" + it.next();
        QSettings* fileIni = new QSettings(fileName, QSettings::IniFormat);
        fileIni->sync();
        if (fileIni->status() != QSettings::NoError)
            return false;
        if (fileIni->value(PROFIL_TYPE_STRING).toString() == PROFIL_TYPE_GSTOYUNDA)
                newProfil = new ProfilGstToyundaPlayer;
        if (fileIni->value(PROFIL_TYPE_STRING).toString() == PROFIL_TYPE_MPLAYER)
                newProfil = new Profilmplayer;
        if (fileIni->value(PROFIL_TYPE_STRING).toString() == PROFIL_TYPE_QOSD)
                newProfil = new ProfilOSD;
        newProfil->fileName = fileName;
        delete fileIni;
        newProfil->load(fileName);
        m_profilList.append(newProfil);
    }
    m_defaultProfil = m_profilList.first();
    return true;
}
Beispiel #22
0
bool ProfilModel::saveProfils()
{
    QListIterator<Profil*>it(m_profilList);
    while (it.hasNext())
    {
        Profil* myProf = it.next();
        if (myProf->fileName.isEmpty())
            myProf->fileName = qApp->applicationDirPath().toLocal8Bit() + "/" + Profil::ProfilDirectory + "/" + myProf->name + ".ini";
        QSettings*  mConf = new QSettings(myProf->fileName, QSettings::IniFormat);
        mConf->sync();
        if (mConf->status() != QSettings::NoError)
            return false;
        if (myProf->baseType == Profil::OSD)
            mConf->setValue(PROFIL_TYPE_STRING, PROFIL_TYPE_QOSD);
        if (myProf->baseType == Profil::MPLAYER)
            mConf->setValue(PROFIL_TYPE_STRING, PROFIL_TYPE_MPLAYER);
        if (myProf->baseType == Profil::GSTPLAYER)
            mConf->setValue(PROFIL_TYPE_STRING, PROFIL_TYPE_GSTOYUNDA);
        delete mConf;
        if (!myProf->save())
            return false;
    }
    return true;
}
Beispiel #23
0
void PassWordForm::writeSettings()
{
    QSettings settings;
    if (settings.status() == QSettings::NoError)
        settings.setValue("defaultUser", login);
}
Beispiel #24
0
bool clearAssociation(const QString & extension)
{
    if(!isSupportAssociation()) return false;

#ifdef Q_WS_WIN

    if(!checkAssociation(extension))
        return true;

    QString ext("." + extension);
    QString ProgID = makeProgID(extension);
    QSettings RegCU("HKEY_CURRENT_USER", QSettings::NativeFormat);
    QSettings RegCR ("HKEY_CLASSES_ROOT", QSettings::NativeFormat);

    if (QSysInfo::WindowsVersion < QSysInfo::WV_NT && !RegCR.isWritable())  //Win98
        return false;

    QString fileName = QFileInfo(qApp->applicationFilePath()).fileName();
    QString FileExtsKey = QString("Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/") + ext;
    /// Windows 7:"/UserChoice/Progid" ;   XP: "/Progid"
    QString CurClassId = (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA)
            ? RegCU.value(FileExtsKey + "/UserChoice/Progid").toString()
            : RegCU.value(FileExtsKey + "/Progid").toString();
    QString CurAppId = RegCU.value(FileExtsKey + "/Application").toString(); /// Windows XP

    if (!CurClassId.isEmpty() && (
                (CurClassId == ProgID)
                || (0 == CurClassId.compare(fileName, Qt::CaseInsensitive))
                || (0 == CurClassId.compare(QString("Applications\\%1").arg(fileName), Qt::CaseInsensitive))
                )  ){
        removeUserChoice(extension);
    }

    if (!CurAppId.isEmpty() && (
                (CurAppId == ProgID)
                || (0 == CurAppId.compare(fileName, Qt::CaseInsensitive))
                )   ){
        RegCU.remove(FileExtsKey + "/Application");
    }

    if (QSysInfo::WindowsVersion >= QSysInfo::WV_NT){
        if (RegCU.value("Software/Classes/" + ext + REG_DEFAULT).toString() == ProgID) //Only remove if we own it
            /// This is no recommend to delete in MSDN, case it may cause other problems, such as cannot create new text document if delete '.txt' group.
            //  RegCU.remove("Software/Classes/" + ext);
            RegCU.remove("Software/Classes/" + ProgID);
    }else{
        //Windows 98 ==> Write to HKCR
        if (RegCR.value(ext + REG_DEFAULT).toString() == ProgID)
//            RegCR.remove(ext);
            RegCR.remove(ProgID);
    }

    RegCU.sync();
    RegCR.sync();
//    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);// Refresh Explorer cache.

    return (RegCU.status() == QSettings::NoError && RegCR.status() == QSettings::NoError);
#else
    return false;
#endif  // Q_WS_WIN
}
	void KTorrentImportPage::handleAccepted ()
	{
		QString filename = Ui_.FileLocation_->text ();
		if (!CheckValidity (filename))
			return;

		Entity e = Util::MakeEntity (QUrl::fromLocalFile (filename),
				QString (),
				FromUserInitiated,
				"x-leechcraft/bittorrent-import");

		if (Ui_.ImportSettings_->checkState () == Qt::Checked)
		{
			QSettings settings (filename, QSettings::IniFormat);
			if (settings.status () == QSettings::NoError)
			{
				QMap<QString, QVariant> additional;
				settings.beginGroup ("downloads");
				if (settings.contains ("completedDir"))
					additional ["CompletedDir"] = settings.value ("completedDir");
				if (settings.contains ("dhtPort"))
					additional ["DHTPort"] = settings.value ("dhtPort");
				if (settings.contains ("dhtSupport"))
					additional ["DHTSupport"] = settings.value ("dhtSupport");
				if (settings.contains ("lastSaveDir"))
					additional ["LastSaveDir"] = settings.value ("lastSaveDir");
				if (settings.contains ("oldTorrentsImported"))
					additional ["OldTorrentsImported"] = settings.value ("oldTorrentsImported");
				if (settings.contains ("saveDir"))
					additional ["SaveDir"] = settings.value ("saveDir");
				if (settings.contains ("TempDir"))
				{
					additional ["TempDir"] = settings.value ("TempDir");
					QDir tempDir (settings.value ("TempDir").toString ());
					if (tempDir.exists () &&
							tempDir.isReadable ())
					{
						QFileInfoList torrentsDir = tempDir.entryInfoList (QStringList ("tor"),
								QDir::Dirs | QDir::Readable,
								QDir::Unsorted);
						QList<QVariant> list;
						for (int i = 0; i < torrentsDir.size (); ++i)
						{
							QMap<QString, QVariant> map;
							GetTorrentSettings (torrentsDir.at (i).absoluteFilePath (),
									map);
							list << map;
						}
						additional ["BitTorrentImportTorrents"] = list;
					}
				}
				else
				{
					additional ["TempDir"] = "~/.kde/share/apps/ktorrent";
					// TODO later
				}
				if (settings.contains ("TorrentCopyDir"))
					additional ["TorrentCopyDir"] = settings.value ("torrentCopyDir");
				settings.endGroup ();

				e.Additional_ ["BitTorrent/SettingsImportData"] = additional;
				e.Additional_ ["UserVisibleName"] = tr ("KTorrent settings");
			}
			else
				QMessageBox::critical (this,
						"LeechCraft",
						tr ("Could not access or parse KTorrent settings."));
		}
		emit gotEntity (e);
	}
Beispiel #26
0
/// \brief Save the settings to the harddisk.
/// \param fileName Optional filename to read the settings from an ini file.
/// \return 0 on success, negative on error.
int DsoSettings::save(const QString &fileName) {
	// Use main configuration and save everything if the fileName wasn't set
	QSettings *settingsSaver;
	bool complete = fileName.isEmpty();
	if(complete)
		settingsSaver = new QSettings(this);
	else
		settingsSaver = new QSettings(fileName, QSettings::IniFormat, this);
	if(settingsSaver->status() != QSettings::NoError)
		return -settingsSaver->status();

	if(complete) {
		// Main window layout and other general options
		settingsSaver->beginGroup("options");
		settingsSaver->beginGroup("window");
		// Docking windows and toolbars
		settingsSaver->beginGroup("docks");
		QList<DsoSettingsOptionsWindowPanel *> docks;
		docks.append(&(this->options.window.dock.horizontal));
		docks.append(&(this->options.window.dock.spectrum));
		docks.append(&(this->options.window.dock.trigger));
		docks.append(&(this->options.window.dock.voltage));
		QStringList dockNames;
		dockNames << "horizontal" << "spectrum" << "trigger" << "voltage";
		for(int dockId = 0; dockId < docks.size(); ++dockId) {
			settingsSaver->beginGroup(dockNames[dockId]);
			settingsSaver->setValue("floating", docks[dockId]->floating);
			settingsSaver->setValue("position", docks[dockId]->position);
			settingsSaver->setValue("visible", docks[dockId]->visible);
			settingsSaver->endGroup();
		}
		settingsSaver->endGroup();
		settingsSaver->beginGroup("toolbars");
		QList<DsoSettingsOptionsWindowPanel *> toolbars;
		toolbars.append(&(this->options.window.toolbar.file));
		toolbars.append(&(this->options.window.toolbar.oscilloscope));
		toolbars.append(&(this->options.window.toolbar.view));
		QStringList toolbarNames;
		toolbarNames << "file" << "oscilloscope" << "view";
		for(int toolbarId = 0; toolbarId < toolbars.size(); ++toolbarId) {
			settingsSaver->beginGroup(toolbarNames[toolbarId]);
			settingsSaver->setValue("floating", toolbars[toolbarId]->floating);
			settingsSaver->setValue("position", toolbars[toolbarId]->position);
			settingsSaver->setValue("visible", toolbars[toolbarId]->visible);
			settingsSaver->endGroup();
		}
		settingsSaver->endGroup();
		// Main window
		settingsSaver->setValue("pos", this->options.window.position);
		settingsSaver->setValue("size", this->options.window.size);
		settingsSaver->endGroup();
		settingsSaver->setValue("alwaysSave", this->options.alwaysSave);
		settingsSaver->setValue("imageSize", this->options.imageSize);
		settingsSaver->endGroup();
	}
	// Oszilloskope settings
	settingsSaver->beginGroup("scope");
	// Horizontal axis
	settingsSaver->beginGroup("horizontal");
	settingsSaver->setValue("format", this->scope.horizontal.format);
	settingsSaver->setValue("frequencybase", this->scope.horizontal.frequencybase);
	for(int marker = 0; marker < 2; ++marker)
		settingsSaver->setValue(QString("marker%1").arg(marker), this->scope.horizontal.marker[marker]);
	settingsSaver->setValue("timebase", this->scope.horizontal.timebase);
	settingsSaver->setValue("recordLength", this->scope.horizontal.recordLength);
	settingsSaver->setValue("samplerate", this->scope.horizontal.samplerate);
	settingsSaver->setValue("samplerateSet", this->scope.horizontal.samplerateSet);
	settingsSaver->endGroup();
	// Trigger
	settingsSaver->beginGroup("trigger");
	settingsSaver->setValue("filter", this->scope.trigger.filter);
	settingsSaver->setValue("mode", this->scope.trigger.mode);
	settingsSaver->setValue("position", this->scope.trigger.position);
	settingsSaver->setValue("slope", this->scope.trigger.slope);
	settingsSaver->setValue("source", this->scope.trigger.source);
	settingsSaver->setValue("special", this->scope.trigger.special);
	settingsSaver->endGroup();
	// Spectrum
	for(int channel = 0; channel < this->scope.spectrum.count(); ++channel) {
		settingsSaver->beginGroup(QString("spectrum%1").arg(channel));
		settingsSaver->setValue("magnitude", this->scope.spectrum[channel].magnitude);
		settingsSaver->setValue("offset", this->scope.spectrum[channel].offset);
		settingsSaver->setValue("used", this->scope.spectrum[channel].used);
		settingsSaver->endGroup();
	}
	// Vertical axis
	for(int channel = 0; channel < this->scope.voltage.count(); ++channel) {
		settingsSaver->beginGroup(QString("vertical%1").arg(channel));
		settingsSaver->setValue("gain", this->scope.voltage[channel].gain);
		settingsSaver->setValue("misc", this->scope.voltage[channel].misc);
		settingsSaver->setValue("offset", this->scope.voltage[channel].offset);
		settingsSaver->setValue("trigger", this->scope.voltage[channel].trigger);
		settingsSaver->setValue("used", this->scope.voltage[channel].used);
		settingsSaver->endGroup();
	}
	settingsSaver->setValue("spectrumLimit", this->scope.spectrumLimit);
	settingsSaver->setValue("spectrumReference", this->scope.spectrumReference);
	settingsSaver->setValue("spectrumWindow", this->scope.spectrumWindow);
	settingsSaver->endGroup();
	
	// View
	settingsSaver->beginGroup("view");
	// Colors
	if(complete) {
		settingsSaver->beginGroup("color");
		DsoSettingsColorValues *colors;
		for(int mode = 0; mode < 2; ++mode) {
			if(mode == 0) {
				colors = &this->view.color.screen;
				settingsSaver->beginGroup("screen");
			}
			else {
				colors = &this->view.color.print;
				settingsSaver->beginGroup("print");
			}
			
			settingsSaver->setValue("axes", colors->axes);
			settingsSaver->setValue("background", colors->background);
			settingsSaver->setValue("border", colors->border);
			settingsSaver->setValue("grid", colors->grid);
			settingsSaver->setValue("markers", colors->markers);
			for(int channel = 0; channel < this->scope.spectrum.count(); ++channel)
				settingsSaver->setValue(QString("spectrum%1").arg(channel), colors->spectrum[channel]);
			settingsSaver->setValue("text", colors->text);
			for(int channel = 0; channel < this->scope.voltage.count(); ++channel)
				settingsSaver->setValue(QString("voltage%1").arg(channel), colors->voltage[channel]);
			settingsSaver->endGroup();
		}
		settingsSaver->endGroup();
	}
	// Other view settings
	settingsSaver->setValue("digitalPhosphor", this->view.digitalPhosphor);
	if(complete) {
		settingsSaver->setValue("interpolation", this->view.interpolation);
		settingsSaver->setValue("screenColorImages", this->view.screenColorImages);
	}
	settingsSaver->setValue("zoom", this->view.zoom);
	settingsSaver->endGroup();
	
	delete settingsSaver;
	
	return 0;
}
Beispiel #27
0
/// \brief Read the settings from the last session or another file.
/// \param fileName Optional filename to load the settings from an ini file.
/// \return 0 on success, negative on error.
int DsoSettings::load(const QString &fileName) {
	// Use main configuration if the fileName wasn't set
	QSettings *settingsLoader;
	if(fileName.isEmpty())
		settingsLoader = new QSettings(this);
	else {
		settingsLoader = new QSettings(fileName, QSettings::IniFormat, this);
	}
	if(settingsLoader->status() != QSettings::NoError)
		return -settingsLoader->status();

	// Main window layout and other general options
	settingsLoader->beginGroup("options");
	settingsLoader->beginGroup("window");
	// Docking windows and toolbars
	settingsLoader->beginGroup("docks");
	QList<DsoSettingsOptionsWindowPanel *> docks;
	docks.append(&(this->options.window.dock.horizontal));
	docks.append(&(this->options.window.dock.spectrum));
	docks.append(&(this->options.window.dock.trigger));
	docks.append(&(this->options.window.dock.voltage));
	QStringList dockNames;
	dockNames << "horizontal" << "spectrum" << "trigger" << "voltage";
	for(int dockId = 0; dockId < docks.size(); ++dockId) {
		settingsLoader->beginGroup(dockNames[dockId]);
		if(settingsLoader->contains("floating"))
			docks[dockId]->floating = settingsLoader->value("floating").toBool();
		if(settingsLoader->contains("position"))
			docks[dockId]->position = settingsLoader->value("position").toPoint();
		if(settingsLoader->contains("visible"))
			docks[dockId]->visible = settingsLoader->value("visible").toBool();
		settingsLoader->endGroup();
	}
	settingsLoader->endGroup();
	settingsLoader->beginGroup("toolbars");
	QList<DsoSettingsOptionsWindowPanel *> toolbars;
	toolbars.append(&(this->options.window.toolbar.file));
	toolbars.append(&(this->options.window.toolbar.oscilloscope));
	toolbars.append(&(this->options.window.toolbar.view));
	QStringList toolbarNames;
	toolbarNames << "file" << "oscilloscope" << "view";
	for(int toolbarId = 0; toolbarId < toolbars.size(); ++toolbarId) {
		settingsLoader->beginGroup(toolbarNames[toolbarId]);
		if(settingsLoader->contains("floating"))
			toolbars[toolbarId]->floating = settingsLoader->value("floating").toBool();
		if(settingsLoader->contains("position"))
			toolbars[toolbarId]->position = settingsLoader->value("position").toPoint();
		if(settingsLoader->contains("visible"))
			toolbars[toolbarId]->visible = settingsLoader->value("visible").toBool();
		settingsLoader->endGroup();
	}
	settingsLoader->endGroup();
	// Main window
	if(settingsLoader->contains("pos"))
		this->options.window.position = settingsLoader->value("pos").toPoint();
	if(settingsLoader->contains("size"))
		this->options.window.size = settingsLoader->value("size").toSize();
	settingsLoader->endGroup();
	// General options
	if(settingsLoader->contains("alwaysSave"))
		this->options.alwaysSave = settingsLoader->value("alwaysSave").toBool();
	if(settingsLoader->contains("imageSize"))
		this->options.imageSize = settingsLoader->value("imageSize").toSize();
	settingsLoader->endGroup();
	
	// Oszilloskope settings
	settingsLoader->beginGroup("scope");
	// Horizontal axis
	settingsLoader->beginGroup("horizontal");
	if(settingsLoader->contains("format"))
		this->scope.horizontal.format = (Dso::GraphFormat) settingsLoader->value("format").toInt();
	if(settingsLoader->contains("frequencybase"))
		this->scope.horizontal.frequencybase = settingsLoader->value("frequencybase").toDouble();
	for(int marker = 0; marker < 2; ++marker) {
		QString name;
		name = QString("marker%1").arg(marker);
		if(settingsLoader->contains(name))
			this->scope.horizontal.marker[marker] = settingsLoader->value(name).toDouble();
	}
	if(settingsLoader->contains("timebase"))
		this->scope.horizontal.timebase = settingsLoader->value("timebase").toDouble();
	if(settingsLoader->contains("recordLength"))
		this->scope.horizontal.recordLength = settingsLoader->value("recordLength").toUInt();
	if(settingsLoader->contains("samplerate"))
		this->scope.horizontal.samplerate = settingsLoader->value("samplerate").toDouble();
	if(settingsLoader->contains("samplerateSet"))
		this->scope.horizontal.samplerateSet = settingsLoader->value("samplerateSet").toBool();
	settingsLoader->endGroup();
	// Trigger
	settingsLoader->beginGroup("trigger");
	if(settingsLoader->contains("filter"))
		this->scope.trigger.filter = settingsLoader->value("filter").toBool();
	if(settingsLoader->contains("mode"))
		this->scope.trigger.mode = (Dso::TriggerMode) settingsLoader->value("mode").toInt();
	if(settingsLoader->contains("position"))
		this->scope.trigger.position = settingsLoader->value("position").toDouble();
	if(settingsLoader->contains("slope"))
		this->scope.trigger.slope = (Dso::Slope) settingsLoader->value("slope").toInt();
	if(settingsLoader->contains("source"))
		this->scope.trigger.source = settingsLoader->value("source").toInt();
	if(settingsLoader->contains("special"))
		this->scope.trigger.special = settingsLoader->value("special").toInt();
	settingsLoader->endGroup();
	// Spectrum
	for(int channel = 0; channel < this->scope.spectrum.count(); ++channel) {
		settingsLoader->beginGroup(QString("spectrum%1").arg(channel));
		if(settingsLoader->contains("magnitude"))
			this->scope.spectrum[channel].magnitude = settingsLoader->value("magnitude").toDouble();
		if(settingsLoader->contains("offset"))
			this->scope.spectrum[channel].offset = settingsLoader->value("offset").toDouble();
		if(settingsLoader->contains("used"))
			this->scope.spectrum[channel].used = settingsLoader->value("used").toBool();
		settingsLoader->endGroup();
	}
	// Vertical axis
	for(int channel = 0; channel < this->scope.voltage.count(); ++channel) {
		settingsLoader->beginGroup(QString("vertical%1").arg(channel));
		if(settingsLoader->contains("gain"))
			this->scope.voltage[channel].gain = settingsLoader->value("gain").toDouble();
		if(settingsLoader->contains("misc"))
			this->scope.voltage[channel].misc = settingsLoader->value("misc").toInt();
		if(settingsLoader->contains("offset"))
			this->scope.voltage[channel].offset = settingsLoader->value("offset").toDouble();
		if(settingsLoader->contains("trigger"))
			this->scope.voltage[channel].trigger = settingsLoader->value("trigger").toDouble();
		if(settingsLoader->contains("used"))
			this->scope.voltage[channel].used = settingsLoader->value("used").toBool();
		settingsLoader->endGroup();
	}
	if(settingsLoader->contains("spectrumLimit"))
		this->scope.spectrumLimit = settingsLoader->value("spectrumLimit").toDouble();
	if(settingsLoader->contains("spectrumReference"))
		this->scope.spectrumReference = settingsLoader->value("spectrumReference").toDouble();
	if(settingsLoader->contains("spectrumWindow"))
		this->scope.spectrumWindow = (Dso::WindowFunction) settingsLoader->value("spectrumWindow").toInt();
	settingsLoader->endGroup();
	
	// View
	settingsLoader->beginGroup("view");
	// Colors
	settingsLoader->beginGroup("color");
	DsoSettingsColorValues *colors;
	for(int mode = 0; mode < 2; ++mode) {
		if(mode == 0) {
			colors = &this->view.color.screen;
			settingsLoader->beginGroup("screen");
		}
		else {
			colors = &this->view.color.print;
			settingsLoader->beginGroup("print");
		}
		
		if(settingsLoader->contains("axes"))
			colors->axes = settingsLoader->value("axes").value<QColor>();
		if(settingsLoader->contains("background"))
			colors->background = settingsLoader->value("background").value<QColor>();
		if(settingsLoader->contains("border"))
			colors->border = settingsLoader->value("border").value<QColor>();
		if(settingsLoader->contains("grid"))
			colors->grid = settingsLoader->value("grid").value<QColor>();
		if(settingsLoader->contains("markers"))
			colors->markers = settingsLoader->value("markers").value<QColor>();
		for(int channel = 0; channel < this->scope.spectrum.count(); ++channel) {
			QString key = QString("spectrum%1").arg(channel);
			if(settingsLoader->contains(key))
				colors->spectrum[channel] = settingsLoader->value(key).value<QColor>();
		}
		if(settingsLoader->contains("text"))
			colors->text = settingsLoader->value("text").value<QColor>();
		for(int channel = 0; channel < this->scope.voltage.count(); ++channel) {
			QString key = QString("voltage%1").arg(channel);
			if(settingsLoader->contains(key))
				colors->voltage[channel] = settingsLoader->value(key).value<QColor>();
		}
		settingsLoader->endGroup();
	}
	settingsLoader->endGroup();
	// Other view settings
	if(settingsLoader->contains("digitalPhosphor"))
		this->view.digitalPhosphor = settingsLoader->value("digitalPhosphor").toBool();
	if(settingsLoader->contains("interpolation"))
		this->view.interpolation = (Dso::InterpolationMode) settingsLoader->value("interpolation").toInt();
	if(settingsLoader->contains("screenColorImages"))
		this->view.screenColorImages = (Dso::InterpolationMode) settingsLoader->value("screenColorImages").toBool();
	if(settingsLoader->contains("zoom"))
		this->view.zoom = (Dso::InterpolationMode) settingsLoader->value("zoom").toBool();
	settingsLoader->endGroup();
	
	delete settingsLoader;
	
	return 0;
}