You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wowlet/src/utils/config.h

86 lines
1.8 KiB

// SPDX-License-Identifier: BSD-3-Clause
// Copyright (C) 2020 KeePassXC Team <team@keepassxc.org>
// Copyright (C) 2011 Felix Geyer <debfx@fobos.de>
// Copyright (c) 2020-2021, The Monero Project.
#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,
donateBeg,
autoOpenWalletPath,
skin,
openVRSkin,
openVRStreamerMode,
preferredFiatCurrency,
blockExplorer,
walletDirectory,
walletPath,
xmrigPath,
xmrigPool,
nodes,
websocketEnabled,
nodeSource,
useOnionNodes,
showTabHome,
showTabCoins,
showTabCalc,
showTabXMRig,
geometry,
windowState,
firstRun,
hideBalance,
hideFiatBalance,
redditFrontend,
showHistorySyncNotice,
ignoreUpdateWarning
};
~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();
}
#endif //WOWLET_SETTINGS_H