Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 8 additions & 10 deletions src/qt/walletcontroller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,6 @@ std::map<std::string, bool> WalletController::listWalletDir() const
return wallets;
}

void WalletController::removeWallet(WalletModel* wallet_model)
{
// Once the wallet is successfully removed from the node, the model will emit the 'WalletModel::unload' signal.
// This signal is already connected and will complete the removal of the view from the GUI.
// Look at 'WalletController::getOrCreateWallet' for the signal connection.
wallet_model->wallet().remove();
}

void WalletController::closeWallet(WalletModel* wallet_model, QWidget* parent)
{
QMessageBox box(parent);
Expand All @@ -96,7 +88,10 @@ void WalletController::closeWallet(WalletModel* wallet_model, QWidget* parent)
box.setDefaultButton(QMessageBox::Yes);
if (box.exec() != QMessageBox::Yes) return;

removeWallet(wallet_model);
// First remove wallet from node.
wallet_model->wallet().remove();
// Now release the model.
removeAndDeleteWallet(wallet_model);
}

void WalletController::closeAllWallets(QWidget* parent)
Expand All @@ -109,8 +104,11 @@ void WalletController::closeAllWallets(QWidget* parent)

QMutexLocker locker(&m_mutex);
for (WalletModel* wallet_model : m_wallets) {
removeWallet(wallet_model);
wallet_model->wallet().remove();
Q_EMIT walletRemoved(wallet_model);
delete wallet_model;
}
m_wallets.clear();
}

WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet> wallet)
Expand Down
3 changes: 0 additions & 3 deletions src/qt/walletcontroller.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,6 @@ class WalletController : public QObject
std::unique_ptr<interfaces::Handler> m_handler_load_wallet;

friend class WalletControllerActivity;

//! Starts the wallet closure procedure
void removeWallet(WalletModel* wallet_model);
};

class WalletControllerActivity : public QObject
Expand Down
Loading