diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include
index f406a3dc86..efa214e43a 100644
--- a/src/Makefile.qt.include
+++ b/src/Makefile.qt.include
@@ -586,7 +586,8 @@ RES_ICONS = \
qt/res/icons/ic-locked.png \
qt/res/icons/ic-unlocked.png \
qt/res/icons/ic-menu.png \
- qt/res/icons/verify.png
+ qt/res/icons/verify.png \
+ qt/res/icons/ic-information-white.png
BITCOIN_QT_BASE_CPP = \
qt/splashscreenveil.cpp \
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 5a96469ddd..722b21f017 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -345,6 +345,14 @@ void BitcoinGUI::createActions()
tabGroup->addAction(settingsAction);
+ QIcon iconHelp(":/icons/ic-information-white");
+ helpAction = new QAction(iconHelp,tr("&Help"), this);
+ helpAction->setStatusTip(tr("Help"));
+ helpAction->setToolTip(helpAction->statusTip());
+ helpAction->setCheckable(true);
+ helpAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_7));
+ tabGroup->addAction(helpAction);
+
sendCoinsMenuAction = new QAction(platformStyle->TextColorIcon(":/icons/send"), sendCoinsAction->text(), this);
sendCoinsMenuAction->setStatusTip(sendCoinsAction->statusTip());
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
@@ -373,6 +381,8 @@ void BitcoinGUI::createActions()
connect(miningAction, SIGNAL(triggered()), this, SLOT(gotoMiningPage()));
connect(settingsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(settingsAction, SIGNAL(triggered()), this, SLOT(gotoSettingsPage()));
+ connect(helpAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
+ connect(helpAction, SIGNAL(triggered()), this, SLOT(gotoHelpPage()));
}
#endif // ENABLE_WALLET
@@ -491,6 +501,8 @@ void BitcoinGUI::createToolBars()
toolbar->addAction(miningAction);
toolbar->addAction(addressesAction);
toolbar->addAction(settingsAction);
+ toolbar->addAction(helpAction);
+
overviewAction->setChecked(true);
toolbar->setIconSize(QSize(24,24));
@@ -843,6 +855,14 @@ void BitcoinGUI::gotoSettingsPage(){
if (walletFrame) walletFrame->gotoSettings();
}
+void BitcoinGUI::gotoHelpPage(){
+ if(!enableWallet)
+ return;
+
+ helpAction->setChecked(true);
+ if (walletFrame) walletFrame->gotoHelpPage();
+}
+
void BitcoinGUI::gotoSignMessageTab(QString addr)
{
if(!enableWallet)
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index e09e328ead..92a37b8c38 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -153,6 +153,7 @@ class BitcoinGUI : public QMainWindow
QAction* settingsAction = nullptr;
QAction* settingsAction2 = nullptr;
QAction* miningAction = nullptr;
+ QAction* helpAction = nullptr;
//QAction* historyAction = nullptr;
QAction* quitAction = nullptr;
QAction* sendCoinsAction = nullptr;
@@ -296,6 +297,8 @@ private Q_SLOTS:
void gotoAddressesPage();
/** Switch to settings page */
void gotoSettingsPage();
+ /** Switch to help page */
+ void gotoHelpPage();
/** Show Sign/Verify Message dialog and switch to sign message tab */
void gotoSignMessageTab(QString addr = "");
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
index fd4e205a2f..c06ef4747a 100644
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -513,14 +513,12 @@ void OverviewPage::setWalletModel(WalletModel *model)
interfaces::Wallet& wallet = model->wallet();
- if(wallet.getWalletTxs().size() == 0 ){
- // show empty view
- ui->containerEmpty->setVisible(true);
- ui->listTransactions->setVisible(false);
+ if(isNewWallet()){
+ showHelp();
connect(model, SIGNAL(balanceChanged(interfaces::WalletBalances)), this, SLOT(updateTxesView()));
}else{
- ui->containerEmpty->setVisible(false);
+ hideHelp();
}
// Keep up to date with wallet
@@ -541,8 +539,7 @@ void OverviewPage::setWalletModel(WalletModel *model)
void OverviewPage::updateTxesView(){
if(ui->containerEmpty->isVisible()){
- ui->containerEmpty->setVisible(false);
- ui->listTransactions->setVisible(true);
+ hideHelp();
disconnect(this, SLOT(updateTxesView()));
}
}
@@ -610,3 +607,37 @@ void OverviewPage::hideEvent(QHideEvent *event){
a->setEasingCurve(QEasingCurve::OutBack);
a->start(QPropertyAnimation::DeleteWhenStopped);
}
+
+void OverviewPage::showHelp()
+{
+ // show empty view
+ ui->containerEmpty->setVisible(true);
+ ui->listTransactions->setVisible(false);
+}
+
+void OverviewPage::hideHelp()
+{
+ ui->containerEmpty->setVisible(false);
+ ui->listTransactions->setVisible(true);
+}
+
+bool OverviewPage::isNewWallet()
+{
+ bool retVal = true;
+
+ if(this->walletModel)
+ {
+ interfaces::Wallet& wallet = this->walletModel->wallet();
+
+ if(wallet.getWalletTxs().size() == 0)
+ {
+ retVal = true;
+ }
+ else
+ {
+ retVal = false;
+ }
+ }
+
+ return retVal;
+}
diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h
index 8b4fe7065a..955f8c0cab 100644
--- a/src/qt/overviewpage.h
+++ b/src/qt/overviewpage.h
@@ -38,6 +38,9 @@ class OverviewPage : public QWidget
void setClientModel(ClientModel *clientModel);
void setWalletModel(WalletModel *walletModel);
void showOutOfSyncWarning(bool fShow);
+ void showHelp();
+ void hideHelp();
+ bool isNewWallet();
Q_SIGNALS:
void transactionClicked(const QModelIndex &index);
diff --git a/src/qt/res/icons/ic-information-white.png b/src/qt/res/icons/ic-information-white.png
new file mode 100644
index 0000000000..6138db7bc3
Binary files /dev/null and b/src/qt/res/icons/ic-information-white.png differ
diff --git a/src/qt/veil.qrc b/src/qt/veil.qrc
index 24eb823178..6a6928305e 100644
--- a/src/qt/veil.qrc
+++ b/src/qt/veil.qrc
@@ -286,6 +286,7 @@
res/icons/ic-locked.png
res/icons/ic-unlocked.png
res/icons/ic-menu.png
+ res/icons/ic-information-white.png
res/movies/spinner-000.png
diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp
index 11d1b6780f..a14e795b64 100644
--- a/src/qt/walletframe.cpp
+++ b/src/qt/walletframe.cpp
@@ -179,6 +179,12 @@ void WalletFrame::gotoSettings(){
i.value()->gotoSettingsPage();
}
+void WalletFrame::gotoHelpPage(){
+ QMap::const_iterator i;
+ for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i)
+ i.value()->gotoHelpPage();
+}
+
void WalletFrame::gotoSignMessageTab(QString addr)
{
WalletView *walletView = currentWalletView();
diff --git a/src/qt/walletframe.h b/src/qt/walletframe.h
index ccf6b91a4f..5bbd20f802 100644
--- a/src/qt/walletframe.h
+++ b/src/qt/walletframe.h
@@ -81,6 +81,8 @@ public Q_SLOTS:
void gotoAddressesPage();
/** Switch to settings page */
void gotoSettings();
+ /** Switch to help page */
+ void gotoHelpPage();
/** Show Sign/Verify Message dialog and switch to sign message tab */
void gotoSignMessageTab(QString addr = "");
diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp
index 3507e8791c..bcf89730d4 100755
--- a/src/qt/walletview.cpp
+++ b/src/qt/walletview.cpp
@@ -204,6 +204,10 @@ void WalletView::processNewTransaction(const QModelIndex& parent, int start, int
void WalletView::gotoOverviewPage()
{
+ if(!(overviewPage->isNewWallet()))
+ {
+ overviewPage->hideHelp();
+ }
setCurrentWidget(overviewPage);
}
@@ -239,6 +243,12 @@ void WalletView::gotoSettingsPage(){
setCurrentWidget(settingsWidget);
}
+void WalletView::gotoHelpPage()
+{
+ overviewPage->showHelp();
+ setCurrentWidget(overviewPage);
+}
+
void WalletView::gotoSignMessageTab(QString addr)
{
// calls show() in showTab_SM()
diff --git a/src/qt/walletview.h b/src/qt/walletview.h
index 78a9700208..2bcef0359a 100644
--- a/src/qt/walletview.h
+++ b/src/qt/walletview.h
@@ -114,6 +114,8 @@ public Q_SLOTS:
void gotoAddressesPage();
/** Switch to settings page */
void gotoSettingsPage();
+ /** Switch to help page */
+ void gotoHelpPage();
/** Show Sign/Verify Message dialog and switch to sign message tab */
void gotoSignMessageTab(QString addr = "");