63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
#include "dumpservice.h"
|
|
|
|
#include <QFile>
|
|
#include <QJsonDocument>
|
|
#include <QJsonArray>
|
|
#include <QJsonObject>
|
|
#include <QStandardPaths>
|
|
|
|
void DumpService::setEntityName(const QString &name)
|
|
{
|
|
m_entityName = name;
|
|
}
|
|
|
|
void DumpService::dump(const QVariant &data) const
|
|
{
|
|
QFile stash(dumpFileName());
|
|
if (stash.open(QIODevice::WriteOnly)) {
|
|
stash.write(QJsonDocument::fromVariant(data).toJson(QJsonDocument::Compact));
|
|
stash.close();
|
|
} else {
|
|
qWarning() << stash.errorString();
|
|
}
|
|
}
|
|
|
|
QVariantList DumpService::loadList() const
|
|
{
|
|
QJsonDocument dump = readFile();
|
|
return dump.array().toVariantList();
|
|
}
|
|
|
|
QVariantMap DumpService::loadMap() const
|
|
{
|
|
QJsonDocument dump = readFile();
|
|
return dump.object().toVariantMap();
|
|
}
|
|
|
|
void DumpService::clear() const
|
|
{
|
|
QFile::remove(dumpFileName());
|
|
}
|
|
|
|
QString DumpService::dumpFileName() const
|
|
{
|
|
Q_ASSERT(!m_entityName.isEmpty());
|
|
|
|
return QString("%1/%2.dump").arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation), m_entityName);
|
|
}
|
|
|
|
QJsonDocument DumpService::readFile() const
|
|
{
|
|
QJsonDocument res;
|
|
|
|
QFile dump(dumpFileName());
|
|
if (dump.open(QIODevice::ReadOnly)) {
|
|
res = QJsonDocument::fromJson(dump.readAll());
|
|
dump.close();
|
|
} else {
|
|
qWarning() << dump.errorString();
|
|
}
|
|
|
|
return res;
|
|
}
|