summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/configwindow.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/wellenreiter/gui/configwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp98
1 files changed, 68 insertions, 30 deletions
diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp
index 84d4c63..3ec190b 100644
--- a/noncore/net/wellenreiter/gui/configwindow.cpp
+++ b/noncore/net/wellenreiter/gui/configwindow.cpp
@@ -59,27 +59,3 @@ WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char
- if ( !load() ) // no configuration present
- {
- // 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 );
- }
- }
- }
+ load();
@@ -99,2 +75,4 @@ WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char
connect( channelAll, SIGNAL( stateChanged(int) ), this, SLOT( channelAllClicked(int) ) );
+
+ connect( autodetect, SIGNAL( clicked() ), this, SLOT( performAutodetection() ) );
};
@@ -108,2 +86,35 @@ WellenreiterConfigWindow::~WellenreiterConfigWindow()
+void WellenreiterConfigWindow::performAutodetection()
+{
+ //TODO: insert modal splash screen here
+ // and sleep a second, so that it looks
+ // like we're actually doing something fancy... ;-)
+
+ qDebug( "WellenreiterConfigWindow::performAutodetection()" );
+
+ // 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 );
+ }
+ }
+}
+
+
int WellenreiterConfigWindow::driverType() const
@@ -223,3 +234,3 @@ int WellenreiterConfigWindow::gpsPort() const
-bool WellenreiterConfigWindow::load()
+void WellenreiterConfigWindow::load()
{
@@ -227,3 +238,3 @@ bool WellenreiterConfigWindow::load()
#warning Persistent Configuration not yet implemented for standalone X11 build
- return false;
+ performAutodetection();
#else
@@ -236,4 +247,32 @@ bool WellenreiterConfigWindow::load()
c->setGroup( "Interface" );
- //interfaceName->setCurrentText( c->readEntry( "name" ) );
- //deviceType->setCurrentText( c->readEntry( "type", "<select>" ) );
+
+ QString interface = c->readEntry( "name", "<none>" );
+ if ( interface != "<none>" )
+ {
+#if QT_VERSION < 300
+ interfaceName->insertItem( interface, 0 );
+ interfaceName->setCurrentItem( 0 );
+#else
+ interfaceName->setCurrentText( interface );
+#endif
+
+ QString device = c->readEntry( "type", "<select>" );
+#if QT_VERSION < 300
+ for ( int i = 0; i < deviceType->count(); ++i )
+ {
+ if ( deviceType->text( i ) == device )
+ {
+ deviceType->setCurrentItem( i );
+ break;
+ }
+ }
+#else
+ deviceType->setCurrentText( device );
+#endif
+ }
+ else
+ {
+ performAutodetection();
+ }
+
prismHeader->setChecked( c->readBoolEntry( "prism", false ) );
@@ -263,3 +302,2 @@ bool WellenreiterConfigWindow::load()
- return false; // false = perform autodetection; true = use config settings
#endif