From 6285a318d77dbfdf50f893963ebfb2973746f757 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 9 Jul 2019 16:25:55 +0300
Subject: [PATCH] Remove redundant WalletController::addWallet slot

---
 src/qt/walletcontroller.cpp | 19 ++++---------------
 src/qt/walletcontroller.h   |  3 ---
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp
index 2aedb7779..a8e7bce6b 100644
--- a/src/qt/walletcontroller.cpp
+++ b/src/qt/walletcontroller.cpp
@@ -99,6 +99,9 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal
 
     // Instantiate model and register it.
     WalletModel* wallet_model = new WalletModel(std::move(wallet), m_node, m_platform_style, m_options_model, nullptr);
+    // Handler callback runs in a different thread so fix wallet model thread affinity.
+    wallet_model->moveToThread(thread());
+    wallet_model->setParent(this);
     m_wallets.push_back(wallet_model);
 
     connect(wallet_model, &WalletModel::unload, [this, wallet_model] {
@@ -119,25 +122,11 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal
     connect(wallet_model, &WalletModel::coinsSent, this, &WalletController::coinsSent);
 
     // Notify walletAdded signal on the GUI thread.
-    if (QThread::currentThread() == thread()) {
-        addWallet(wallet_model);
-    } else {
-        // Handler callback runs in a different thread so fix wallet model thread affinity.
-        wallet_model->moveToThread(thread());
-        bool invoked = QMetaObject::invokeMethod(this, "addWallet", Qt::QueuedConnection, Q_ARG(WalletModel*, wallet_model));
-        assert(invoked);
-    }
+    Q_EMIT walletAdded(wallet_model);
 
     return wallet_model;
 }
 
-void WalletController::addWallet(WalletModel* wallet_model)
-{
-    // Take ownership of the wallet model and register it.
-    wallet_model->setParent(this);
-    Q_EMIT walletAdded(wallet_model);
-}
-
 void WalletController::removeAndDeleteWallet(WalletModel* wallet_model)
 {
     // Unregister wallet model.
diff --git a/src/qt/walletcontroller.h b/src/qt/walletcontroller.h
index 03039dd79..be1c28291 100644
--- a/src/qt/walletcontroller.h
+++ b/src/qt/walletcontroller.h
@@ -50,9 +50,6 @@ public:
     OpenWalletActivity* openWallet(const std::string& name, QWidget* parent = nullptr);
     void closeWallet(WalletModel* wallet_model, QWidget* parent = nullptr);
 
-private Q_SLOTS:
-    void addWallet(WalletModel* wallet_model);
-
 Q_SIGNALS:
     void walletAdded(WalletModel* wallet_model);
     void walletRemoved(WalletModel* wallet_model);