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
TEMPLATE = app
TARGET = RetroShare
@ -109,7 +109,7 @@ HEADERS += rshare.h \
gui/StartDialog.h \
gui/ChatDialog.h \
gui/BlogDialog.h \
gui/CalDialog.h \
gui/CalDialog.h \
gui/NetworkDialog.h \
gui/GenCertDialog.h \
gui/TransfersDialog.h \
@ -169,8 +169,8 @@ HEADERS += rshare.h \
util/log.h \
util/misc.h \
gui/bwgraph/bwgraph.h \
gui/profile/ProfileView.h \
gui/profile/ProfileEdit.h \
gui/profile/ProfileView.h \
gui/profile/ProfileEdit.h \
gui/chat/PopupChatDialog.h \
gui/connect/ConnectDialog.h \
gui/connect/ConfCertDialog.h \
@ -215,6 +215,8 @@ HEADERS += rshare.h \
gui/Settings/ServerPage.h \
gui/Settings/NetworkPage.h \
gui/statusbar/peerstatus.h \
gui/statusbar/dhtstatus.h \
gui/statusbar/natstatus.h \
gui/advsearch/advancedsearchdialog.h \
gui/advsearch/expressionwidget.h \
gui/advsearch/guiexprelement.h \
@ -235,7 +237,7 @@ HEADERS += rshare.h \
gui/MsgFeed.h \
gui/TransferFeed.h \
gui/ChannelFeed.h \
gui/GeneralMsgDialog.h \
gui/GeneralMsgDialog.h \
gui/feeds/FeedHolder.h \
gui/feeds/ForumNewItem.h \
gui/feeds/ForumMsgItem.h \
@ -252,8 +254,8 @@ HEADERS += rshare.h \
FORMS += gui/ChatDialog.ui \
gui/BlogDialog.ui \
gui/CalDialog.ui \
gui/BlogDialog.ui \
gui/CalDialog.ui \
gui/StartDialog.ui \
gui/GenCertDialog.ui \
gui/NetworkDialog.ui \
@ -275,15 +277,15 @@ FORMS += gui/ChatDialog.ui \
gui/PeersDialog.ui \
gui/SearchDialog.ui \
gui/SharedFilesDialog.ui \
gui/ShareManager.ui \
gui/ShareManager.ui \
gui/StatisticDialog.ui \
gui/MessagesDialog.ui \
gui/MessagesPopupDialog.ui \
gui/help/browser/helpbrowser.ui \
gui/HelpDialog.ui \
gui/bwgraph/bwgraph.ui \
gui/profile/ProfileView.ui \
gui/profile/ProfileEdit.ui \
gui/profile/ProfileView.ui \
gui/profile/ProfileEdit.ui \
gui/chat/PopupChatDialog.ui \
gui/connect/ConnectDialog.ui \
gui/connect/ConfCertDialog.ui \
@ -398,8 +400,8 @@ SOURCES += main.cpp \
util/printpreview.cpp \
util/log.cpp \
gui/bwgraph/bwgraph.cpp \
gui/profile/ProfileView.cpp \
gui/profile/ProfileEdit.cpp \
gui/profile/ProfileView.cpp \
gui/profile/ProfileEdit.cpp \
gui/chat/PopupChatDialog.cpp \
gui/connect/ConnectDialog.cpp \
gui/connect/ConfCertDialog.cpp \
@ -430,7 +432,9 @@ SOURCES += main.cpp \
gui/Settings/DirectoriesPage.cpp \
gui/Settings/ServerPage.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/MessageToaster.cpp \
gui/toaster/CallToaster.cpp \
@ -456,7 +460,7 @@ SOURCES += main.cpp \
gui/MsgFeed.cpp \
gui/TransferFeed.cpp \
gui/ChannelFeed.cpp \
gui/GeneralMsgDialog.cpp \
gui/GeneralMsgDialog.cpp \
gui/feeds/ForumNewItem.cpp \
gui/feeds/ForumMsgItem.cpp \
gui/feeds/PeerItem.cpp \

View File

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

View File

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

View File

@ -639,20 +639,20 @@ void NetworkDialog::getNetworkStatus()
if(config.netUdpOk)
{
setLogInfo(tr("UDP Port is Reacheable"), QString::fromUtf8("green"));
setLogInfo(tr("UDP Port is reachable"), QString::fromUtf8("green"));
}
else
{
setLogInfo(tr("UDP Port isnt Reacheable"), QString::fromUtf8("red"));
setLogInfo(tr("UDP Port is not reachable"), QString::fromUtf8("red"));
}
if(config.netTcpOk)
{
setLogInfo(tr("TCP Port is Reacheable"), QString::fromUtf8("green"));
setLogInfo(tr("TCP Port is reachable"), QString::fromUtf8("green"));
}
else
{
setLogInfo(tr("TCP Port is not Reacheable"), QString::fromUtf8("red"));
setLogInfo(tr("TCP Port is not reachable"), QString::fromUtf8("red"));
}
if (config.netExtOk)
@ -708,4 +708,4 @@ void NetworkDialog::on_actionTabsRounded_activated()
{
ui.networkTab->setTabShape(QTabWidget::Rounded);
ui.tabBottom->setTabShape(QTabWidget::Rounded);
}
}

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