gui: Add openWallet and getWalletsAvailableToOpen to WalletController
This commit is contained in:
parent
ab288b4e59
commit
32a8c6abfe
2 changed files with 28 additions and 0 deletions
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QMutexLocker>
|
#include <QMutexLocker>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
|
||||||
|
@ -37,6 +38,30 @@ std::vector<WalletModel*> WalletController::getWallets() const
|
||||||
return m_wallets;
|
return m_wallets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> WalletController::getWalletsAvailableToOpen() const
|
||||||
|
{
|
||||||
|
QMutexLocker locker(&m_mutex);
|
||||||
|
std::vector<std::string> wallets = m_node.listWalletDir();
|
||||||
|
for (WalletModel* wallet_model : m_wallets) {
|
||||||
|
auto it = std::remove(wallets.begin(), wallets.end(), wallet_model->wallet().getWalletName());
|
||||||
|
if (it != wallets.end()) wallets.erase(it);
|
||||||
|
}
|
||||||
|
return wallets;
|
||||||
|
}
|
||||||
|
|
||||||
|
WalletModel* WalletController::openWallet(const std::string& name, QWidget* parent)
|
||||||
|
{
|
||||||
|
std::string error, warning;
|
||||||
|
WalletModel* wallet_model = getOrCreateWallet(m_node.loadWallet(name, error, warning));
|
||||||
|
if (!wallet_model) {
|
||||||
|
QMessageBox::warning(parent, tr("Open Wallet"), QString::fromStdString(error));
|
||||||
|
}
|
||||||
|
if (!warning.empty()) {
|
||||||
|
QMessageBox::information(parent, tr("Open Wallet"), QString::fromStdString(warning));
|
||||||
|
}
|
||||||
|
return wallet_model;
|
||||||
|
}
|
||||||
|
|
||||||
WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet> wallet)
|
WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet> wallet)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_mutex);
|
QMutexLocker locker(&m_mutex);
|
||||||
|
|
|
@ -37,6 +37,9 @@ public:
|
||||||
~WalletController();
|
~WalletController();
|
||||||
|
|
||||||
std::vector<WalletModel*> getWallets() const;
|
std::vector<WalletModel*> getWallets() const;
|
||||||
|
std::vector<std::string> getWalletsAvailableToOpen() const;
|
||||||
|
|
||||||
|
WalletModel* openWallet(const std::string& name, QWidget* parent = nullptr);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void addWallet(WalletModel* wallet_model);
|
void addWallet(WalletModel* wallet_model);
|
||||||
|
|
Loading…
Reference in a new issue