summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/mainwindow.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/wellenreiter/gui/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp89
1 files changed, 53 insertions, 36 deletions
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
@@ -39,183 +39,200 @@
#include "resource.h"
#include <qapplication.h>
#include <qfiledialog.h>
#endif
WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * name, WFlags f )
:QMainWindow( parent, name, f )
{
cw = new WellenreiterConfigWindow( this );
mw = new Wellenreiter( this );
mw->setConfigWindow( cw );
setCentralWidget( mw );
// setup application icon
#ifndef QWS
setIcon( Resource::loadPixmap( "wellenreiter/appicon-trans" ) );
setIconText( "Wellenreiter/X11" );
#endif
// 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 );
#endif
c->setIconSet( *infoIconSet );
c->setEnabled( false );
QToolButton* d = new QToolButton( 0 );
#ifdef QWS
d->setAutoRaise( true );
#endif
d->setIconSet( *settingsIconSet );
connect( d, SIGNAL( clicked() ), this, SLOT( showConfigure() ) );
// setup menu bar
int id;
QMenuBar* mb = menuBar();
QPopupMenu* fileSave = new QPopupMenu( mb );
fileSave->insertItem( "&Session...", this, SLOT( fileSaveSession() ) );
fileSave->insertItem( "&Text Log...", this, SLOT( fileSaveLog() ) );
fileSave->insertItem( "&Hex Log...", this, SLOT( fileSaveHex() ) );
QPopupMenu* fileLoad = new QPopupMenu( mb );
fileLoad->insertItem( "&Session...", this, SLOT( fileLoadSession() ) );
//fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) );
QPopupMenu* file = new QPopupMenu( mb );
file->insertItem( "&New", this, SLOT( fileNew() ) );
id = file->insertItem( "&Load", fileLoad );
file->insertItem( "&Save", fileSave );
file->insertSeparator();
file->insertItem( "&Exit", qApp, SLOT( quit() ) );
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" ) );
#ifdef QWS
cw->showMaximized();
#endif
int result = cw->exec();
- if ( result )
- {
- // check configuration from config window
+ if ( result ) updateToolButtonState();
+}
+
+
+void WellenreiterMainWindow::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 ...
+ {
+ startButton->setEnabled( true );
+ menuBar()->setItemEnabled( startID, true );
+ }
else
- startStopButton->setEnabled( false );
- //TODO ...
+ {
+ 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()
{
mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 );
mw->netView()->addNewItem( "managed", "Vanille", "00:30:6D:EF:A6:23", true, 11, 10 );
mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 );
mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 );
mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 );
}
QString WellenreiterMainWindow::getFileName( bool save )
{
QMap<QString, QStringList> map;
map.insert( tr("All"), QStringList() );
QStringList text;
text << "text/*";
map.insert(tr("Text"), text );
text << "*";
map.insert(tr("All"), text );
QString str;
if ( save )
{