update CClientUIInterface and remove orphan Wx stuff
- fix ThreadSafeMessageBox always displays error icon - allow to specify MSG_ERROR / MSG_WARNING or MSG_INFORMATION without a custom caption / title - allow to specify CClientUIInterface::ICON_ERROR / ICON_WARNING and ICON_INFORMATION (which is default) as message box icon - remove CClientUIInterface::OK from ThreadSafeMessageBox-calls, as the OK button will be set as default, if none is specified - prepend "Bitcoin - " to used captions - rename BitcoinGUI::error() -> BitcoinGUI::message() and add function documentation - change all style parameters and enum flags to unsigned - update code to use that new API - update Client- and WalletModel to use new BitcoinGUI::message() and rename the classes error() method into message() - include the possibility to supply the wanted icon for messages from Client- and WalletModel via "style" parameter
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include "notificator.h"
|
||||
#include "guiutil.h"
|
||||
#include "rpcconsole.h"
|
||||
#include "ui_interface.h"
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
#include "macdockiconhandler.h"
|
||||
@@ -366,8 +367,8 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
||||
setNumBlocks(clientModel->getNumBlocks(), clientModel->getNumBlocksOfPeers());
|
||||
connect(clientModel, SIGNAL(numBlocksChanged(int,int)), this, SLOT(setNumBlocks(int,int)));
|
||||
|
||||
// Report errors from network/worker thread
|
||||
connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
|
||||
// Receive and report messages from network/worker thread
|
||||
connect(clientModel, SIGNAL(message(QString,QString,bool,unsigned int)), this, SLOT(message(QString,QString,bool,unsigned int)));
|
||||
|
||||
overviewPage->setClientModel(clientModel);
|
||||
rpcConsole->setClientModel(clientModel);
|
||||
@@ -381,8 +382,8 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel)
|
||||
this->walletModel = walletModel;
|
||||
if(walletModel)
|
||||
{
|
||||
// Report errors from wallet thread
|
||||
connect(walletModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
|
||||
// Receive and report messages from wallet thread
|
||||
connect(walletModel, SIGNAL(message(QString,QString,bool,unsigned int)), this, SLOT(message(QString,QString,bool,unsigned int)));
|
||||
|
||||
// Put transaction list in tabs
|
||||
transactionView->setModel(walletModel);
|
||||
@@ -592,15 +593,50 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
|
||||
progressBar->setToolTip(tooltip);
|
||||
}
|
||||
|
||||
void BitcoinGUI::error(const QString &title, const QString &message, bool modal)
|
||||
void BitcoinGUI::message(const QString &title, const QString &message, bool modal, unsigned int style)
|
||||
{
|
||||
// Report errors from network/worker thread
|
||||
if(modal)
|
||||
{
|
||||
QMessageBox::critical(this, title, message, QMessageBox::Ok, QMessageBox::Ok);
|
||||
} else {
|
||||
notificator->notify(Notificator::Critical, title, message);
|
||||
QString strTitle = tr("Bitcoin") + " - ";
|
||||
// Default to information icon
|
||||
int nMBoxIcon = QMessageBox::Information;
|
||||
int nNotifyIcon = Notificator::Information;
|
||||
|
||||
// Check for usage of predefined title
|
||||
switch (style) {
|
||||
case CClientUIInterface::MSG_ERROR:
|
||||
strTitle += tr("Error");
|
||||
break;
|
||||
case CClientUIInterface::MSG_WARNING:
|
||||
strTitle += tr("Warning");
|
||||
break;
|
||||
case CClientUIInterface::MSG_INFORMATION:
|
||||
strTitle += tr("Information");
|
||||
break;
|
||||
default:
|
||||
strTitle += title; // Use supplied title
|
||||
}
|
||||
|
||||
// Check for error/warning icon
|
||||
if (style & CClientUIInterface::ICON_ERROR) {
|
||||
nMBoxIcon = QMessageBox::Critical;
|
||||
nNotifyIcon = Notificator::Critical;
|
||||
}
|
||||
else if (style & CClientUIInterface::ICON_WARNING) {
|
||||
nMBoxIcon = QMessageBox::Warning;
|
||||
nNotifyIcon = Notificator::Warning;
|
||||
}
|
||||
|
||||
// Display message
|
||||
if (modal) {
|
||||
// Check for buttons, use OK as default, if none was supplied
|
||||
QMessageBox::StandardButton buttons;
|
||||
if (!(buttons = (QMessageBox::StandardButton)(style & CClientUIInterface::BTN_MASK)))
|
||||
buttons = QMessageBox::Ok;
|
||||
|
||||
QMessageBox mBox((QMessageBox::Icon)nMBoxIcon, strTitle, message, buttons);
|
||||
mBox.exec();
|
||||
}
|
||||
else
|
||||
notificator->notify((Notificator::Class)nNotifyIcon, strTitle, message);
|
||||
}
|
||||
|
||||
void BitcoinGUI::changeEvent(QEvent *e)
|
||||
|
||||
Reference in New Issue
Block a user