File tree Expand file tree Collapse file tree 5 files changed +64
-2
lines changed Expand file tree Collapse file tree 5 files changed +64
-2
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ class WalletQmlModel : public QObject
29
29
Q_PROPERTY (SendRecipient* sendRecipient READ sendRecipient CONSTANT)
30
30
Q_PROPERTY (WalletQmlModelTransaction* currentTransaction READ currentTransaction NOTIFY currentTransactionChanged)
31
31
Q_PROPERTY (unsigned int targetBlocks READ feeTargetBlocks WRITE setFeeTargetBlocks NOTIFY feeTargetBlocksChanged)
32
+ Q_PROPERTY (bool isWalletLoaded READ isWalletLoaded NOTIFY walletIsLoadedChanged)
32
33
33
34
public:
34
35
WalletQmlModel (std::unique_ptr<interfaces::Wallet> wallet, QObject* parent = nullptr );
@@ -67,11 +68,15 @@ class WalletQmlModel : public QObject
67
68
unsigned int feeTargetBlocks () const ;
68
69
void setFeeTargetBlocks (unsigned int target_blocks);
69
70
71
+ bool isWalletLoaded () const { return m_is_wallet_loaded; }
72
+ void setWalletLoaded (bool loaded);
73
+
70
74
Q_SIGNALS:
71
75
void nameChanged ();
72
76
void balanceChanged ();
73
77
void currentTransactionChanged ();
74
78
void feeTargetBlocksChanged ();
79
+ void walletIsLoadedChanged ();
75
80
76
81
private:
77
82
std::unique_ptr<interfaces::Wallet> m_wallet;
@@ -80,6 +85,7 @@ class WalletQmlModel : public QObject
80
85
SendRecipient* m_current_recipient{nullptr };
81
86
WalletQmlModelTransaction* m_current_transaction{nullptr };
82
87
wallet::CCoinControl m_coin_control;
88
+ bool m_is_wallet_loaded{false };
83
89
};
84
90
85
91
#endif // BITCOIN_QML_MODELS_WALLETQMLMODEL_H
Original file line number Diff line number Diff line change 30
30
text: walletController .selectedWallet .name
31
31
balance: walletController .selectedWallet .balance
32
32
loading: ! walletController .initialized
33
+ noWalletAvailable: ! walletController .isWalletLoaded
33
34
34
35
MouseArea {
35
36
anchors .fill : parent
52
53
}
53
54
}
54
55
centerItem: RowLayout {
56
+ visible: walletController .isWalletLoaded
55
57
NavigationTab {
56
58
id: activityTabButton
57
- checked: true
58
59
text: qsTr (" Activity" )
59
60
property int index: 0
60
61
ButtonGroup .group : navigationTabs
79
80
}
80
81
NavigationTab {
81
82
id: blockClockTabButton
83
+ checked: true
82
84
Layout .preferredWidth : 30
83
85
Layout .rightMargin : 10
84
86
property int index: 3
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ Button {
23
23
property bool showIcon: true
24
24
property string balance: " 0.0 000 000"
25
25
property bool loading: false
26
+ property bool noWalletAvailable: false
26
27
27
28
checkable: true
28
29
hoverEnabled: AppMode .isDesktop
@@ -32,6 +33,10 @@ Button {
32
33
topPadding: 0
33
34
clip: true
34
35
36
+ HoverHandler{
37
+ cursorShape: Qt .PointingHandCursor
38
+ }
39
+
35
40
contentItem: Item {
36
41
RowLayout {
37
42
visible: root .loading
@@ -65,7 +70,40 @@ Button {
65
70
}
66
71
67
72
RowLayout {
68
- visible: ! root .loading
73
+ visible: ! root .loading && root .noWalletAvailable
74
+
75
+ opacity: visible ? 1 : 0
76
+
77
+ Behavior on opacity {
78
+ NumberAnimation { duration: 400 }
79
+ }
80
+
81
+ anchors .leftMargin : 5
82
+ anchors .rightMargin : 5
83
+ anchors .centerIn : parent
84
+ clip: true
85
+ spacing: 5
86
+ Icon {
87
+ visible: root .showIcon
88
+ source: " image://images/caret-down-medium-filled"
89
+ color: Theme .color .neutral8
90
+ size: 30
91
+ Layout .minimumWidth : 30
92
+ Layout .preferredWidth : 30
93
+ Layout .maximumWidth : 30
94
+ }
95
+ CoreText {
96
+ horizontalAlignment: Text .AlignLeft
97
+ Layout .fillWidth : true
98
+ wrap: false
99
+ font .pixelSize : 15
100
+ text: qsTr (" Select Wallet" )
101
+ color: root .textColor
102
+ }
103
+ }
104
+
105
+ RowLayout {
106
+ visible: ! root .loading && ! root .noWalletAvailable
69
107
70
108
opacity: visible ? 1 : 0
71
109
Original file line number Diff line number Diff line change @@ -94,6 +94,7 @@ void WalletQmlController::handleLoadWallet(std::unique_ptr<interfaces::Wallet> w
94
94
if (wallet_model->name () == name) {
95
95
m_selected_wallet = wallet_model;
96
96
Q_EMIT selectedWalletChanged ();
97
+ setWalletLoaded (true );
97
98
return ;
98
99
}
99
100
}
@@ -104,6 +105,7 @@ void WalletQmlController::handleLoadWallet(std::unique_ptr<interfaces::Wallet> w
104
105
m_selected_wallet = wallet_model;
105
106
m_wallets.push_back (m_selected_wallet);
106
107
Q_EMIT selectedWalletChanged ();
108
+ setWalletLoaded (true );
107
109
}
108
110
109
111
void WalletQmlController::initialize ()
@@ -118,9 +120,18 @@ void WalletQmlController::initialize()
118
120
}
119
121
if (!m_wallets.empty ()) {
120
122
m_selected_wallet = m_wallets.front ();
123
+ setWalletLoaded (true );
121
124
Q_EMIT selectedWalletChanged ();
122
125
}
123
126
124
127
m_initialized = true ;
125
128
Q_EMIT initializedChanged ();
126
129
}
130
+
131
+ void WalletQmlController::setWalletLoaded (bool loaded)
132
+ {
133
+ if (m_is_wallet_loaded != loaded) {
134
+ m_is_wallet_loaded = loaded;
135
+ Q_EMIT isWalletLoadedChanged ();
136
+ }
137
+ }
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ class WalletQmlController : public QObject
22
22
Q_OBJECT
23
23
Q_PROPERTY (WalletQmlModel* selectedWallet READ selectedWallet NOTIFY selectedWalletChanged)
24
24
Q_PROPERTY (bool initialized READ initialized NOTIFY initializedChanged)
25
+ Q_PROPERTY (bool isWalletLoaded READ isWalletLoaded NOTIFY isWalletLoadedChanged)
25
26
26
27
public:
27
28
explicit WalletQmlController (interfaces::Node& node, QObject *parent = nullptr );
@@ -33,10 +34,13 @@ class WalletQmlController : public QObject
33
34
WalletQmlModel* selectedWallet () const ;
34
35
void unloadWallets ();
35
36
bool initialized () const { return m_initialized; }
37
+ bool isWalletLoaded () const { return m_is_wallet_loaded; }
38
+ void setWalletLoaded (bool loaded);
36
39
37
40
Q_SIGNALS:
38
41
void selectedWalletChanged ();
39
42
void initializedChanged ();
43
+ void isWalletLoadedChanged ();
40
44
41
45
public Q_SLOTS:
42
46
void initialize ();
@@ -52,6 +56,7 @@ public Q_SLOTS:
52
56
QMutex m_wallets_mutex;
53
57
std::vector<WalletQmlModel*> m_wallets;
54
58
std::unique_ptr<interfaces::Handler> m_handler_load_wallet;
59
+ bool m_is_wallet_loaded{false };
55
60
56
61
bilingual_str m_error_message;
57
62
std::vector<bilingual_str> m_warning_messages;
You can’t perform that action at this time.
0 commit comments