diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 42676d9b091f..b9bc63ff962b 100755 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -38,6 +38,7 @@ QT_FORMS_UI = \ qt/forms/sendcoinsdialog.ui \ qt/forms/sendcoinsentry.ui \ qt/forms/signverifymessagedialog.ui \ + qt/forms/tradingdialog.ui \ qt/forms/transactiondescdialog.ui QT_MOC_CPP = \ @@ -76,6 +77,7 @@ QT_MOC_CPP = \ qt/moc_sendcoinsentry.cpp \ qt/moc_signverifymessagedialog.cpp \ qt/moc_splashscreen.cpp \ + qt/moc_tradingdialog.cpp \ qt/moc_trafficgraphwidget.cpp \ qt/moc_transactiondesc.cpp \ qt/moc_transactiondescdialog.cpp \ @@ -147,6 +149,7 @@ BITCOIN_QT_H = \ qt/sendcoinsentry.h \ qt/signverifymessagedialog.h \ qt/splashscreen.h \ + qt/tradingdialog.h \ qt/trafficgraphwidget.h \ qt/transactiondesc.h \ qt/transactiondescdialog.h \ @@ -215,6 +218,7 @@ RES_ICONS = \ qt/res/icons/staking_active.png \ qt/res/icons/staking_inactive.png \ qt/res/icons/synced.png \ + qt/res/icons/trade.png \ qt/res/icons/transaction0.png \ qt/res/icons/transaction2.png \ qt/res/icons/transaction_conflicted.png \ @@ -249,6 +253,7 @@ BITCOIN_QT_CPP = \ qt/qvaluecombobox.cpp \ qt/rpcconsole.cpp \ qt/splashscreen.cpp \ + qt/tradingdialog.cpp \ qt/trafficgraphwidget.cpp \ qt/utilitydialog.cpp \ qt/winshutdownmonitor.cpp @@ -273,6 +278,7 @@ BITCOIN_QT_CPP += \ qt/sendcoinsdialog.cpp \ qt/sendcoinsentry.cpp \ qt/signverifymessagedialog.cpp \ + qt/tradingdialog.cpp \ qt/transactiondesc.cpp \ qt/transactiondescdialog.cpp \ qt/transactionfilterproxy.cpp \ diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 11ec05c042b2..49bdae875a0f 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -22,6 +22,7 @@ #ifdef ENABLE_WALLET #include "walletframe.h" #include "walletmodel.h" +#include "tradingdialog.h" #endif // ENABLE_WALLET #ifdef Q_OS_MAC @@ -101,6 +102,7 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) : trayIconMenu(0), notificator(0), rpcConsole(0), + tradingWindow(0), prevBlocks(0), spinnerFrame(0) { @@ -241,6 +243,11 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) : // prevents an open debug window from becoming stuck/unusable on client shutdown connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide())); + connect(openTradingwindowAction, SIGNAL(triggered()), tradingWindow, SLOT(show())); + + // prevents an oben debug window from becoming stuck/unusable on client shutdown + connect(quitAction, SIGNAL(triggered()), tradingWindow, SLOT(hide())); + // Install event filter to be able to catch status tip events (QEvent::StatusTip) this->installEventFilter(this); @@ -406,6 +413,9 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this); openAction->setStatusTip(tr("Open a DarkNet: URI or payment request")); + openTradingwindowAction = new QAction(QIcon(":/icons/trade"), tr("&Trading window"), this); + openTradingwindowAction->setStatusTip(tr("Bittrex trading window")); + showHelpMessageAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Command-line options"), this); showHelpMessageAction->setMenuRole(QAction::NoRole); showHelpMessageAction->setStatusTip(tr("Show the DarkNet Core help message to get a list with possible DarkNet command-line options")); @@ -469,6 +479,9 @@ void BitcoinGUI::createMenuBar() } settings->addAction(optionsAction); + QMenu *trading = appMenuBar->addMenu(tr("&Trade")); + trading->addAction(openTradingwindowAction); + if(walletFrame) { QMenu *tools = appMenuBar->addMenu(tr("&Tools")); @@ -649,6 +662,7 @@ void BitcoinGUI::createTrayIconMenu() trayIconMenu->addAction(verifyMessageAction); trayIconMenu->addSeparator(); trayIconMenu->addAction(optionsAction); + trayIconMenu->addAction(openTradingwindowAction); trayIconMenu->addAction(openInfoAction); trayIconMenu->addAction(openRPCConsoleAction); trayIconMenu->addAction(openNetworkAction); @@ -753,6 +767,12 @@ void BitcoinGUI::gotoVerifyMessageTab(QString addr) if (walletFrame) walletFrame->gotoVerifyMessageTab(addr); } +void BitcoinGUI::gotoTradingPage() +{ + openTradingwindowAction->setChecked(true); + if (walletFrame) walletFrame->gotoTradingPage(); +} + #endif // ENABLE_WALLET void BitcoinGUI::setNumConnections(int count) diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 21235a0e7876..e1a104e0f123 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -23,6 +23,7 @@ class ClientModel; class NetworkStyle; class Notificator; class OptionsModel; +class tradingDialog; class RPCConsole; class SendCoinsRecipient; class UnitDisplayStatusBarControl; @@ -123,6 +124,7 @@ class BitcoinGUI : public QMainWindow QMenu *trayIconMenu; Notificator *notificator; RPCConsole *rpcConsole; + tradingDialog *tradingWindow; /** Keep track of previous number of blocks, to detect progress */ int prevBlocks; @@ -191,6 +193,8 @@ private slots: void gotoOverviewPage(); /** Switch to history (transactions) page */ void gotoHistoryPage(); + /** Switch to Trading Page */ + void gotoTradingPage(); /** Switch to masternode page */ void gotoMasternodePage(); /** Switch to receive coins page */ diff --git a/src/qt/res/icons/bittrex.png b/src/qt/res/icons/bittrex.png new file mode 100644 index 000000000000..00a3c347dccf Binary files /dev/null and b/src/qt/res/icons/bittrex.png differ diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp index 358c4c6f6287..ff673c635e26 100644 --- a/src/qt/walletframe.cpp +++ b/src/qt/walletframe.cpp @@ -127,6 +127,7 @@ void WalletFrame::gotoMasternodePage() // Masternode list } void WalletFrame::gotoTradingPage() // Bittrex trading + { QMap::const_iterator i; for (i = mapWalletViews.constBegin(); i != mapWalletViews.constEnd(); ++i) diff --git a/src/qt/walletframe.h b/src/qt/walletframe.h index fcd05a33ae9f..bb522934bd65 100644 --- a/src/qt/walletframe.h +++ b/src/qt/walletframe.h @@ -13,6 +13,7 @@ class ClientModel; class SendCoinsRecipient; class WalletModel; class WalletView; +class TradingDialog; QT_BEGIN_NAMESPACE class QStackedWidget; @@ -58,9 +59,8 @@ public slots: void gotoReceiveCoinsPage(); /** Switch to send coins page */ void gotoSendCoinsPage(QString addr = ""); - /** Switch to Bittrex trading page */ + /** Switch to Bittrex trading page */ void gotoTradingPage(); - /** Show Sign/Verify Message dialog and switch to sign message tab */ void gotoSignMessageTab(QString addr = ""); /** Show Sign/Verify Message dialog and switch to verify message tab */ diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp index 7e170ecf696e..192b00d12534 100644 --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -18,6 +18,7 @@ #include "transactiontablemodel.h" #include "transactionview.h" #include "walletmodel.h" +#include "tradingdialog.h" #include "ui_interface.h" @@ -38,7 +39,7 @@ WalletView::WalletView(QWidget *parent): { // Create tabs overviewPage = new OverviewPage(); - tradingPage = new tradingDialog(this); + tradingPage = new tradingDialog(this); transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); QHBoxLayout *hbox_buttons = new QHBoxLayout(); @@ -74,6 +75,7 @@ WalletView::WalletView(QWidget *parent): addWidget(transactionsPage); addWidget(receiveCoinsPage); addWidget(sendCoinsPage); + addWidget(tradingPage); QSettings settings; if (settings.value("fShowMasternodesTab").toBool()) { @@ -197,12 +199,16 @@ void WalletView::gotoHistoryPage() setCurrentWidget(transactionsPage); } +void WalletView::gotoTradingPage() +{ + setCurrentWidget(tradingPage); +} + void WalletView::gotoMasternodePage() { QSettings settings; if (settings.value("fShowMasternodesTab").toBool()) { setCurrentWidget(masternodeListPage); - } } void WalletView::gotoReceiveCoinsPage() diff --git a/src/qt/walletview.h b/src/qt/walletview.h index b4993a88c89c..f313a11929c9 100644 --- a/src/qt/walletview.h +++ b/src/qt/walletview.h @@ -18,6 +18,7 @@ class SendCoinsDialog; class SendCoinsRecipient; class TransactionView; class WalletModel; +class tradingDialog; QT_BEGIN_NAMESPACE class QLabel; @@ -62,6 +63,7 @@ class WalletView : public QStackedWidget QWidget *transactionsPage; ReceiveCoinsDialog *receiveCoinsPage; SendCoinsDialog *sendCoinsPage; + tradingDialog *tradingPage; MasternodeList *masternodeListPage; TransactionView *transactionView; @@ -74,6 +76,8 @@ public slots: void gotoOverviewPage(); /** Switch to history (transactions) page */ void gotoHistoryPage(); + /** Switch to Bittrex trading page */ + void gotoTradingPage(); /** Switch to masternode page */ void gotoMasternodePage(); /** Switch to Bittrex trading page */