From 255b5dca39c6bc5e296bd92f1d4ee567bffe7798 Mon Sep 17 00:00:00 2001 From: defnax Date: Fri, 1 May 2009 12:45:27 +0000 Subject: [PATCH] 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 --- retroshare-gui/src/RetroShare.pro | 32 ++-- retroshare-gui/src/gui/MainWindow.cpp | 9 ++ retroshare-gui/src/gui/MainWindow.h | 3 + retroshare-gui/src/gui/NetworkDialog.cpp | 10 +- .../src/gui/statusbar/natstatus.cpp | 145 ++++++++++++++++++ retroshare-gui/src/gui/statusbar/natstatus.h | 45 ++++++ 6 files changed, 225 insertions(+), 19 deletions(-) create mode 100644 retroshare-gui/src/gui/statusbar/natstatus.cpp create mode 100644 retroshare-gui/src/gui/statusbar/natstatus.h diff --git a/retroshare-gui/src/RetroShare.pro b/retroshare-gui/src/RetroShare.pro index b2322ccf3..83bf80ee4 100644 --- a/retroshare-gui/src/RetroShare.pro +++ b/retroshare-gui/src/RetroShare.pro @@ -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 \ diff --git a/retroshare-gui/src/gui/MainWindow.cpp b/retroshare-gui/src/gui/MainWindow.cpp index 0733370a7..d7ffdd0c3 100644 --- a/retroshare-gui/src/gui/MainWindow.cpp +++ b/retroshare-gui/src/gui/MainWindow.cpp @@ -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(); } diff --git a/retroshare-gui/src/gui/MainWindow.h b/retroshare-gui/src/gui/MainWindow.h index 1f5be2966..830a799c3 100644 --- a/retroshare-gui/src/gui/MainWindow.h +++ b/retroshare-gui/src/gui/MainWindow.h @@ -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 ; diff --git a/retroshare-gui/src/gui/NetworkDialog.cpp b/retroshare-gui/src/gui/NetworkDialog.cpp index 9b4fe0b57..9260f7a10 100644 --- a/retroshare-gui/src/gui/NetworkDialog.cpp +++ b/retroshare-gui/src/gui/NetworkDialog.cpp @@ -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); -} \ No newline at end of file +} diff --git a/retroshare-gui/src/gui/statusbar/natstatus.cpp b/retroshare-gui/src/gui/statusbar/natstatus.cpp new file mode 100644 index 000000000..2547a4617 --- /dev/null +++ b/retroshare-gui/src/gui/statusbar/natstatus.cpp @@ -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 +#include + +#include +#include +#include +#include +#include + +#include "rsiface/rsiface.h" +#include "rsiface/rspeers.h" + +#include +#include + +NATStatus::NATStatus(QWidget *parent) + : QWidget(parent) +{ + QHBoxLayout *hbox = new QHBoxLayout(); + hbox->setMargin(0); + hbox->setSpacing(6); + + statusNAT = new QLabel( tr("NAT:"), 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 */ + +} + + diff --git a/retroshare-gui/src/gui/statusbar/natstatus.h b/retroshare-gui/src/gui/statusbar/natstatus.h new file mode 100644 index 000000000..a56646d2b --- /dev/null +++ b/retroshare-gui/src/gui/statusbar/natstatus.h @@ -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 + + +class NATStatus : public QWidget +{ +Q_OBJECT +public: + NATStatus(QWidget *parent = 0); + + ~NATStatus(); + + void getNATStatus( ); + + +private: + class QLabel *iconLabel, *statusNAT; + +}; + +#endif