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; }
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)); } }
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)); } }
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; }