Move common Qt utility functions & JSON I/O together in a single place

This commit is contained in:
baldurk
2016-11-09 13:23:53 +01:00
parent 66298ea1ce
commit bb2f3a205c
16 changed files with 460 additions and 387 deletions
@@ -24,7 +24,9 @@
#include "TextureSaveDialog.h"
#include <QColorDialog>
#include <QFileInfo>
#include "Code/CaptureContext.h"
#include "Code/QRDUtils.h"
#include "ui_TextureSaveDialog.h"
TextureSaveDialog::TextureSaveDialog(const FetchTexture &t, const TextureSave &s, QWidget *parent)
+1
View File
@@ -25,6 +25,7 @@
#include "EventBrowser.h"
#include <QTimer>
#include "Code/CaptureContext.h"
#include "Code/QRDUtils.h"
#include "ui_EventBrowser.h"
enum
+1
View File
@@ -35,6 +35,7 @@ class EventBrowser;
class QTreeWidgetItem;
class QTimer;
class SizeDelegate;
class EventBrowser : public QFrame, public ILogViewerForm
{
+9 -46
View File
@@ -25,14 +25,17 @@
#include "MainWindow.h"
#include <QFileDialog>
#include <QFileInfo>
#include <QJsonDocument>
#include <QProgressBar>
#include "Code/CaptureContext.h"
#include "Code/QRDUtils.h"
#include "Windows/Dialogs/AboutDialog.h"
#include "EventBrowser.h"
#include "TextureViewer.h"
#include "ui_MainWindow.h"
#define JSON_ID "rdocLayoutData"
#define JSON_VER 1
MainWindow::MainWindow(CaptureContext *ctx) : QMainWindow(NULL), ui(new Ui::MainWindow), m_Ctx(ctx)
{
ui->setupUi(this);
@@ -790,32 +793,9 @@ bool MainWindow::SaveLayout(int layout)
QVariantMap state = saveState();
// marker that this is indeed a valid state to load from
state["renderdocLayoutData"] = 1;
QFile f(path);
if(f.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text))
{
QJsonDocument doc = QJsonDocument::fromVariant(state);
if(doc.isEmpty() || doc.isNull())
{
qCritical() << "Failed to convert state data to JSON document";
return false;
}
QByteArray jsontext = doc.toJson(QJsonDocument::Indented);
qint64 ret = f.write(jsontext);
if(ret != jsontext.size())
{
qCritical() << "Failed to write JSON data to file: " << ret << " " << f.errorString();
return false;
}
return true;
}
return SaveToJSON(state, f, JSON_ID, JSON_VER);
qWarning() << "Couldn't write to " << path << " " << f.errorString();
@@ -829,29 +809,12 @@ bool MainWindow::LoadLayout(int layout)
QFile f(path);
if(f.open(QIODevice::ReadOnly | QIODevice::Text))
{
QByteArray json = f.readAll();
QVariantMap state;
if(json.isEmpty())
{
qCritical() << "Read invalid empty JSON data from file " << f.errorString();
bool success = LoadFromJSON(state, f, JSON_ID, JSON_VER);
if(!success)
return false;
}
QJsonDocument doc = QJsonDocument::fromJson(json);
if(doc.isEmpty() || doc.isNull())
{
qCritical() << "Failed to convert file to JSON document";
return false;
}
QVariantMap state = doc.toVariant().toMap();
if(state.isEmpty() || !state.contains("renderdocLayoutData"))
{
qCritical() << "Converted state data is invalid or unrecognised";
return false;
}
return restoreState(state);
}
+2
View File
@@ -27,12 +27,14 @@
#include <math.h>
#include <QClipboard>
#include <QColorDialog>
#include <QItemDelegate>
#include <QJsonDocument>
#include <QMenu>
#include <QPainter>
#include <QStyledItemDelegate>
#include "3rdparty/toolwindowmanager/ToolWindowManagerArea.h"
#include "Code/CaptureContext.h"
#include "Code/QRDUtils.h"
#include "Dialogs/TextureSaveDialog.h"
#include "Widgets/ResourcePreview.h"
#include "Widgets/TextureGoto.h"
+1
View File
@@ -25,6 +25,7 @@
#pragma once
#include <QFrame>
#include <QMenu>
#include <QMouseEvent>
#include "Code/CaptureContext.h"