* beautify DHT details

* Added to display the Bandwidth details,Turtle router, Global router into the DHT Window
* Now the DHT Details, will be a place to view all the details about the DHT, Bandwidth, Turtle & Global router and more.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7497 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
defnax 2014-08-26 23:03:17 +00:00
parent 99b55fbe65
commit 3a8541291a
7 changed files with 758 additions and 410 deletions

@ -117,16 +117,11 @@
*
****/
#define USE_DHTWINDOW 1
#define USE_BWCTRLWINDOW 1
#ifdef USE_DHTWINDOW
#include "dht/DhtWindow.h"
#endif
#ifdef USE_BWCTRLWINDOW
#include "bwctrl/BwCtrlWindow.h"
#endif
/* Images for toolbar icons */
//#define IMAGE_NETWORK2 ":/images/rs1.png"
@ -621,9 +616,6 @@ void MainWindow::createTrayIcon()
#ifdef USE_DHTWINDOW
trayMenu->addAction(QIcon(IMAGE_DHT), tr("DHT Details"), this, SLOT(showDhtWindow()));
#endif
#ifdef USE_BWCTRLWINDOW
trayMenu->addAction(QIcon(IMAGE_DHT), tr("Bandwidth Details"), this, SLOT(showBwCtrlWindow()));
#endif
#ifdef UNFINISHED
trayMenu->addAction(QIcon(IMAGE_UNFINISHED), tr("Applications"), this, SLOT(showApplWindow()));
@ -1112,16 +1104,6 @@ void MainWindow::showDhtWindow()
#endif
}
/** Shows Bandwitch Control window */
void MainWindow::showBwCtrlWindow()
{
#ifdef USE_BWCTRLWINDOW
BwCtrlWindow::showYourself();
#endif
}
/** Shows Application window */
#ifdef UNFINISHED
void MainWindow::showApplWindow()

@ -205,7 +205,6 @@ private slots:
void newRsCollection();
void showMessengerWindow();
void showDhtWindow();
void showBwCtrlWindow();
void servicePermission();
#ifdef UNFINISHED

