2023-09-13 11:47:04 +08:00
|
|
|
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
|
|
|
|
#ifndef APPLICATIONMANAGERSTORAGE_H
|
|
|
|
#define APPLICATIONMANAGERSTORAGE_H
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
#include <QJsonObject>
|
|
|
|
#include <QFile>
|
|
|
|
|
|
|
|
enum class ModifyMode { Create, Update };
|
|
|
|
|
|
|
|
class ApplicationManager1Storage
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ApplicationManager1Storage(const ApplicationManager1Storage &) = delete;
|
|
|
|
ApplicationManager1Storage(ApplicationManager1Storage &&) = default;
|
|
|
|
ApplicationManager1Storage &operator=(const ApplicationManager1Storage &) = delete;
|
|
|
|
ApplicationManager1Storage &operator=(ApplicationManager1Storage &&) = default;
|
|
|
|
~ApplicationManager1Storage() = default;
|
|
|
|
|
2023-09-14 17:16:10 +08:00
|
|
|
bool createApplicationValue(const QString &appId,
|
2023-09-13 11:47:04 +08:00
|
|
|
const QString &groupName,
|
|
|
|
const QString &valueKey,
|
|
|
|
const QVariant &value) noexcept;
|
2023-09-14 17:16:10 +08:00
|
|
|
bool updateApplicationValue(const QString &appId,
|
2023-09-13 11:47:04 +08:00
|
|
|
const QString &groupName,
|
|
|
|
const QString &valueKey,
|
|
|
|
const QVariant &value) noexcept;
|
|
|
|
[[nodiscard]] QVariant
|
|
|
|
readApplicationValue(const QString &appId, const QString &groupName, const QString &valueKey) const noexcept;
|
2023-09-14 17:16:10 +08:00
|
|
|
bool deleteApplicationValue(const QString &appId, const QString &groupName, const QString &valueKey) noexcept;
|
|
|
|
bool clearData() noexcept;
|
|
|
|
bool deleteApplication(const QString &appId) noexcept;
|
|
|
|
bool deleteGroup(const QString &appId, const QString &groupName) noexcept;
|
2023-09-13 11:47:04 +08:00
|
|
|
|
2023-09-14 17:16:10 +08:00
|
|
|
bool setVersion(uint8_t version) noexcept;
|
2023-09-13 11:47:04 +08:00
|
|
|
[[nodiscard]] uint8_t version() const noexcept;
|
|
|
|
|
2023-11-23 15:01:31 +08:00
|
|
|
bool setFirstLaunch(bool first) noexcept;
|
|
|
|
[[nodiscard]] bool firstLaunch() const noexcept;
|
|
|
|
|
2023-09-13 11:47:04 +08:00
|
|
|
static std::shared_ptr<ApplicationManager1Storage> createApplicationManager1Storage(const QString &storageDir) noexcept;
|
|
|
|
|
|
|
|
private:
|
2023-09-14 17:16:10 +08:00
|
|
|
[[nodiscard]] bool writeToFile() const noexcept;
|
2023-09-13 11:47:04 +08:00
|
|
|
explicit ApplicationManager1Storage(const QString &storagePath);
|
|
|
|
std::unique_ptr<QFile> m_file;
|
|
|
|
QJsonObject m_data;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|