aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2016-09-09 10:43:54 +0000
committerJonas Schnelli <dev@jonasschnelli.ch>2018-03-06 12:03:26 +0800
commite449f9a9e620fb909eb7b32d815b413d235f05ad (patch)
tree49b3b2edd700136468b4f7ca5787880ed0fad8cc
parent3dba3c3ac1679cf0086ee7734eee12268004ace7 (diff)
downloadbitcoin-e449f9a9e620fb909eb7b32d815b413d235f05ad.tar.xz
Qt: Add a combobox to toolbar to select from multiple wallets
-rw-r--r--src/qt/bitcoingui.cpp23
-rw-r--r--src/qt/bitcoingui.h8
2 files changed, 30 insertions, 1 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 0bf1d5c55f..92fb3f1904 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -36,6 +36,7 @@
#include <QAction>
#include <QApplication>
+#include <QComboBox>
#include <QDateTime>
#include <QDesktopWidget>
#include <QDragEnterEvent>
@@ -459,6 +460,23 @@ void BitcoinGUI::createToolBars()
toolbar->addAction(receiveCoinsAction);
toolbar->addAction(historyAction);
overviewAction->setChecked(true);
+
+#ifdef ENABLE_WALLET
+ QWidget *spacer = new QWidget();
+ spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ toolbar->addWidget(spacer);
+
+ m_wallet_selector_label = new QLabel();
+ m_wallet_selector_label->setText(tr("Wallet:") + " ");
+ toolbar->addWidget(m_wallet_selector_label);
+ m_wallet_selector_label->setVisible(false);
+ m_wallet_selector = new QComboBox();
+ toolbar->addWidget(m_wallet_selector);
+ m_wallet_selector->setVisible(false);
+ m_wallet_selector_label->setBuddy(m_wallet_selector);
+
+ connect(m_wallet_selector, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(setCurrentWallet(const QString&)));
+#endif
}
}
@@ -530,6 +548,11 @@ bool BitcoinGUI::addWallet(const QString& name, WalletModel *walletModel)
if(!walletFrame)
return false;
setWalletActionsEnabled(true);
+ m_wallet_selector->addItem(name);
+ if (m_wallet_selector->count() == 2) {
+ m_wallet_selector->setVisible(true);
+ m_wallet_selector->setVisible(true);
+ }
return walletFrame->addWallet(name, walletModel);
}
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index b1ec6540c0..42581e7d16 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -33,6 +33,7 @@ class ModalOverlay;
QT_BEGIN_NAMESPACE
class QAction;
+class QComboBox;
class QProgressBar;
class QProgressDialog;
QT_END_NAMESPACE
@@ -62,7 +63,6 @@ public:
functionality.
*/
bool addWallet(const QString& name, WalletModel *walletModel);
- bool setCurrentWallet(const QString& name);
void removeAllWallets();
#endif // ENABLE_WALLET
bool enableWallet;
@@ -111,6 +111,9 @@ private:
QAction *openAction;
QAction *showHelpMessageAction;
+ QLabel *m_wallet_selector_label;
+ QComboBox *m_wallet_selector;
+
QSystemTrayIcon *trayIcon;
QMenu *trayIconMenu;
Notificator *notificator;
@@ -170,6 +173,9 @@ public Q_SLOTS:
void message(const QString &title, const QString &message, unsigned int style, bool *ret = nullptr);
#ifdef ENABLE_WALLET
+ bool setCurrentWallet(const QString& name);
+
+private:
/** Set the encryption status as shown in the UI.
@param[in] status current encryption status
@see WalletModel::EncryptionStatus