summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter
authormickeyl <mickeyl>2003-05-05 22:27:58 (UTC)
committer mickeyl <mickeyl>2003-05-05 22:27:58 (UTC)
commit1a194aafffe37127758036e80ff55ead0c0e118d (patch) (side-by-side diff)
tree9880a12153767027386c05a808dbeea64bf33ae4 /noncore/net/wellenreiter
parent58a78cbe1bc5ded219ba23432041f20e03404403 (diff)
downloadopie-1a194aafffe37127758036e80ff55ead0c0e118d.zip
opie-1a194aafffe37127758036e80ff55ead0c0e118d.tar.gz
opie-1a194aafffe37127758036e80ff55ead0c0e118d.tar.bz2
re-add
Diffstat (limited to 'noncore/net/wellenreiter') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp170
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.h61
2 files changed, 231 insertions, 0 deletions
diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp
new file mode 100644
index 0000000..2305403
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/configwindow.cpp
@@ -0,0 +1,170 @@
+/**********************************************************************
+** 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.
+**
+**********************************************************************/
+
+/* LOCAL */
+#include "configwindow.h"
+#include "mainwindow.h"
+
+/* QT */
+#include <qapplication.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qfile.h>
+#include <qlineedit.h>
+#include <qlayout.h>
+#include <qmap.h>
+#include <qpushbutton.h>
+#include <qtoolbutton.h>
+#include <qspinbox.h>
+#include <qtextstream.h>
+
+/* OPIE */
+#include <opie2/onetwork.h>
+
+WellenreiterConfigWindow* WellenreiterConfigWindow::_instance = 0;
+
+WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char * name, WFlags f )
+ :WellenreiterConfigBase( parent, name, true, f )
+{
+ _devicetype[ "cisco" ] = DEVTYPE_CISCO;
+ _devicetype[ "wlan-ng" ] = DEVTYPE_WLAN_NG;
+ _devicetype[ "hostap" ] = DEVTYPE_HOSTAP;
+ _devicetype[ "orinoco" ] = DEVTYPE_ORINOCO;
+ _devicetype[ "<manual>" ] = DEVTYPE_MANUAL;
+ _devicetype[ "<file>" ] = DEVTYPE_FILE;
+
+ // gather possible interface names from ONetwork
+ ONetwork* net = ONetwork::instance();
+ ONetwork::InterfaceIterator it = net->iterator();
+ while ( it.current() )
+ {
+ if ( it.current()->isWireless() )
+ interfaceName->insertItem( it.current()->name() );
+ ++it;
+ }
+
+ // try to guess device type
+ QFile m( "/proc/modules" );
+ if ( m.open( IO_ReadOnly ) )
+ {
+ int devicetype(0);
+ QString line;
+ QTextStream modules( &m );
+ while( !modules.atEnd() && !devicetype )
+ {
+ modules >> line;
+ if ( line.contains( "cisco" ) ) devicetype = DEVTYPE_CISCO;
+ else if ( line.contains( "hostap" ) ) devicetype = DEVTYPE_HOSTAP;
+ else if ( line.contains( "prism" ) ) devicetype = DEVTYPE_WLAN_NG;
+ else if ( line.contains( "orinoco" ) ) devicetype = DEVTYPE_ORINOCO;
+ }
+ if ( devicetype )
+ {
+ deviceType->setCurrentItem( devicetype );
+ _guess = devicetype;
+ qDebug( "Wellenreiter: guessed device type to be #%d", devicetype );
+ }
+ }
+
+ #ifdef Q_WS_X11 // We're on X11: adding an Ok-Button for the Dialog here
+ QPushButton* okButton = new QPushButton( "ok", this );
+ okButton->show();
+ Layout5_2->addWidget( okButton, 0, 3 ); //FIXME: rename this in configbase.ui
+ connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) );
+ #endif
+
+ WellenreiterConfigWindow::_instance = this;
+
+ connect( deviceType, SIGNAL( activated(int) ), this, SLOT( changedDeviceType(int) ) );
+ connect( getCaptureFileName, SIGNAL( clicked() ), this, SLOT( getCaptureFileNameClicked() ) );
+
+ // make the checkbox 'channelAll' control all other channels
+ connect( channelAll, SIGNAL( stateChanged(int) ), this, SLOT( channelAllClicked(int) ) );
+};
+
+
+int WellenreiterConfigWindow::driverType() const
+{
+ QString name = deviceType->currentText();
+ if ( _devicetype.contains( name ) )
+ {
+ return _devicetype[name];
+ }
+ else
+ {
+ return 0;
+ }
+};
+
+
+int WellenreiterConfigWindow::hoppingInterval() const
+{
+ return hopInterval->cleanText().toInt();
+}
+
+
+bool WellenreiterConfigWindow::usePrismHeader()
+{
+ return prismHeader->isOn();
+}
+
+
+void WellenreiterConfigWindow::changedDeviceType(int t)
+{
+ if ( t != DEVTYPE_FILE ) return;
+ QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(false);
+ if ( !name.isEmpty() && QFile::exists( name ) )
+ {
+ interfaceName->insertItem( name );
+ interfaceName->setCurrentItem( interfaceName->count()-1 );
+ }
+ else
+ {
+ deviceType->setCurrentItem( _guess );
+ }
+
+}
+
+
+void WellenreiterConfigWindow::getCaptureFileNameClicked()
+{
+ QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(true);
+ qDebug( "name = %s", (const char*) name );
+ if ( !name.isEmpty() )
+ {
+ captureFileName->setText( name );
+ }
+}
+
+
+void WellenreiterConfigWindow::channelAllClicked(int state)
+{
+ bool b = state;
+ channel1->setChecked( b );
+ channel2->setChecked( b );
+ channel3->setChecked( b );
+ channel4->setChecked( b );
+ channel5->setChecked( b );
+ channel6->setChecked( b );
+ channel7->setChecked( b );
+ channel8->setChecked( b );
+ channel9->setChecked( b );
+ channel10->setChecked( b );
+ channel11->setChecked( b );
+ channel12->setChecked( b );
+ channel13->setChecked( b );
+ channel14->setChecked( b );
+}
+
diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h
new file mode 100644
index 0000000..057bed6
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/configwindow.h
@@ -0,0 +1,61 @@
+/**********************************************************************
+** 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 WELLENREITERCONFIGWINDOW_H
+#define WELLENREITERCONFIGWINDOW_H
+
+#include "configbase.h"
+#include <qmap.h>
+#include <qcombobox.h>
+#include <qstring.h>
+
+const int DEVTYPE_SELECT = 0;
+const int DEVTYPE_CISCO = 1;
+const int DEVTYPE_WLAN_NG = 2;
+const int DEVTYPE_HOSTAP = 3;
+const int DEVTYPE_ORINOCO = 4;
+const int DEVTYPE_MANUAL = 5;
+const int DEVTYPE_FILE = 6;
+
+class WellenreiterConfigWindow;
+
+class WellenreiterConfigWindow : public WellenreiterConfigBase
+{
+ Q_OBJECT
+
+ public:
+ WellenreiterConfigWindow( QWidget * parent = 0, const char * name = "WellenreiterConfigWindow", WFlags f = 0 );
+ int driverType() const;
+ int hoppingInterval() const;
+ const QString soundOnNetwork() const { return "";/*netSound->currentText();*/ };
+ const QString soundOnBeacon() const { return "";/*beaconSound->currentText();*/ };
+ static WellenreiterConfigWindow* instance() { return _instance; };
+
+ bool usePrismHeader();
+
+ public slots:
+ void changedDeviceType(int);
+ void getCaptureFileNameClicked();
+
+ void channelAllClicked(int);
+
+ protected:
+ QMap<QString, int> _devicetype;
+ static WellenreiterConfigWindow* _instance;
+ int _guess;
+
+};
+
+#endif