author | mickeyl <mickeyl> | 2005-06-24 12:10:13 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-06-24 12:10:13 (UTC) |
commit | 886b3a77a64d5808d2fe68d0e7e6b712cf642753 (patch) (side-by-side diff) | |
tree | 60121b38e6100ff10a6e01293b7e478489f09bba /noncore/applets/pcmcia/configdialog.cpp | |
parent | 4775588885d60ea208c667a5863244a847a69f94 (diff) | |
download | opie-886b3a77a64d5808d2fe68d0e7e6b712cf642753.zip opie-886b3a77a64d5808d2fe68d0e7e6b712cf642753.tar.gz opie-886b3a77a64d5808d2fe68d0e7e6b712cf642753.tar.bz2 |
- fix configdialog checking for productIdentity, not for cardmgr's idea of that
- perform insert action and perform suspend action
Except for "prompt for" and some polishing, this applet should now be fairly complete
Diffstat (limited to 'noncore/applets/pcmcia/configdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/applets/pcmcia/configdialog.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/noncore/applets/pcmcia/configdialog.cpp b/noncore/applets/pcmcia/configdialog.cpp index f5812ba..f94edde 100644 --- a/noncore/applets/pcmcia/configdialog.cpp +++ b/noncore/applets/pcmcia/configdialog.cpp @@ -39,139 +39,141 @@ using namespace Opie::Core; #include <qcombobox.h> #include <qdir.h> #include <qfile.h> #include <qgroupbox.h> #include <qlabel.h> #include <qtextstream.h> ConfigDialog::ConfigDialog( const OPcmciaSocket* card, QWidget* parent ) :ConfigDialogBase( parent, "pcmcia config dialog", true ) { gbDetails->setTitle( QString( "Details for card in socket #%1" ).arg( card->number() ) ); txtCardName->setText( card->productIdentity().join( " " ) ); txtManfid->setText( card->manufacturerIdentity() ); txtFunction->setText( card->function() ); QString insertAction = preferredAction( card, "insert" ); QString resumeAction = preferredAction( card, "resume" ); odebug << "pcmcia: preferred insertion action for card '" << card->name() << "' seems to be '" << insertAction << "'" << oendl; odebug << "pcmcia: preferred resume action for card '" << card->name() << "' seems to be '" << resumeAction << "'" << oendl; if ( !insertAction.isEmpty() ) { for ( int i; i < cbInsertAction->count(); ++i ) if ( cbInsertAction->text( i ) == insertAction ) cbInsertAction->setCurrentItem( i ); } if ( !resumeAction.isEmpty() ) { for ( int i; i < cbResumeAction->count(); ++i ) if ( cbResumeAction->text( i ) == resumeAction ) cbResumeAction->setCurrentItem( i ); } if ( !card->isUnsupported() ) { odebug << "pcmcia: card is recognized - hiding bindings" << oendl; textInfo->hide(); textBindTo->hide(); cbBindTo->hide(); return; } else { odebug << "card is unsupported yet - showing possible bindings" << oendl; textInfo->show(); textBindTo->show(); cbBindTo->show(); } // parse possible bind entries out of /etc/pcmcia/*.conf QDir pcmciaconfdir( "/etc/pcmcia", "*.conf" ); for ( unsigned int i = 0; i < pcmciaconfdir.count(); ++i ) { odebug << "processing conf file '" << pcmciaconfdir[i] << "'" << oendl; QString conffilename = QString( "%1/%2" ).arg( pcmciaconfdir.absPath() ).arg( pcmciaconfdir[i] ); QFile conffile( conffilename ); if ( conffile.open( IO_ReadOnly ) ) { QTextStream ts( &conffile ); while ( !ts.atEnd() ) { QString word; ts >> word; if ( word == "bind" ) { word = ts.readLine(); bindEntries[ word.stripWhiteSpace() ] = conffilename; continue; } ts.readLine(); } } else { owarn << "couldn't open '" << conffile.name() << "' for reading" << oendl; continue; } } for ( StringMap::Iterator it = bindEntries.begin(); it != bindEntries.end(); ++it ) { odebug << "found binding '" << it.key() << "' defined in '" << it.data().latin1() << "'" << oendl; cbBindTo->insertItem( it.key() ); } } ConfigDialog::~ConfigDialog() { } void ConfigDialog::writeConfigEntry( const OPcmciaSocket* card, const QString& key, const QString& value ) { OConfig cfg( "PCMCIA" ); cfg.setGroup( "Global" ); int nCards = cfg.readNumEntry( "nCards", 0 ); + QString cardName = card->productIdentity().join( " " ).stripWhiteSpace(); QString action; for ( int i = 0; i < nCards; ++i ) { QString cardSection = QString( "Card_%1" ).arg( i ); cfg.setGroup( cardSection ); QString name = cfg.readEntry( "name" ); - odebug << "comparing card '" << card->name() << "' with known card '" << name << "'" << oendl; - if ( card->name() == name ) + odebug << "comparing card '" << cardName << "' with known card '" << name << "'" << oendl; + if ( cardName == name ) { cfg.writeEntry( key, value ); break; } } } QString ConfigDialog::readConfigEntry( const OPcmciaSocket* card, const QString& key, const QString& defaultValue ) { OConfig cfg( "PCMCIA" ); cfg.setGroup( "Global" ); int nCards = cfg.readNumEntry( "nCards", 0 ); + QString cardName = card->productIdentity().join( " " ).stripWhiteSpace(); QString value; for ( int i = 0; i < nCards; ++i ) { QString cardSection = QString( "Card_%1" ).arg( i ); cfg.setGroup( cardSection ); QString name = cfg.readEntry( "name" ); - odebug << "comparing card '" << card->name() << "' with known card '" << name << "'" << oendl; - if ( card->name() == name ) + odebug << "comparing card '" << cardName << "' with known card '" << name << "'" << oendl; + if ( cardName == name ) { value = cfg.readEntry( key, defaultValue ); break; } } return value; } QString ConfigDialog::preferredAction( const OPcmciaSocket* card, const QString& type ) { return ConfigDialog::readConfigEntry( card, QString( "%1Action" ).arg( type ), "suspend" ); } |