Disallow duplicate windows.

This commit is contained in:
Casey Rodarmor 2015-08-27 15:53:16 -04:00
parent 536207f316
commit 5ffaaba3a1
4 changed files with 21 additions and 11 deletions

View file

@ -97,6 +97,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *platformStyle, const NetworkStyle *n
trayIconMenu(0), trayIconMenu(0),
notificator(0), notificator(0),
rpcConsole(0), rpcConsole(0),
helpMessageDialog(0),
prevBlocks(0), prevBlocks(0),
spinnerFrame(0), spinnerFrame(0),
platformStyle(platformStyle) platformStyle(platformStyle)
@ -132,6 +133,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *platformStyle, const NetworkStyle *n
#endif #endif
rpcConsole = new RPCConsole(platformStyle, 0); rpcConsole = new RPCConsole(platformStyle, 0);
helpMessageDialog = new HelpMessageDialog(this, false);
#ifdef ENABLE_WALLET #ifdef ENABLE_WALLET
if(enableWallet) if(enableWallet)
{ {
@ -590,9 +592,7 @@ void BitcoinGUI::aboutClicked()
void BitcoinGUI::showHelpMessageClicked() void BitcoinGUI::showHelpMessageClicked()
{ {
HelpMessageDialog *help = new HelpMessageDialog(this, false); helpMessageDialog->show();
help->setAttribute(Qt::WA_DeleteOnClose);
help->show();
} }
#ifdef ENABLE_WALLET #ifdef ENABLE_WALLET

View file

@ -28,6 +28,7 @@ class SendCoinsRecipient;
class UnitDisplayStatusBarControl; class UnitDisplayStatusBarControl;
class WalletFrame; class WalletFrame;
class WalletModel; class WalletModel;
class HelpMessageDialog;
class CWallet; class CWallet;
@ -113,6 +114,7 @@ private:
QMenu *trayIconMenu; QMenu *trayIconMenu;
Notificator *notificator; Notificator *notificator;
RPCConsole *rpcConsole; RPCConsole *rpcConsole;
HelpMessageDialog *helpMessageDialog;
/** Keep track of previous number of blocks, to detect progress */ /** Keep track of previous number of blocks, to detect progress */
int prevBlocks; int prevBlocks;

View file

@ -56,6 +56,9 @@ WalletView::WalletView(const PlatformStyle *platformStyle, QWidget *parent):
receiveCoinsPage = new ReceiveCoinsDialog(platformStyle); receiveCoinsPage = new ReceiveCoinsDialog(platformStyle);
sendCoinsPage = new SendCoinsDialog(platformStyle); sendCoinsPage = new SendCoinsDialog(platformStyle);
usedSendingAddressesPage = new AddressBookPage(platformStyle, AddressBookPage::ForEditing, AddressBookPage::SendingTab, this);
usedReceivingAddressesPage = new AddressBookPage(platformStyle, AddressBookPage::ForEditing, AddressBookPage::ReceivingTab, this);
addWidget(overviewPage); addWidget(overviewPage);
addWidget(transactionsPage); addWidget(transactionsPage);
addWidget(receiveCoinsPage); addWidget(receiveCoinsPage);
@ -115,6 +118,8 @@ void WalletView::setWalletModel(WalletModel *walletModel)
overviewPage->setWalletModel(walletModel); overviewPage->setWalletModel(walletModel);
receiveCoinsPage->setModel(walletModel); receiveCoinsPage->setModel(walletModel);
sendCoinsPage->setModel(walletModel); sendCoinsPage->setModel(walletModel);
usedReceivingAddressesPage->setModel(walletModel->getAddressTableModel());
usedSendingAddressesPage->setModel(walletModel->getAddressTableModel());
if (walletModel) if (walletModel)
{ {
@ -273,20 +278,20 @@ void WalletView::usedSendingAddresses()
{ {
if(!walletModel) if(!walletModel)
return; return;
AddressBookPage *dlg = new AddressBookPage(platformStyle, AddressBookPage::ForEditing, AddressBookPage::SendingTab, this);
dlg->setAttribute(Qt::WA_DeleteOnClose); usedSendingAddressesPage->show();
dlg->setModel(walletModel->getAddressTableModel()); usedSendingAddressesPage->raise();
dlg->show(); usedSendingAddressesPage->activateWindow();
} }
void WalletView::usedReceivingAddresses() void WalletView::usedReceivingAddresses()
{ {
if(!walletModel) if(!walletModel)
return; return;
AddressBookPage *dlg = new AddressBookPage(platformStyle, AddressBookPage::ForEditing, AddressBookPage::ReceivingTab, this);
dlg->setAttribute(Qt::WA_DeleteOnClose); usedReceivingAddressesPage->show();
dlg->setModel(walletModel->getAddressTableModel()); usedReceivingAddressesPage->raise();
dlg->show(); usedReceivingAddressesPage->activateWindow();
} }
void WalletView::showProgress(const QString &title, int nProgress) void WalletView::showProgress(const QString &title, int nProgress)

View file

@ -18,6 +18,7 @@ class SendCoinsDialog;
class SendCoinsRecipient; class SendCoinsRecipient;
class TransactionView; class TransactionView;
class WalletModel; class WalletModel;
class AddressBookPage;
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QModelIndex; class QModelIndex;
@ -61,6 +62,8 @@ private:
QWidget *transactionsPage; QWidget *transactionsPage;
ReceiveCoinsDialog *receiveCoinsPage; ReceiveCoinsDialog *receiveCoinsPage;
SendCoinsDialog *sendCoinsPage; SendCoinsDialog *sendCoinsPage;
AddressBookPage *usedSendingAddressesPage;
AddressBookPage *usedReceivingAddressesPage;
TransactionView *transactionView; TransactionView *transactionView;