33 #include <QApplication>
35 #include <QDesktopWidget>
36 #include <QDragEnterEvent>
39 #include <QListWidget>
42 #include <QMessageBox>
45 #include <QProgressBar>
47 #include <QStackedWidget>
52 #include <QVBoxLayout>
56 #endif // ENABLE_I2PSAM
58 #if QT_VERSION < 0x050000
60 #include <QTextDocument>
71 encryptWalletAction(0),
72 changePassphraseAction(0),
82 QString windowTitle = tr(
"Anoncoin Core") +
" - ";
85 bool enableWallet = !
GetBoolArg(
"-disablewallet",
false);
87 bool enableWallet =
false;
91 windowTitle += tr(
"Wallet");
93 windowTitle += tr(
"Node");
99 QApplication::setWindowIcon(QIcon(
":icons/anoncoin"));
100 setWindowIcon(QIcon(
":icons/anoncoin"));
107 windowTitle +=
" " + tr(
"[testnet]");
109 QApplication::setWindowIcon(QIcon(
":icons/anoncoin_testnet"));
110 setWindowIcon(QIcon(
":icons/anoncoin_testnet"));
115 setWindowTitle(windowTitle);
117 #if defined(Q_OS_MAC) && QT_VERSION < 0x050000
120 setUnifiedTitleAndToolBarOnMac(
true);
140 setAcceptDrops(
true);
159 QFrame *frameBlocks =
new QFrame();
160 frameBlocks->setContentsMargins(0,0,0,0);
161 frameBlocks->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
162 QHBoxLayout *frameBlocksLayout =
new QHBoxLayout(frameBlocks);
163 frameBlocksLayout->setContentsMargins(3,0,3,0);
164 frameBlocksLayout->setSpacing(3);
170 labelI2PConnections =
new QLabel();
171 labelI2POnly =
new QLabel();
172 labelI2PGenerated =
new QLabel();
174 frameBlocksLayout->addStretch();
175 frameBlocksLayout->addWidget(labelI2PGenerated);
176 frameBlocksLayout->addStretch();
177 frameBlocksLayout->addWidget(labelI2POnly);
178 frameBlocksLayout->addStretch();
179 frameBlocksLayout->addWidget(labelI2PConnections);
181 frameBlocksLayout->addStretch();
183 frameBlocksLayout->addStretch();
185 frameBlocksLayout->addStretch();
187 frameBlocksLayout->addStretch();
189 frameBlocksLayout->addStretch();
201 QString curStyle = QApplication::style()->metaObject()->className();
202 if(curStyle ==
"QWindowsStyle" || curStyle ==
"QWindowsXPStyle")
204 progressBar->setStyleSheet(
"QProgressBar { background-color: #e8e8e8; border: 1px solid grey; border-radius: 7px; padding: 1px; text-align: center; } QProgressBar::chunk { background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #FF8000, stop: 1 orange); border-radius: 7px; margin: 0px; }");
209 statusBar()->addPermanentWidget(frameBlocks);
217 this->installEventFilter(
this);
242 QActionGroup *tabGroup =
new QActionGroup(
this);
244 overviewAction =
new QAction(QIcon(
":/icons/overview"), tr(
"&Overview"),
this);
245 overviewAction->setStatusTip(tr(
"Show general overview of wallet"));
251 sendCoinsAction =
new QAction(QIcon(
":/icons/send"), tr(
"&Send"),
this);
258 receiveCoinsAction =
new QAction(QIcon(
":/icons/receiving_addresses"), tr(
"&Receive"),
this);
259 receiveCoinsAction->setStatusTip(tr(
"Request payments (generates QR codes and anoncoin: URIs)"));
265 historyAction =
new QAction(QIcon(
":/icons/history"), tr(
"&Transactions"),
this);
266 historyAction->setStatusTip(tr(
"Browse transaction history"));
269 historyAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_4));
275 connect(
overviewAction, SIGNAL(triggered()),
this, SLOT(gotoOverviewPage()));
277 connect(
sendCoinsAction, SIGNAL(triggered()),
this, SLOT(gotoSendCoinsPage()));
281 connect(
historyAction, SIGNAL(triggered()),
this, SLOT(gotoHistoryPage()));
283 quitAction =
new QAction(QIcon(
":/icons/quit"), tr(
"E&xit"),
this);
284 quitAction->setStatusTip(tr(
"Quit application"));
285 quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
288 aboutAction =
new QAction(QIcon(
":/icons/anoncoin"), tr(
"&About Anoncoin Core"),
this);
290 aboutAction =
new QAction(QIcon(
":/icons/anoncoin_testnet"), tr(
"&About Anoncoin Core"),
this);
291 aboutAction->setStatusTip(tr(
"Show information about Anoncoin"));
293 #if QT_VERSION < 0x050000
294 aboutQtAction =
new QAction(QIcon(
":/trolltech/qmessagebox/images/qtlogo-64.png"), tr(
"About &Qt"),
this);
296 aboutQtAction =
new QAction(QIcon(
":/qt-project.org/qmessagebox/images/qtlogo-64.png"), tr(
"About &Qt"),
this);
298 aboutQtAction->setStatusTip(tr(
"Show information about Qt"));
300 optionsAction =
new QAction(QIcon(
":/icons/options"), tr(
"&Options..."),
this);
301 optionsAction->setStatusTip(tr(
"Modify configuration options for Anoncoin"));
304 toggleHideAction =
new QAction(QIcon(
":/icons/anoncoin"), tr(
"&Show / Hide"),
this);
306 toggleHideAction =
new QAction(QIcon(
":/icons/anoncoin_testnet"), tr(
"&Show / Hide"),
this);
309 encryptWalletAction =
new QAction(QIcon(
":/icons/lock_closed"), tr(
"&Encrypt Wallet..."),
this);
310 encryptWalletAction->setStatusTip(tr(
"Encrypt the private keys that belong to your wallet"));
312 backupWalletAction =
new QAction(QIcon(
":/icons/filesave"), tr(
"&Backup Wallet..."),
this);
316 signMessageAction =
new QAction(QIcon(
":/icons/edit"), tr(
"Sign &message..."),
this);
317 signMessageAction->setStatusTip(tr(
"Sign messages with your Anoncoin addresses to prove you own them"));
318 verifyMessageAction =
new QAction(QIcon(
":/icons/transaction_0"), tr(
"&Verify message..."),
this);
319 verifyMessageAction->setStatusTip(tr(
"Verify messages to ensure they were signed with specified Anoncoin addresses"));
329 openAction =
new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr(
"Open &URI..."),
this);
330 openAction->setStatusTip(tr(
"Open a anoncoin: URI or payment request"));
332 showHelpMessageAction =
new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr(
"&Command-line options"),
this);
333 showHelpMessageAction->setStatusTip(tr(
"Show the Anoncoin Core help message to get a list with possible Anoncoin command-line options"));
335 connect(
quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
337 connect(
aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
347 connect(
signMessageAction, SIGNAL(triggered()),
this, SLOT(gotoSignMessageTab()));
351 connect(
openAction, SIGNAL(triggered()),
this, SLOT(openClicked()));
367 QMenu *file =
appMenuBar->addMenu(tr(
"&File"));
374 file->addSeparator();
377 file->addSeparator();
381 QMenu *settings =
appMenuBar->addMenu(tr(
"&Settings"));
386 settings->addSeparator();
396 help->addSeparator();
405 QToolBar *toolbar = addToolBar(tr(
"Tabs toolbar"));
406 toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
426 connect(clientModel, SIGNAL(numConnectionsChanged(
int)),
this, SLOT(
setNumConnections(
int)));
429 setNumI2PConnections(clientModel->getNumI2PConnections());
430 connect(clientModel, SIGNAL(numI2PConnectionsChanged(
int)),
this, SLOT(setNumI2PConnections(
int)));
432 if (clientModel->isI2POnly()) {
433 labelI2POnly->setText(
"I2P");
434 labelI2POnly->setToolTip(tr(
"Wallet is using I2P-network only!"));
436 else if (clientModel->isTorOnly()) {
437 labelI2POnly->setText(
"TOR");
438 labelI2POnly->setToolTip(tr(
"Wallet is using Tor-network only"));
440 else if (clientModel->isDarknetOnly()) {
441 labelI2POnly->setText(
"I&T");
442 labelI2POnly->setToolTip(tr(
"Wallet is using I2P and Tor networks (Darknet mode)"));
444 else if (clientModel->isBehindDarknet()) {
445 labelI2POnly->setText(
"ICT");
446 labelI2POnly->setToolTip(tr(
"Wallet is using I2P and Tor networks, also Tor as a proxy"));
449 labelI2POnly->setText(
"CLR");
450 labelI2POnly->setToolTip(tr(
"Wallet is using mixed or non-I2P (clear) network"));
453 if (clientModel->isI2PAddressGenerated()) {
454 labelI2PGenerated->setText(
"DYN");
455 labelI2PGenerated->setToolTip(tr(
"Wallet is running with a random generated I2P-address"));
458 labelI2PGenerated->setText(
"STA");
459 labelI2PGenerated->setToolTip(tr(
"Wallet is running with a static I2P-address"));
461 #endif // ENABLE_I2PSAM
464 connect(clientModel, SIGNAL(numBlocksChanged(
int)),
this, SLOT(
setNumBlocks(
int)));
467 connect(clientModel, SIGNAL(
message(QString,QString,
unsigned int)),
this, SLOT(
message(QString,QString,
unsigned int)));
482 bool AnoncoinGUI::addWallet(
const QString& name,
WalletModel *walletModel)
490 bool AnoncoinGUI::setCurrentWallet(
const QString& name)
497 void AnoncoinGUI::removeAllWallets()
525 trayIcon =
new QSystemTrayIcon(
this);
529 trayIcon->setToolTip(tr(
"Anoncoin client"));
530 trayIcon->setIcon(QIcon(
":/icons/toolbar"));
534 trayIcon->setToolTip(tr(
"Anoncoin client") +
" " + tr(
"[testnet]"));
535 trayIcon->setIcon(QIcon(
":/icons/toolbar_testnet"));
552 trayIconMenu =
new QMenu(
this);
553 trayIcon->setContextMenu(trayIconMenu);
555 connect(
trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
561 trayIconMenu = dockIconHandler->
dockMenu();
566 trayIconMenu->addSeparator();
569 trayIconMenu->addSeparator();
572 trayIconMenu->addSeparator();
575 #ifndef Q_OS_MAC // This is built-in on Mac
576 trayIconMenu->addSeparator();
584 if(reason == QSystemTrayIcon::Trigger)
618 help->setAttribute(Qt::WA_DeleteOnClose);
623 void AnoncoinGUI::openClicked()
632 void AnoncoinGUI::gotoOverviewPage()
638 void AnoncoinGUI::gotoHistoryPage()
644 void AnoncoinGUI::gotoReceiveCoinsPage()
650 void AnoncoinGUI::gotoSendCoinsPage(QString addr)
656 void AnoncoinGUI::gotoSignMessageTab(QString addr)
661 void AnoncoinGUI::gotoVerifyMessageTab(QString addr)
672 int realcount = count - i2pConnectCount;
676 if( realcount < 0 ) realcount = 0;
678 int realcount = count;
682 case 0: icon =
":/icons/connect_0";
break;
683 case 1:
case 2:
case 3: icon =
":/icons/connect_1";
break;
684 case 4:
case 5:
case 6: icon =
":/icons/connect_2";
break;
685 case 7:
case 8:
case 9: icon =
":/icons/connect_3";
break;
686 default: icon =
":/icons/connect_4";
break;
689 labelConnectionsIcon->setToolTip(tr(
"%n active connection(s) to Anoncoin clearnet peers",
"", realcount));
693 void AnoncoinGUI::setNumI2PConnections(
int count)
698 case 0: i2pIcon =
":/icons/i2pconnect_0";
break;
699 case 1:
case 2:
case 3: i2pIcon =
":/icons/i2pconnect_1";
break;
700 case 4:
case 5:
case 6: i2pIcon =
":/icons/i2pconnect_2";
break;
701 case 7:
case 8:
case 9: i2pIcon =
":/icons/i2pconnect_3";
break;
702 default: i2pIcon =
":/icons/i2pconnect_4";
break;
704 labelI2PConnections->setPixmap(QIcon(i2pIcon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
705 labelI2PConnections->setToolTip(tr(
"%n active connection(s) to I2P-Anoncoin network",
"", count));
706 i2pConnectCount = count;
708 #endif // ENABLE_I2PSAM
713 statusBar()->clearMessage();
717 switch (blockSource) {
736 QDateTime currentDate = QDateTime::currentDateTime();
737 int secs = lastBlockDate.secsTo(currentDate);
739 tooltip = tr(
"Processed %1 blocks of transaction history.").arg(count);
744 tooltip = tr(
"Up to date") + QString(
".<br>") + tooltip;
745 labelBlocksIcon->setPixmap(QIcon(
":/icons/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
758 QString timeBehindText;
759 const int HOUR_IN_SECONDS = 60*60;
760 const int DAY_IN_SECONDS = 24*60*60;
761 const int WEEK_IN_SECONDS = 7*24*60*60;
762 const int YEAR_IN_SECONDS = 31556952;
763 if(secs < 2*DAY_IN_SECONDS)
765 timeBehindText = tr(
"%n hour(s)",
"",secs/HOUR_IN_SECONDS);
767 else if(secs < 2*WEEK_IN_SECONDS)
769 timeBehindText = tr(
"%n day(s)",
"",secs/DAY_IN_SECONDS);
771 else if(secs < YEAR_IN_SECONDS)
773 timeBehindText = tr(
"%n week(s)",
"",secs/WEEK_IN_SECONDS);
777 int years = secs / YEAR_IN_SECONDS;
778 int remainder = secs % YEAR_IN_SECONDS;
779 timeBehindText = tr(
"%1 and %2").arg(tr(
"%n year(s)",
"", years)).arg(tr(
"%n week(s)",
"", remainder/WEEK_IN_SECONDS));
783 progressBar->setFormat(tr(
"%1 behind").arg(timeBehindText));
788 tooltip = tr(
"Catching up...") + QString(
"<br>") + tooltip;
792 ":/movies/spinner-%1").arg(
spinnerFrame, 3, 10, QChar(
'0')))
793 .pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
803 tooltip += QString(
"<br>");
804 tooltip += tr(
"Last received block was generated %1 ago.").arg(timeBehindText);
805 tooltip += QString(
"<br>");
806 tooltip += tr(
"Transactions after this will not yet be visible.");
810 tooltip = QString(
"<nobr>") + tooltip + QString(
"</nobr>");
819 QString strTitle = tr(
"Anoncoin");
821 int nMBoxIcon = QMessageBox::Information;
827 if (!title.isEmpty()) {
833 msgType = tr(
"Error");
836 msgType = tr(
"Warning");
839 msgType = tr(
"Information");
846 if (!msgType.isEmpty())
847 strTitle +=
" - " + msgType;
851 nMBoxIcon = QMessageBox::Critical;
855 nMBoxIcon = QMessageBox::Warning;
862 QMessageBox::StandardButton buttons;
864 buttons = QMessageBox::Ok;
871 QMessageBox mBox((QMessageBox::Icon)nMBoxIcon, strTitle, message, buttons,
this);
874 *ret = r == QMessageBox::Ok;
882 QMainWindow::changeEvent(e);
883 #ifndef Q_OS_MAC // Ignored on Mac
884 if(e->type() == QEvent::WindowStateChange)
888 QWindowStateChangeEvent *wsevt =
static_cast<QWindowStateChangeEvent*
>(e);
889 if(!(wsevt->oldState() & Qt::WindowMinimized) && isMinimized())
891 QTimer::singleShot(0,
this, SLOT(hide()));
903 #ifndef Q_OS_MAC // Ignored on Mac
907 QApplication::quit();
911 QMainWindow::closeEvent(event);
915 void AnoncoinGUI::incomingTransaction(
const QString& date,
int unit, qint64 amount,
const QString& type,
const QString& address)
918 message((amount)<0 ? tr(
"Sent transaction") : tr(
"Incoming transaction"),
933 if(event->mimeData()->hasUrls())
934 event->acceptProposedAction();
939 if(event->mimeData()->hasUrls())
941 foreach(
const QUrl &uri, event->mimeData()->urls())
946 event->acceptProposedAction();
952 if (event->type() == QEvent::StatusTip)
958 return QMainWindow::eventFilter(
object, event);
975 void AnoncoinGUI::setEncryptionStatus(
int status)
987 labelEncryptionIcon->setPixmap(QIcon(
":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
988 labelEncryptionIcon->setToolTip(tr(
"Wallet is <b>encrypted</b> and currently <b>unlocked</b>"));
995 labelEncryptionIcon->setPixmap(QIcon(
":/icons/lock_closed").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
996 labelEncryptionIcon->setToolTip(tr(
"Wallet is <b>encrypted</b> and currently <b>locked</b>"));
1013 else if (isMinimized())
1023 else if(fToggleHidden)
1042 static bool ThreadSafeMessageBox(
AnoncoinGUI *gui,
const std::string& message,
const std::string& caption,
unsigned int style)
1047 QMetaObject::invokeMethod(gui,
"message",
1049 Q_ARG(QString, QString::fromStdString(caption)),
1050 Q_ARG(QString, QString::fromStdString(message)),
1051 Q_ARG(
unsigned int, style),
1052 Q_ARG(
bool*, &ret));
1056 #ifdef ENABLE_I2PSAM
1063 static bool ThreadSafeShowGeneratedI2PAddress(
AnoncoinGUI *gui,
1064 const std::string& caption,
1065 const std::string& pub,
1066 const std::string& priv,
1067 const std::string& b32,
1068 const std::string& configFileName)
1106 #endif // ENABLE_I2PSAM
1112 #ifdef ENABLE_I2PSAM
1113 uiInterface.ThreadSafeShowGeneratedI2PAddress.connect(boost::bind(ThreadSafeShowGeneratedI2PAddress,
this, _1, _2, _3, _4, _5));
1121 #ifdef ENABLE_I2PSAM
1122 uiInterface.ThreadSafeShowGeneratedI2PAddress.disconnect(boost::bind(ThreadSafeShowGeneratedI2PAddress,
this, _1, _2, _3, _4, _5));
1130 setStyleSheet(
"font:11pt; color: #333333");
1131 setToolTip(tr(
"Unit to show amounts in. Click to select another unit."));
1147 menuAction->setData(QVariant(u));
1148 menu->addAction(menuAction);
1153 setContextMenuPolicy(Qt::CustomContextMenu);
1154 connect(
this,SIGNAL(customContextMenuRequested(
const QPoint&)),
this,SLOT(
onDisplayUnitsClicked(
const QPoint&)));
1165 connect(optionsModel,SIGNAL(displayUnitChanged(
int)),
this,SLOT(
updateDisplayUnit(
int)));
1181 QPoint globalPos = mapToGlobal(point);
1182 menu->exec(globalPos);
1194 #ifdef ENABLE_I2PSAM
1195 void AnoncoinGUI::showGeneratedI2PAddr(
const QString& caption,
const QString& pub,
const QString& priv,
const QString& b32,
const QString& configFileName)
1200 #endif // ENABLE_I2PSAM
int prevBlocks
Keep track of previous number of blocks, to detect progress.
CClientUIInterface uiInterface
void detectShutdown()
called by a timer to check if fRequestShutdown has been set
bool handlePaymentRequest(const SendCoinsRecipient &recipient)
bool setCurrentWallet(const QString &name)
QLabel * labelEncryptionIcon
QLabel * labelConnectionsIcon
bool getMinimizeOnClose()
static QList< Unit > availableUnits()
Get list of units, for drop-down box.
Local Anoncoin RPC console.
QAction * encryptWalletAction
Value help(const Array ¶ms, bool fHelp)
void mousePressEvent(QMouseEvent *event)
So that it responds to left-button clicks.
void aboutClicked()
Show about dialog.
QProgressBar * progressBar
void createTrayIcon(bool fIsTestnet)
Create system tray icon and notification.
static QString formatWithUnit(int unit, qint64 amount, bool plussign=false)
Format as string (with unit)
QAction * verifyMessageAction
QAction * changePassphraseAction
static QString name(int unit)
Short name.
int getNumConnections(unsigned int flags=CONNECTIONS_ALL) const
Return number of connections, default is in- and outbound (total)
Qt::ConnectionType blockingGUIThreadConnection()
Get connection type to call object slot in GUI thread with invokeMethod.
UnitDisplayStatusBarControl * unitDisplayControl
OptionsModel * getOptionsModel()
void trayIconActivated(QSystemTrayIcon::ActivationReason reason)
Handle tray icon clicked.
Macintosh-specific dock icon handler.
Mask of all available buttons in CClientUIInterface::MessageBoxFlags This needs to be updated...
Don't bring GUI to foreground.
Notify user of potential problem.
void receivedURI(const QString &uri)
Signal raised when a URI was entered or dragged to the GUI.
WalletFrame * walletFrame
QAction * usedReceivingAddressesAction
void message(const QString &title, const QString &message, unsigned int style, bool *ret=NULL)
Notify the user of an event from the core network or transaction handling code.
void setOptionsModel(OptionsModel *optionsModel)
Lets the control know about the Options Model (and its signals)
void saveWindowGeometry(const QString &strSetting, QWidget *parent)
Save window size and position.
void optionsClicked()
Show configuration dialog.
Force blocking, modal message box dialog (not just OS notification)
void showOutOfSyncWarning(bool fShow)
void setIcon(const QIcon &icon)
void setClientModel(ClientModel *model)
void gotoHistoryPage()
Switch to history (transactions) page.
void createTrayIconMenu()
Create system tray menu (or setup the dock menu)
Notificator * notificator
void gotoOverviewPage()
Switch to overview (home) page.
double getVerificationProgress() const
void setNumConnections(int count)
Set number of connections shown in the UI.
bool GetBoolArg(const std::string &strArg, bool fDefault)
Return boolean argument or default value.
static MacDockIconHandler * instance()
void setDisplayUnit(const QVariant &value)
Updates current unit in memory, settings and emits displayUnitChanged(newUnit) signal.
void setClientModel(ClientModel *clientModel)
void setMainWindow(QMainWindow *window)
bool isObscured(QWidget *w)
OptionsModel * optionsModel
void createMenuBar()
Create the menu bar and sub-menus.
static const QString DEFAULT_WALLET
void gotoVerifyMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to verify message tab.
void notify(Class cls, const QString &title, const QString &text, const QIcon &icon=QIcon(), int millisTimeout=10000)
Show notification message.
bool addWallet(const QString &name, WalletModel *walletModel)
QDateTime getLastBlockDate() const
QAction * receiveCoinsAction
void updateDisplayUnit(int newUnits)
When Display Units are changed on OptionsModel it will refresh the display text of the control on the...
UnitDisplayStatusBarControl()
void showNormalIfMinimized(bool fToggleHidden=false)
Show window if hidden, unminimize when minimized, rise when obscured or show if hidden and fToggleHid...
QAction * backupWalletAction
void closeEvent(QCloseEvent *event)
AnoncoinGUI(bool fIsTestnet=false, QWidget *parent=0)
void setModel(OptionsModel *model)
QAction * usedSendingAddressesAction
void createActions(bool fIsTestnet)
Create the main UI actions.
Cross-platform desktop notification client.
void restoreWindowGeometry(const QString &strSetting, const QSize &defaultSize, QWidget *parent)
Restore window size and position.
Model for Anoncoin network client.
QLabel * progressBarLabel
void gotoSignMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to sign message tab.
void dropEvent(QDropEvent *event)
void showHelpMessageClicked()
Show help message dialog.
bool eventFilter(QObject *object, QEvent *event)
void dragEnterEvent(QDragEnterEvent *event)
void gotoSendCoinsPage(QString addr="")
Switch to send coins page.
void gotoReceiveCoinsPage()
Switch to receive coins page.
Interface from Qt to configuration data structure for Anoncoin client.
Interface to Anoncoin wallet from Qt view code.
void setClientModel(ClientModel *clientModel)
Set the client model.
void setWalletActionsEnabled(bool enabled)
Enable or disable all wallet-related actions.
QAction * sendCoinsAction
boost::signals2::signal< bool(const std::string &message, const std::string &caption, unsigned int style), boost::signals2::last_value< bool > > ThreadSafeMessageBox
Show message box.
ClientModel * clientModel
void toggleHidden()
Simply calls showNormalIfMinimized(true) for use in SLOT() macro.
"Help message" dialog box
void changeEvent(QEvent *e)
QAction * signMessageAction
void createContextMenu()
Creates context menu, its actions, and wires up all the relevant signals for mouse events...
void createToolBars()
Create the toolbars.
void setNumBlocks(int count)
Set number of blocks shown in the UI.
void setClientModel(ClientModel *clientModel)
QAction * toggleHideAction
void unsubscribeFromCoreSignals()
Disconnect core signals from GUI client.
void subscribeToCoreSignals()
Connect core signals to GUI client.
QAction * openRPCConsoleAction
enum BlockSource getBlockSource() const
Return true if core is importing blocks.
void onDisplayUnitsClicked(const QPoint &point)
Shows context menu with Display Unit options by the mouse coordinates.
QAction * showHelpMessageAction
void onMenuSelection(QAction *action)
Tells underlying optionsModel to update its current display unit.
Predefined combinations for certain default usage cases.
QSystemTrayIcon * trayIcon
void setModel(ClientModel *model)