wowlet/src/utils/config.h

88 lines
1.8 KiB
C
Raw Normal View History

// SPDX-License-Identifier: BSD-3-Clause
// Copyright (C) 2020 KeePassXC Team <team@keepassxc.org>
// Copyright (C) 2011 Felix Geyer <debfx@fobos.de>
2020-12-26 19:56:06 +00:00
// Copyright (c) 2020-2021, The Monero Project.
2021-03-30 10:52:29 +01:00
#ifndef WOWLET_SETTINGS_H
#define WOWLET_SETTINGS_H
#include <QObject>
#include <QSettings>
#include <QPointer>
class Config : public QObject
{
Q_OBJECT
public:
Q_DISABLE_COPY(Config)
enum ConfigKey
{
warnOnExternalLink,
checkForAppUpdates,
warnOnStagenet,
warnOnTestnet,
warnOnAlpha,
homeWidget,
autoOpenWalletPath,
skin,
2021-04-08 02:40:44 +01:00
openVRSkin,
2021-04-13 10:39:12 +01:00
openVRStreamerMode,
preferredFiatCurrency,
blockExplorer,
walletDirectory,
walletPath,
xmrigPath,
wownerodPath,
nodes,
websocketEnabled,
nodeSource,
useOnionNodes,
2020-12-30 04:45:00 +00:00
showTabHome,
showTabCoins,
showTabCalc,
showTabXMRig,
geometry,
windowState,
2020-11-02 09:37:36 +00:00
firstRun,
2020-12-30 02:48:10 +00:00
hideBalance,
2021-05-10 21:12:20 +01:00
hideFiatBalance,
2022-03-16 18:32:00 +00:00
hideOnClose,
2022-03-21 17:12:11 +00:00
simplifiedMiningInterface,
2020-12-30 03:58:17 +00:00
redditFrontend,
showHistorySyncNotice,
2021-05-14 02:36:33 +01:00
ignoreUpdateWarning,
suchWowTipAmount
};
~Config() override;
QVariant get(ConfigKey key);
QString getFileName();
void set(ConfigKey key, const QVariant& value);
void sync();
void resetToDefaults();
static Config* instance();
signals:
void changed(ConfigKey key);
private:
Config(const QString& fileName, QObject* parent = nullptr);
explicit Config(QObject* parent);
void init(const QString& configFileName);
static QPointer<Config> m_instance;
QScopedPointer<QSettings> m_settings;
QHash<QString, QVariant> m_defaults;
};
inline Config* config()
{
return Config::instance();
}
2021-03-30 10:52:29 +01:00
#endif //WOWLET_SETTINGS_H