summaryrefslogtreecommitdiff
path: root/noncore/applets/pcmcia/configdialog.cpp
Side-by-side diff
Diffstat (limited to 'noncore/applets/pcmcia/configdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/pcmcia/configdialog.cpp55
1 files changed, 43 insertions, 12 deletions
diff --git a/noncore/applets/pcmcia/configdialog.cpp b/noncore/applets/pcmcia/configdialog.cpp
index f961069..f5812ba 100644
--- a/noncore/applets/pcmcia/configdialog.cpp
+++ b/noncore/applets/pcmcia/configdialog.cpp
@@ -42,54 +42,59 @@ using namespace Opie::Core;
#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 action = preferredAction( card );
+ QString insertAction = preferredAction( card, "insert" );
+ QString resumeAction = preferredAction( card, "resume" );
- odebug << "preferred action for card '" << card->name() << "' seems to be '" << action << "'" << oendl;
+ 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 ( !action.isEmpty() )
+ if ( !insertAction.isEmpty() )
{
- for ( int i; i < cbAction->count(); ++i )
- if ( cbAction->text( i ) == action ) cbAction->setCurrentItem( i );
+ 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 << "card is recognized - hiding bindings" << oendl;
+ 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
- typedef QMap<QString,QString> StringMap;
- StringMap bindEntries;
-
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() )
{
@@ -113,34 +118,60 @@ ConfigDialog::ConfigDialog( const OPcmciaSocket* card, QWidget* parent )
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()
{
}
-QString ConfigDialog::preferredAction( const OPcmciaSocket* card )
+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 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 )
{
- action = cfg.readEntry( "action" );
+ cfg.writeEntry( key, value );
break;
}
}
+}
- return action;
+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 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 )
+ {
+ 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" );
}