Skip to content

Commit a584f54

Browse files
committed
qml: Add walletEnabled property to AppMode model
1 parent a80a187 commit a584f54

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed

qml/appmode.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class AppMode : public QObject
1212
Q_OBJECT
1313
Q_PROPERTY(bool isDesktop READ isDesktop NOTIFY modeChanged)
1414
Q_PROPERTY(bool isMobile READ isMobile NOTIFY modeChanged)
15+
Q_PROPERTY(bool walletEnabled READ walletEnabled NOTIFY walletEnabledChanged)
1516
Q_PROPERTY(QString state READ state NOTIFY modeChanged)
1617

1718
public:
@@ -20,12 +21,15 @@ class AppMode : public QObject
2021
MOBILE
2122
};
2223

23-
explicit AppMode(Mode mode) : m_mode(mode)
24+
explicit AppMode(Mode mode, bool wallet_enabled)
25+
: m_mode(mode)
26+
, m_wallet_enabled(wallet_enabled)
2427
{
2528
}
2629

2730
bool isMobile() { return m_mode == MOBILE; }
2831
bool isDesktop() { return m_mode == DESKTOP; }
32+
bool walletEnabled() { return m_wallet_enabled; }
2933
QString state()
3034
{
3135
switch (m_mode) {
@@ -41,9 +45,11 @@ class AppMode : public QObject
4145

4246
Q_SIGNALS:
4347
void modeChanged();
48+
void walletEnabledChanged();
4449

4550
private:
4651
const Mode m_mode;
52+
const bool m_wallet_enabled;
4753
};
4854

4955
#endif // BITCOIN_QML_APPMODE_H

qml/bitcoin.cpp

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,33 @@ void SetupUIArgs(ArgsManager& argsman)
7575
argsman.AddArg("-splash", strprintf("Show splash screen on startup (default: %u)", DEFAULT_SPLASHSCREEN), ArgsManager::ALLOW_ANY, OptionsCategory::GUI);
7676
}
7777

78+
AppMode SetupAppMode()
79+
{
80+
bool wallet_enabled;
81+
AppMode::Mode mode;
82+
#ifdef __ANDROID__
83+
mode = AppMode::MOBILE;
84+
#else
85+
mode = AppMode::DESKTOP;
86+
#endif // __ANDROID__
87+
88+
#ifdef ENABLE_WALLET
89+
wallet_enabled = true;
90+
#else
91+
wallet_enabled = false;
92+
#endif // ENABLE_WALLET
93+
94+
return AppMode(mode, wallet_enabled);
95+
}
96+
7897
bool InitErrorMessageBox(
7998
const bilingual_str& message,
8099
[[maybe_unused]] const std::string& caption,
81100
[[maybe_unused]] unsigned int style)
82101
{
83102
QQmlApplicationEngine engine;
84-
#ifdef __ANDROID__
85-
AppMode app_mode(AppMode::MOBILE);
86-
#else
87-
AppMode app_mode(AppMode::DESKTOP);
88-
#endif // __ANDROID__
103+
104+
AppMode app_mode = SetupAppMode();
89105

90106
qmlRegisterSingletonInstance<AppMode>("org.bitcoincore.qt", 1, 0, "AppMode", &app_mode);
91107
engine.rootContext()->setContextProperty("message", QString::fromStdString(message.translated));
@@ -284,11 +300,8 @@ int QmlGuiMain(int argc, char* argv[])
284300
engine.rootContext()->setContextProperty("optionsModel", &options_model);
285301

286302
engine.rootContext()->setContextProperty("needOnboarding", need_onboarding);
287-
#ifdef __ANDROID__
288-
AppMode app_mode(AppMode::MOBILE);
289-
#else
290-
AppMode app_mode(AppMode::DESKTOP);
291-
#endif // __ANDROID__
303+
304+
AppMode app_mode = SetupAppMode();
292305

293306
qmlRegisterSingletonInstance<AppMode>("org.bitcoincore.qt", 1, 0, "AppMode", &app_mode);
294307
qmlRegisterType<BlockClockDial>("org.bitcoincore.qt", 1, 0, "BlockClockDial");

0 commit comments

Comments
 (0)