added the basic natstatus feature for statusbar,

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1150 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
defnax 2009-05-01 12:45:27 +00:00
parent 9113d01977
commit 255b5dca39
6 changed files with 225 additions and 19 deletions

View File

@ -1,4 +1,4 @@
CONFIG += qt gui uic qrc resources uitools release CONFIG += qt gui uic qrc resources uitools debug
QT += network xml script QT += network xml script
TEMPLATE = app TEMPLATE = app
TARGET = RetroShare TARGET = RetroShare
@ -215,6 +215,8 @@ HEADERS += rshare.h \
gui/Settings/ServerPage.h \ gui/Settings/ServerPage.h \
gui/Settings/NetworkPage.h \ gui/Settings/NetworkPage.h \
gui/statusbar/peerstatus.h \ gui/statusbar/peerstatus.h \
gui/statusbar/dhtstatus.h \
gui/statusbar/natstatus.h \
gui/advsearch/advancedsearchdialog.h \ gui/advsearch/advancedsearchdialog.h \
gui/advsearch/expressionwidget.h \ gui/advsearch/expressionwidget.h \
gui/advsearch/guiexprelement.h \ gui/advsearch/guiexprelement.h \
@ -431,6 +433,8 @@ SOURCES += main.cpp \
gui/Settings/ServerPage.cpp \ gui/Settings/ServerPage.cpp \
gui/Settings/NetworkPage.cpp \ gui/Settings/NetworkPage.cpp \
gui/statusbar/peerstatus.cpp \ gui/statusbar/peerstatus.cpp \
gui/statusbar/dhtstatus.cpp \
gui/statusbar/natstatus.cpp \
gui/toaster/ChatToaster.cpp \ gui/toaster/ChatToaster.cpp \
gui/toaster/MessageToaster.cpp \ gui/toaster/MessageToaster.cpp \
gui/toaster/CallToaster.cpp \ gui/toaster/CallToaster.cpp \

View File

@ -54,6 +54,8 @@
#include "statusbar/peerstatus.h" #include "statusbar/peerstatus.h"
#include "statusbar/dhtstatus.h" #include "statusbar/dhtstatus.h"
#include "statusbar/natstatus.h"
#include "Preferences/PreferencesWindow.h" #include "Preferences/PreferencesWindow.h"
#include "Settings/gsettingswin.h" #include "Settings/gsettingswin.h"
#include "util/rsversion.h" #include "util/rsversion.h"
@ -312,12 +314,16 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
ui.toolBarservice->addSeparator(); ui.toolBarservice->addSeparator();
#endif #endif
/** StatusBar section **/
peerstatus = new PeerStatus(); peerstatus = new PeerStatus();
statusBar()->addWidget(peerstatus); statusBar()->addWidget(peerstatus);
dhtstatus = new DHTStatus(); dhtstatus = new DHTStatus();
statusBar()->addWidget(dhtstatus); statusBar()->addWidget(dhtstatus);
natstatus = new NATStatus();
statusBar()->addWidget(natstatus);
QWidget *widget = new QWidget(); QWidget *widget = new QWidget();
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0); sizePolicy.setHorizontalStretch(0);
@ -414,6 +420,9 @@ void MainWindow::updateStatus()
if (dhtstatus) if (dhtstatus)
dhtstatus->getDHTStatus(); dhtstatus->getDHTStatus();
if (natstatus)
natstatus->getNATStatus();
} }
void MainWindow::updateHashingInfo(const QString& s) void MainWindow::updateHashingInfo(const QString& s)

View File

@ -62,6 +62,7 @@ class SMPlayer;
class PeerStatus; class PeerStatus;
class DHTStatus; class DHTStatus;
class NATStatus;
void openFile(std::string path); void openFile(std::string path);
@ -216,6 +217,8 @@ private:
QLabel *statusRates; QLabel *statusRates;
PeerStatus *peerstatus; PeerStatus *peerstatus;
DHTStatus *dhtstatus; DHTStatus *dhtstatus;
NATStatus *natstatus;
QLabel *_hashing_info_label ; QLabel *_hashing_info_label ;

View File

