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 | |
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
-rw-r--r-- | noncore/applets/pcmcia/configdialog.cpp | 10 | ||||
-rw-r--r-- | noncore/applets/pcmcia/pcmcia.cpp | 90 | ||||
-rw-r--r-- | noncore/applets/pcmcia/pcmcia.h | 3 |
3 files changed, 55 insertions, 48 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 @@ -134,2 +134,3 @@ void ConfigDialog::writeConfigEntry( const OPcmciaSocket* card, const QString& k int nCards = cfg.readNumEntry( "nCards", 0 ); + QString cardName = card->productIdentity().join( " " ).stripWhiteSpace(); QString action; @@ -141,4 +142,4 @@ void ConfigDialog::writeConfigEntry( const OPcmciaSocket* card, const QString& k 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 ) { @@ -155,2 +156,3 @@ QString ConfigDialog::readConfigEntry( const OPcmciaSocket* card, const QString& int nCards = cfg.readNumEntry( "nCards", 0 ); + QString cardName = card->productIdentity().join( " " ).stripWhiteSpace(); QString value; @@ -162,4 +164,4 @@ QString ConfigDialog::readConfigEntry( const OPcmciaSocket* card, const QString& 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 ) { diff --git a/noncore/applets/pcmcia/pcmcia.cpp b/noncore/applets/pcmcia/pcmcia.cpp index e435f61..af23f58 100644 --- a/noncore/applets/pcmcia/pcmcia.cpp +++ b/noncore/applets/pcmcia/pcmcia.cpp @@ -68,3 +68,3 @@ using namespace Opie::Ui; -PcmciaManager::PcmciaManager( QWidget * parent ) : QWidget( parent ) +PcmciaManager::PcmciaManager( QWidget * parent ) : QWidget( parent ), popupMenu( 0 ) { @@ -98,3 +98,2 @@ void PcmciaManager::handleSystemChannel( const QCString&msg, const QByteArray& ) OPcmciaSystem::CardIterator it = sys->iterator(); - OPcmciaSocket* theCard = 0; @@ -102,5 +101,5 @@ void PcmciaManager::handleSystemChannel( const QCString&msg, const QByteArray& ) { - if ( it.current()->isEmpty() ) + if ( !it.current()->isEmpty() ) { - executeResumeAction( theCard ); + executeAction( it.current(), "resume" ); } @@ -113,7 +112,9 @@ void PcmciaManager::popUp( QString message, QString icon ) { - if ( !popupMenu ) { + if ( !popupMenu) + { popupMenu = new QPopupMenu( this ); + popupMenu->setFocusPolicy( QWidget::NoFocus ); } - popupMenu->clear(); + if ( icon.isEmpty() ) { @@ -140,2 +141,3 @@ void PcmciaManager::popupTimeout() enum { EJECT, INSERT, SUSPEND, RESUME, RESET, CONFIGURE }; +static const char* actionText[] = { "eject", "insert", "suspend", "resum", "resett", "configur" }; @@ -148,2 +150,3 @@ void PcmciaManager::mousePressEvent( QMouseEvent* ) OPcmciaSystem* sys = OPcmciaSystem::instance(); + sys->synchronize(); OPcmciaSystem::CardIterator it = sys->iterator(); @@ -212,3 +215,3 @@ void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) theCard = it.current(); - QString cardName = theCard->productIdentity().join( " " ); + QString cardName = theCard->productIdentity().join( " " ).stripWhiteSpace(); for ( int i = 0; i < nCards; ++i ) @@ -223,3 +226,3 @@ void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) odebug << "pcmcia: we have seen this card before" << oendl; - executeInsertAction( theCard ); + executeAction( theCard, "insert" ); break; @@ -255,3 +258,3 @@ void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) - QFile confFile( QString( "/etc/pcmcia/%1" ).arg( conf ) ); + QFile confFile( conf ); if ( confFile.open( IO_ReadWrite | IO_Append ) ) @@ -274,3 +277,3 @@ void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) { - owarn << "pcmcia: couldn't write binding to '" << conf << "'." << oendl; + owarn << "pcmcia: couldn't write binding to '" << conf << "' ( " << strerror( errno ) << " )." << oendl; } @@ -289,10 +292,6 @@ void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) { - QString insertAction = ConfigDialog::preferredAction( theCard, "insert" ); - odebug << "pcmcia: card has been previously configured" << oendl; - odebug << "pcmcia: TODO: need to perform action'" << insertAction << "' now... sorry, not yet implemented..." << oendl; + odebug << "pcmcia: doing nothing... why do we come here?" << oendl; } - repaint( true ); } - void PcmciaManager::paintEvent( QPaintEvent * ) @@ -300,13 +299,3 @@ void PcmciaManager::paintEvent( QPaintEvent * ) QPainter p( this ); - odebug << "sockets = " << OPcmciaSystem::instance()->count() << ", cards = " << OPcmciaSystem::instance()->cardCount() << oendl; - - if ( OPcmciaSystem::instance()->cardCount() ) - { p.drawPixmap( 0, 0, pm ); - show(); - } - else - { - hide(); - } } @@ -335,11 +324,15 @@ void PcmciaManager::userCardAction( int action ) QString insertAction; QString resumeAction; QString driver; QString conf; - bool result = configure( OPcmciaSystem::instance()->socket( socket ), insertAction, resumeAction, driver, conf ); - success = true; - break; + configure( OPcmciaSystem::instance()->socket( socket ), insertAction, resumeAction, driver, conf ); + return; } - case EJECT: success = OPcmciaSystem::instance()->socket( socket )->eject(); break; - case INSERT: success = OPcmciaSystem::instance()->socket( socket )->insert(); break; - case SUSPEND: success = OPcmciaSystem::instance()->socket( socket )->suspend(); break; - case RESUME: success = OPcmciaSystem::instance()->socket( socket )->resume(); break; - case RESET: success = OPcmciaSystem::instance()->socket( socket )->reset(); break; + case EJECT: success = OPcmciaSystem::instance()->socket( socket )->eject(); + break; + case INSERT: success = OPcmciaSystem::instance()->socket( socket )->insert(); + break; + case SUSPEND: success = OPcmciaSystem::instance()->socket( socket )->suspend(); + break; + case RESUME: success = OPcmciaSystem::instance()->socket( socket )->resume(); + break; + case RESET: success = OPcmciaSystem::instance()->socket( socket )->reset(); + break; default: odebug << "pcmcia: not yet implemented" << oendl; @@ -347,7 +340,10 @@ void PcmciaManager::userCardAction( int action ) - if ( !success ) + if ( success ) { - owarn << "pcmcia: couldn't perform user action (" << strerror( errno ) << ")" << oendl; + popUp( tr( "Successfully %1ed card in socket #%2" ).arg( actionText[action] ).arg( socket ) ); + } + else + { + popUp( tr( "Error while %1ing card in socket #%2" ).arg( actionText[action] ).arg( socket ) ); } - } @@ -371,12 +367,22 @@ bool PcmciaManager::configure( OPcmciaSocket* card, QString& insertAction, QStri -void PcmciaManager::executeInsertAction( Opie::Core::OPcmciaSocket* card ) +void PcmciaManager::executeAction( Opie::Core::OPcmciaSocket* card, const QString& type ) +{ + odebug << "pcmcia: performing " << type << " action ..." << oendl; + QString theAction = ConfigDialog::preferredAction( card, type ); + int intAction = card->number() * 100; + if ( theAction == "activate" ) ; + else if ( theAction == "eject" ) intAction += EJECT; + else if ( theAction == "suspend" ) intAction += SUSPEND; + else if ( theAction == "prompt for" ) { - odebug << "pcmcia: execute insert action" << oendl; + odebug << "pcmcia: sorry, not 'prompt for' is not yet implemented!" << oendl; + return; } - -void PcmciaManager::executeResumeAction( Opie::Core::OPcmciaSocket* card ) + else { - odebug << "pcmcia: execute resume action" << oendl; + owarn << "pcmcia: action '" << theAction << "' not known. Huh?" << oendl; + return; + } + userCardAction( intAction ); } - diff --git a/noncore/applets/pcmcia/pcmcia.h b/noncore/applets/pcmcia/pcmcia.h index 6567cd7..de7d6bf 100644 --- a/noncore/applets/pcmcia/pcmcia.h +++ b/noncore/applets/pcmcia/pcmcia.h @@ -59,4 +59,3 @@ class PcmciaManager : public QWidget void execCommand( const QStringList &command ); - void executeInsertAction( Opie::Core::OPcmciaSocket* ); - void executeResumeAction( Opie::Core::OPcmciaSocket* ); + void executeAction( Opie::Core::OPcmciaSocket*, const QString& ); void popUp(QString message, QString icon = QString::null ); |