Ejemplo n.º 1
0
bool PersistantConfig::Deserialize(QString filename)
{
  QFile f(filename);

  // silently allow missing configs
  if(!f.exists())
    return true;

  if(f.open(QIODevice::ReadOnly | QIODevice::Text))
  {
    QVariantMap values;

    bool success = LoadFromJSON(values, f, JSON_ID, JSON_VER);

    if(!success)
      return false;

    applyValues(values);

    return true;
  }

  qInfo() << "Couldn't load layout from " << filename << " " << f.errorString();

  return false;
}
Ejemplo n.º 2
0
void CaptureDialog::loadSettings(QString filename)
{
  QFile f(filename);
  if(f.open(QIODevice::ReadOnly | QIODevice::Text))
  {
    QVariantMap values;

    bool success = LoadFromJSON(values, f, JSON_ID, JSON_VER);

    if(success)
    {
      CaptureSettings settings;
      settings.fromJSON(values["settings"].value<QVariantMap>());
      setSettings(settings);
    }
    else
    {
      RDDialog::critical(this, "Error loading config",
                         tr("Couldn't interpret settings in %1.").arg(filename));
    }
  }
  else
  {
    RDDialog::critical(this, "Error loading config", tr("Couldn't open path %1.").arg(filename));
  }
}
Ejemplo n.º 3
0
void PerformanceCounterSelection::Load()
{
  QString filename = RDDialog::getOpenFileName(this, tr("Load file"), QDir::homePath(),
                                               tr("Performance Counter Settings (*.json)"));

  if(filename.isEmpty())
    return;

  QVariantMap doc;
  QFile f(filename);
  if(f.open(QIODevice::ReadOnly | QIODevice::Text))
  {
    LoadFromJSON(doc, f, JSON_ID, JSON_VER);

    QSet<GPUCounter> selectedCounters;

    QVariantList counters = doc[lit("counters")].toList();

    for(const QVariant &counter : counters)
    {
      QVariantList bytes = counter.toList();
      Uuid uuid;

      if(bytes.size() != 4)
      {
        qWarning() << "Counter ID doesn't count 4 words";
        continue;
      }

      for(int i = 0; i < 4; ++i)
      {
        uuid.words[i] = bytes[i].toUInt();
      }

      if(!m_UuidToCounter.contains(uuid))
        continue;

      selectedCounters.insert(m_UuidToCounter[uuid]);
    }

    SetSelectedCounters(selectedCounters.toList());
  }
  else
  {
    RDDialog::critical(this, tr("Error loading config"),
                       tr("Couldn't open path %1 for reading.").arg(filename));
  }
}
Ejemplo n.º 4
0
bool MainWindow::LoadLayout(int layout)
{
  QString path = GetLayoutPath(layout);

  QFile f(path);
  if(f.open(QIODevice::ReadOnly | QIODevice::Text))
  {
    QVariantMap state;

    bool success = LoadFromJSON(state, f, JSON_ID, JSON_VER);

    if(!success)
      return false;

    return restoreState(state);
  }

  qInfo() << "Couldn't load layout from " << path << " " << f.errorString();

  return false;
}