bitcoin/src/qt/walletstack.cpp
Philip Kaufmann dbc0a6aba2 Bitcoin-Qt: tweak Qt walletXXX.cpp/h code
WalletView:
- add new signal showNormalIfMinimized()
- emit the new signal in handleURI() to fix a bug, preventing the main
  window to show up when using bitcoin: URIs

WalletStack:
- connect the showNormalIfMinimized() signal from WalletView with the
  showNormalIfMinimized() slot in BitcoinGUI
- rework setCurrentWallet() to return a bool
- add check for valid walletModel in addWallet()
- add missing gui attribute initialisation in constructor

WalletFrame:
- remove unused or unneded class attributes gui and clientModel
- add a check for valid clientModel in setClientModel()

General:
- small code formatting changes
2013-08-23 09:10:31 +02:00

174 lines
4.4 KiB
C++

/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
#include "walletstack.h"
#include "walletview.h"
#include "bitcoingui.h"
#include <QMap>
#include <QMessageBox>
WalletStack::WalletStack(QWidget *parent) :
QStackedWidget(parent),
gui(0),
clientModel(0),
bOutOfSync(true)
{
setContentsMargins(0,0,0,0);
}
WalletStack::~WalletStack()
{
}
bool WalletStack::addWallet(const QString& name, WalletModel *walletModel)
{
if (!gui || !clientModel || !walletModel || mapWalletViews.count(name) > 0)
return false;
WalletView *walletView = new WalletView(this, gui);
walletView->setBitcoinGUI(gui);
walletView->setClientModel(clientModel);
walletView->setWalletModel(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;
WalletView *walletView = mapWalletViews.take(name);
removeWidget(walletView);
return true;
}
void WalletStack::removeAllWallets()
{
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
removeWidget(i.value());
mapWalletViews.clear();
}
bool WalletStack::handlePaymentRequest(const SendCoinsRecipient &recipient)
{
WalletView *walletView = (WalletView*)currentWidget();
if (!walletView)
return false;
return walletView->handlePaymentRequest(recipient);
}
void WalletStack::showOutOfSyncWarning(bool fShow)
{
bOutOfSync = fShow;
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
i.value()->showOutOfSyncWarning(fShow);
}
void WalletStack::gotoOverviewPage()
{
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
i.value()->gotoOverviewPage();
}
void WalletStack::gotoHistoryPage()
{
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
i.value()->gotoHistoryPage();
}
void WalletStack::gotoAddressBookPage()
{
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
i.value()->gotoAddressBookPage();
}
void WalletStack::gotoReceiveCoinsPage()
{
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
i.value()->gotoReceiveCoinsPage();
}
void WalletStack::gotoSendCoinsPage(QString addr)
{
QMap<QString, WalletView*>::const_iterator i;
for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
i.value()->gotoSendCoinsPage(addr);
}
void WalletStack::gotoSignMessageTab(QString addr)
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->gotoSignMessageTab(addr);
}
void WalletStack::gotoVerifyMessageTab(QString addr)
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->gotoVerifyMessageTab(addr);
}
void WalletStack::encryptWallet(bool status)
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->encryptWallet(status);
}
void WalletStack::backupWallet()
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->backupWallet();
}
void WalletStack::changePassphrase()
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->changePassphrase();
}
void WalletStack::unlockWallet()
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->unlockWallet();
}
void WalletStack::setEncryptionStatus()
{
WalletView *walletView = (WalletView*)currentWidget();
if (walletView)
walletView->setEncryptionStatus();
}
bool WalletStack::setCurrentWallet(const QString& name)
{
if (mapWalletViews.count(name) == 0)
return false;
WalletView *walletView = mapWalletViews.value(name);
setCurrentWidget(walletView);
walletView->setEncryptionStatus();
return true;
}