mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-12-31 16:20:26 -05:00
Improved File transfer Tunnels display
This commit is contained in:
parent
92ae196d73
commit
0eda491682
2 changed files with 175 additions and 28 deletions
|
|
@ -34,6 +34,16 @@
|
|||
|
||||
#include "gui/settings/rsharesettings.h"
|
||||
|
||||
#define COL_ID 0
|
||||
#define COL_FROM 1
|
||||
#define COL_TIME 2
|
||||
#define COL_STRING 3
|
||||
|
||||
#define COL_TUNNELID 0
|
||||
#define COL_SPEED 1
|
||||
#define COL_LASTTRANSFER 2
|
||||
#define COL_TO 3
|
||||
|
||||
static const uint MAX_TUNNEL_REQUESTS_DISPLAY = 10 ;
|
||||
|
||||
|
||||
|
|
@ -61,6 +71,14 @@ TurtleRouterDialog::TurtleRouterDialog(QWidget *parent)
|
|||
|
||||
top_level_hashes.clear() ;
|
||||
|
||||
float FS = QFontMetricsF(font()).height();
|
||||
float fact = FS/14.0 ;
|
||||
|
||||
QHeaderView * _header = _f2f_TW->header () ;
|
||||
_header->resizeSection ( COL_ID, 170*fact );
|
||||
QHeaderView * _header2 = tunnels_treeWidget->header () ;
|
||||
_header2->resizeSection ( COL_TUNNELID, 270*fact );
|
||||
|
||||
// load settings
|
||||
processSettings(true);
|
||||
}
|
||||
|
|
@ -147,6 +165,14 @@ void TurtleRouterDialog::updateTunnelRequests( const std::vector<std::vector<std
|
|||
while( (taken = _f2f_TW->topLevelItem(i)->takeChild(0)) != NULL)
|
||||
delete taken ;
|
||||
}
|
||||
|
||||
// remove all children of top level objects
|
||||
for(int i=0;i<tunnels_treeWidget->topLevelItemCount();++i)
|
||||
{
|
||||
QTreeWidgetItem *taken ;
|
||||
while( (taken = tunnels_treeWidget->topLevelItem(i)->takeChild(0)) != NULL)
|
||||
delete taken ;
|
||||
}
|
||||
|
||||
for(uint i=0;i<hashes_info.size();++i)
|
||||
findParentHashItem(hashes_info[i][0]) ;
|
||||
|
|
@ -171,44 +197,75 @@ void TurtleRouterDialog::updateTunnelRequests( const std::vector<std::vector<std
|
|||
num /= 1024.0f,++k;
|
||||
sprintf(tmp,"%3.2f %s",num,units[k].c_str()) ;
|
||||
|
||||
QString str = tr("Tunnel id") + ": " + QString::fromUtf8(tunnels_info[i][0].c_str()) + "\t" + tr("Speed") + ": " + QString::fromStdString(tmp) + "\t " + tr("last transfer") + ": " + QString::fromStdString(tunnels_info[i][4])+ "\t" + QString::fromUtf8(tunnels_info[i][2].c_str()) + " -> " + QString::fromUtf8(tunnels_info[i][1].c_str());
|
||||
stl.clear() ;
|
||||
stl.push_back(str) ;
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem(stl);
|
||||
parent->addChild(item);
|
||||
QFont font = item->font(0);
|
||||
//QString str = tr("Tunnel id") + ": " + QString::fromUtf8(tunnels_info[i][0].c_str()) + "\t" + tr("Speed") + ": " + QString::fromStdString(tmp) + "\t " + tr("last transfer") + ": " + QString::fromStdString(tunnels_info[i][4])+ "\t" + QString::fromUtf8(tunnels_info[i][2].c_str()) + " -> " + QString::fromUtf8(tunnels_info[i][1].c_str());
|
||||
//stl.clear() ;
|
||||
//stl.push_back(str) ;
|
||||
//QTreeWidgetItem *item = new QTreeWidgetItem(stl);
|
||||
//parent->addChild(item);
|
||||
|
||||
QTreeWidgetItem *tunnel_item = NULL;
|
||||
tunnel_item = new QTreeWidgetItem();
|
||||
|
||||
tunnel_item->setData(COL_TUNNELID, Qt::DisplayRole, QString::fromUtf8(tunnels_info[i][0].c_str()));
|
||||
tunnel_item->setData(COL_SPEED, Qt::DisplayRole, QString::fromStdString(tmp)) ;
|
||||
tunnel_item->setData(COL_LASTTRANSFER, Qt::DisplayRole, QString::fromStdString(tunnels_info[i][4]));
|
||||
tunnel_item->setData(COL_TO, Qt::DisplayRole, QString::fromUtf8(tunnels_info[i][2].c_str()) + " -> " + QString::fromUtf8(tunnels_info[i][1].c_str()));
|
||||
|
||||
tunnel_item->setTextAlignment(COL_SPEED, Qt::AlignRight);
|
||||
tunnel_item->setTextAlignment(COL_LASTTRANSFER, Qt::AlignCenter);
|
||||
|
||||
parent->addChild(tunnel_item) ;
|
||||
|
||||
QFont font = tunnel_item->font(0);
|
||||
if(strtol(tunnels_info[i][4].c_str(), NULL, 0)>10) // stuck
|
||||
{
|
||||
font.setItalic(true);
|
||||
item->setFont(0,font);
|
||||
tunnel_item->setFont(0,font);
|
||||
}
|
||||
if(strtof(tunnels_info[i][5].c_str(), NULL)>1000) // fast
|
||||
{
|
||||
font.setBold(true);
|
||||
item->setFont(0,font);
|
||||
tunnel_item->setFont(0,font);
|
||||
}
|
||||
}
|
||||
|
||||
for(uint i=0;i<search_reqs_info.size();++i)
|
||||
{
|
||||
QString str = tr("Request id: %1\t %3 secs ago\t from %2\t %4 (%5 hits)").arg(search_reqs_info[i].request_id,0,16).arg(getPeerName(search_reqs_info[i].source_peer_id), -25).arg(search_reqs_info[i].age).arg(QString::fromUtf8(search_reqs_info[i].keywords.c_str(),search_reqs_info[i].keywords.length())).arg(QString::number(search_reqs_info[i].hits));
|
||||
//QString str = tr("Request id: %1\t %3 secs ago\t from %2\t %4 (%5 hits)").arg(search_reqs_info[i].request_id,0,16).arg(getPeerName(search_reqs_info[i].source_peer_id), -25).arg(search_reqs_info[i].age).arg(QString::fromUtf8(search_reqs_info[i].keywords.c_str(),search_reqs_info[i].keywords.length())).arg(QString::number(search_reqs_info[i].hits));
|
||||
|
||||
stl.clear() ;
|
||||
stl.push_back(str) ;
|
||||
//stl.clear() ;
|
||||
//stl.push_back(str) ;
|
||||
|
||||
QTreeWidgetItem *sr_item = NULL;
|
||||
sr_item = new QTreeWidgetItem();
|
||||
top_level_s_requests->addChild(sr_item) ;
|
||||
|
||||
top_level_s_requests->addChild(new QTreeWidgetItem(stl)) ;
|
||||
sr_item->setData(COL_ID, Qt::DisplayRole, QString::number(search_reqs_info[i].request_id));
|
||||
sr_item->setData(COL_FROM, Qt::DisplayRole, getPeerName(search_reqs_info[i].source_peer_id) ) ;
|
||||
sr_item->setData(COL_TIME, Qt::DisplayRole, QString::number(search_reqs_info[i].age) + " secs ago");
|
||||
sr_item->setData(COL_STRING, Qt::DisplayRole, QString::fromUtf8(search_reqs_info[i].keywords.c_str()) + QString::number(search_reqs_info[i].keywords.length()) + " (" + QString::number(search_reqs_info[i].hits) + " hits)");
|
||||
|
||||
//top_level_s_requests->addChild(new QTreeWidgetItem(stl)) ;
|
||||
}
|
||||
top_level_s_requests->setText(0, tr("Search requests") + " (" + QString::number(search_reqs_info.size()) + ")" ) ;
|
||||
|
||||
for(uint i=0;i<tunnel_reqs_info.size();++i)
|
||||
if(i+MAX_TUNNEL_REQUESTS_DISPLAY >= tunnel_reqs_info.size() || i < MAX_TUNNEL_REQUESTS_DISPLAY)
|
||||
{
|
||||
QString str = tr("Request id: %1\t from [%2]\t %3 secs ago").arg(tunnel_reqs_info[i].request_id,0,16).arg(getPeerName(tunnel_reqs_info[i].source_peer_id)).arg(tunnel_reqs_info[i].age);
|
||||
//QString str = tr("Request id: %1\t from [%2]\t %3 secs ago").arg(tunnel_reqs_info[i].request_id,0,16).arg(getPeerName(tunnel_reqs_info[i].source_peer_id)).arg(tunnel_reqs_info[i].age);
|
||||
|
||||
stl.clear() ;
|
||||
stl.push_back(str) ;
|
||||
//stl.clear() ;
|
||||
//stl.push_back(str) ;
|
||||
/* find the entry */
|
||||
QTreeWidgetItem *tunnelr_item = NULL;
|
||||
tunnelr_item = new QTreeWidgetItem();
|
||||
top_level_t_requests->addChild(tunnelr_item) ;
|
||||
|
||||
top_level_t_requests->addChild(new QTreeWidgetItem(stl)) ;
|
||||
tunnelr_item->setData(COL_ID, Qt::DisplayRole, QString::number(tunnel_reqs_info[i].request_id));
|
||||
tunnelr_item->setData(COL_FROM, Qt::DisplayRole, getPeerName(tunnel_reqs_info[i].source_peer_id) ) ;
|
||||
tunnelr_item->setData(COL_TIME, Qt::DisplayRole, QString::number(tunnel_reqs_info[i].age) + " secs ago");
|
||||
|
||||
//top_level_t_requests->addChild(new QTreeWidgetItem(stl)) ;
|
||||
}
|
||||
else if(i == MAX_TUNNEL_REQUESTS_DISPLAY)
|
||||
{
|
||||
|
|
@ -251,14 +308,14 @@ QTreeWidgetItem *TurtleRouterDialog::findParentHashItem(const std::string& hash)
|
|||
|
||||
// look for the hash, and insert a new element if necessary.
|
||||
//
|
||||
QList<QTreeWidgetItem*> items = _f2f_TW->findItems((hash==null_hash)?tr("Unknown hashes"):QString::fromStdString(hash),Qt::MatchStartsWith) ;
|
||||
QList<QTreeWidgetItem*> items =tunnels_treeWidget->findItems((hash==null_hash)?tr("Unknown hashes"):QString::fromStdString(hash),Qt::MatchStartsWith) ;
|
||||
|
||||
if(items.empty())
|
||||
{
|
||||
QStringList stl ;
|
||||
stl.push_back((hash==null_hash)?tr("Unknown hashes"):QString::fromStdString(hash)) ;
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem(_f2f_TW,stl) ;
|
||||
_f2f_TW->insertTopLevelItem(0,item) ;
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem(tunnels_treeWidget,stl) ;
|
||||
tunnels_treeWidget->insertTopLevelItem(0,item) ;
|
||||
|
||||
return item ;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,17 +13,107 @@
|
|||
<property name="windowTitle">
|
||||
<string>Router Statistics</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTreeWidget" name="_f2f_TW">
|
||||
<property name="headerHidden">
|
||||
<bool>true</bool>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>F2F router information</string>
|
||||
</property>
|
||||
</column>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>Requests</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QTreeWidget" name="_f2f_TW">
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="headerHidden">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Request ID</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>From</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Time</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>String</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>Tunnels</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QTreeWidget" name="tunnels_treeWidget">
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Hashes \ Tunnel ID</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Speed</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Last Transfer</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>To</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue