@ -176,6 +176,9 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Clicking on "Sign Message" in the receive coins page sends you to the sign message tab
// 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 ) ) ) ;
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 ( ) ;
gotoOverviewPage ( ) ;
}
}
@ -193,31 +196,36 @@ void BitcoinGUI::createActions()
QActionGroup * tabGroup = new QActionGroup ( this ) ;
QActionGroup * tabGroup = new QActionGroup ( this ) ;
overviewAction = new QAction ( QIcon ( " :/icons/overview " ) , tr ( " &Overview " ) , 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 - > setCheckable ( true ) ;
overviewAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_1 ) ) ;
overviewAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_1 ) ) ;
tabGroup - > addAction ( overviewAction ) ;
tabGroup - > addAction ( overviewAction ) ;
sendCoinsAction = new QAction ( QIcon ( " :/icons/send " ) , tr ( " &Send coins " ) , this ) ;
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 - > setCheckable ( true ) ;
sendCoinsAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_2 ) ) ;
sendCoinsAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_2 ) ) ;
tabGroup - > addAction ( sendCoinsAction ) ;
tabGroup - > addAction ( sendCoinsAction ) ;
receiveCoinsAction = new QAction ( QIcon ( " :/icons/receiving_addresses " ) , tr ( " &Receive coins " ) , this ) ;
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 - > setCheckable ( true ) ;
receiveCoinsAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_3 ) ) ;
receiveCoinsAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_3 ) ) ;
tabGroup - > addAction ( receiveCoinsAction ) ;
tabGroup - > addAction ( receiveCoinsAction ) ;
historyAction = new QAction ( QIcon ( " :/icons/history " ) , tr ( " &Transactions " ) , this ) ;
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 - > setCheckable ( true ) ;
historyAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_4 ) ) ;
historyAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_4 ) ) ;
tabGroup - > addAction ( historyAction ) ;
tabGroup - > addAction ( historyAction ) ;
addressBookAction = new QAction ( QIcon ( " :/icons/address-book " ) , tr ( " &Address Book " ) , this ) ;
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 - > setCheckable ( true ) ;
addressBookAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_5 ) ) ;
addressBookAction - > setShortcut ( QKeySequence ( Qt : : ALT + Qt : : Key_5 ) ) ;
tabGroup - > addAction ( addressBookAction ) ;
tabGroup - > addAction ( addressBookAction ) ;
@ -234,33 +242,37 @@ void BitcoinGUI::createActions()
connect ( addressBookAction , SIGNAL ( triggered ( ) ) , this , SLOT ( gotoAddressBookPage ( ) ) ) ;
connect ( addressBookAction , SIGNAL ( triggered ( ) ) , this , SLOT ( gotoAddressBookPage ( ) ) ) ;
quitAction = new QAction ( QIcon ( " :/icons/quit " ) , tr ( " E&xit " ) , this ) ;
quitAction = new QAction ( QIcon ( " :/icons/quit " ) , tr ( " E&xit " ) , this ) ;
quitAction - > setTool Tip ( tr ( " Quit application " ) ) ;
quitAction - > setStatus Tip ( tr ( " Quit application " ) ) ;
quitAction - > setShortcut ( QKeySequence ( Qt : : CTRL + Qt : : Key_Q ) ) ;
quitAction - > setShortcut ( QKeySequence ( Qt : : CTRL + Qt : : Key_Q ) ) ;
quitAction - > setMenuRole ( QAction : : QuitRole ) ;
quitAction - > setMenuRole ( QAction : : QuitRole ) ;
aboutAction = new QAction ( QIcon ( " :/icons/bitcoin " ) , tr ( " &About Bitcoin " ) , this ) ;
aboutAction = new QAction ( QIcon ( " :/icons/bitcoin " ) , tr ( " &About Bitcoin " ) , this ) ;
aboutAction - > setTool Tip ( tr ( " Show information about Bitcoin " ) ) ;
aboutAction - > setStatus Tip ( tr ( " Show information about Bitcoin " ) ) ;
aboutAction - > setMenuRole ( QAction : : AboutRole ) ;
aboutAction - > setMenuRole ( QAction : : AboutRole ) ;
aboutQtAction = new QAction ( QIcon ( " :/trolltech/qmessagebox/images/qtlogo-64.png " ) , tr ( " About &Qt " ) , this ) ;
aboutQtAction = new QAction ( QIcon ( " :/trolltech/qmessagebox/images/qtlogo-64.png " ) , tr ( " About &Qt " ) , this ) ;
aboutQtAction - > setTool Tip ( tr ( " Show information about Qt " ) ) ;
aboutQtAction - > setStatus Tip ( tr ( " Show information about Qt " ) ) ;
aboutQtAction - > setMenuRole ( QAction : : AboutQtRole ) ;
aboutQtAction - > setMenuRole ( QAction : : AboutQtRole ) ;
optionsAction = new QAction ( QIcon ( " :/icons/options " ) , tr ( " &Options... " ) , this ) ;
optionsAction = new QAction ( QIcon ( " :/icons/options " ) , tr ( " &Options... " ) , this ) ;
optionsAction - > setTool Tip ( tr ( " Modify configuration options for Bitcoin " ) ) ;
optionsAction - > setStatus Tip ( tr ( " Modify configuration options for Bitcoin " ) ) ;
optionsAction - > setMenuRole ( QAction : : PreferencesRole ) ;
optionsAction - > setMenuRole ( QAction : : PreferencesRole ) ;
toggleHideAction = new QAction ( QIcon ( " :/icons/bitcoin " ) , tr ( " &Show / Hide " ) , this ) ;
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 = new QAction ( QIcon ( " :/icons/lock_closed " ) , tr ( " &Encrypt Wallet... " ) , this ) ;
encryptWalletAction - > setTool Tip ( tr ( " Encrypt or decrypt wallet " ) ) ;
encryptWalletAction - > setStatus Tip ( tr ( " Encrypt the private keys that belong to your wallet " ) ) ;
encryptWalletAction - > setCheckable ( true ) ;
encryptWalletAction - > setCheckable ( true ) ;
backupWalletAction = new QAction ( QIcon ( " :/icons/filesave " ) , tr ( " &Backup Wallet... " ) , this ) ;
backupWalletAction = new QAction ( QIcon ( " :/icons/filesave " ) , tr ( " &Backup Wallet... " ) , this ) ;
backupWalletAction - > setTool Tip ( tr ( " Backup wallet to another location " ) ) ;
backupWalletAction - > setStatus Tip ( tr ( " Backup wallet to another location " ) ) ;
changePassphraseAction = new QAction ( QIcon ( " :/icons/key " ) , tr ( " &Change Passphrase... " ) , this ) ;
changePassphraseAction = new QAction ( QIcon ( " :/icons/key " ) , tr ( " &Change Passphrase... " ) , this ) ;
changePassphraseAction - > setTool Tip ( tr ( " Change the passphrase used for wallet encryption " ) ) ;
changePassphraseAction - > setStatus Tip ( tr ( " Change the passphrase used for wallet encryption " ) ) ;
signMessageAction = new QAction ( QIcon ( " :/icons/edit " ) , tr ( " Sign &message... " ) , this ) ;
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 = 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 = 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 = new QAction ( QIcon ( " :/icons/debugwindow " ) , tr ( " &Debug window " ) , this ) ;
openRPCConsoleAction - > setTool Tip ( tr ( " Open debugging and diagnostic console " ) ) ;
openRPCConsoleAction - > setStatus Tip ( tr ( " Open debugging and diagnostic console " ) ) ;
connect ( quitAction , SIGNAL ( triggered ( ) ) , qApp , SLOT ( quit ( ) ) ) ;
connect ( quitAction , SIGNAL ( triggered ( ) ) , qApp , SLOT ( quit ( ) ) ) ;
connect ( aboutAction , SIGNAL ( triggered ( ) ) , this , SLOT ( aboutClicked ( ) ) ) ;
connect ( aboutAction , SIGNAL ( triggered ( ) ) , this , SLOT ( aboutClicked ( ) ) ) ;
@ -338,7 +350,8 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
# endif
# endif
if ( trayIcon )
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 " ) ) ;
trayIcon - > setIcon ( QIcon ( " :/icons/toolbar_testnet " ) ) ;
toggleHideAction - > 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 )
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
// don't show / hide progress bar and its label if we have no connection to the network
if ( ! clientModel | | ( clientModel - > getNumConnections ( ) = = 0 & & ! clientModel - > isImporting ( ) ) )
if ( ! clientModel | | ( clientModel - > getNumConnections ( ) = = 0 & & ! clientModel - > isImporting ( ) ) )
{
{
@ -750,6 +766,18 @@ void BitcoinGUI::dropEvent(QDropEvent *event)
event - > acceptProposedAction ( ) ;
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 )
void BitcoinGUI : : handleURI ( QString strURI )
{
{
// URI has to be valid
// URI has to be valid