@ -639,20 +639,20 @@ void NetworkDialog::getNetworkStatus()
if(config.netUdpOk) if(config.netUdpOk)
{ {
setLogInfo(tr("UDP Port is Reacheable"), QString::fromUtf8("green")); setLogInfo(tr("UDP Port is reachable"), QString::fromUtf8("green"));
} }
else else
{ {
setLogInfo(tr("UDP Port isnt Reacheable"), QString::fromUtf8("red")); setLogInfo(tr("UDP Port is not reachable"), QString::fromUtf8("red"));
} }
if(config.netTcpOk) if(config.netTcpOk)
{ {
setLogInfo(tr("TCP Port is Reacheable"), QString::fromUtf8("green")); setLogInfo(tr("TCP Port is reachable"), QString::fromUtf8("green"));
} }
else else
{ {
setLogInfo(tr("TCP Port is not Reacheable"), QString::fromUtf8("red")); setLogInfo(tr("TCP Port is not reachable"), QString::fromUtf8("red"));
} }
if (config.netExtOk) if (config.netExtOk)

View File

@ -0,0 +1,145 @@
/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2009 RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#include "natstatus.h"
#include <QtGui>
#include <QString>
#include <QLayout>
#include <QLabel>
#include <QIcon>
#include <QPainter>
#include <QPixmap>
#include "rsiface/rsiface.h"
#include "rsiface/rspeers.h"
#include <sstream>
#include <iomanip>
NATStatus::NATStatus(QWidget *parent)
: QWidget(parent)
{
QHBoxLayout *hbox = new QHBoxLayout();
hbox->setMargin(0);
hbox->setSpacing(6);
statusNAT = new QLabel( tr("<strong>NAT:</strong>"), this );
//statusDHT->setMinimumSize( statusPeers->frameSize().width() + 0, 0 );
hbox->addWidget(statusNAT);
iconLabel = new QLabel( this );
iconLabel->setPixmap(QPixmap::QPixmap(":/images/grayled.png"));
// iconLabel doesn't change over time, so we didn't need a minimum size
hbox->addWidget(iconLabel);
setLayout( hbox );
}
NATStatus::~NATStatus()
{
}
void NATStatus::getNATStatus()
{
rsiface->lockData(); /* Lock Interface */
/* now the extra bit .... switch on check boxes */
const RsConfig &config = rsiface->getConfig();
if(config.netUpnpOk)
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/greenled.png"));
iconLabel->setToolTip(tr("UPNP is active."));
}
else
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/yellowled.png"));
iconLabel->setToolTip(tr("UPNP NOT FOUND."));
}
if(config.netExtOk)
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/greenled.png"));
iconLabel->setToolTip(tr("Stable External IP Address"));
}
else
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/yellowled.png"));
iconLabel->setToolTip(tr("Not Found External Address"));
}
if(config.netUdpOk)
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/greenled.png"));
iconLabel->setToolTip(tr("UDP Port is reachable"));
}
else
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/yellowled.png"));
iconLabel->setToolTip(tr("UDP Port is not reachable"));
}
if(config.netTcpOk)
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/greenled.png"));
iconLabel->setToolTip(tr("TCP Port is reachable"));
}
else
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/yellowled.png"));
iconLabel->setToolTip(tr("TCP Port is not reachable"));
}
if (config.netExtOk)
{
if (config.netUpnpOk || config.netTcpOk)
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/greenled.png"));
iconLabel->setToolTip(tr("RetroShare Server"));
}
else
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/greenled.png"));
iconLabel->setToolTip(tr("UDP Server"));
}
}
else if (config.netOk)
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/grayled.png"));
iconLabel->setToolTip(tr("Net Limited"));
}
else
{
iconLabel->setPixmap(QPixmap::QPixmap(":/images/redled.png"));
iconLabel->setToolTip(tr("No Conectivity"));
}
rsiface->unlockData(); /* UnLock Interface */
}

View File

@ -0,0 +1,45 @@
/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2009 RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef NATSTATUS_H
#define NATSTATUS_H
#include "gui/MainWindow.h"
#include <QWidget>
class NATStatus : public QWidget
{
Q_OBJECT
public:
NATStatus(QWidget *parent = 0);
~NATStatus();
void getNATStatus( );
private:
class QLabel *iconLabel, *statusNAT;
};
#endif