Diffstat (limited to 'core/applets/cardmon/cardmon.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/applets/cardmon/cardmon.cpp | 15 |
1 files changed, 5 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 | |||
@@ -133,23 +133,18 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) { | |||
133 | QSize s = menu->sizeHint(); | 133 | QSize s = menu->sizeHint(); |
134 | int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), | 134 | int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), |
135 | p.y() - s.height() ), 0 ); | 135 | p.y() - s.height() ), 0 ); |
136 | 136 | ||
137 | if ( opt == 1 ) { | 137 | if ( opt == 1 ) { |
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" ); |
151 | } | 146 | } |
152 | delete menu; | 147 | delete menu; |
153 | } | 148 | } |
154 | 149 | ||
155 | 150 | ||
@@ -277,21 +272,22 @@ bool CardMonitor::getStatusSd( int showPopUp ) { | |||
277 | 272 | ||
278 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 273 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
279 | 274 | ||
280 | struct mntent *me; | 275 | struct mntent *me; |
281 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); | 276 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); |
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 { |
293 | // cardInSd = FALSE; | 289 | // cardInSd = FALSE; |
294 | // } | 290 | // } |
295 | } | 291 | } |
296 | endmntent( mntfp ); | 292 | endmntent( mntfp ); |
297 | } | 293 | } |
@@ -333,16 +329,18 @@ void CardMonitor::paintEvent( QPaintEvent * ) { | |||
333 | } | 329 | } |
334 | } | 330 | } |
335 | 331 | ||
336 | int CardMonitor::position() { | 332 | int CardMonitor::position() { |
337 | return 7; | 333 | return 7; |
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(); |
344 | QStringList strList = QStringList::split( " ", command ); | 342 | QStringList strList = QStringList::split( " ", command ); |
345 | 343 | ||
346 | for ( QStringList::Iterator it = strList.begin(); it != strList.end(); ++it ) { | 344 | for ( QStringList::Iterator it = strList.begin(); it != strList.end(); ++it ) { |
347 | *m_process << *it; | 345 | *m_process << *it; |
348 | } | 346 | } |
@@ -366,15 +364,12 @@ void CardMonitor::slotExited( OProcess* ) { | |||
366 | popUp( tr( "CF/PCMCIA card eject failed!" ) ); | 364 | popUp( tr( "CF/PCMCIA card eject failed!" ) ); |
367 | } else if ( m_commandOrig == 2 ) { | 365 | } else if ( m_commandOrig == 2 ) { |
368 | popUp( tr( "SD/MMC card eject failed!" ) ); | 366 | popUp( tr( "SD/MMC card eject failed!" ) ); |
369 | } else if ( m_commandOrig == 3 ) { | 367 | } else if ( m_commandOrig == 3 ) { |
370 | popUp( tr( "CF/PCMCIA card eject failed!" ) ); | 368 | popUp( tr( "CF/PCMCIA card eject failed!" ) ); |
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 ) |
380 | 375 | ||