From db0e02c05df9d9b61fd63d0fe2840d7b8347f6c3 Mon Sep 17 00:00:00 2001 From: hypnosis-i2p Date: Wed, 2 Aug 2017 05:05:56 +0800 Subject: [PATCH] qt ui - status commands are now pushbuttons with no handlers --- daemon/HTTPServer.cpp | 2 +- daemon/HTTPServer.h | 1 - qt/i2pd_qt/i2pd_qt.pro | 3 +- qt/i2pd_qt/mainwindow.cpp | 32 +++++++--- qt/i2pd_qt/mainwindow.h | 7 ++- qt/i2pd_qt/mainwindow.ui | 4 +- qt/i2pd_qt/routercommandswidget.ui | 94 ++++++++++++++++++++++++++++++ 7 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 qt/i2pd_qt/routercommandswidget.ui diff --git a/daemon/HTTPServer.cpp b/daemon/HTTPServer.cpp index 82939bbf..a019acaf 100644 --- a/daemon/HTTPServer.cpp +++ b/daemon/HTTPServer.cpp @@ -454,7 +454,7 @@ namespace http { s << "
\r\n"; } - void ShowCommands (std::stringstream& s, uint32_t token) + static void ShowCommands (std::stringstream& s, uint32_t token) { /* commands */ s << "Router Commands
\r\n"; diff --git a/daemon/HTTPServer.h b/daemon/HTTPServer.h index 79f265b8..b65c9094 100644 --- a/daemon/HTTPServer.h +++ b/daemon/HTTPServer.h @@ -82,7 +82,6 @@ namespace http void ShowLocalDestinations (std::stringstream& s); void ShowLeasesSets(std::stringstream& s); void ShowTunnels (std::stringstream& s); - void ShowCommands (std::stringstream& s, uint32_t token); void ShowTransitTunnels (std::stringstream& s); void ShowTransports (std::stringstream& s); void ShowSAMSessions (std::stringstream& s); diff --git a/qt/i2pd_qt/i2pd_qt.pro b/qt/i2pd_qt/i2pd_qt.pro index 918f0230..c1ce8c5c 100644 --- a/qt/i2pd_qt/i2pd_qt.pro +++ b/qt/i2pd_qt/i2pd_qt.pro @@ -177,7 +177,8 @@ INCLUDEPATH += . FORMS += mainwindow.ui \ tunnelform.ui \ - statusbuttons.ui + statusbuttons.ui \ + routercommandswidget.ui LIBS += -lz diff --git a/qt/i2pd_qt/mainwindow.cpp b/qt/i2pd_qt/mainwindow.cpp index b465bc18..b342efe1 100644 --- a/qt/i2pd_qt/mainwindow.cpp +++ b/qt/i2pd_qt/mainwindow.cpp @@ -1,9 +1,11 @@ +#include #include #include "mainwindow.h" #include "ui_mainwindow.h" #include "ui_statusbuttons.h" -#include "ui_statushtmlpaneform.h" +#include "ui_routercommandswidget.h" #include +#include #include #include #include @@ -12,6 +14,7 @@ #include "Config.h" #include "FS.h" #include "Log.h" +#include "RouterContext.h" #include "HTTPServer.h" @@ -19,10 +22,6 @@ # include #endif -#include - -#include - #include "DaemonQT.h" #include "SignatureTypeComboboxFactory.h" @@ -37,6 +36,8 @@ MainWindow::MainWindow(QWidget *parent) : ,showHiddenInfoStatusMainPage(false) ,ui(new Ui::MainWindow) ,statusButtonsUI(new Ui::StatusButtonsForm) + ,routerCommandsUI(new Ui::routerCommandsWidget) + ,routerCommandsParent(new QWidget(this)) ,i2pController(nullptr) ,configItems() ,datadir() @@ -47,6 +48,9 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); statusButtonsUI->setupUi(ui->statusButtonsPane); + routerCommandsUI->setupUi(routerCommandsParent); + routerCommandsParent->hide(); + ui->verticalLayout_2->addWidget(routerCommandsParent); //,statusHtmlUI(new Ui::StatusHtmlPaneForm) //statusHtmlUI->setupUi(lastStatusWidgetui->statusWidget); ui->statusButtonsPane->setFixedSize(171,300); @@ -260,12 +264,26 @@ MainWindow::MainWindow(QWidget *parent) : //QMetaObject::connectSlotsByName(this); } +void MainWindow::updateRouterCommandsButtons() { + bool acceptsTunnels = i2p::context.AcceptsTunnels (); + routerCommandsUI->declineTransitTunnelsPushButton->setEnabled(acceptsTunnels); + routerCommandsUI->acceptTransitTunnelsPushButton->setEnabled(!acceptsTunnels); +} + void MainWindow::showStatusPage(StatusPage newStatusPage){ ui->stackedWidget->setCurrentIndex(0); setStatusButtonsVisible(true); statusPage=newStatusPage; showHiddenInfoStatusMainPage=false; - textBrowser->setHtml(getStatusPageHtml(false)); + if(newStatusPage!=StatusPage::commands){ + textBrowser->setHtml(getStatusPageHtml(false)); + textBrowser->show(); + routerCommandsParent->hide(); + }else{ + routerCommandsParent->show(); + textBrowser->hide(); + updateRouterCommandsButtons(); + } wasSelectingAtStatusMainPage=false; } void MainWindow::showSettingsPage(){ui->stackedWidget->setCurrentIndex(1);setStatusButtonsVisible(false);} @@ -283,7 +301,7 @@ QString MainWindow::getStatusPageHtml(bool showHiddenInfo) { switch (statusPage) { case main_page: i2p::http::ShowStatus(s, showHiddenInfo);break; - case commands: i2p::http::ShowCommands(s, /*token=*/0); break; + case commands: break; case local_destinations: i2p::http::ShowLocalDestinations(s);break; case leasesets: i2p::http::ShowLeasesSets(s); break; case tunnels: i2p::http::ShowTunnels(s); break; diff --git a/qt/i2pd_qt/mainwindow.h b/qt/i2pd_qt/mainwindow.h index 1c538810..2a1e7d64 100644 --- a/qt/i2pd_qt/mainwindow.h +++ b/qt/i2pd_qt/mainwindow.h @@ -309,7 +309,7 @@ public: namespace Ui { class MainWindow; class StatusButtonsForm; - class StatusHtmlPaneForm; + class routerCommandsWidget; } using namespace i2p::client; @@ -388,12 +388,17 @@ private: Ui::MainWindow* ui; Ui::StatusButtonsForm* statusButtonsUI; + Ui::routerCommandsWidget* routerCommandsUI; TextBrowserTweaked1 * textBrowser; + QWidget * routerCommandsParent; i2p::qt::Controller* i2pController; protected: + + void updateRouterCommandsButtons(); + #ifndef ANDROID void closeEvent(QCloseEvent *event); #endif diff --git a/qt/i2pd_qt/mainwindow.ui b/qt/i2pd_qt/mainwindow.ui index 59033e9d..6945a2a2 100644 --- a/qt/i2pd_qt/mainwindow.ui +++ b/qt/i2pd_qt/mainwindow.ui @@ -283,8 +283,8 @@ 0 0 - 80 - 26 + 689 + 496 diff --git a/qt/i2pd_qt/routercommandswidget.ui b/qt/i2pd_qt/routercommandswidget.ui new file mode 100644 index 00000000..fa4f2177 --- /dev/null +++ b/qt/i2pd_qt/routercommandswidget.ui @@ -0,0 +1,94 @@ + + + routerCommandsWidget + + + + 0 + 0 + 400 + 300 + + + + + 0 + 0 + + + + Form + + + + + 0 + 0 + 401 + 301 + + + + + + + + 75 + true + + + + Router Commands + + + + + + + Run peer test + + + + + + + Decline transit tunnels + + + + + + + Accept transit tunnels + + + + + + + false + + + Cancel graceful quit + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + +