Bitcoin-Qt: use statustips in addition to tooltips
- add setStatusTip() in addition to setTooltip() where it makes sense - add only setStatusTip() if GUI element is only used in main- or tray menu - add an event filter on our BitcoinGUI object to prevent garbelled text on the status bar, which happens when we use it for e.g. displaying block-sync state and then a QEvent::StatusTip wants to write own text to it - remove a double translation of "Bitcoin client"
This commit is contained in:
parent
578fc80003
commit
6f959c4cb3
2 changed files with 45 additions and 16 deletions
|
@ -176,6 +176,9 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
|
|||
// Clicking on "Sign Message" in the receive coins page sends you to the sign message tab
|
||||
connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString)));
|
||||
|
||||
// Install event filter to be able to catch status tip events (QEvent::StatusTip)
|
||||
this->installEventFilter(this);
|
||||
|
||||
gotoOverviewPage();
|
||||
}
|
||||
|
||||
|
@ -193,31 +196,36 @@ void BitcoinGUI::createActions()
|
|||
QActionGroup *tabGroup = new QActionGroup(this);
|
||||
|
||||
overviewAction = new QAction(QIcon(":/icons/overview"), tr("&Overview"), this);
|
||||
overviewAction->setToolTip(tr("Show general overview of wallet"));
|
||||
overviewAction->setStatusTip(tr("Show general overview of wallet"));
|
||||
overviewAction->setToolTip(overviewAction->statusTip());
|
||||
overviewAction->setCheckable(true);
|
||||
overviewAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_1));
|
||||
tabGroup->addAction(overviewAction);
|
||||
|
||||
sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send coins"), this);
|
||||
sendCoinsAction->setToolTip(tr("Send coins to a Bitcoin address"));
|
||||
sendCoinsAction->setStatusTip(tr("Send coins to a Bitcoin address"));
|
||||
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
||||
sendCoinsAction->setCheckable(true);
|
||||
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
||||
tabGroup->addAction(sendCoinsAction);
|
||||
|
||||
receiveCoinsAction = new QAction(QIcon(":/icons/receiving_addresses"), tr("&Receive coins"), this);
|
||||
receiveCoinsAction->setToolTip(tr("Show the list of addresses for receiving payments"));
|
||||
receiveCoinsAction->setStatusTip(tr("Show the list of addresses for receiving payments"));
|
||||
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
||||
receiveCoinsAction->setCheckable(true);
|
||||
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
||||
tabGroup->addAction(receiveCoinsAction);
|
||||
|
||||
historyAction = new QAction(QIcon(":/icons/history"), tr("&Transactions"), this);
|
||||
historyAction->setToolTip(tr("Browse transaction history"));
|
||||
historyAction->setStatusTip(tr("Browse transaction history"));
|
||||
historyAction->setToolTip(historyAction->statusTip());
|
||||
historyAction->setCheckable(true);
|
||||
historyAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_4));
|
||||
tabGroup->addAction(historyAction);
|
||||
|
||||
addressBookAction = new QAction(QIcon(":/icons/address-book"), tr("&Address Book"), this);
|
||||
addressBookAction->setToolTip(tr("Edit the list of stored addresses and labels"));
|
||||
addressBookAction->setStatusTip(tr("Edit the list of stored addresses and labels"));
|
||||
addressBookAction->setToolTip(addressBookAction->statusTip());
|
||||
addressBookAction->setCheckable(true);
|
||||
addressBookAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_5));
|
||||
tabGroup->addAction(addressBookAction);
|
||||
|
@ -234,33 +242,37 @@ void BitcoinGUI::createActions()
|
|||
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
|
||||
|
||||
quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
|
||||
quitAction->setToolTip(tr("Quit application"));
|
||||
quitAction->setStatusTip(tr("Quit application"));
|
||||
quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
|
||||
quitAction->setMenuRole(QAction::QuitRole);
|
||||
aboutAction = new QAction(QIcon(":/icons/bitcoin"), tr("&About Bitcoin"), this);
|
||||
aboutAction->setToolTip(tr("Show information about Bitcoin"));
|
||||
aboutAction->setStatusTip(tr("Show information about Bitcoin"));
|
||||
aboutAction->setMenuRole(QAction::AboutRole);
|
||||
aboutQtAction = new QAction(QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"), tr("About &Qt"), this);
|
||||
aboutQtAction->setToolTip(tr("Show information about Qt"));
|
||||
aboutQtAction->setStatusTip(tr("Show information about Qt"));
|
||||
aboutQtAction->setMenuRole(QAction::AboutQtRole);
|
||||
optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this);
|
||||
optionsAction->setToolTip(tr("Modify configuration options for Bitcoin"));
|
||||
optionsAction->setStatusTip(tr("Modify configuration options for Bitcoin"));
|
||||
optionsAction->setMenuRole(QAction::PreferencesRole);
|
||||
toggleHideAction = new QAction(QIcon(":/icons/bitcoin"), tr("&Show / Hide"), this);
|
||||
toggleHideAction->setStatusTip(tr("Show or hide the main Window"));
|
||||
encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this);
|
||||
encryptWalletAction->setToolTip(tr("Encrypt or decrypt wallet"));
|
||||
encryptWalletAction->setStatusTip(tr("Encrypt the private keys that belong to your wallet"));
|
||||
encryptWalletAction->setCheckable(true);
|
||||
backupWalletAction = new QAction(QIcon(":/icons/filesave"), tr("&Backup Wallet..."), this);
|
||||
backupWalletAction->setToolTip(tr("Backup wallet to another location"));
|
||||
backupWalletAction->setStatusTip(tr("Backup wallet to another location"));
|
||||
changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase..."), this);
|
||||
changePassphraseAction->setToolTip(tr("Change the passphrase used for wallet encryption"));
|
||||
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
||||
signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this);
|
||||
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
||||
verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this);
|
||||
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
||||
|
||||
exportAction = new QAction(QIcon(":/icons/export"), tr("&Export..."), this);
|
||||
exportAction->setToolTip(tr("Export the data in the current tab to a file"));
|
||||
exportAction->setStatusTip(tr("Export the data in the current tab to a file"));
|
||||
exportAction->setToolTip(exportAction->statusTip());
|
||||
openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
||||
openRPCConsoleAction->setToolTip(tr("Open debugging and diagnostic console"));
|
||||
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
|
||||
|
||||
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
||||
|
@ -338,7 +350,8 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
|||
#endif
|
||||
if(trayIcon)
|
||||
{
|
||||
trayIcon->setToolTip(tr("Bitcoin client") + QString(" ") + tr("[testnet]"));
|
||||
// Just attach " [testnet]" to the existing tooltip
|
||||
trayIcon->setToolTip(trayIcon->toolTip() + QString(" ") + tr("[testnet]"));
|
||||
trayIcon->setIcon(QIcon(":/icons/toolbar_testnet"));
|
||||
toggleHideAction->setIcon(QIcon(":/icons/toolbar_testnet"));
|
||||
}
|
||||
|
@ -472,6 +485,9 @@ void BitcoinGUI::setNumConnections(int count)
|
|||
|
||||
void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
|
||||
{
|
||||
// Prevent orphan statusbar messages (e.g. hover Quit in main menu, wait until chain-sync starts -> garbelled text)
|
||||
statusBar()->clearMessage();
|
||||
|
||||
// don't show / hide progress bar and its label if we have no connection to the network
|
||||
if (!clientModel || (clientModel->getNumConnections() == 0 && !clientModel->isImporting()))
|
||||
{
|
||||
|
@ -750,6 +766,18 @@ void BitcoinGUI::dropEvent(QDropEvent *event)
|
|||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
bool BitcoinGUI::eventFilter(QObject *object, QEvent *event)
|
||||
{
|
||||
// Catch status tip events
|
||||
if (event->type() == QEvent::StatusTip)
|
||||
{
|
||||
// Prevent adding text from setStatusTip(), if we currently use the status bar for displaying other stuff
|
||||
if (progressBarLabel->isVisible() && progressBar->isVisible())
|
||||
return true;
|
||||
}
|
||||
return QMainWindow::eventFilter(object, event);
|
||||
}
|
||||
|
||||
void BitcoinGUI::handleURI(QString strURI)
|
||||
{
|
||||
// URI has to be valid
|
||||
|
|
|
@ -52,6 +52,7 @@ protected:
|
|||
void closeEvent(QCloseEvent *event);
|
||||
void dragEnterEvent(QDragEnterEvent *event);
|
||||
void dropEvent(QDropEvent *event);
|
||||
bool eventFilter(QObject *object, QEvent *event);
|
||||
|
||||
private:
|
||||
ClientModel *clientModel;
|
||||
|
@ -172,7 +173,7 @@ private slots:
|
|||
|
||||
/** Show window if hidden, unminimize when minimized, rise when obscured or show if hidden and fToggleHidden is true */
|
||||
void showNormalIfMinimized(bool fToggleHidden = false);
|
||||
/** simply calls showNormalIfMinimized(true) for use in SLOT() macro */
|
||||
/** Simply calls showNormalIfMinimized(true) for use in SLOT() macro */
|
||||
void toggleHidden();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue