Merged branch for GUI improvements into trunk. The improvement phase is not finsihed yet. The work on GUI will continue into trunk

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6138 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2013-02-22 21:42:27 +00:00
parent c23cfd4a0f
commit 50db473329
46 changed files with 2536 additions and 2984 deletions

View file

@ -19,6 +19,7 @@
* Boston, MA 02110-1301, USA.
****************************************************************/
#include <QDate>
#include <QMessageBox>
#include <QClipboard>
#include <QFile>
@ -27,9 +28,12 @@
#include "CryptoPage.h"
#include "util/misc.h"
#include "util/DateTime.h"
#include <gui/RetroShareLink.h>
#include <gui/profile/ProfileManager.h>
#include <retroshare/rspeers.h> //for rsPeers variable
#include <retroshare/rsdisc.h> //for rsPeers variable
/** Constructor */
CryptoPage::CryptoPage(QWidget * parent, Qt::WFlags flags)
@ -38,7 +42,7 @@ CryptoPage::CryptoPage(QWidget * parent, Qt::WFlags flags)
/* Invoke the Qt Designer generated object setup routine */
ui.setupUi(this);
connect(ui.copykeyButton, SIGNAL(clicked()), this, SLOT(copyPublicKey()));
// connect(ui.copykeyButton, SIGNAL(clicked()), this, SLOT(copyPublicKey()));
connect(ui.saveButton, SIGNAL(clicked()), this, SLOT(fileSaveAs()));
connect(ui._includeSignatures_CB, SIGNAL(toggled(bool)), this, SLOT(load()));
connect(ui._copyLink_PB, SIGNAL(clicked()), this, SLOT(copyRSLink()));
@ -48,7 +52,45 @@ CryptoPage::CryptoPage(QWidget * parent, Qt::WFlags flags)
#ifdef Q_WS_WIN
#endif
connect(ui.profile_Button,SIGNAL(clicked()), this, SLOT(profilemanager()));
ui.onlinesince->setText(DateTime::formatLongDateTime(QDateTime::currentDateTime()));
}
void CryptoPage::profilemanager()
{
ProfileManager profilemanager;
profilemanager.exec();
}
void CryptoPage::showEvent ( QShowEvent * /*event*/ )
{
RsPeerDetails detail;
if (rsPeers->getPeerDetails(rsPeers->getOwnId(),detail))
{
ui.name->setText(QString::fromUtf8(detail.name.c_str()));
ui.country->setText(QString::fromUtf8(detail.location.c_str()));
ui.peerid->setText(QString::fromStdString(detail.id));
ui.pgpid->setText(QString::fromStdString(detail.gpg_id));
/* set retroshare version */
std::map<std::string, std::string>::iterator vit;
std::map<std::string, std::string> versions;
bool retv = rsDisc->getDiscVersions(versions);
if (retv && versions.end() != (vit = versions.find(detail.id)))
{
ui.version->setText(QString::fromStdString(vit->second));
}
std::list<std::string> ids;
ids.clear();
rsPeers->getGPGAcceptedList(ids);
int friends = ids.size();
ui.friendsEdit->setText(QString::number(friends));
}
load() ;
}
CryptoPage::~CryptoPage()
{

View file

@ -46,7 +46,8 @@ class CryptoPage : public ConfigPage
virtual void load();
void copyPublicKey();
void copyRSLink() ;
virtual void showEvent ( QShowEvent * event );
void profilemanager();
bool fileSave();
bool fileSaveAs();

View file

@ -6,91 +6,497 @@
<rect>
<x>0</x>
<y>0</y>
<width>542</width>
<height>355</height>
<width>650</width>
<height>566</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="6">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Public Key</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTextEdit" name="certtextEdit">
<property name="font">
<font>
<kerning>false</kerning>
</font>
</property>
<property name="acceptRichText">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="copykeyButton">
<property name="toolTip">
<string>Copy my Key to Clipboard</string>
</property>
<property name="text">
<string>Copy Key</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="saveButton">
<property name="toolTip">
<string>Save Key into a file</string>
</property>
<property name="text">
<string>Save Key</string>
</property>
</widget>
</item>
<item row="1" column="5">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>278</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="4">
<widget class="QCheckBox" name="_includeSignatures_CB">
<property name="text">
<string>Include signatures</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="_copyLink_PB">
<property name="text">
<string>Copy RetroShare link to clipboard</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QCheckBox" name="_useOldFormat_CB">
<property name="text">
<string>Use old key format</string>
</property>
<property name="checked">
<bool>true</bool>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Profile</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QToolButton" name="profile_Button">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>Profile Manager</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/contact_new.png</normaloff>:/images/contact_new.png</iconset>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</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>
<item>
<widget class="QFrame" name="frame_1">
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/info16.png</pixmap>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_5">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Public Information</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_10">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Name:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="name">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Location:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="country">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Location ID:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="peerid">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Identity ID:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="pgpid">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QGridLayout" name="gridLayout_6" columnstretch="0,0,0" columnminimumwidth="0,0,0">
<item row="2" column="0">
<widget class="QLabel" name="label_9">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Number of Friends:</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLabel" name="friendsEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Software Version:</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_16">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Online since:</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLabel" name="version">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QLabel" name="onlinesince">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_12">
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/info16.png</pixmap>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_13">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Other Information</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>205</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Certificate</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTextEdit" name="certtextEdit">
<property name="font">
<font>
<kerning>false</kerning>
</font>
</property>
<property name="acceptRichText">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="_copyLink_PB">
<property name="text">
<string>Copy link to clipboard</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveButton">
<property name="toolTip">
<string>Save Key into a file</string>
</property>
<property name="text">
<string>Save Key</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="_useOldFormat_CB">
<property name="text">
<string>Use old key format</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="_includeSignatures_CB">
<property name="text">
<string>Include signatures</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<resources>
<include location="../images.qrc"/>
</resources>
<connections/>
</ui>

View file

@ -29,6 +29,7 @@
#include <util/stringutil.h>
#include <QSystemTrayIcon>
#include "rsharesettings.h"
#include <gui/QuickStartWizard.h>
/** Constructor */
GeneralPage::GeneralPage(QWidget * parent, Qt::WFlags flags)
@ -51,12 +52,17 @@ GeneralPage::GeneralPage(QWidget * parent, Qt::WFlags flags)
ui.enableRetroShareProtocol->setVisible(false);
ui.adminLabel->setVisible(false);
#endif
connect(ui.runStartWizard_PB,SIGNAL(clicked()), this,SLOT(runStartWizard())) ;
}
/** Destructor */
GeneralPage::~GeneralPage()
{
}
void GeneralPage::runStartWizard()
{
QuickStartWizard(this).exec();
}
/** Saves the changes on this page */
bool GeneralPage::save(QString &/*errmsg*/)

View file

@ -44,6 +44,8 @@ public:
virtual QPixmap iconPixmap() const { return QPixmap(":/images/kcmsystem24.png") ; }
virtual QString pageName() const { return tr("General") ; }
public slots:
void runStartWizard() ;
private:
/** Qt Designer generated object */
Ui::GeneralPage ui;

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>411</width>
<height>400</height>
<width>485</width>
<height>465</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
@ -182,18 +182,29 @@
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>178</width>
<height>95</height>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="runStartWizard_PB">
<property name="text">
<string>Launch startup wizard</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/tools_wizard.png</normaloff>:/images/tools_wizard.png</iconset>
</property>
</widget>
</item>
</layout>
</widget>
<resources>

View file

@ -21,6 +21,7 @@
#include "ServerPage.h"
#include <gui/TurtleRouterDialog.h>
#include <gui/TurtleRouterStatistics.h>
#include "rshare.h"
#include "rsharesettings.h"
@ -30,6 +31,7 @@
#include <retroshare/rsconfig.h>
#include <retroshare/rspeers.h>
#include <retroshare/rsturtle.h>
#include <retroshare/rsiface.h>
#include <QTimer>
@ -44,11 +46,14 @@ ServerPage::ServerPage(QWidget * parent, Qt::WFlags flags)
connect( ui.allowTunnelConnectionCB, SIGNAL( toggled( bool ) ), this, SLOT( toggleTunnelConnection(bool) ) );
connect( ui._max_tr_up_per_sec_SB, SIGNAL( valueChanged( int ) ), this, SLOT( updateMaxTRUpRate(int) ) );
connect( ui._turtle_enabled_CB, SIGNAL( toggled( bool ) ), this, SLOT( toggleTurtleRouting(bool) ) );
connect( ui._routing_info_PB, SIGNAL( clicked() ), this, SLOT( showRoutingInfo() ) );
QTimer *timer = new QTimer(this);
timer->connect(timer, SIGNAL(timeout()), this, SLOT(updateStatus()));
timer->start(1000);
_routing_info_page = NULL ;
//load();
updateStatus();
@ -70,12 +75,30 @@ ServerPage::ServerPage(QWidget * parent, Qt::WFlags flags)
for(std::list<std::string>::const_iterator it(ip_servers.begin());it!=ip_servers.end();++it)
ui.IPServersLV->addItem(QString::fromStdString(*it)) ;
TurtleRouterStatistics *trs = new TurtleRouterStatistics ;
trs->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::MinimumExpanding)) ;
ui.tabWidget->widget(2)->layout()->addWidget(trs) ;
ui.tabWidget->widget(2)->layout()->setContentsMargins(0,5,0,0) ;
QSpacerItem *verticalSpacer = new QSpacerItem(0,0,QSizePolicy::Expanding, QSizePolicy::Minimum);
ui.tabWidget->widget(2)->layout()->addItem(verticalSpacer) ;
ui.tabWidget->widget(2)->layout()->update() ;
/* Hide platform specific features */
#ifdef Q_WS_WIN
#endif
}
void ServerPage::showRoutingInfo()
{
if(_routing_info_page == NULL)
_routing_info_page = new TurtleRouterDialog ;
_routing_info_page->show() ;
}
void ServerPage::updateMaxTRUpRate(int b)
{
rsTurtle->setMaxTRForwardRate(b) ;
@ -192,12 +215,18 @@ void ServerPage::load()
ui.showDiscStatusBar->setChecked(Settings->getStatusBarFlags() & STATUSBAR_DISC);
ui._max_tr_up_per_sec_SB->setValue(rsTurtle->getMaxTRForwardRate()) ;
ui._turtle_enabled_CB->setChecked(rsTurtle->enabled()) ;
ui.ipAddressList->clear();
for(std::list<std::string>::const_iterator it(detail.ipAddressList.begin());it!=detail.ipAddressList.end();++it)
ui.ipAddressList->addItem(QString::fromStdString(*it));
}
void ServerPage::toggleTurtleRouting(bool b)
{
ui._max_tr_up_per_sec_SB->setEnabled(b) ;
ui._routing_info_PB->setEnabled(true) ; // always enabled!
rsTurtle->setEnabled(b) ;
}
@ -224,6 +253,34 @@ void ServerPage::updateStatus()
ui.localAddress->setText(QString::fromStdString(detail.localAddr));
/* set the server address */
ui.extAddress->setText(QString::fromStdString(detail.extAddr));
// Now update network bits.
//
rsiface->lockData(); /* Lock Interface */
/* now the extra bit .... switch on check boxes */
const RsConfig &config = rsiface->getConfig();
/******* Network Status Tab *******/
if(config.netUpnpOk)
ui.iconlabel_upnp->setPixmap(QPixmap(":/images/ledon1.png"));
else
ui.iconlabel_upnp->setPixmap(QPixmap(":/images/ledoff1.png"));
if (config.netLocalOk)
ui.iconlabel_netLimited->setPixmap(QPixmap(":/images/ledon1.png"));
else
ui.iconlabel_netLimited->setPixmap(QPixmap(":/images/ledoff1.png"));
if (config.netExtraAddressOk)
ui.iconlabel_ext->setPixmap(QPixmap(":/images/ledon1.png"));
else
ui.iconlabel_ext->setPixmap(QPixmap(":/images/ledoff1.png"));
rsiface->unlockData(); /* UnLock Interface */
}
void ServerPage::toggleUPnP()

View file

@ -25,6 +25,8 @@
#include <retroshare-gui/configpage.h>
#include "ui_ServerPage.h"
class TurtleRouterDialog ;
class ServerPage: public ConfigPage
{
Q_OBJECT
@ -47,6 +49,7 @@ public slots:
private slots:
void saveAddresses();
void toggleUPnP();
void showRoutingInfo();
void toggleIpDetermination(bool) ;
void toggleTunnelConnection(bool) ;
void updateMaxTRUpRate(int) ;
@ -54,6 +57,8 @@ private slots:
private:
Ui::ServerPage ui;
TurtleRouterDialog *_routing_info_page ;
};
#endif // !SERVERPAGE_H

View file

@ -6,184 +6,14 @@
<rect>
<x>0</x>
<y>0</y>
<width>573</width>
<height>421</height>
<width>632</width>
<height>683</height>
</rect>
</property>
<layout class="QGridLayout">
<property name="margin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Network Configuration</string>
</property>
<layout class="QHBoxLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QComboBox" name="netModeComboBox">
<item>
<property name="text">
<string>Automatic (UPnP)</string>
</property>
</item>
<item>
<property name="text">
<string>Firewalled</string>
</property>
</item>
<item>
<property name="text">
<string>Manually Forwarded Port</string>
</property>
</item>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="discComboBox">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>The DHT allows you to answer connection
requests from your friends using BitTorrent's DHT.
It greatly improves the connectivity.
The Discovery service sends locations and PGP
identities of your trusted contacts to connected
peers, to help them choose new friends.
The friendship is never automatic however, and both
peers still need to trust each other to allow connection. </string>
</property>
<item>
<property name="text">
<string>Public: DHT &amp; Discovery</string>
</property>
</item>
<item>
<property name="text">
<string>Private: Discovery Only</string>
</property>
</item>
<item>
<property name="text">
<string>Inverted: DHT Only</string>
</property>
</item>
<item>
<property name="text">
<string>Dark Net: None</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="groupBox_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Transfer Rates</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="label_14">
<property name="text">
<string>Download (KB/s) </string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="totalDownloadRate">
<property name="suffix">
<string>kB/s</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="_2">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="label_15">
<property name="text">
<string>Upload (KB/s) </string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="totalUploadRate">
<property name="suffix">
<string>kB/s</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
@ -193,142 +23,313 @@ peers still need to trust each other to allow connection. </string>
<attribute name="title">
<string>Network Configuration</string>
</attribute>
<layout class="QGridLayout">
<item row="2" column="0">
<widget class="QCheckBox" name="allowTunnelConnectionCB">
<property name="toolTip">
<string>If you uncheck this, RetroShare will not use tunnel connection between peers that are firewalled and cannot connect directly. This is independent from F2F routing (turtle router).</string>
</property>
<property name="text">
<string>Allow Tunnel Connection</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout">
<widget class="QComboBox" name="netModeComboBox">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Local Address</string>
</property>
</widget>
<property name="text">
<string>Automatic (UPnP)</string>
</property>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>External Address</string>
</property>
</widget>
<property name="text">
<string>Firewalled</string>
</property>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Dynamic DNS</string>
<property name="text">
<string>Manually Forwarded Port</string>
</property>
</item>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="discComboBox">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>The DHT allows you to answer connection
requests from your friends using BitTorrent's DHT.
It greatly improves the connectivity.
The Discovery service sends locations and PGP
identities of your trusted contacts to connected
peers, to help them choose new friends.
The friendship is never automatic however, and both
peers still need to trust each other to allow connection. </string>
</property>
<item>
<property name="text">
<string>Public: DHT &amp; Discovery</string>
</property>
</item>
<item>
<property name="text">
<string>Private: Discovery Only</string>
</property>
</item>
<item>
<property name="text">
<string>Inverted: DHT Only</string>
</property>
</item>
<item>
<property name="text">
<string>Dark Net: None</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<layout class="QVBoxLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Local Address</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>External Address</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Dynamic DNS</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout">
<property name="spacing">
<number>6</number>
</property>
</widget>
<item row="0" column="0">
<widget class="QLineEdit" name="localAddress"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Port:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="localPort">
<property name="toolTip">
<string>Acceptable ports range from 1024 to 65535. Ports below 1024 are reserved by your system.</string>
</property>
<property name="minimum">
<number>1024</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>7812</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLineEdit" name="extAddress"/>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Port:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="extPort">
<property name="toolTip">
<string>Acceptable ports range from 1024 to 65535. Ports below 1024 are reserved by your system.</string>
</property>
<property name="minimum">
<number>1024</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>7812</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLineEdit" name="dynDNS"/>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout">
<property name="spacing">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QLineEdit" name="localAddress"/>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="_4">
<property name="leftMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="iconlabel_netLimited">
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/ledoff1.png</pixmap>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="textlabel_netLimited">
<property name="text">
<string>Local network</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Port:</string>
<item>
<layout class="QGridLayout" name="_6">
<property name="leftMargin">
<number>6</number>
</property>
</widget>
<property name="rightMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="iconlabel_ext">
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/ledoff1.png</pixmap>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="textlabel_ext">
<property name="text">
<string>External ip address finder</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="localPort">
<property name="toolTip">
<string>Acceptable ports range from 1024 to 65535. Ports below 1024 are reserved by your system.</string>
<item>
<layout class="QGridLayout" name="_5">
<property name="leftMargin">
<number>6</number>
</property>
<property name="minimum">
<number>1024</number>
<property name="rightMargin">
<number>6</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>7812</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLineEdit" name="extAddress"/>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Port:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="extPort">
<property name="toolTip">
<string>Acceptable ports range from 1024 to 65535. Ports below 1024 are reserved by your system.</string>
</property>
<property name="minimum">
<number>1024</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>7812</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLineEdit" name="dynDNS"/>
<item row="0" column="0">
<widget class="QLabel" name="iconlabel_upnp">
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/ledoff1.png</pixmap>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="textlabel_upnp">
<property name="text">
<string>UPnP</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>Known / Previous IPs:</string>
</property>
<property name="sizeHint" stdset="0">
</widget>
</item>
<item>
<widget class="QListWidget" name="ipAddressList">
<property name="maximumSize">
<size>
<width>20</width>
<height>40</height>
<width>16777215</width>
<height>150</height>
</size>
</property>
</spacer>
</widget>
</item>
<item row="3" column="0">
<item>
<widget class="QCheckBox" name="showDiscStatusBar">
<property name="text">
<string>Show Discovery information in statusbar</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>IP Service</string>
</attribute>
<layout class="QGridLayout">
<item row="0" column="0">
<item>
<widget class="QCheckBox" name="allowIpDeterminationCB">
<property name="toolTip">
<string>If you uncheck this, RetroShare can only determine your IP
@ -344,68 +345,172 @@ behind a firewall or a VPN.</string>
</property>
</widget>
</item>
<item row="1" column="0">
<item>
<widget class="QListWidget" name="IPServersLV">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
<zorder>showDiscStatusBar</zorder>
<zorder>allowIpDeterminationCB</zorder>
<zorder>IPServersLV</zorder>
<zorder></zorder>
<zorder>textlabel_ext</zorder>
<zorder>textlabel_netLimited</zorder>
<zorder>ipAddressList</zorder>
<zorder>label_7</zorder>
</widget>
<widget class="QWidget" name="tab_3">
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Turtle router</string>
<string>Bandwidth</string>
</attribute>
<layout class="QGridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_7">
<property name="maximumSize">
<size>
<width>24</width>
<height>24</height>
</size>
<widget class="QGroupBox" name="groupBox_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/informations_24x24.png</pixmap>
<property name="title">
<string>Max Transfer Rates</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="label_14">
<property name="text">
<string>Download (KB/s) </string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="totalDownloadRate">
<property name="suffix">
<string>kB/s</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="_2">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="label_15">
<property name="text">
<string>Upload (KB/s) </string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="totalUploadRate">
<property name="suffix">
<string>kB/s</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="allowTunnelConnectionCB">
<property name="toolTip">
<string>If you uncheck this, RetroShare will not use tunnel connection between peers that are firewalled and cannot connect directly. This is independent from F2F routing (turtle router).</string>
</property>
<property name="text">
<string>Allow Tunnel Connection</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_8">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Warning</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QPlainTextEdit" name="plainTextEdit">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="plainText">
<string>This tab contains hard-core parameters which are unlikely to need modification. Don't change them unless you really know what you're doing.</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
</layout>
</widget>
<widget class="QWidget" name="TurtleRouter_TAB">
<attribute name="title">
<string>Turtle router</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QCheckBox" name="_turtle_enabled_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;justify&quot;&gt;Unchecking this disables all anonymous routing activity, except cache cleaning. Incoming tunnel requests are discarded, and no tunnel requests are sent to anyone.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="_routing_info_PB">
<property name="text">
<string>Show routing info</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Max. tunnel requests forwarded per second:</string>
<string>Max. tunnel req. forwarded per second:</string>
</property>
</widget>
</item>
@ -436,29 +541,6 @@ The default value is 20.</string>
</item>
</layout>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="_turtle_enabled_CB">
<property name="toolTip">
<string>Unchecking this disables all anonymous routing activity, except cache cleaning. Incoming tunnel requests are discarded, and no tunnel requests are sent to anyone.</string>
</property>
<property name="text">
<string>Enable anonymous data routing</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
@ -474,17 +556,14 @@ The default value is 20.</string>
<tabstop>extAddress</tabstop>
<tabstop>extPort</tabstop>
<tabstop>dynDNS</tabstop>
<tabstop>allowTunnelConnectionCB</tabstop>
<tabstop>showDiscStatusBar</tabstop>
<tabstop>totalDownloadRate</tabstop>
<tabstop>totalUploadRate</tabstop>
<tabstop>allowIpDeterminationCB</tabstop>
<tabstop>IPServersLV</tabstop>
<tabstop>plainTextEdit</tabstop>
<tabstop>_max_tr_up_per_sec_SB</tabstop>
</tabstops>
<resources>
<include location="../images.qrc"/>
<include location="images.qrc"/>
</resources>
<connections/>
</ui>