Added to count downloads/uploads items

Enabled to get copy the DHT label values via mouse
Added counting on DHT Window & added context menu for DHT Tree, to copy IP addresses to clipboard
This commit is contained in:
defnax 2015-11-24 19:41:13 +01:00
parent 36c68e71ec
commit 397729bd93
6 changed files with 66 additions and 2 deletions

View File

@ -1076,6 +1076,7 @@ int TransfersDialog::addItem(int row, const FileInfo &fileInfo)
} }
return row; return row;
} }
int TransfersDialog::addPeerToItem(QStandardItem *dlItem, const QString& name, const QString& coreID, double dlspeed, uint32_t status, const FileProgressInfo& peerInfo) int TransfersDialog::addPeerToItem(QStandardItem *dlItem, const QString& name, const QString& coreID, double dlspeed, uint32_t status, const FileProgressInfo& peerInfo)
@ -1401,6 +1402,13 @@ void TransfersDialog::insertTransfers()
} }
ui.uploadsList->setSortingEnabled(true); ui.uploadsList->setSortingEnabled(true);
downloads = tr("Downloads") + " (" + QString::number(DLListModel->rowCount()) + ")";
uploads = tr("Uploads") + " (" + QString::number(ULListModel->rowCount()) + ")" ;
ui.tabWidget->setTabText(0, downloads);
ui.tabWidget_2->setTabText(0, uploads);
} }
QString TransfersDialog::getPeerName(const RsPeerId& id) const QString TransfersDialog::getPeerName(const RsPeerId& id) const

View File

@ -239,6 +239,9 @@ private:
/** Adds a new action to the toolbar. */ /** Adds a new action to the toolbar. */
void addAction(QAction *action, const char *slot = 0); void addAction(QAction *action, const char *slot = 0);
QString downloads;
QString uploads;
/** Qt Designer generated object */ /** Qt Designer generated object */
Ui::TransfersDialog ui; Ui::TransfersDialog ui;

View File

@ -23,8 +23,10 @@
#include "ui_DhtWindow.h" #include "ui_DhtWindow.h"
#include "util/QtVersion.h" #include "util/QtVersion.h"
#include <QClipboard>
#include <QTimer> #include <QTimer>
#include <QDateTime> #include <QDateTime>
#include <QMenu>
#include <algorithm> #include <algorithm>
#include <iostream> #include <iostream>
@ -51,6 +53,7 @@ DhtWindow::DhtWindow(QWidget *parent)
connect( ui.filterLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(filterItems(QString))); connect( ui.filterLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(filterItems(QString)));
connect( ui.filterLineEdit, SIGNAL(filterChanged(int)), this, SLOT(filterColumnChanged(int))); connect( ui.filterLineEdit, SIGNAL(filterChanged(int)), this, SLOT(filterColumnChanged(int)));
connect( ui.dhtTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(DHTCustomPopupMenu(QPoint)));
/* add filter actions */ /* add filter actions */
ui.filterLineEdit->addFilter(QIcon(), tr("IP"), DTW_COL_IPADDR, tr("Search IP")); ui.filterLineEdit->addFilter(QIcon(), tr("IP"), DTW_COL_IPADDR, tr("Search IP"));
@ -62,6 +65,22 @@ DhtWindow::~DhtWindow()
} }
void DhtWindow::DHTCustomPopupMenu( QPoint )
{
QMenu contextMnu( this );
QTreeWidgetItem *item = ui.dhtTreeWidget->currentItem();
if (item) {
QString Ip = item->text(DTW_COL_IPADDR);
contextMnu.addAction(QIcon(), tr("Copy %1 to clipboard").arg(Ip), this, SLOT(copyIP()));
}
contextMnu.exec(QCursor::pos());
}
void DhtWindow::updateDisplay() void DhtWindow::updateDisplay()
{ {
/* do nothing if locked, or not visible */ /* do nothing if locked, or not visible */
@ -494,6 +513,9 @@ void DhtWindow::updateNetPeers()
ui.label_direct->setText(QString::number(nDirectPeers)); ui.label_direct->setText(QString::number(nDirectPeers));
ui.label_proxy->setText(QString::number(nProxyPeers)); ui.label_proxy->setText(QString::number(nProxyPeers));
ui.label_relay->setText(QString::number(nRelayPeers)); ui.label_relay->setText(QString::number(nRelayPeers));
ui.tabWidget_2->setTabText(1, tr("Peers") + " (" + QString::number(ui.peerTreeWidget->topLevelItemCount()) + ")" );
//peerSummaryLabel->setText(connstr); //peerSummaryLabel->setText(connstr);
} }
@ -582,6 +604,9 @@ void DhtWindow::updateRelays()
item -> setData(RTW_COL_BANDWIDTH, Qt::DisplayRole, bandwidthstr); item -> setData(RTW_COL_BANDWIDTH, Qt::DisplayRole, bandwidthstr);
} }
ui.tabWidget_2->setTabText(2, tr("Relays") + " (" + QString::number(ui.relayTreeWidget->topLevelItemCount()) + ")" );
} }
@ -673,8 +698,12 @@ void DhtWindow::updateDhtPeers()
if (ui.filterLineEdit->text().isEmpty() == false) { if (ui.filterLineEdit->text().isEmpty() == false) {
filterItems(ui.filterLineEdit->text()); filterItems(ui.filterLineEdit->text());
}
ui.tabWidget_2->setTabText(0, tr("DHT") + " (" + QString::number(ui.dhtTreeWidget->topLevelItemCount()) + ")" );
} }
}
} }
@ -753,3 +782,19 @@ bool DhtWindow::filterItem(QTreeWidgetItem *item, const QString &text, int filte
return (visible || visibleChildCount); return (visible || visibleChildCount);
} }
void DhtWindow::copyIP()
{
QTreeWidgetItem *item = ui.dhtTreeWidget->currentItem();
if (!item)
{
return;
}
QString Ip = item->text(DTW_COL_IPADDR);
QApplication::clipboard()->setText(Ip, QClipboard::Clipboard);
}

View File

@ -44,7 +44,11 @@ public slots:
void filterColumnChanged(int); void filterColumnChanged(int);
void filterItems(const QString &text); void filterItems(const QString &text);
private slots:
/** Create the context popup menu and it's submenus */
void DHTCustomPopupMenu( QPoint point );
void copyIP();
protected: protected:
//void changeEvent(QEvent *e); //void changeEvent(QEvent *e);

View File

@ -467,6 +467,9 @@
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="0"> <item row="1" column="0">
<widget class="QTreeWidget" name="dhtTreeWidget"> <widget class="QTreeWidget" name="dhtTreeWidget">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="defaultDropAction"> <property name="defaultDropAction">
<enum>Qt::CopyAction</enum> <enum>Qt::CopyAction</enum>
</property> </property>

View File

@ -57,6 +57,7 @@ DHTStatus::DHTStatus(QWidget *parent)
dhtnetworksizeLabel = new QLabel( "0 (0) ",this ); dhtnetworksizeLabel = new QLabel( "0 (0) ",this );
dhtnetworksizeLabel->setVisible(false); dhtnetworksizeLabel->setVisible(false);
dhtnetworksizeLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
hbox->addWidget(dhtnetworksizeLabel); hbox->addWidget(dhtnetworksizeLabel);
hbox->addSpacing(2); hbox->addSpacing(2);