From b791a6a348f415ed9ecdbd93f852b99ebdca1d43 Mon Sep 17 00:00:00 2001
From: hypnosis-i2p
Date: Mon, 31 Jul 2017 07:36:38 +0800
Subject: [PATCH 1/9] qt ui - status buttons done
---
qt/i2pd_qt/i2pd_qt.pro | 3 +-
qt/i2pd_qt/mainwindow.cpp | 27 ++++++---
qt/i2pd_qt/mainwindow.h | 4 ++
qt/i2pd_qt/mainwindow.ui | 78 +++++++++++++++++++++-----
qt/i2pd_qt/statusbuttons.ui | 109 ++++++++++++++++++++++++++++++++++++
5 files changed, 199 insertions(+), 22 deletions(-)
create mode 100644 qt/i2pd_qt/statusbuttons.ui
diff --git a/qt/i2pd_qt/i2pd_qt.pro b/qt/i2pd_qt/i2pd_qt.pro
index 66839ff5..ed9ffd2e 100644
--- a/qt/i2pd_qt/i2pd_qt.pro
+++ b/qt/i2pd_qt/i2pd_qt.pro
@@ -174,7 +174,8 @@ INCLUDEPATH += ../../daemon
INCLUDEPATH += .
FORMS += mainwindow.ui \
- tunnelform.ui
+ tunnelform.ui \
+ statusbuttons.ui
LIBS += -lz
diff --git a/qt/i2pd_qt/mainwindow.cpp b/qt/i2pd_qt/mainwindow.cpp
index 9d312fa0..a4afe6a3 100644
--- a/qt/i2pd_qt/mainwindow.cpp
+++ b/qt/i2pd_qt/mainwindow.cpp
@@ -1,5 +1,6 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
+#include "ui_statusbuttons.h"
#include
#include
#include
@@ -28,6 +29,7 @@ MainWindow::MainWindow(QWidget *parent) :
,quitting(false)
#endif
,ui(new Ui::MainWindow)
+ ,statusButtonsUI(new Ui::StatusButtonsForm)
,i2pController(nullptr)
,configItems()
,datadir()
@@ -37,12 +39,16 @@ MainWindow::MainWindow(QWidget *parent) :
{
ui->setupUi(this);
+ statusButtonsUI->setupUi(ui->statusButtonsPane);
+ ui->statusButtonsPane->setFixedSize(172,300);
+ ui->verticalLayout->setGeometry(QRect(0,0,172,ui->verticalLayout->geometry().height()));
+ ui->statusButtonsPane->adjustSize();
+ ui->centralWidget->adjustSize();
setWindowTitle(QApplication::translate("AppTitle","I2PD"));
//TODO handle resizes and change the below into resize() call
- setFixedSize(width(), 480);
- ui->centralWidget->setMinimumHeight(480);
- ui->centralWidget->setMaximumHeight(480);
+ setFixedSize(width(), 550);
+ ui->centralWidget->setFixedHeight(550);
onResize();
ui->stackedWidget->setCurrentIndex(0);
@@ -70,6 +76,7 @@ MainWindow::MainWindow(QWidget *parent) :
#endif
QObject::connect(ui->statusPagePushButton, SIGNAL(released()), this, SLOT(showStatusPage()));
+ setStatusButtonsVisible(true);
QObject::connect(ui->settingsPagePushButton, SIGNAL(released()), this, SLOT(showSettingsPage()));
QObject::connect(ui->tunnelsPagePushButton, SIGNAL(released()), this, SLOT(showTunnelsPage()));
@@ -226,11 +233,15 @@ MainWindow::MainWindow(QWidget *parent) :
//QMetaObject::connectSlotsByName(this);
}
-void MainWindow::showStatusPage(){ui->stackedWidget->setCurrentIndex(0);}
-void MainWindow::showSettingsPage(){ui->stackedWidget->setCurrentIndex(1);}
-void MainWindow::showTunnelsPage(){ui->stackedWidget->setCurrentIndex(2);}
-void MainWindow::showRestartPage(){ui->stackedWidget->setCurrentIndex(3);}
-void MainWindow::showQuitPage(){ui->stackedWidget->setCurrentIndex(4);}
+void MainWindow::showStatusPage(){ui->stackedWidget->setCurrentIndex(0);setStatusButtonsVisible(true);}
+void MainWindow::showSettingsPage(){ui->stackedWidget->setCurrentIndex(1);setStatusButtonsVisible(false);}
+void MainWindow::showTunnelsPage(){ui->stackedWidget->setCurrentIndex(2);setStatusButtonsVisible(false);}
+void MainWindow::showRestartPage(){ui->stackedWidget->setCurrentIndex(3);setStatusButtonsVisible(false);}
+void MainWindow::showQuitPage(){ui->stackedWidget->setCurrentIndex(4);setStatusButtonsVisible(false);}
+
+void MainWindow::setStatusButtonsVisible(bool visible) {
+ ui->statusButtonsPane->setVisible(visible);
+}
//TODO
void MainWindow::resizeEvent(QResizeEvent *event)
diff --git a/qt/i2pd_qt/mainwindow.h b/qt/i2pd_qt/mainwindow.h
index 05cb7151..fbadf83e 100644
--- a/qt/i2pd_qt/mainwindow.h
+++ b/qt/i2pd_qt/mainwindow.h
@@ -307,6 +307,7 @@ public:
namespace Ui {
class MainWindow;
+class StatusButtonsForm;
}
using namespace i2p::client;
@@ -359,6 +360,7 @@ private:
#endif
Ui::MainWindow* ui;
+ Ui::StatusButtonsForm* statusButtonsUI;
i2p::qt::Controller* i2pController;
@@ -369,6 +371,8 @@ protected:
void resizeEvent(QResizeEvent* event);
void onResize();
+ void setStatusButtonsVisible(bool visible);
+
QList configItems;
NonGUIOptionItem* logOption;
NonGUIOptionItem* daemonOption;
diff --git a/qt/i2pd_qt/mainwindow.ui b/qt/i2pd_qt/mainwindow.ui
index 0b3071e9..8fb9ffc1 100644
--- a/qt/i2pd_qt/mainwindow.ui
+++ b/qt/i2pd_qt/mainwindow.ui
@@ -6,10 +6,22 @@
0
0
- 816
- 516
+ 904
+ 550
+
+
+ 904
+ 0
+
+
+
+
+ 950
+ 16777215
+
+
MainWindow
@@ -22,14 +34,14 @@
- 0
- 516
+ 904
+ 550
16777215
- 516
+ 550
@@ -37,19 +49,27 @@
10
10
- 796
- 496
+ 931
+ 498
- QLayout::SetDefaultConstraint
+ QLayout::SetMaximumSize
-
-
+
QLayout::SetMinimumSize
+
+
+ 0
+ 0
+ 170
+ 496
+
+
-
@@ -60,6 +80,22 @@
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 172
+ 0
+
+
+
+
-
@@ -100,6 +136,22 @@
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 172
+ 0
+
+
+
+
-
@@ -136,7 +188,7 @@
- 4
+ 0
@@ -231,8 +283,8 @@
0
0
- 679
- 3000
+ 684
+ 426
@@ -247,7 +299,7 @@
10
10
679
- 3000
+ 3052
diff --git a/qt/i2pd_qt/statusbuttons.ui b/qt/i2pd_qt/statusbuttons.ui
new file mode 100644
index 00000000..79461cd4
--- /dev/null
+++ b/qt/i2pd_qt/statusbuttons.ui
@@ -0,0 +1,109 @@
+
+
+ StatusButtonsForm
+
+
+
+ 0
+ 0
+ 170
+ 295
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 170
+ 295
+
+
+
+ Form
+
+
+
+
+ 20
+ 0
+ 151
+ 301
+
+
+
+
+ QLayout::SetDefaultConstraint
+
+
-
+
+
+ Main page
+
+
+
+ -
+
+
+ Router commands
+
+
+
+ -
+
+
+ Local destinations
+
+
+
+ -
+
+
+ Leasesets
+
+
+
+ -
+
+
+ Tunnels
+
+
+
+ -
+
+
+ Transit tunnels
+
+
+
+ -
+
+
+ Transports
+
+
+
+ -
+
+
+ I2P tunnels
+
+
+
+ -
+
+
+ SAM sessions
+
+
+
+
+
+
+
+
+
From 978bb47b92f229b30475c742bffcb343524e93f9 Mon Sep 17 00:00:00 2001
From: hypnosis-i2p
Date: Mon, 31 Jul 2017 07:39:22 +0800
Subject: [PATCH 2/9] qt ui - settings buttons renamed to *Settings
---
qt/i2pd_qt/mainwindow.ui | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qt/i2pd_qt/mainwindow.ui b/qt/i2pd_qt/mainwindow.ui
index 8fb9ffc1..7c1067b4 100644
--- a/qt/i2pd_qt/mainwindow.ui
+++ b/qt/i2pd_qt/mainwindow.ui
@@ -102,7 +102,7 @@
true
- Settings
+ General Settings
@@ -112,7 +112,7 @@
true
- Tunnels
+ Tunnels Settings
From 7d3a8185656ad37bacde2dd4723c99d44fbbd6ef Mon Sep 17 00:00:00 2001
From: hypnosis-i2p
Date: Mon, 31 Jul 2017 08:00:48 +0800
Subject: [PATCH 3/9] qt ui - laid out better
---
qt/i2pd_qt/mainwindow.ui | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/qt/i2pd_qt/mainwindow.ui b/qt/i2pd_qt/mainwindow.ui
index 7c1067b4..afbef9a3 100644
--- a/qt/i2pd_qt/mainwindow.ui
+++ b/qt/i2pd_qt/mainwindow.ui
@@ -35,7 +35,7 @@
904
- 550
+ 0
@@ -50,7 +50,7 @@
10
10
931
- 498
+ 715
@@ -102,7 +102,7 @@
true
- General Settings
+ General settings
@@ -112,7 +112,7 @@
true
- Tunnels Settings
+ Tunnels settings
@@ -170,7 +170,7 @@
-
-
+
0
0
@@ -178,17 +178,17 @@
0
- 496
+ 528
16777215
- 496
+ 713
- 0
+ 2
@@ -197,7 +197,7 @@
0
0
686
- 496
+ 531
@@ -245,12 +245,12 @@
0
0
706
- 461
+ 531
- QLayout::SetMinAndMaxSize
+ QLayout::SetMaximumSize
-
@@ -284,7 +284,7 @@
0
0
684
- 426
+ 496
@@ -3046,7 +3046,7 @@ Comma separated list of base64 identities:
0
0
706
- 461
+ 531
@@ -3110,7 +3110,7 @@ Comma separated list of base64 identities:
- 0
+ -18
0
699
425
From a79f614e12b2c7b7bb4fb2716d09b5abe896aca7 Mon Sep 17 00:00:00 2001
From: hypnosis-i2p
Date: Mon, 31 Jul 2017 09:58:54 +0800
Subject: [PATCH 4/9] qt ui - now pixel perfect buttons
---
qt/i2pd_qt/mainwindow.cpp | 8 ++---
qt/i2pd_qt/mainwindow.ui | 8 ++---
qt/i2pd_qt/statusbuttons.ui | 64 ++++++++++++++++++++++++++++++++++---
3 files changed, 67 insertions(+), 13 deletions(-)
diff --git a/qt/i2pd_qt/mainwindow.cpp b/qt/i2pd_qt/mainwindow.cpp
index a4afe6a3..840f5b5b 100644
--- a/qt/i2pd_qt/mainwindow.cpp
+++ b/qt/i2pd_qt/mainwindow.cpp
@@ -40,10 +40,10 @@ MainWindow::MainWindow(QWidget *parent) :
{
ui->setupUi(this);
statusButtonsUI->setupUi(ui->statusButtonsPane);
- ui->statusButtonsPane->setFixedSize(172,300);
- ui->verticalLayout->setGeometry(QRect(0,0,172,ui->verticalLayout->geometry().height()));
- ui->statusButtonsPane->adjustSize();
- ui->centralWidget->adjustSize();
+ ui->statusButtonsPane->setFixedSize(171,300);
+ ui->verticalLayout->setGeometry(QRect(0,0,171,ui->verticalLayout->geometry().height()));
+ //ui->statusButtonsPane->adjustSize();
+ //ui->centralWidget->adjustSize();
setWindowTitle(QApplication::translate("AppTitle","I2PD"));
//TODO handle resizes and change the below into resize() call
diff --git a/qt/i2pd_qt/mainwindow.ui b/qt/i2pd_qt/mainwindow.ui
index afbef9a3..60aacbe2 100644
--- a/qt/i2pd_qt/mainwindow.ui
+++ b/qt/i2pd_qt/mainwindow.ui
@@ -83,7 +83,7 @@
-
-
+
0
0
@@ -146,7 +146,7 @@
- 172
+ 171
0
@@ -260,7 +260,7 @@
- Settings
+ General settings
@@ -3061,7 +3061,7 @@ Comma separated list of base64 identities:
- Tunnels
+ Tunnels settings
diff --git a/qt/i2pd_qt/statusbuttons.ui b/qt/i2pd_qt/statusbuttons.ui
index 79461cd4..edf5a90c 100644
--- a/qt/i2pd_qt/statusbuttons.ui
+++ b/qt/i2pd_qt/statusbuttons.ui
@@ -6,7 +6,7 @@
0
0
- 170
+ 171
295
@@ -18,7 +18,7 @@
- 170
+ 171
295
@@ -28,10 +28,10 @@
- 20
+ 21
0
- 151
- 301
+ 171
+ 300
@@ -40,6 +40,12 @@
-
+
+
+ 150
+ 16777215
+
+
Main page
@@ -47,6 +53,12 @@
-
+
+
+ 150
+ 16777215
+
+
Router commands
@@ -54,6 +66,12 @@
-
+
+
+ 150
+ 16777215
+
+
Local destinations
@@ -61,6 +79,12 @@
-
+
+
+ 150
+ 16777215
+
+
Leasesets
@@ -68,6 +92,12 @@
-
+
+
+ 150
+ 16777215
+
+
Tunnels
@@ -75,6 +105,12 @@
-
+
+
+ 150
+ 16777215
+
+
Transit tunnels
@@ -82,6 +118,12 @@
-
+
+
+ 150
+ 16777215
+
+
Transports
@@ -89,6 +131,12 @@
-
+
+
+ 150
+ 16777215
+
+
I2P tunnels
@@ -96,6 +144,12 @@
-
+
+
+ 150
+ 16777215
+
+
SAM sessions
From 163cbcb89db5a564c9e782bf69ac0d1d1e1ce640 Mon Sep 17 00:00:00 2001
From: hypnosis-i2p
Date: Wed, 2 Aug 2017 02:40:11 +0800
Subject: [PATCH 5/9] qt ui - status main page now works
---
daemon/HTTPServer.cpp | 60 ++++++++++++++-------------
daemon/HTTPServer.h | 3 ++
qt/i2pd_qt/i2pd_qt.pro | 6 ++-
qt/i2pd_qt/mainwindow.cpp | 66 +++++++++++++++++++++++++++++-
qt/i2pd_qt/mainwindow.h | 22 ++++++++--
qt/i2pd_qt/mainwindow.ui | 62 ++++++++++++++--------------
qt/i2pd_qt/textbrowsertweaked1.cpp | 6 +++
qt/i2pd_qt/textbrowsertweaked1.h | 22 ++++++++++
8 files changed, 180 insertions(+), 67 deletions(-)
create mode 100644 qt/i2pd_qt/textbrowsertweaked1.cpp
create mode 100644 qt/i2pd_qt/textbrowsertweaked1.h
diff --git a/daemon/HTTPServer.cpp b/daemon/HTTPServer.cpp
index 52feeb10..1f7dbc7b 100644
--- a/daemon/HTTPServer.cpp
+++ b/daemon/HTTPServer.cpp
@@ -185,7 +185,7 @@ namespace http {
s << "ERROR: " << string << "
\r\n";
}
- static void ShowStatus (std::stringstream& s)
+ void ShowStatus (std::stringstream& s, bool includeHiddenContent)
{
s << "Uptime: ";
ShowUptime(s, i2p::context.GetUptime ());
@@ -233,33 +233,35 @@ namespace http {
s << " (" << (double) i2p::transport::transports.GetTransitBandwidth () / 1024 << " KiB/s)
\r\n";
s << "Data path: " << i2p::fs::GetDataDir() << "
\r\n";
s << "\r\n
\r\n
\r\n";
- s << "Router Ident: " << i2p::context.GetRouterInfo().GetIdentHashBase64() << "
\r\n";
- s << "Router Family: " << i2p::context.GetRouterInfo().GetProperty("family") << "
\r\n";
- s << "Router Caps: " << i2p::context.GetRouterInfo().GetProperty("caps") << "
\r\n";
- s << "Our external address:" << "
\r\n" ;
- for (const auto& address : i2p::context.GetRouterInfo().GetAddresses())
- {
- switch (address->transportStyle)
- {
- case i2p::data::RouterInfo::eTransportNTCP:
- if (address->host.is_v6 ())
- s << "NTCP6 ";
- else
- s << "NTCP ";
- break;
- case i2p::data::RouterInfo::eTransportSSU:
- if (address->host.is_v6 ())
- s << "SSU6 ";
- else
- s << "SSU ";
- break;
- default:
- s << "Unknown ";
- }
- s << address->host.to_string() << ":" << address->port << "
\r\n";
- }
- s << "
\r\n
\r\n";
- s << "Routers: " << i2p::data::netdb.GetNumRouters () << " ";
+ if(includeHiddenContent) {
+ s << "Router Ident: " << i2p::context.GetRouterInfo().GetIdentHashBase64() << "
\r\n";
+ s << "Router Family: " << i2p::context.GetRouterInfo().GetProperty("family") << "
\r\n";
+ s << "Router Caps: " << i2p::context.GetRouterInfo().GetProperty("caps") << "
\r\n";
+ s << "Our external address:" << "
\r\n" ;
+ for (const auto& address : i2p::context.GetRouterInfo().GetAddresses())
+ {
+ switch (address->transportStyle)
+ {
+ case i2p::data::RouterInfo::eTransportNTCP:
+ if (address->host.is_v6 ())
+ s << "NTCP6 ";
+ else
+ s << "NTCP ";
+ break;
+ case i2p::data::RouterInfo::eTransportSSU:
+ if (address->host.is_v6 ())
+ s << "SSU6 ";
+ else
+ s << "SSU ";
+ break;
+ default:
+ s << "Unknown ";
+ }
+ s << address->host.to_string() << ":" << address->port << "
\r\n";
+ }
+ }
+ s << "
\r\n\r\n";
+ s << "Routers: " << i2p::data::netdb.GetNumRouters () << " ";
s << "Floodfills: " << i2p::data::netdb.GetNumFloodfills () << " ";
s << "LeaseSets: " << i2p::data::netdb.GetNumLeaseSets () << "
\r\n";
@@ -797,7 +799,7 @@ namespace http {
} else if (req.uri.find("cmd=") != std::string::npos) {
HandleCommand (req, res, s);
} else {
- ShowStatus (s);
+ ShowStatus (s, true);
res.add_header("Refresh", "10");
}
ShowPageTail (s);
diff --git a/daemon/HTTPServer.h b/daemon/HTTPServer.h
index ec56e08a..edff1bf3 100644
--- a/daemon/HTTPServer.h
+++ b/daemon/HTTPServer.h
@@ -7,6 +7,7 @@
#include