author | zecke <zecke> | 2004-09-18 01:08:08 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-09-18 01:08:08 (UTC) |
commit | 5096f9bd9f1a06e5238e2206eee195c43a2bdb6b (patch) (unidiff) | |
tree | 57281b88624984d3b2dc7950cd2a5f586f06f076 | |
parent | 081f8a3c3a6c6d45743f451cd9dc966a135b8156 (diff) | |
download | opie-5096f9bd9f1a06e5238e2206eee195c43a2bdb6b.zip opie-5096f9bd9f1a06e5238e2206eee195c43a2bdb6b.tar.gz opie-5096f9bd9f1a06e5238e2206eee195c43a2bdb6b.tar.bz2 |
The following change is untested on a real device. So please try and
bitch if I broke something!!!
Make unmounting of sdcards more robust. If we find a /dev/mmcard1 or
/dev/mmc/1 or /dev/mmc* we will remember that device name and if the
user asks us to eject it we will use that name.
-rw-r--r-- | core/applets/cardmon/cardmon.cpp | 15 | ||||
-rw-r--r-- | core/applets/cardmon/cardmon.h | 1 |
2 files changed, 6 insertions, 10 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp index 48146ab..43ccce2 100644 --- a/core/applets/cardmon/cardmon.cpp +++ b/core/applets/cardmon/cardmon.cpp | |||
@@ -138,13 +138,8 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) { | |||
138 | m_commandOrig = 1; | 138 | m_commandOrig = 1; |
139 | execCommand("/sbin/cardctl eject 0"); | 139 | execCommand("/sbin/cardctl eject 0"); |
140 | } else if ( opt == 0 ) { | 140 | } else if ( opt == 0 ) { |
141 | if ( ODevice::inst() ->system() == System_Familiar ) { | ||
142 | cmd = "umount /dev/mmc/part1"; | ||
143 | } else { | ||
144 | cmd = "umount /dev/mmcda1"; | ||
145 | } | ||
146 | m_commandOrig = 2; | 141 | m_commandOrig = 2; |
147 | execCommand( cmd ); | 142 | execCommand( QString("umount %1").arg(cardSdName)); |
148 | } else if ( opt == 2 ) { | 143 | } else if ( opt == 2 ) { |
149 | m_commandOrig = 3; | 144 | m_commandOrig = 3; |
150 | execCommand( "/sbin/cardctl eject 1" ); | 145 | execCommand( "/sbin/cardctl eject 1" ); |
@@ -282,11 +277,12 @@ bool CardMonitor::getStatusSd( int showPopUp ) { | |||
282 | 277 | ||
283 | if ( mntfp ) { | 278 | if ( mntfp ) { |
284 | while ( ( me = getmntent( mntfp ) ) != 0 ) { | 279 | while ( ( me = getmntent( mntfp ) ) != 0 ) { |
285 | QString fs = me->mnt_fsname; | 280 | QString fs = QFile::decodeName( me->mnt_fsname ); |
286 | //odebug << fs << oendl; | 281 | //odebug << fs << oendl; |
287 | if ( fs.left( 14 ) == "/dev/mmc/part1" || fs.left( 7 ) == "/dev/sd" | 282 | if ( fs.left( 14 ) == "/dev/mmc/part1" || fs.left( 7 ) == "/dev/sd" |
288 | || fs.left( 9 ) == "/dev/mmcd" ) { | 283 | || fs.left( 9 ) == "/dev/mmcd" ) { |
289 | cardInSd = TRUE; | 284 | cardInSd = TRUE; |
285 | cardSdName = fs; | ||
290 | show(); | 286 | show(); |
291 | } | 287 | } |
292 | // else { | 288 | // else { |
@@ -338,6 +334,8 @@ int CardMonitor::position() { | |||
338 | } | 334 | } |
339 | 335 | ||
340 | void CardMonitor::execCommand( const QString &command ) { | 336 | void CardMonitor::execCommand( const QString &command ) { |
337 | delete m_process; | ||
338 | m_process = 0; | ||
341 | 339 | ||
342 | if ( m_process == 0 ) { | 340 | if ( m_process == 0 ) { |
343 | m_process = new OProcess(); | 341 | m_process = new OProcess(); |
@@ -371,9 +369,6 @@ void CardMonitor::slotExited( OProcess* ) { | |||
371 | } | 369 | } |
372 | } | 370 | } |
373 | } | 371 | } |
374 | |||
375 | delete m_process; | ||
376 | m_process = 0; | ||
377 | } | 372 | } |
378 | 373 | ||
379 | EXPORT_OPIE_APPLET_v1( CardMonitor ) | 374 | EXPORT_OPIE_APPLET_v1( CardMonitor ) |
diff --git a/core/applets/cardmon/cardmon.h b/core/applets/cardmon/cardmon.h index 19d0394..b02c8b1 100644 --- a/core/applets/cardmon/cardmon.h +++ b/core/applets/cardmon/cardmon.h | |||
@@ -59,6 +59,7 @@ private: | |||
59 | QString cardInPcmcia1Name; | 59 | QString cardInPcmcia1Name; |
60 | QString cardInPcmcia1Type; | 60 | QString cardInPcmcia1Type; |
61 | bool cardInSd; | 61 | bool cardInSd; |
62 | QString cardSdName; // the device which is mounted | ||
62 | void iconShow(); | 63 | void iconShow(); |
63 | QPopupMenu *popupMenu; | 64 | QPopupMenu *popupMenu; |
64 | void popUp(QString message, QString icon = QString::null ); | 65 | void popUp(QString message, QString icon = QString::null ); |