#include "dumpservice.h" #include #include #include #include #include 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; }