@@ -99,6 +99,9 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal
9999
100100 // Instantiate model and register it.
101101 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 );
102105 m_wallets.push_back (wallet_model);
103106
104107 connect (wallet_model, &WalletModel::unload, [this , wallet_model] {
@@ -119,25 +122,11 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal
119122 connect (wallet_model, &WalletModel::coinsSent, this , &WalletController::coinsSent);
120123
121124 // 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);
130126
131127 return wallet_model;
132128}
133129
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-
141130void WalletController::removeAndDeleteWallet (WalletModel* wallet_model)
142131{
143132 // Unregister wallet model.
0 commit comments