summaryrefslogtreecommitdiff
path: root/core/applets/cardmon/cardmon.cpp
Side-by-side diff
Diffstat (limited to 'core/applets/cardmon/cardmon.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/cardmon/cardmon.cpp84
1 files changed, 56 insertions, 28 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp
index 9522b88..ac2aea2 100644
--- a/core/applets/cardmon/cardmon.cpp
+++ b/core/applets/cardmon/cardmon.cpp
@@ -52,6 +52,6 @@ CardMonitor::CardMonitor( QWidget *parent ) : QWidget( parent ),
-
setFixedSize( pm.size() );
- hide();
- getStatusPcmcia();
+ getStatusPcmcia(TRUE);
+ getStatusSd(TRUE);
+ repaint(FALSE);
}
@@ -67,3 +67,3 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
if ( cardInSd ) {
- menu->insertItem( tr("Eject SD/ MMC card"), 0 );
+ menu->insertItem( tr("Eject SD/MMC card"), 0 );
}
@@ -71,3 +71,3 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
if ( cardInPcmcia0 ) {
- menu->insertItem( tr("Eject card (0) %1").arg(cardInPcmcia0Name), 1 );
+ menu->insertItem( tr("Eject card 0: %1").arg(cardInPcmcia0Name), 1 );
}
@@ -75,8 +75,12 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
if ( cardInPcmcia1 ) {
- menu->insertItem( tr("Eject card (1) %1").arg(cardInPcmcia1Name), 2 );
+ menu->insertItem( tr("Eject card 1: %1").arg(cardInPcmcia1Name), 2 );
}
- QPoint p = mapToGlobal( QPoint(1, -menu->sizeHint().height()-1) );
+ QPoint p = mapToGlobal ( QPoint ( 0, 0 ));
+ QSize s = menu->sizeHint ( );
+ int opt = menu->exec( QPoint (
+ p. x ( ) + ( width ( ) / 2 ) - ( s. width ( ) / 2 ),
+ p. y ( ) - s. height ( ) ), 0);
- if ( menu->exec( p, 1 ) == 1 ) {
+ if ( opt == 1 ) {
@@ -88,4 +92,4 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
tr("&OK") );
- }
- } else if ( menu->exec( p, 1 ) == 0 ) {
+ }
+ } else if ( opt == 0 ) {
cmd = "/etc/sdcontrol compeject";
@@ -96,4 +100,4 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
tr("&OK") );
- }
- } else if ( menu->exec( p, 1 ) == 2 ) {
+ }
+ } else if ( opt == 2 ) {
cmd = "/sbin/cardctl eject 1";
@@ -104,3 +108,3 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
tr("&OK") );
- }
+ }
}
@@ -113,2 +117,3 @@ void CardMonitor::cardMessage( const QCString &msg, const QByteArray & ) {
if ( msg == "stabChanged()" ) {
+ // qDebug("Pcmcia: stabchanged");
if ( getStatusPcmcia() ) {
@@ -117,2 +122,3 @@ void CardMonitor::cardMessage( const QCString &msg, const QByteArray & ) {
} else if ( msg == "mtabChanged()" ) {
+ // qDebug("Pcmcia: mtabchanged");
if ( getStatusSd() ) {
@@ -123,3 +129,3 @@ void CardMonitor::cardMessage( const QCString &msg, const QByteArray & ) {
-bool CardMonitor::getStatusPcmcia( void ) {
+bool CardMonitor::getStatusPcmcia( int showPopUp = FALSE ) {
@@ -149,8 +155,7 @@ bool CardMonitor::getStatusPcmcia( void ) {
if( (*line).startsWith("Socket 0:") ){
- // extendable, maybe read out card name
if( (*line).startsWith("Socket 0: empty") && cardInPcmcia0 ){
cardInPcmcia0 = FALSE;
- hide();
} else if ( !(*line).startsWith("Socket 0: empty") && !cardInPcmcia0 ){
cardInPcmcia0Name = (*line).mid(((*line).find(':')+1), (*line).length()-9 );
+ cardInPcmcia0Name.stripWhiteSpace();
cardInPcmcia0 = TRUE;
@@ -162,5 +167,5 @@ bool CardMonitor::getStatusPcmcia( void ) {
cardInPcmcia1 = FALSE;
- hide();
} else if ( !(*line).startsWith("Socket 1: empty") && !cardInPcmcia1 ){
cardInPcmcia1Name = (*line).mid(((*line).find(':')+1), (*line).length()-9 );
+ cardInPcmcia1Name.stripWhiteSpace();
cardInPcmcia1 = TRUE;
@@ -175,3 +180,2 @@ bool CardMonitor::getStatusPcmcia( void ) {
cardInPcmcia1 = FALSE;
- hide();
return FALSE;
@@ -180,2 +184,25 @@ bool CardMonitor::getStatusPcmcia( void ) {
+ if(!cardInPcmcia0 && !cardInPcmcia1) {
+ qDebug("Pcmcia: no cards");
+ }
+
+ if( !showPopUp && (cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1)) {
+ QString text = "";
+ if(cardWas0 != cardInPcmcia0) {
+ if(cardInPcmcia0) { text += tr("New card: "); }
+ else { text += tr("Ejected: "); }
+ text += cardInPcmcia0Name;
+ }
+ if(cardWas0 != cardInPcmcia0 && cardWas1 != cardInPcmcia1) {
+ text += "\n";
+ }
+ if(cardWas1 != cardInPcmcia1) {
+ if(cardInPcmcia1) { text += tr("New card: "); }
+ else { text += tr("Ejected: "); }
+ text += cardInPcmcia1Name;
+ }
+ QMessageBox::warning( this, tr("CardMonitor"), text,
+ tr("&OK") );
+ }
+
f.close();
@@ -186,3 +213,3 @@ bool CardMonitor::getStatusPcmcia( void ) {
-bool CardMonitor::getStatusSd( void ) {
+bool CardMonitor::getStatusSd( int showPopUp = FALSE ) {
@@ -203,12 +230,11 @@ bool CardMonitor::getStatusSd( void ) {
endmntent( mntfp );
- if (cardInSd!=cardWas) {
- if (cardInSd) {
- show();
- } else {
- hide();
- }
- }
- } else {
- hide();
}
+ if(!showPopUp && cardWas != cardInSd) {
+ QString text = "";
+ if(cardInSd) { text += "SD Inserted"; }
+ else { text += "SD Removed"; }
+ QMessageBox::warning( this, tr("CardMonitor"), text,
+ tr("&OK") );
+ }
+
#else
@@ -224,4 +250,6 @@ void CardMonitor::paintEvent( QPaintEvent * ) {
p.drawPixmap( 0, 0, pm );
+ show();
} else {
p.eraseRect( rect() );
+ hide();
}