diff options
author | Rachel Powers <508861+Ryex@users.noreply.github.com> | 2023-02-15 22:01:27 -0700 |
---|---|---|
committer | Rachel Powers <508861+Ryex@users.noreply.github.com> | 2023-03-20 14:56:32 -0700 |
commit | 1ca2c59f2ed7739b4b7d50c7212e292a4432da93 (patch) | |
tree | caf24466c26cd86ce0f1f0d31cb02c7302fe44a2 /launcher/settings/SettingsObject.h | |
parent | 3ec92acfe7a843a34018fc142439888c4ca5dba0 (diff) | |
download | PrismLauncher-1ca2c59f2ed7739b4b7d50c7212e292a4432da93.tar.gz PrismLauncher-1ca2c59f2ed7739b4b7d50c7212e292a4432da93.tar.bz2 PrismLauncher-1ca2c59f2ed7739b4b7d50c7212e292a4432da93.zip |
feat: track instance copies that use links
confirm deleations when other instances link to it
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Diffstat (limited to 'launcher/settings/SettingsObject.h')
-rw-r--r-- | launcher/settings/SettingsObject.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/launcher/settings/SettingsObject.h b/launcher/settings/SettingsObject.h index 6200bc3a..ff430172 100644 --- a/launcher/settings/SettingsObject.h +++ b/launcher/settings/SettingsObject.h @@ -19,6 +19,8 @@ #include <QMap> #include <QStringList> #include <QVariant> +#include <QJsonDocument> +#include <QJsonArray> #include <memory> class Setting; @@ -143,6 +145,45 @@ public: bool contains(const QString &id); /*! + * \brief Sets the value of the setting with the given ID with a json list. + * If no setting with the given ID exists, returns false + * \param id The ID of the setting to change. + * \param value The new value of the setting. + */ + bool setList(const QString &id, QVariantList value); + template <typename T> bool setList(const QString &id, QList<T> val) + { + QVariantList variantList; + variantList.reserve(val.size()); + for (const T& v : val) + { + variantList.append(v); + } + + return setList(id, variantList); + } + + /** + * \brief Gets the value of the setting with the given ID as if it were a json list. + * \param id The ID of the setting to change. + * \return The setting's value as a QVariantList. + * If no setting with the given ID exists, returns an empty QVariantList. + */ + QVariantList getList(const QString &id); + template <typename T> QList<T> getList(const QString &id) + { + QVariantList variantList = this->getList(id); + + QList<T>TList; + TList.reserve(variantList.size()); + for (const QVariant& v : variantList) + { + TList.append(v.value<T>()); + } + return TList; + } + + /*! * \brief Reloads the settings and emit signals for changed settings * \return True if reloading was successful */ |