author | mickeyl <mickeyl> | 2003-10-04 00:30:57 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-10-04 00:30:57 (UTC) |
commit | e2716e3862915582d0ce48aaacc967f5b0cf6550 (patch) (side-by-side diff) | |
tree | a27e94a9d813f843dcb26c22ee31f7ce21142109 /noncore/net/wellenreiter/gui/configwindow.cpp | |
parent | 120b0fe68c1352ba03ad6e73d26bcbe8452ef6ed (diff) | |
download | opie-e2716e3862915582d0ce48aaacc967f5b0cf6550.zip opie-e2716e3862915582d0ce48aaacc967f5b0cf6550.tar.gz opie-e2716e3862915582d0ce48aaacc967f5b0cf6550.tar.bz2 |
perform autodetection only if no configuration exists or on demand
Diffstat (limited to 'noncore/net/wellenreiter/gui/configwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/wellenreiter/gui/configwindow.cpp | 94 |
1 files changed, 66 insertions, 28 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 @@ -57,8 +57,41 @@ WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char ++it; } - if ( !load() ) // no configuration present + load(); + + #ifdef Q_WS_X11 // We're on X11: adding an Ok-Button for the Dialog here + QPushButton* okButton = new QPushButton( "ok", this ); + okButton->show(); + WellenreiterConfigBaseLayout->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) ) ); + + connect( autodetect, SIGNAL( clicked() ), this, SLOT( performAutodetection() ) ); +}; + + +WellenreiterConfigWindow::~WellenreiterConfigWindow() { + save(); +} + + +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 ) ) @@ -83,28 +116,6 @@ WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char } } - #ifdef Q_WS_X11 // We're on X11: adding an Ok-Button for the Dialog here - QPushButton* okButton = new QPushButton( "ok", this ); - okButton->show(); - WellenreiterConfigBaseLayout->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) ) ); -}; - - -WellenreiterConfigWindow::~WellenreiterConfigWindow() -{ - save(); -} - int WellenreiterConfigWindow::driverType() const { @@ -221,11 +232,11 @@ int WellenreiterConfigWindow::gpsPort() const } -bool WellenreiterConfigWindow::load() +void WellenreiterConfigWindow::load() { #ifdef Q_WS_X11 #warning Persistent Configuration not yet implemented for standalone X11 build - return false; + performAutodetection(); #else qDebug( "loading configuration settings..." ); @@ -234,8 +245,36 @@ bool WellenreiterConfigWindow::load() OConfig* c = oApp->config(); 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 ) ); hopChannels->setChecked( c->readBoolEntry( "hop", true ) ); hopInterval->setValue( c->readNumEntry( "interval", 100 ) ); @@ -261,7 +300,6 @@ bool WellenreiterConfigWindow::load() startGPS->setChecked( c->readBoolEntry( "start", false ) ); commandGPS->setText( c->readEntry( "command", "gpsd -p /dev/ttyS3 -s 57600" ) ); - return false; // false = perform autodetection; true = use config settings #endif } |