@ -165,7 +165,7 @@ QSize BWListDelegate::sizeHint(const QStyleOptionViewItem & /*option*/, const QM
/**************************************************************************************************/
/********************************************** STATIC WINDOW *************************************/
BwCtrlWindow * BwCtrlWindow::mInstance = NULL;
/*BwCtrlWindow * BwCtrlWindow::mInstance = NULL;
void BwCtrlWindow::showYourself()
{
@ -187,14 +187,14 @@ void BwCtrlWindow::releaseInstance()
if (mInstance) {
delete mInstance;
}
}
}*/
/********************************************** STATIC WINDOW *************************************/
BwCtrlWindow::BwCtrlWindow(QWidget *parent) :
QMainWindow(parent),
QWidget(parent),
ui(new Ui::BwCtrlWindow)
{
ui->setupUi(this);
@ -204,6 +204,8 @@ BwCtrlWindow::BwCtrlWindow(QWidget *parent) :
BWDelegate = new BWListDelegate();
ui->bwTreeWidget->setItemDelegate(BWDelegate);
//ui->tabWidget->addTab(dhtdetails = new DhtWindow(),QIcon(), tr("DHT"));
// tick for gui update.
QTimer *timer = new QTimer(this);
@ -213,10 +215,11 @@ BwCtrlWindow::BwCtrlWindow(QWidget *parent) :
BwCtrlWindow::~BwCtrlWindow()
{
delete ui;
mInstance = NULL;
//delete ui;
//mInstance = NULL;
}
/*
void BwCtrlWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
@ -227,7 +230,7 @@ void BwCtrlWindow::changeEvent(QEvent *e)
default:
break;
}
}
}*/
void BwCtrlWindow::update()
{

@ -67,13 +67,13 @@ namespace Ui {
class BwCtrlWindow;
}
class BwCtrlWindow : public QMainWindow {
class BwCtrlWindow : public QWidget {
Q_OBJECT
public:
static void showYourself ();
static BwCtrlWindow* getInstance();
static void releaseInstance();
//static void showYourself ();
//static BwCtrlWindow* getInstance();
//static void releaseInstance();
BwCtrlWindow(QWidget *parent = 0);
@ -85,12 +85,12 @@ public slots:
void update();
protected:
void changeEvent(QEvent *e);
//void changeEvent(QEvent *e);
private:
Ui::BwCtrlWindow *ui;
static BwCtrlWindow *mInstance;
//static BwCtrlWindow *mInstance;
BWListDelegate *BWDelegate;

@ -1,126 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BwCtrlWindow</class>
<widget class="QMainWindow" name="BwCtrlWindow">
<property name="enabled">
<bool>true</bool>
</property>
<widget class="QWidget" name="BwCtrlWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>525</width>
<height>297</height>
<width>597</width>
<height>469</height>
</rect>
</property>
<property name="windowTitle">
<string>Bandwidth Control Window</string>
<string>Form</string>
</property>
<property name="windowIcon">
<iconset resource="../images.qrc">
<normaloff>:/images/logo/logo_16.png</normaloff>:/images/logo/logo_16.png</iconset>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="bwSummaryLabel">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTreeWidget" name="bwTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Bandwidth Measurements</string>
<string>Name</string>
</property>
</widget>
</item>
<item>
<widget class="QTreeWidget" name="bwTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</column>
<column>
<property name="text">
<string>ID</string>
</property>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>ID</string>
</property>
</column>
<column>
<property name="text">
<string>In (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>InMax (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>InQueue</string>
</property>
</column>
<column>
<property name="text">
<string>InAllocated (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>Allocated Sent</string>
</property>
</column>
<column>
<property name="text">
<string>Out (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>OutMax (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>OutQueue</string>
</property>
</column>
<column>
<property name="text">
<string>OutAllowed (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>Allowed Recvd</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>525</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</column>
<column>
<property name="text">
<string>In (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>InMax (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>InQueue</string>
</property>
</column>
<column>
<property name="text">
<string>InAllocated (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>Allocated Sent</string>
</property>
</column>
<column>
<property name="text">
<string>Out (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>OutMax (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>OutQueue</string>
</property>
</column>
<column>
<property name="text">
<string>OutAllowed (KB/s)</string>
</property>
</column>
<column>
<property name="text">
<string>Allowed Recvd</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="../images.qrc"/>
</resources>
<resources/>
<connections/>
</ui>

@ -34,6 +34,10 @@
#include "retroshare/rsconfig.h"
#include "retroshare/rspeers.h"
#include <gui/FileTransfer/TurtleRouterStatistics.h>
#include <gui/settings/GlobalRouterStatistics.h>
#include <gui/bwctrl/BwCtrlWindow.h>
/********************************************** STATIC WINDOW *************************************/
DhtWindow * DhtWindow::mInstance = NULL;
@ -70,8 +74,17 @@ DhtWindow::DhtWindow(QWidget *parent) :
ui->setupUi(this);
setAttribute ( Qt::WA_DeleteOnClose, true );
BwCtrlWindow *bwdlg = new BwCtrlWindow ;
ui->tabWidget->addTab(bwdlg, tr("Bandwidth details"));
TurtleRouterStatistics *trs = new TurtleRouterStatistics ;
ui->tabWidget->addTab(trs,tr("Turtle router")) ;
// tick for gui update.
GlobalRouterStatistics *grs = new GlobalRouterStatistics ;
ui->tabWidget->addTab(grs,tr("Global router")) ;
// tick for gui update.
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);
@ -506,7 +519,7 @@ void DhtWindow::updateNetPeers()
}
QString connstr;
/*QString connstr;
connstr = tr("#Peers: ") + QString::number(nPeers);
connstr += tr(" DHT: (#off:") + QString::number(nOfflinePeers);
connstr += tr(",unreach:") + QString::number(nUnreachablePeers);
@ -515,9 +528,19 @@ void DhtWindow::updateNetPeers()
connstr += tr(",#dir:") + QString::number(nDirectPeers);
connstr += tr(",#proxy:") + QString::number(nProxyPeers);
connstr += tr(",#relay:") + QString::number(nRelayPeers);
connstr += ")";
connstr += ")";*/
ui->label_peers->setText(QString::number(nPeers));
ui->label_offline->setText(QString::number(nOfflinePeers));
ui->label_unreachable->setText(QString::number(nUnreachablePeers));
ui->label_online->setText(QString::number(nOnlinePeers));
ui->label_disconnected->setText(QString::number(nDisconnPeers));
ui->label_direct->setText(QString::number(nDirectPeers));
ui->label_proxy->setText(QString::number(nProxyPeers));
ui->label_relay->setText(QString::number(nRelayPeers));
ui->peerSummaryLabel->setText(connstr);
//ui->peerSummaryLabel->setText(connstr);
}

@ -9,8 +9,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>665</width>
<height>490</height>
<width>777</width>
<height>604</height>
</rect>
</property>
<property name="windowTitle">
@ -21,272 +21,659 @@
<normaloff>:/images/dht16.png</normaloff>:/images/dht16.png</iconset>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLineEdit" name="peerLine">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Peer Details</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="netStatusLabel">
<property name="text">
<string>Net Status</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="connectLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Connect Options</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="networkLabel">
<property name="text">
<string>Network Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="natTypeLabel">
<property name="text">
<string>Nat Type</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="natHoleLabel">
<property name="text">
<string>Nat Hole</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="peerAddressLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Peer Address</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="extraLabel">
<property name="text">
<string>Extra Label</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Vertical</enum>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>6</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>DHT Details</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_16">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Net Status:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="netStatusLabel">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Net Status</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Network Mode:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="networkLabel">
<property name="text">
<string>Network Mode</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Nat Type:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="natTypeLabel">
<property name="text">
<string>Nat Type</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Nat Hole:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="natHoleLabel">
<property name="text">
<string>Nat Hole</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="peerSummaryLabel">
<property name="text">
<string>TextLabel</string>
<item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_17">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_5">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Connect Mode:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="connectLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Connect Options</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Peer Address:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="peerAddressLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Peer Address</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>DHT</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QLabel" name="label_9">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Unreachable:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_unreachable">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="3">
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Online:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_online">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_8">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Offline:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_offline">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QLabel" name="label_7">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Peers:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_peers">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTreeWidget" name="peerTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox_2">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<column>
<property name="text">
<string>Name</string>
<property name="title">
<string>Connections</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QLabel" name="label_12">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Disconnected:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_disconnected">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
<widget class="QLabel" name="label_13">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Direct:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_direct">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_13">
<item>
<widget class="QLabel" name="label_14">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Proxy:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_proxy">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QLabel" name="label_16">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Relay:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_relay">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QTreeWidget" name="peerTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>PeerId</string>
</property>
</column>
<column>
<property name="text">
<string>DHT Status</string>
</property>
</column>
<column>
<property name="text">
<string>ConnectLogic</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Status</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Mode</string>
</property>
</column>
<column>
<property name="text">
<string>Request Status</string>
</property>
</column>
<column>
<property name="text">
<string>Cb Status</string>
</property>
</column>
<column>
<property name="text">
<string>RsId</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="dhtLabel">
<property name="text">
<string>DHT Details</string>
</property>
</widget>
</item>
<item>
<widget class="QTreeWidget" name="dhtTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Bucket</string>
</property>
</column>
<column>
<property name="text">
<string>IP:Port</string>
</property>
</column>
<column>
<property name="text">
<string>Key</string>
</property>
</column>
<column>
<property name="text">
<string>Status Flags</string>
</property>
</column>
<column>
<property name="text">
<string>Found</string>
</property>
</column>
<column>
<property name="text">
<string>Last Sent</string>
</property>
</column>
<column>
<property name="text">
<string>Last Recv</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QTreeWidget" name="relayTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</property>
</column>
<column>
<property name="text">
<string>PeerId</string>
</property>
</column>
<column>
<property name="text">
<string>DHT Status</string>
</property>
</column>
<column>
<property name="text">
<string>ConnectLogic</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Status</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Mode</string>
</property>
</column>
<column>
<property name="text">
<string>Request Status</string>
</property>
</column>
<column>
<property name="text">
<string>Cb Status</string>
</property>
</column>
<column>
<property name="text">
<string>RsId</string>
</property>
</column>
<column>
<property name="text">
<string>Relay Mode</string>
</property>
</column>
<column>
<property name="text">
<string>Source</string>
</property>
</column>
<column>
<property name="text">
<string>Proxy</string>
</property>
</column>
<column>
<property name="text">
<string>Destination</string>
</property>
</column>
<column>
<property name="text">
<string>Class</string>
</property>
</column>
<column>
<property name="text">
<string>Age</string>
</property>
</column>
<column>
<property name="text">
<string>Last Sent</string>
</property>
</column>
<column>
<property name="text">
<string>Bandwidth</string>
</property>
</column>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="dhtLabel">
<property name="text">
<string>DHT Details</string>
</property>
</widget>
</item>
<item>
<widget class="QTreeWidget" name="dhtTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Bucket</string>
</property>
</column>
<column>
<property name="text">
<string>IP:Port</string>
</property>
</column>
<column>
<property name="text">
<string>Key</string>
</property>
</column>
<column>
<property name="text">
<string>Status Flags</string>
</property>
</column>
<column>
<property name="text">
<string>Found</string>
</property>
</column>
<column>
<property name="text">
<string>Last Sent</string>
</property>
</column>
<column>
<property name="text">
<string>Last Recv</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QTreeWidget" name="relayTreeWidget">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Relay Mode</string>
</property>
</column>
<column>
<property name="text">
<string>Source</string>
</property>
</column>
<column>
<property name="text">
<string>Proxy</string>
</property>
</column>
<column>
<property name="text">
<string>Destination</string>
</property>
</column>
<column>
<property name="text">
<string>Class</string>
</property>
</column>
<column>
<property name="text">
<string>Age</string>
</property>
</column>
<column>
<property name="text">
<string>Last Sent</string>
</property>
</column>
<column>
<property name="text">
<string>Bandwidth</string>
</property>
</column>
</widget>
</widget>
</item>
</layout>
@ -296,19 +683,11 @@
<rect>
<x>0</x>
<y>0</y>
<width>665</width>
<height>20</height>
<width>777</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>