Diffstat (limited to 'noncore/applets/pcmcia/pcmcia.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/applets/pcmcia/pcmcia.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/noncore/applets/pcmcia/pcmcia.cpp b/noncore/applets/pcmcia/pcmcia.cpp index 186dfea..0787c3c 100644 --- a/noncore/applets/pcmcia/pcmcia.cpp +++ b/noncore/applets/pcmcia/pcmcia.cpp @@ -69,31 +69,54 @@ using namespace Opie::Ui; PcmciaManager::PcmciaManager( QWidget * parent ) : QWidget( parent ) { QCopChannel * pcmciaChannel = new QCopChannel( "QPE/Card", this ); connect( pcmciaChannel, SIGNAL( received(const QCString&,const QByteArray&) ), this, SLOT( cardMessage(const QCString&,const QByteArray&) ) ); setFocusPolicy( NoFocus ); setFixedWidth ( AppLnk::smallIconSize() ); setFixedHeight ( AppLnk::smallIconSize() ); pm = Opie::Core::OResource::loadPixmap( "cardmon/pcmcia", Opie::Core::OResource::SmallIcon ); configuring = false; + + QCopChannel *channel = new QCopChannel( "QPE/System", this ); + connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), + this, SLOT(handleSystemChannel(const QCString&,const QByteArray&)) ); } PcmciaManager::~PcmciaManager() { } +void PcmciaManager::handleSystemChannel( const QCString&msg, const QByteArray& ) +{ + if ( msg == "returnFromSuspend()" ) + { + if ( !OPcmciaSystem::instance()->cardCount() ) return; + OPcmciaSystem* sys = OPcmciaSystem::instance(); + OPcmciaSystem::CardIterator it = sys->iterator(); + OPcmciaSocket* theCard = 0; + + while ( it.current() ) + { + if ( it.current()->isEmpty() ) + { + executeResumeAction( theCard ); + } + ++it; + } + } +} void PcmciaManager::popUp( QString message, QString icon ) { if ( !popupMenu ) { popupMenu = new QPopupMenu( this ); } popupMenu->clear(); if ( icon.isEmpty() ) { popupMenu->insertItem( message, 0 ); } else { popupMenu->insertItem( QIconSet( Opie::Core::OResource::loadPixmap( icon, Opie::Core::OResource::SmallIcon ) ), @@ -188,24 +211,26 @@ void PcmciaManager::cardMessage( const QCString & msg, const QByteArray & ) { theCard = it.current(); QString cardName = theCard->productIdentity().join( " " ); for ( int i = 0; i < nCards; ++i ) { QString cardSection = QString( "Card_%1" ).arg( i ); cfg.setGroup( cardSection ); QString name = cfg.readEntry( "name" ); odebug << "pcmcia: comparing card '" << cardName << "' with known card '" << name << "'" << oendl; if ( cardName == name ) { newCard = false; + odebug << "pcmcia: we have seen this card before" << oendl; + executeInsertAction( theCard ); break; } } if ( !newCard ) ++it; else break; } } if ( newCard ) { odebug << "pcmcia: unconfigured card detected" << oendl; QString newCardName = theCard->productIdentity().join( " " ).stripWhiteSpace(); int result = QMessageBox::information( qApp->desktop(), tr( "PCMCIA/CF Subsystem" ), @@ -335,15 +360,25 @@ bool PcmciaManager::configure( OPcmciaSocket* card, QString& insertAction, QStri configuring = false; odebug << "pcmcia: configresult = " << configresult << oendl; if ( configresult ) { insertAction = dialog.cbInsertAction->currentText(); resumeAction = dialog.cbResumeAction->currentText(); driver = dialog.cbBindTo->currentText(); conf = dialog.bindEntries[driver]; } return configresult; } +void PcmciaManager::executeInsertAction( Opie::Core::OPcmciaSocket* card ) +{ + odebug << "pcmcia: execute insert action" << oendl; +} + +void PcmciaManager::executeResumeAction( Opie::Core::OPcmciaSocket* card ) +{ + odebug << "pcmcia: execute resume action" << oendl; +} + EXPORT_OPIE_APPLET_v1( PcmciaManager ) |