@@ -99,6 +99,9 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal
99
99
100
100
// Instantiate model and register it.
101
101
WalletModel* wallet_model = new WalletModel (std::move (wallet), m_node, m_platform_style, m_options_model, nullptr );
102
+ // Handler callback runs in a different thread so fix wallet model thread affinity.
103
+ wallet_model->moveToThread (thread ());
104
+ wallet_model->setParent (this );
102
105
m_wallets.push_back (wallet_model);
103
106
104
107
connect (wallet_model, &WalletModel::unload, [this , wallet_model] {
@@ -119,25 +122,11 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal
119
122
connect (wallet_model, &WalletModel::coinsSent, this , &WalletController::coinsSent);
120
123
121
124
// Notify walletAdded signal on the GUI thread.
122
- if (QThread::currentThread () == thread ()) {
123
- addWallet (wallet_model);
124
- } else {
125
- // Handler callback runs in a different thread so fix wallet model thread affinity.
126
- wallet_model->moveToThread (thread ());
127
- bool invoked = QMetaObject::invokeMethod (this , " addWallet" , Qt::QueuedConnection, Q_ARG (WalletModel*, wallet_model));
128
- assert (invoked);
129
- }
125
+ Q_EMIT walletAdded (wallet_model);
130
126
131
127
return wallet_model;
132
128
}
133
129
134
- void WalletController::addWallet (WalletModel* wallet_model)
135
- {
136
- // Take ownership of the wallet model and register it.
137
- wallet_model->setParent (this );
138
- Q_EMIT walletAdded (wallet_model);
139
- }
140
-
141
130
void WalletController::removeAndDeleteWallet (WalletModel* wallet_model)
142
131
{
143
132
// Unregister wallet model.
0 commit comments