diff --git a/src/init.cpp b/src/init.cpp index 0613665..847157a 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -78,6 +78,7 @@ volatile bool fRequestShutdown = false; void StartShutdown() { + Sleep(1000); fRequestShutdown = true; } bool ShutdownRequested() diff --git a/src/qt/CSCPublicAPI/casinocoinwebapi.cpp b/src/qt/CSCPublicAPI/casinocoinwebapi.cpp index beb24bd..526d7c2 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapi.cpp +++ b/src/qt/CSCPublicAPI/casinocoinwebapi.cpp @@ -1,6 +1,7 @@ #include "casinocoinwebapi.h" #include +#include const QString CasinoCoinWebAPI::s_strServerAddress = "http://api.csc.dig0.com/"; const QString CasinoCoinWebAPI::s_strServerEndpoint = "CSCPublicAPI"; diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index b8070ee..79c063a 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -292,12 +292,14 @@ int main(int argc, char *argv[]) threadGroup.interrupt_all(); threadGroup.join_all(); Shutdown(); + pollShutdownTimer->stop(); } else { threadGroup.interrupt_all(); threadGroup.join_all(); Shutdown(); + pollShutdownTimer->stop(); return 1; } } catch (std::exception& e) { diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 45b599a..d2198e6 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -227,6 +227,13 @@ void BitcoinGUI::createActions() pryptoRedeemAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_6)); tabGroup->addAction(pryptoRedeemAction); + infoPageAction = new QAction(QIcon(":/icons/bitcoin"), tr("&Information"), this); + infoPageAction->setStatusTip(tr("Show all Casinocoin related information")); + infoPageAction->setToolTip(infoPageAction->statusTip()); + infoPageAction->setCheckable(true); + infoPageAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_7)); + tabGroup->addAction(infoPageAction); + connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage())); connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); @@ -239,6 +246,8 @@ void BitcoinGUI::createActions() connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage())); connect(pryptoRedeemAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(pryptoRedeemAction, SIGNAL(triggered()), this, SLOT(gotoPryptoPage())); + connect(infoPageAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); + connect(infoPageAction, SIGNAL(triggered()), this, SLOT(gotoInfoPage())); quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this); quitAction->setStatusTip(tr("Quit application")); @@ -388,6 +397,7 @@ void BitcoinGUI::setWalletActionsEnabled(bool enabled) verifyMessageAction->setEnabled(enabled); addressBookAction->setEnabled(enabled); pryptoRedeemAction->setEnabled(enabled); + infoPageAction->setEnabled(enabled); } void BitcoinGUI::createTrayIcon() @@ -523,6 +533,12 @@ void BitcoinGUI::gotoPryptoPage() if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::REDEEM_PRYPTO ); } +void BitcoinGUI::gotoInfoPage() +{ + if (walletFrame) walletFrame->gotoInfoPage(); + if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::INFO ); +} + void BitcoinGUI::gotoReceiveCoinsPage() { if (walletFrame) walletFrame->gotoReceiveCoinsPage(); @@ -912,7 +928,7 @@ void BitcoinGUI::slotMenuToolbarItemClicked( GUIMenuToolbarControl::EMenuToolbar } case GUIMenuToolbarControl::INFO: { - emit aboutAction->triggered(); + emit infoPageAction->triggered(); break; } } diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 8cd9a4c..25c054b 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -70,6 +70,7 @@ public: QAction * getHistoryAction() { return historyAction; } QAction * getAddressBookAction() { return addressBookAction; } QAction * getPryptoRedeemAction() { return pryptoRedeemAction; } + QAction * getInfoPageAction() { return infoPageAction; } QAction * getReceiveCoinsAction() { return receiveCoinsAction; } QAction * getSendCoinsAction() { return sendCoinsAction; } @@ -109,6 +110,7 @@ private: QAction *aboutQtAction; QAction *openRPCConsoleAction; QAction *pryptoRedeemAction; + QAction *infoPageAction; QSystemTrayIcon *trayIcon; Notificator *notificator; @@ -180,6 +182,8 @@ private slots: void gotoReceiveCoinsPage(); /** Switch to send coins page */ void gotoSendCoinsPage(QString addr = ""); + /** Switch to info page */ + void gotoInfoPage(); /** Show Sign/Verify Message dialog and switch to sign message tab */ void gotoSignMessageTab(QString addr = ""); diff --git a/src/qt/forms/infopage.ui b/src/qt/forms/infopage.ui new file mode 100644 index 0000000..9fc591f --- /dev/null +++ b/src/qt/forms/infopage.ui @@ -0,0 +1,572 @@ + + + InfoPage + + + + 0 + 0 + 800 + 500 + + + + Dialog + + + + 15 + + + 15 + + + 15 + + + 15 + + + 15 + + + + + + 10 + 75 + true + + + + color: rgb(166, 27, 31); background-color: rgb(255,255,255); + + + + + 20 + 10 + 351 + 21 + + + + + 10 + 75 + true + + + + color: rgb(166, 27, 31); + + + Casinos + + + + + + + + + 10 + 75 + true + + + + color: rgb(166, 27, 31); background-color: rgb(255,255,255); + + + + + 20 + 10 + 351 + 21 + + + + + 10 + 75 + true + + + + color: rgb(166, 27, 31); + + + News + + + + + + + + + 10 + 75 + true + + + + color: rgb(166, 27, 31); background-color: rgb(255,255,255); + + + + + 20 + 10 + 351 + 21 + + + + + 10 + 75 + true + + + + color: rgb(166, 27, 31); + + + Exchanges + + + + + + + + + 10 + 75 + true + + + + false + + + color: rgb(166, 27, 31); background-color: rgb(255,255,255); + + + + + 10 + 41 + 351 + 192 + + + + + 15 + + + 10 + + + 10 + + + 10 + + + 10 + + + 10 + + + + + color: rgb(0, 0, 0); + + + Current number of blocks + + + + + + + color: rgb(0, 0, 0); + + + Last block time + + + + + + + color: rgb(0, 0, 0); + + + Coin Supply + + + + + + + color: rgb(0, 0, 0); + + + Number of connections + + + + + + + color: rgb(0, 0, 0); + + + Difficulty + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + color: rgb(0, 0, 0); + + + Network Hashrate + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + color: rgb(0, 0, 0); + + + Transactions + + + + + + + + 75 + true + + + + color: rgb(0, 0, 0); + + + - + + + + + + + + + 20 + 10 + 341 + 21 + + + + + MS Shell Dlg 2 + 10 + 75 + true + + + + color: rgb(166, 27, 31); + + + Information + + + + + + + + + diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index 58f21a0..6ce5663 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -34,6 +34,9 @@ + + 7 + @@ -49,6 +52,12 @@ + + 7 + + + 7 + @@ -66,7 +75,7 @@ - 14 + 10 75 true @@ -121,7 +130,7 @@ - 14 + 10 75 true @@ -267,13 +276,19 @@ + + 7 + + + 7 + - 14 + 10 diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index 944ca88..29fb552 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -79,12 +79,13 @@ + 10 75 true - font-weight:bold; + color: rgb(166, 27, 31); Coin Control Features @@ -130,7 +131,7 @@ - color:red;font-weight:bold; + color: rgb(166, 27, 31); Insufficient funds! @@ -634,8 +635,8 @@ 0 0 - 830 - 167 + 826 + 138 diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index 9241783..0c3acb3 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -16,7 +16,9 @@ static const int STATUSBAR_ICONSIZE = 16; /* Transaction list -- unconfirmed transaction */ #define COLOR_UNCONFIRMED QColor(128, 128, 128) /* Transaction list -- negative amount */ -#define COLOR_NEGATIVE QColor(255, 0, 0) +#define COLOR_NEGATIVE QColor(166, 27, 31) +/* Transaction list -- positive amount */ +#define COLOR_POSITIVE QColor(27, 166, 31) /* Transaction list -- bare address (without label) */ #define COLOR_BAREADDRESS QColor(140, 140, 140) diff --git a/src/qt/infopage.cpp b/src/qt/infopage.cpp new file mode 100644 index 0000000..9f5c869 --- /dev/null +++ b/src/qt/infopage.cpp @@ -0,0 +1,109 @@ +#include "infopage.h" +#include "ui_infopage.h" +#include "walletmodel.h" +#include "clientmodel.h" +#include "bitcoinrpc.h" +#include +#include "bitcoinunits.h" +#include "main.h" + +using namespace std; + +InfoPage::InfoPage(QWidget *parent) : + QDialog(parent), + ui(new Ui::InfoPage) +{ + ui->setupUi(this); + ui->casinoInfoBox->setVisible(false); + ui->newsItemsBox->setVisible(false); +} + +void InfoPage::setWalletModel(WalletModel *model) +{ + this->walletModel = model; + if(model) + { + // subscribe to transaction changes + connect(model, SIGNAL(numTransactionsChanged(int)), this, SLOT(setNumTransactions(int))); + setNumTransactions(model->getNumTransactions()); + } +} + +void InfoPage::setClientModel(ClientModel *model) +{ + this->clientModel = model; + if(model) + { + // Subscribe to information, replies, messages, errors + connect(model, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int))); + connect(model, SIGNAL(numBlocksChanged(int,int)), this, SLOT(setNumBlocks(int,int))); + setNumConnections(model->getNumConnections()); + setNumBlocks(model->getNumBlocks(), model->getNumBlocksOfPeers()); + } +} + +void InfoPage::setNumConnections(int count) +{ + ui->txtConnections->setText(QString::number(count)); +} + +void InfoPage::setNumBlocks(int count, int countOfPeers) +{ + ui->txtBlockHeight->setText(QString::number(count)); + // block height changed so update all possible values as well + if(clientModel) + { + ui->txtLastBlockTime->setText(clientModel->getLastBlockDate().toString()); + ui->txtDifficulty->setText(QString::number(GetDifficulty())); + ui->txtCoinSupply->setText(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, GetTotalCoinSupply(count, false))); + double megaHash = GetNetworkHashRate(-1, count) / 1000000; + ui->txtHashRate->setText(QString::number(megaHash,'f',0).append(" MHash/sec")); + } +} + +void InfoPage::setNumTransactions(int count) +{ + ui->txtTransactionCount->setText(QString::number(count)); +} + +double InfoPage::GetNetworkHashRate(int lookup, int height) { + CBlockIndex *pb = pindexBest; + + if (height >= 0 && height < nBestHeight) + pb = FindBlockByHeight(height); + + if (pb == NULL || !pb->nHeight) + return 0; + + // If lookup is -1, then use blocks since last difficulty change. + if (lookup <= 0) + lookup = pb->nHeight % 2016 + 1; + + // If lookup is larger than chain, then set it to chain length. + if (lookup > pb->nHeight) + lookup = pb->nHeight; + + CBlockIndex *pb0 = pb; + int64 minTime = pb0->GetBlockTime(); + int64 maxTime = minTime; + for (int i = 0; i < lookup; i++) { + pb0 = pb0->pprev; + int64 time = pb0->GetBlockTime(); + minTime = std::min(time, minTime); + maxTime = std::max(time, maxTime); + } + + // In case there's a situation where minTime == maxTime, we don't want a divide by zero exception. + if (minTime == maxTime) + return 0; + + uint256 workDiff = pb->nChainWork - pb0->nChainWork; + int64 timeDiff = maxTime - minTime; + double workDiffDouble = workDiff.getdouble(); + return workDiffDouble / timeDiff; +} + +InfoPage::~InfoPage() +{ + delete ui; +} diff --git a/src/qt/infopage.h b/src/qt/infopage.h new file mode 100644 index 0000000..41c585f --- /dev/null +++ b/src/qt/infopage.h @@ -0,0 +1,38 @@ +#ifndef INFOPAGE_H +#define INFOPAGE_H + +#include + +class WalletModel; +class ClientModel; + +namespace Ui { +class InfoPage; +} + +class InfoPage : public QDialog +{ + Q_OBJECT + +public slots: + /** Set number of connections shown in the UI */ + void setNumConnections(int count); + /** Set number of blocks shown in the UI */ + void setNumBlocks(int count, int countOfPeers); + /** Set number of transactions shown in the UI */ + void setNumTransactions(int count); + +public: + explicit InfoPage(QWidget *parent = 0); + void setWalletModel(WalletModel *model); + void setClientModel(ClientModel *model); + ~InfoPage(); + +private: + Ui::InfoPage *ui; + WalletModel *walletModel; + ClientModel *clientModel; + double GetNetworkHashRate(int lookup, int height); +}; + +#endif // INFOPAGE_H diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index d2b4806..eaad7d5 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -71,16 +71,23 @@ public: } else { - foreground = option.palette.color(QPalette::Text); + foreground = COLOR_POSITIVE; } painter->setPen(foreground); QString amountText = BitcoinUnits::formatWithUnit(unit, amount, true); + QFont amountFont = painter->font(); if(!confirmed) { amountText = QString("[") + amountText + QString("]"); } + else + { + amountFont.setWeight(QFont::Bold); + painter->setFont(amountFont); + } painter->drawText(amountRect, Qt::AlignRight|Qt::AlignVCenter, amountText); - + amountFont.setWeight(QFont::Bold); + painter->setFont(amountFont); painter->setPen(option.palette.color(QPalette::Text)); painter->drawText(amountRect, Qt::AlignLeft|Qt::AlignVCenter, GUIUtil::dateTimeStr(date)); @@ -106,13 +113,13 @@ OverviewPage::OverviewPage(QWidget *parent) : currentUnconfirmedBalance(-1), currentImmatureBalance(-1), txdelegate(new TxViewDelegate()), - filter(0), + filter(0), advertsWidget(0), cscWebApiParser( new CasinoCoinWebAPIParser( this ) ), cscWebApi( new CasinoCoinWebAPI( this ) ) { ui->setupUi(this); - createAdvertsWidget(); + createAdvertsWidget(); // Recent transactions ui->listTransactions->setItemDelegate(txdelegate); @@ -142,11 +149,6 @@ void OverviewPage::handleTransactionClicked(const QModelIndex &index) emit transactionClicked(filter->mapToSource(index)); } -OverviewPage::~OverviewPage() -{ - delete ui; -} - void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance) { int unit = walletModel->getOptionsModel()->getDisplayUnit(); @@ -258,7 +260,10 @@ void OverviewPage::updateCoinInfoFromWeb( JsonCoinInfoParser* coinInfoParser ) // save the coin information coinInformation = coinInfoParser->getCoinInfo(); // calculate and set the estimated fiat balance - updateFiatBalance(walletModel->getOptionsModel()->getDisplayFiatCurrency()); + if(walletModel) + { + updateFiatBalance(walletModel->getOptionsModel()->getDisplayFiatCurrency()); + } } void OverviewPage::updateFiatBalance(int currency) @@ -268,7 +273,6 @@ void OverviewPage::updateFiatBalance(int currency) QString conversionCurrency = QString("Price").append(Currencies::name(currency)); double currencyValue = coinInformation.find(conversionCurrency).value().toDouble(); double fiatBalance = currentBalance * currencyValue; - qDebug() << "updateFiatBalance: " << QString::number(fiatBalance,'f',2); ui->labelBalanceFiat->setText(Currencies::format(currency,fiatBalance,true)); } } @@ -285,3 +289,8 @@ void OverviewPage::updateDisplayPromotions(bool checked) } } } + +OverviewPage::~OverviewPage() +{ + delete ui; +} diff --git a/src/qt/pryptopage.cpp b/src/qt/pryptopage.cpp index f5d53a9..0d7540a 100644 --- a/src/qt/pryptopage.cpp +++ b/src/qt/pryptopage.cpp @@ -4,6 +4,7 @@ #include "addresstablemodel.h" #include #include +#include const QString PryptoPage::strAPIEndpoint = "https://prypto.com/merchants/api/"; const QString PryptoPage::strMerchantToken = "35616ab118fa557b77fdac78ef09d5632d302609"; diff --git a/src/qt/res/icons/tx_input.png b/src/qt/res/icons/tx_input.png index f40d32f..e786dd9 100644 Binary files a/src/qt/res/icons/tx_input.png and b/src/qt/res/icons/tx_input.png differ diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp index 1ccd164..61598c3 100644 --- a/src/qt/walletframe.cpp +++ b/src/qt/walletframe.cpp @@ -102,6 +102,13 @@ void WalletFrame::gotoPryptoPage() walletStack->gotoPryptoPage(); } +void WalletFrame::gotoInfoPage() +{ + WalletView *walletView = currentWalletView(); + if (walletView) + walletStack->gotoInfoPage(); +} + void WalletFrame::gotoReceiveCoinsPage() { walletStack->gotoReceiveCoinsPage(); diff --git a/src/qt/walletframe.h b/src/qt/walletframe.h index bc02384..eb48a0c 100644 --- a/src/qt/walletframe.h +++ b/src/qt/walletframe.h @@ -50,6 +50,8 @@ public slots: void gotoAddressBookPage(); /** Switch to redeem prypto page */ void gotoPryptoPage(); + /** Switch to info page */ + void gotoInfoPage(); /** Switch to receive coins page */ void gotoReceiveCoinsPage(); /** Switch to send coins page */ diff --git a/src/qt/walletstack.cpp b/src/qt/walletstack.cpp index b8b310a..31da946 100644 --- a/src/qt/walletstack.cpp +++ b/src/qt/walletstack.cpp @@ -103,6 +103,13 @@ void WalletStack::gotoPryptoPage() i.value()->gotoPryptoPage(); } +void WalletStack::gotoInfoPage() +{ + QMap::const_iterator i; + for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i) + i.value()->gotoInfoPage(); +} + void WalletStack::gotoReceiveCoinsPage() { QMap::const_iterator i; diff --git a/src/qt/walletstack.h b/src/qt/walletstack.h index a6e5df8..6a9c2cc 100644 --- a/src/qt/walletstack.h +++ b/src/qt/walletstack.h @@ -76,6 +76,8 @@ public slots: void gotoAddressBookPage(); /** Switch to redeem prypto page */ void gotoPryptoPage(); + /** Switch to info page */ + void gotoInfoPage(); /** Switch to receive coins page */ void gotoReceiveCoinsPage(); /** Switch to send coins page */ diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp index 083c88b..4adfb0d 100644 --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -9,6 +9,7 @@ #include "transactiontablemodel.h" #include "addressbookpage.h" #include "pryptopage.h" +#include "infopage.h" #include "sendcoinsdialog.h" #include "signverifymessagedialog.h" #include "clientmodel.h" @@ -58,6 +59,8 @@ WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui): pryptoPage = new PryptoPage(gui); + infoPage = new InfoPage(gui); + receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(gui); @@ -68,6 +71,7 @@ WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui): addWidget(transactionsPage); addWidget(addressBookPage); addWidget(pryptoPage); + addWidget(infoPage); addWidget(receiveCoinsPage); addWidget(sendCoinsPage); @@ -107,6 +111,7 @@ void WalletView::setClientModel(ClientModel *clientModel) overviewPage->setClientModel(clientModel); addressBookPage->setOptionsModel(clientModel->getOptionsModel()); receiveCoinsPage->setOptionsModel(clientModel->getOptionsModel()); + infoPage->setClientModel(clientModel); } } @@ -126,6 +131,7 @@ void WalletView::setWalletModel(WalletModel *walletModel) sendCoinsPage->setModel(walletModel); signVerifyMessageDialog->setModel(walletModel); pryptoPage->setWalletModel(walletModel); + infoPage->setWalletModel(walletModel); setEncryptionStatus(); connect(walletModel, SIGNAL(encryptionStatusChanged(int)), gui, SLOT(setEncryptionStatus(int))); @@ -179,6 +185,12 @@ void WalletView::gotoPryptoPage() setCurrentWidget(pryptoPage); } +void WalletView::gotoInfoPage() +{ + gui->getInfoPageAction()->setChecked(true); + setCurrentWidget(infoPage); +} + void WalletView::gotoReceiveCoinsPage() { gui->getReceiveCoinsAction()->setChecked(true); diff --git a/src/qt/walletview.h b/src/qt/walletview.h index ed62ffc..1f5d54d 100644 --- a/src/qt/walletview.h +++ b/src/qt/walletview.h @@ -16,6 +16,7 @@ class TransactionView; class OverviewPage; class AddressBookPage; class PryptoPage; +class InfoPage; class SendCoinsDialog; class SignVerifyMessageDialog; class RPCConsole; @@ -63,6 +64,7 @@ private: QWidget *transactionsPage; AddressBookPage *addressBookPage; PryptoPage *pryptoPage; + InfoPage *infoPage; AddressBookPage *receiveCoinsPage; SendCoinsDialog *sendCoinsPage; SignVerifyMessageDialog *signVerifyMessageDialog; @@ -78,6 +80,8 @@ public slots: void gotoAddressBookPage(); /** Switch to redeem prypto page */ void gotoPryptoPage(); + /** Switch to info page */ + void gotoInfoPage(); /** Switch to receive coins page */ void gotoReceiveCoinsPage(); /** Switch to send coins page */