summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro2
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp99
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.h12
-rw-r--r--noncore/net/wellenreiter/gui/statwindow.cpp45
-rw-r--r--noncore/net/wellenreiter/gui/statwindow.h40
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp178
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h10
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.cpp21
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.h4
9 files changed, 278 insertions, 133 deletions
diff --git a/noncore/net/wellenreiter/gui/gui.pro b/noncore/net/wellenreiter/gui/gui.pro
index 5970b01..08eb18a 100644
--- a/noncore/net/wellenreiter/gui/gui.pro
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -9,8 +9,9 @@ HEADERS = wellenreiterbase.h \
wellenreiter.h \
scanlist.h \
logwindow.h \
hexwindow.h \
+ statwindow.h \
configwindow.h \
manufacturers.h
SOURCES = main.cpp \
@@ -19,8 +20,9 @@ SOURCES = main.cpp \
wellenreiter.cpp \
scanlist.cpp \
logwindow.cpp \
hexwindow.cpp \
+ statwindow.cpp \
configwindow.cpp \
manufacturers.cpp
INCLUDEPATH += $(OPIEDIR)/include
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp
index 69d2b3a..94e3f28 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.cpp
+++ b/noncore/net/wellenreiter/gui/mainwindow.cpp
@@ -59,32 +59,28 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
// setup icon sets
infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) );
settingsIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SettingsIcon" ) );
- #ifdef QWS
- searchIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) );
- cancelIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/CancelIcon" ) );
- #else
- startStopIconSet = new QIconSet();
- startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/SearchIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::Off );
- startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/CancelIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::On );
- #endif
+ startIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) );
+ stopIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/CancelIcon" ) );
// setup tool buttons
- startStopButton = new QToolButton( 0 );
+ startButton = new QToolButton( 0 );
#ifdef QWS
- startStopButton->setAutoRaise( true );
+ startButton->setAutoRaise( true );
#endif
+ startButton->setIconSet( *startIconSet );
+ startButton->setEnabled( false );
+ connect( startButton, SIGNAL( clicked() ), mw, SLOT( startClicked() ) );
+
+ stopButton = new QToolButton( 0 );
#ifdef QWS
- startStopButton->setOnIconSet( *cancelIconSet );
- startStopButton->setOffIconSet( *searchIconSet );
- #else
- startStopButton->setIconSet( *startStopIconSet );
+ stopButton->setAutoRaise( true );
#endif
- startStopButton->setToggleButton( true );
- connect( startStopButton, SIGNAL( clicked() ), mw, SLOT( startStopClicked() ) );
- startStopButton->setEnabled( false );
+ stopButton->setIconSet( *stopIconSet );
+ stopButton->setEnabled( false );
+ connect( stopButton, SIGNAL( clicked() ), mw, SLOT( stopClicked() ) );
QToolButton* c = new QToolButton( 0 );
#ifdef QWS
c->setAutoRaise( true );
@@ -124,40 +120,51 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
QPopupMenu* view = new QPopupMenu( mb );
view->insertItem( "&Configure..." );
QPopupMenu* sniffer = new QPopupMenu( mb );
- sniffer->insertItem( "&Configure..." );
+ sniffer->insertItem( "&Configure...", this, SLOT( showConfigure() ) );
sniffer->insertSeparator();
+ startID = sniffer->insertItem( "&Start", mw, SLOT( startClicked() ) );
+ sniffer->setItemEnabled( startID, false );
+ stopID = sniffer->insertItem( "Sto&p", mw, SLOT( stopClicked() ) );
+ sniffer->setItemEnabled( stopID, false );
QPopupMenu* demo = new QPopupMenu( mb );
demo->insertItem( "&Add something", this, SLOT( demoAddStations() ) );
id = mb->insertItem( "&File", file );
id = mb->insertItem( "&View", view );
mb->setItemEnabled( id, false );
id = mb->insertItem( "&Sniffer", sniffer );
- mb->setItemEnabled( id, false );
id = mb->insertItem( "&Demo", demo );
mb->setItemEnabled( id, true );
#ifdef QWS
- mb->insertItem( startStopButton );
+ mb->insertItem( startButton );
+ mb->insertItem( stopButton );
mb->insertItem( c );
mb->insertItem( d );
#else // Qt3 changed the insertion order. It's now totally random :(
mb->insertItem( d );
mb->insertItem( c );
- mb->insertItem( startStopButton );
+ mb->insertItem( stopButton );
+ mb->insertItem( startButton );
#endif
+ updateToolButtonState();
+
// setup status bar (for now only on X11)
#ifndef QWS
statusBar()->message( "Ready." );
#endif
+ connect( mw, SIGNAL( startedSniffing() ), this, SLOT( changedSniffingState() ) );
+ connect( mw, SIGNAL( stoppedSniffing() ), this, SLOT( changedSniffingState() ) );
};
+
+
void WellenreiterMainWindow::showConfigure()
{
qDebug( "show configure..." );
cw->setCaption( tr( "Configure" ) );
@@ -165,37 +172,47 @@ void WellenreiterMainWindow::showConfigure()
cw->showMaximized();
#endif
int result = cw->exec();
- if ( result )
- {
- // check configuration from config window
+ if ( result ) updateToolButtonState();
+}
- const QString& interface = cw->interfaceName->currentText();
- const int cardtype = cw->daemonDeviceType();
- const int interval = cw->daemonHopInterval();
- if ( ( interface != "<select>" ) && ( cardtype != 0 ) )
- startStopButton->setEnabled( true );
- //TODO ...
- else
- startStopButton->setEnabled( false );
- //TODO ...
+
+void WellenreiterMainWindow::updateToolButtonState()
+{
+ const QString& interface = cw->interfaceName->currentText();
+ const int cardtype = cw->daemonDeviceType();
+ const int interval = cw->daemonHopInterval();
+
+ if ( ( interface != "<select>" ) && ( cardtype != 0 ) )
+ {
+ startButton->setEnabled( true );
+ menuBar()->setItemEnabled( startID, true );
+ }
+ else
+ {
+ startButton->setEnabled( false );
+ menuBar()->setItemEnabled( startID, false );
}
}
-WellenreiterMainWindow::~WellenreiterMainWindow()
+
+void WellenreiterMainWindow::changedSniffingState()
{
+ startButton->setEnabled( !mw->sniffing );
+ menuBar()->setItemEnabled( startID, !mw->sniffing );
+ stopButton->setEnabled( mw->sniffing );
+ menuBar()->setItemEnabled( stopID, mw->sniffing );
+}
+
+WellenreiterMainWindow::~WellenreiterMainWindow()
+{
delete infoIconSet;
delete settingsIconSet;
- #ifdef QWS
- delete searchIconSet;
- delete cancelIconSet;
- #else
- delete startStopIconSet;
- #endif
-
+ delete startIconSet;
+ delete stopIconSet;
};
void WellenreiterMainWindow::demoAddStations()
{
diff --git a/noncore/net/wellenreiter/gui/mainwindow.h b/noncore/net/wellenreiter/gui/mainwindow.h
index 1b08c5b..1e191e5 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.h
+++ b/noncore/net/wellenreiter/gui/mainwindow.h
@@ -34,18 +34,21 @@ class WellenreiterMainWindow: public QMainWindow
protected:
Wellenreiter* mw;
WellenreiterConfigWindow* cw;
- QIconSet* startStopIconSet;
- const QIconSet* searchIconSet;
+ const QIconSet* startIconSet;
+ const QIconSet* stopIconSet;
const QIconSet* infoIconSet;
const QIconSet* settingsIconSet;
- const QIconSet* cancelIconSet;
- QToolButton* startStopButton;
+ QToolButton* startButton;
+ QToolButton* stopButton;
+ int startID;
+ int stopID;
protected:
virtual void closeEvent( QCloseEvent* );
+ void updateToolButtonState();
private:
QString getFileName( bool save );
@@ -56,7 +59,8 @@ class WellenreiterMainWindow: public QMainWindow
void fileSaveHex();
void fileSaveSession();
void fileLoadSession();
void fileNew();
+ void changedSniffingState();
};
#endif
diff --git a/noncore/net/wellenreiter/gui/statwindow.cpp b/noncore/net/wellenreiter/gui/statwindow.cpp
new file mode 100644
index 0000000..07d34ef
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/statwindow.cpp
@@ -0,0 +1,45 @@
+/**********************************************************************
+** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
+**
+** This file is part of Opie Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#include "statwindow.h"
+#include <qmultilineedit.h>
+
+MStatWindow::MStatWindow( QWidget * parent, const char * name, WFlags f )
+ :QVBox( parent, name, f )
+{
+ ledit = new QMultiLineEdit( this );
+ ledit->setFont( QFont( "fixed", 10 ) );
+
+ // FIXME: Set properties( font, read-only, etc...)
+
+};
+
+void MStatWindow::log( QString text )
+{
+
+ ledit->append( text );
+
+};
+
+const QString MStatWindow::getLog() const
+{
+ return ledit->text();
+}
+
+void MStatWindow::clear()
+{
+ ledit->clear();
+}
+
diff --git a/noncore/net/wellenreiter/gui/statwindow.h b/noncore/net/wellenreiter/gui/statwindow.h
new file mode 100644
index 0000000..bbdf777
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/statwindow.h
@@ -0,0 +1,40 @@
+/**********************************************************************
+** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
+**
+** This file is part of Opie Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#ifndef STATWINDOW_H
+#define STATWINDOW_H
+
+#include <qvbox.h>
+
+class QString;
+class QMultiLineEdit;
+
+class MStatWindow: public QVBox
+{
+
+ public:
+ MStatWindow( QWidget * parent = 0, const char * name = "MStatWindow", WFlags f = 0 );
+
+ void log( QString text );
+ const QString getLog() const;
+ void clear();
+
+ protected:
+ QMultiLineEdit* ledit;
+
+};
+
+#endif
+
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 0bfc8e9..3372883 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -33,8 +33,9 @@ using namespace Opie;
#include <qpushbutton.h>
#include <qmessagebox.h>
#include <qcombobox.h>
#include <qspinbox.h>
+#include <qtoolbutton.h>
#include <qmainwindow.h>
// Standard
@@ -51,9 +52,9 @@ using namespace Opie;
#include "scanlist.h"
#include "logwindow.h"
#include "hexwindow.h"
#include "configwindow.h"
-
+#include "statwindow.h"
#include "manufacturers.h"
Wellenreiter::Wellenreiter( QWidget* parent )
: WellenreiterBase( parent, 0, 0 ),
@@ -216,100 +217,123 @@ void Wellenreiter::receivePacket(OPacket* p)
return;
}
}
-void Wellenreiter::startStopClicked()
+
+void Wellenreiter::stopClicked()
{
- if ( sniffing )
+ disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
+ disconnect( SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) );
+ iface->setChannelHopping(); // stop hopping channels
+ pcap->close();
+ sniffing = false;
+ #ifdef QWS
+ oApp->setTitle();
+ #else
+ qApp->mainWidget()->setCaption( "Wellenreiter II" );
+ #endif
+
+ // get interface name from config window
+ const QString& interface = configwindow->interfaceName->currentText();
+ ONetwork* net = ONetwork::instance();
+ iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
+
+ // switch off monitor mode
+ iface->setMonitorMode( false );
+ // switch off promisc flag
+ iface->setPromiscuousMode( false );
+
+ system( "cardctl reset; sleep 1" ); //FIXME: Use OProcess
+ logwindow->log( "(i) Stopped Scanning." );
+ assert( parent() );
+ ( (QMainWindow*) parent() )->setCaption( "Wellenreiter II" );
+
+ // message the user
+ QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." );
+
+ sniffing = false;
+ emit( stoppedSniffing() );
+
+ // print out statistics
+ statwindow->log( "-----------------------------------------" );
+ statwindow->log( "- Wellenreiter II Capturing Statistic -" );
+ statwindow->log( "-----------------------------------------" );
+ statwindow->log( "Packet Type | Receive Count" );
+
+ for( QMap<QString,int>::ConstIterator it = pcap->statistics().begin(); it != pcap->statistics().end(); ++it )
{
- disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
- disconnect( SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) );
- iface->setChannelHopping(); // stop hopping channels
- pcap->close();
- sniffing = false;
- #ifdef QWS
- oApp->setTitle();
- #else
- qApp->mainWidget()->setCaption( "Wellenreiter II" );
- #endif
-
- // get interface name from config window
- const QString& interface = configwindow->interfaceName->currentText();
- ONetwork* net = ONetwork::instance();
- iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
-
- // switch off monitor mode
- iface->setMonitorMode( false );
- // switch off promisc flag
- iface->setPromiscuousMode( false );
-
- system( "cardctl reset; sleep 1" ); //FIXME: Use OProcess
- logwindow->log( "(i) Stopped Scanning." );
- assert( parent() );
- ( (QMainWindow*) parent() )->setCaption( "Wellenreiter II" );
-
- // message the user
- QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." );
+ QString left;
+ left.sprintf( "%s", (const char*) it.key() );
+ left = left.leftJustify( 20 );
+ left.append( '|' );
+ QString right;
+ right.sprintf( "%d", it.data() );
+ right = right.rightJustify( 7 );
+ statwindow->log( left + right );
}
- else
- {
- // get configuration from config window
+}
- const QString& interface = configwindow->interfaceName->currentText();
- const int cardtype = configwindow->daemonDeviceType();
- const int interval = configwindow->daemonHopInterval();
- if ( ( interface == "" ) || ( cardtype == 0 ) )
- {
- QMessageBox::information( this, "Wellenreiter II", "Your device is not\nproperly configured. Please reconfigure!" );
- return;
- }
+void Wellenreiter::startClicked()
+{
+ // get configuration from config window
- // configure device
+ const QString& interface = configwindow->interfaceName->currentText();
+ const int cardtype = configwindow->daemonDeviceType();
+ const int interval = configwindow->daemonHopInterval();
- ONetwork* net = ONetwork::instance();
- iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
+ if ( ( interface == "" ) || ( cardtype == 0 ) )
+ {
+ QMessageBox::information( this, "Wellenreiter II", "Your device is not\nproperly configured. Please reconfigure!" );
+ return;
+ }
- // set monitor mode
+ // configure device
- switch ( cardtype )
- {
- case 1: iface->setMonitoring( new OCiscoMonitoringInterface( iface ) ); break;
- case 2: iface->setMonitoring( new OWlanNGMonitoringInterface( iface ) ); break;
- case 3: iface->setMonitoring( new OHostAPMonitoringInterface( iface ) ); break;
- case 4: iface->setMonitoring( new OOrinocoMonitoringInterface( iface ) ); break;
- default: assert( 0 ); // shouldn't happen
- }
+ ONetwork* net = ONetwork::instance();
+ iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
- iface->setMonitorMode( true );
+ // set monitor mode
- if ( !iface->monitorMode() )
- {
- QMessageBox::warning( this, "Wellenreiter II", "Can't set device into monitor mode." );
- return;
- }
+ switch ( cardtype )
+ {
+ case 1: iface->setMonitoring( new OCiscoMonitoringInterface( iface ) ); break;
+ case 2: iface->setMonitoring( new OWlanNGMonitoringInterface( iface ) ); break;
+ case 3: iface->setMonitoring( new OHostAPMonitoringInterface( iface ) ); break;
+ case 4: iface->setMonitoring( new OOrinocoMonitoringInterface( iface ) ); break;
+ default:
+ QMessageBox::information( this, "Wellenreiter II", "Bring your device into\nmonitor mode now." );
+ }
- // open pcap and start sniffing
- pcap->open( interface );
+ if ( cardtype > 0 && cardtype < 5 )
+ iface->setMonitorMode( true );
- if ( !pcap->isOpen() )
- {
- QMessageBox::warning( this, "Wellenreiter II", "Can't open packet capturer:\n" + QString(strerror( errno ) ));
- return;
- }
+ if ( !iface->monitorMode() )
+ {
+ QMessageBox::warning( this, "Wellenreiter II", "Can't set device into monitor mode." );
+ return;
+ }
- // set capturer to non-blocking mode
- pcap->setBlocking( false );
+ // open pcap and start sniffing
+ pcap->open( interface );
- // start channel hopper
- iface->setChannelHopping( 1000 ); //use interval from config window
+ if ( !pcap->isOpen() )
+ {
+ QMessageBox::warning( this, "Wellenreiter II", "Can't open packet capturer:\n" + QString(strerror( errno ) ));
+ return;
+ }
- // connect
- connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
- connect( iface->channelHopper(), SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) );
+ // set capturer to non-blocking mode
+ pcap->setBlocking( false );
- logwindow->log( "(i) Started Scanning." );
- sniffing = true;
+ // start channel hopper
+ iface->setChannelHopping( 1000 ); //use interval from config window
- }
+ // connect
+ connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
+ connect( iface->channelHopper(), SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) );
+
+ logwindow->log( "(i) Started Scanning." );
+ sniffing = true;
+ emit( startedSniffing() );
}
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h
index 85f889b..839c77e 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.h
+++ b/noncore/net/wellenreiter/gui/wellenreiter.h
@@ -46,19 +46,25 @@ class Wellenreiter : public WellenreiterBase {
MLogWindow* logWindow() const { return logwindow; };
MHexWindow* hexWindow() const { return hexwindow; };
bool isDaemonRunning() const { return sniffing; };
+ bool sniffing;
+
public slots:
void channelHopped(int);
void receivePacket(OPacket*);
- void startStopClicked();
+ void startClicked();
+ void stopClicked();
+
+ signals:
+ void startedSniffing();
+ void stoppedSniffing();
private:
#ifdef QWS
OSystem _system; // Opie Operating System identifier
#endif
- bool sniffing;
OWirelessNetworkInterface* iface;
OPacketCapturer* pcap;
ManufacturerDB* manufacturerdb;
WellenreiterConfigWindow* configwindow;
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
index 3a703bc..245b9fc 100644
--- a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
@@ -29,8 +29,9 @@
#include "logwindow.h"
#include "hexwindow.h"
#include "scanlist.h"
+#include "statwindow.h"
#ifdef QWS
#include <qpe/resource.h>
#include <opie/otabwidget.h>
@@ -39,10 +40,10 @@
#include <qtabwidget.h>
#endif
-/*
- * Constructs a WellenreiterBase which is a child of 'parent', with the
+/*
+ * Constructs a WellenreiterBase which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
*/
WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags fl )
: QWidget( parent, name, fl )
@@ -77,18 +78,20 @@ WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags f
netview = new MScanListView( ap );
apLayout->addWidget( netview );
-
//--------- LOG TAB --------------
logwindow = new MLogWindow( TabWidget, "Log" );
-
//--------- HEX TAB --------------
hexwindow = new MHexWindow( TabWidget, "Hex" );
+ //--------- STAT TAB --------------
+
+ statwindow = new MStatWindow( TabWidget, "Stat" );
+
//--------- ABOUT TAB --------------
about = new QWidget( TabWidget, "about" );
aboutLayout = new QGridLayout( about );
@@ -124,27 +127,29 @@ WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags f
aboutLayout->addWidget( TextLabel1_4_2, 1, 0 );
#ifdef QWS
- TabWidget->addTab( ap, "wellenreiter/networks", tr( "Networks" ) );
+ TabWidget->addTab( ap, "wellenreiter/networks", tr( "Nets" ) );
TabWidget->addTab( logwindow, "wellenreiter/log", tr( "Log" ) );
TabWidget->addTab( hexwindow, "wellenreiter/hex", tr( "Hex" ) );
+ TabWidget->addTab( statwindow, "wellenreiter/stat", tr( "Stats" ) );
TabWidget->addTab( about, "wellenreiter/about", tr( "About" ) );
#else
TabWidget->addTab( ap, /* "wellenreiter/networks", */ tr( "Networks" ) );
TabWidget->addTab( logwindow, /* "wellenreiter/log", */ tr( "Log" ) );
TabWidget->addTab( hexwindow, /* "wellenreiter/hex", */ tr( "Hex" ) );
+ TabWidget->addTab( statwindow, /* "wellenreiter/hex", */ tr( "Stat" ) );
TabWidget->addTab( about, /* "wellenreiter/about", */ tr( "About" ) );
#endif
WellenreiterBaseLayout->addWidget( TabWidget );
-
+
#ifdef QWS
- TabWidget->setCurrentTab( tr( "Networks" ) );
+ TabWidget->setCurrentTab( tr( "Nets" ) );
#endif
}
-/*
+/*
* Destroys the object and frees any allocated resources
*/
WellenreiterBase::~WellenreiterBase()
{
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.h b/noncore/net/wellenreiter/gui/wellenreiterbase.h
index 1fa1ea3..ad2e96c 100644
--- a/noncore/net/wellenreiter/gui/wellenreiterbase.h
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.h
@@ -26,8 +26,9 @@ class MScanListView;
class MScanListItem;
class QPushButton;
class MLogWindow;
class MHexWindow;
+class MStatWindow;
#ifdef QWS
class OTabWidget;
#else
@@ -50,8 +51,9 @@ public:
QWidget* ap;
MScanListView* netview;
MLogWindow* logwindow;
MHexWindow* hexwindow;
+ MStatWindow* statwindow;
QWidget* about;
QLabel* PixmapLabel1_3_2;
QLabel* TextLabel1_4_2;
@@ -65,8 +67,8 @@ protected:
QPixmap* ani2;
QPixmap* ani3;
QPixmap* ani4;
-
+
};
#endif // WELLENREITERBASE_H