diff options
Diffstat (limited to 'src/qt/walletstack.cpp')
-rw-r--r-- | src/qt/walletstack.cpp | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/src/qt/walletstack.cpp b/src/qt/walletstack.cpp index 9e3060e86b..4ef87aed52 100644 --- a/src/qt/walletstack.cpp +++ b/src/qt/walletstack.cpp @@ -13,6 +13,7 @@ WalletStack::WalletStack(QWidget *parent) : QStackedWidget(parent), + gui(0), clientModel(0), bOutOfSync(true) { @@ -25,7 +26,7 @@ WalletStack::~WalletStack() bool WalletStack::addWallet(const QString& name, WalletModel *walletModel) { - if (!gui || !clientModel || mapWalletViews.count(name) > 0) + if (!gui || !clientModel || !walletModel || mapWalletViews.count(name) > 0) return false; WalletView *walletView = new WalletView(this, gui); @@ -35,12 +36,18 @@ bool WalletStack::addWallet(const QString& name, WalletModel *walletModel) walletView->showOutOfSyncWarning(bOutOfSync); addWidget(walletView); mapWalletViews[name] = walletView; + + // Ensure a walletView is able to show the main window + connect(walletView, SIGNAL(showNormalIfMinimized()), gui, SLOT(showNormalIfMinimized())); + return true; } bool WalletStack::removeWallet(const QString& name) { - if (mapWalletViews.count(name) == 0) return false; + if (mapWalletViews.count(name) == 0) + return false; + WalletView *walletView = mapWalletViews.take(name); removeWidget(walletView); return true; @@ -54,12 +61,13 @@ void WalletStack::removeAllWallets() mapWalletViews.clear(); } -bool WalletStack::handleURI(const QString &uri) +bool WalletStack::handlePaymentRequest(const SendCoinsRecipient &recipient) { WalletView *walletView = (WalletView*)currentWidget(); - if (!walletView) return false; + if (!walletView) + return false; - return walletView->handleURI(uri); + return walletView->handlePaymentRequest(recipient); } void WalletStack::showOutOfSyncWarning(bool fShow) @@ -108,49 +116,59 @@ void WalletStack::gotoSendCoinsPage(QString addr) void WalletStack::gotoSignMessageTab(QString addr) { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->gotoSignMessageTab(addr); + if (walletView) + walletView->gotoSignMessageTab(addr); } void WalletStack::gotoVerifyMessageTab(QString addr) { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->gotoVerifyMessageTab(addr); + if (walletView) + walletView->gotoVerifyMessageTab(addr); } void WalletStack::encryptWallet(bool status) { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->encryptWallet(status); + if (walletView) + walletView->encryptWallet(status); } void WalletStack::backupWallet() { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->backupWallet(); + if (walletView) + walletView->backupWallet(); } void WalletStack::changePassphrase() { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->changePassphrase(); + if (walletView) + walletView->changePassphrase(); } void WalletStack::unlockWallet() { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->unlockWallet(); + if (walletView) + walletView->unlockWallet(); } void WalletStack::setEncryptionStatus() { WalletView *walletView = (WalletView*)currentWidget(); - if (walletView) walletView->setEncryptionStatus(); + if (walletView) + walletView->setEncryptionStatus(); } -void WalletStack::setCurrentWallet(const QString& name) +bool WalletStack::setCurrentWallet(const QString& name) { - if (mapWalletViews.count(name) == 0) return; + if (mapWalletViews.count(name) == 0) + return false; + WalletView *walletView = mapWalletViews.value(name); setCurrentWidget(walletView); walletView->setEncryptionStatus(); + return true; } |