Skip to content

Commit

Permalink
Qt: Add GUI view of peer information. #4133
Browse files Browse the repository at this point in the history
  • Loading branch information
ashleyholman committed Jun 3, 2014
1 parent 9d97e83 commit 65f78a1
Show file tree
Hide file tree
Showing 10 changed files with 870 additions and 12 deletions.
3 changes: 3 additions & 0 deletions src/qt/Makefile.am
Expand Up @@ -126,6 +126,7 @@ QT_MOC_CPP = \
moc_optionsdialog.cpp \
moc_optionsmodel.cpp \
moc_overviewpage.cpp \
moc_peertablemodel.cpp \
moc_paymentserver.cpp \
moc_qvalidatedlineedit.cpp \
moc_qvaluecombobox.cpp \
Expand Down Expand Up @@ -191,6 +192,7 @@ BITCOIN_QT_H = \
overviewpage.h \
paymentrequestplus.h \
paymentserver.h \
peertablemodel.h \
qvalidatedlineedit.h \
qvaluecombobox.h \
receivecoinsdialog.h \
Expand Down Expand Up @@ -294,6 +296,7 @@ BITCOIN_QT_CPP += \
overviewpage.cpp \
paymentrequestplus.cpp \
paymentserver.cpp \
peertablemodel.cpp \
receivecoinsdialog.cpp \
receiverequestdialog.cpp \
recentrequeststablemodel.cpp \
Expand Down
9 changes: 8 additions & 1 deletion src/qt/clientmodel.cpp
Expand Up @@ -5,6 +5,7 @@
#include "clientmodel.h"

#include "guiconstants.h"
#include "peertablemodel.h"

#include "alert.h"
#include "chainparams.h"
Expand All @@ -22,11 +23,12 @@
static const int64_t nClientStartupTime = GetTime();

ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
QObject(parent), optionsModel(optionsModel),
QObject(parent), optionsModel(optionsModel), peerTableModel(0),
cachedNumBlocks(0),
cachedReindexing(0), cachedImporting(0),
numBlocksAtStartup(-1), pollTimer(0)
{
peerTableModel = new PeerTableModel(this);
pollTimer = new QTimer(this);
connect(pollTimer, SIGNAL(timeout()), this, SLOT(updateTimer()));
pollTimer->start(MODEL_UPDATE_DELAY);
Expand Down Expand Up @@ -173,6 +175,11 @@ OptionsModel *ClientModel::getOptionsModel()
return optionsModel;
}

PeerTableModel *ClientModel::getPeerTableModel()
{
return peerTableModel;
}

QString ClientModel::formatFullVersion() const
{
return QString::fromStdString(FormatFullVersion());
Expand Down
3 changes: 3 additions & 0 deletions src/qt/clientmodel.h
Expand Up @@ -9,6 +9,7 @@

class AddressTableModel;
class OptionsModel;
class PeerTableModel;
class TransactionTableModel;

class CWallet;
Expand Down Expand Up @@ -42,6 +43,7 @@ class ClientModel : public QObject
~ClientModel();

OptionsModel *getOptionsModel();
PeerTableModel *getPeerTableModel();

//! Return number of connections, default is in- and outbound (total)
int getNumConnections(unsigned int flags = CONNECTIONS_ALL) const;
Expand Down Expand Up @@ -71,6 +73,7 @@ class ClientModel : public QObject

private:
OptionsModel *optionsModel;
PeerTableModel *peerTableModel;

int cachedNumBlocks;
bool cachedReindexing;
Expand Down
275 changes: 275 additions & 0 deletions src/qt/forms/rpcconsole.ui
Expand Up @@ -652,6 +652,281 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_peers">
<attribute name="title">
<string>&amp;Peers</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="QLabel" name="peerHeading">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Select a peer to view detailed information.</string>
</property>
<property name="margin">
<number>3</number>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="2">
<widget class="QTableView" name="peerWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QWidget" name="detailWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>3</number>
</property>
<item row="12" column="0">
<widget class="QLabel" name="label_21">
<property name="text">
<string>Version:</string>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QLabel" name="peerPingTime">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Last Receive:</string>
</property>
</widget>
</item>
<item row="14" column="0">
<widget class="QLabel" name="label_28">
<property name="text">
<string>User Agent:</string>
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="QLabel" name="peerVersion">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QLabel" name="peerConnTime">
<property name="minimumSize">
<size>
<width>160</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="label_26">
<property name="text">
<string>Ping Time:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="peerLastRecv">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Connection Time:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="peerBytesSent">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QLabel" name="peerSubversion">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="15" column="0">
<widget class="QLabel" name="label_29">
<property name="text">
<string>Starting Height:</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="peerBytesRecv">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_18">
<property name="text">
<string>Bytes Sent:</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>Bytes Received:</string>
</property>
</widget>
</item>
<item row="15" column="1">
<widget class="QLabel" name="peerHeight">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="16" column="0">
<widget class="QLabel" name="label_24">
<property name="text">
<string>Ban Score:</string>
</property>
</widget>
</item>
<item row="16" column="1">
<widget class="QLabel" name="peerBanScore">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="17" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>Direction:</string>
</property>
</widget>
</item>
<item row="17" column="1">
<widget class="QLabel" name="peerDirection">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="19" column="0">
<widget class="QLabel" name="label_25">
<property name="text">
<string>Sync Node:</string>
</property>
</widget>
</item>
<item row="19" column="1">
<widget class="QLabel" name="peerSyncNode">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Last Send:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Services:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_27">
<property name="text">
<string>IP Address/port:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="peerLastSend">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="peerServices">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="peerAddr">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
<item row="20" column="0">
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
Expand Down

0 comments on commit 65f78a1

Please sign in to comment.