summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/cardmon/cardmon.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp
index fb140fe..d6ac616 100644
--- a/core/applets/cardmon/cardmon.cpp
+++ b/core/applets/cardmon/cardmon.cpp
@@ -1,380 +1,380 @@
1/* 1/*
2* cardmon.cpp 2* cardmon.cpp
3* 3*
4* --------------------- 4* ---------------------
5* 5*
6* copyright : (c) 2002 by Maximilian Reiss 6* copyright : (c) 2002 by Maximilian Reiss
7* email : max.reiss@gmx.de 7* email : max.reiss@gmx.de
8* based on two apps by Devin Butterfield 8* based on two apps by Devin Butterfield
9*/ 9*/
10/*************************************************************************** 10/***************************************************************************
11 * * 11 * *
12 * This program is free software; you can redistribute it and/or modify * 12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by * 13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or * 14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. * 15 * (at your option) any later version. *
16 * * 16 * *
17 ***************************************************************************/ 17 ***************************************************************************/
18 18
19#include "cardmon.h" 19#include "cardmon.h"
20 20
21/* OPIE */ 21/* OPIE */
22#include <opie2/odebug.h> 22#include <opie2/odebug.h>
23#include <opie2/odevice.h> 23#include <opie2/odevice.h>
24#include <opie2/otaskbarapplet.h> 24#include <opie2/otaskbarapplet.h>
25#include <opie2/oprocess.h> 25#include <opie2/oprocess.h>
26 26
27#include <qpe/applnk.h> 27#include <qpe/applnk.h>
28#include <qpe/resource.h> 28#include <qpe/resource.h>
29using namespace Opie::Core; 29using namespace Opie::Core;
30using namespace Opie::Ui; 30using namespace Opie::Ui;
31 31
32/* QT */ 32/* QT */
33#include <qcopchannel_qws.h> 33#include <qcopchannel_qws.h>
34#include <qpainter.h> 34#include <qpainter.h>
35#include <qfile.h> 35#include <qfile.h>
36#include <qtextstream.h> 36#include <qtextstream.h>
37#include <qsound.h> 37#include <qsound.h>
38#include <qtimer.h> 38#include <qtimer.h>
39 39
40/* STD */ 40/* STD */
41#include <stdio.h> 41#include <stdio.h>
42#include <unistd.h> 42#include <unistd.h>
43#include <stdlib.h> 43#include <stdlib.h>
44#include <string.h> 44#include <string.h>
45#include <fcntl.h> 45#include <fcntl.h>
46#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 46#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
47#include <sys/vfs.h> 47#include <sys/vfs.h>
48#include <mntent.h> 48#include <mntent.h>
49#endif 49#endif
50 50
51CardMonitor::CardMonitor( QWidget * parent ) : QWidget( parent ), 51CardMonitor::CardMonitor( QWidget * parent ) : QWidget( parent ),
52pm( Resource::loadPixmap( "cardmon/pcmcia" ) ) { 52pm( Resource::loadPixmap( "cardmon/pcmcia" ) ) {
53 53
54 QCopChannel * pcmciaChannel = new QCopChannel( "QPE/Card", this ); 54 QCopChannel * pcmciaChannel = new QCopChannel( "QPE/Card", this );
55 connect( pcmciaChannel, 55 connect( pcmciaChannel,
56 SIGNAL( received(const QCString&,const QByteArray&) ), this, 56 SIGNAL( received(const QCString&,const QByteArray&) ), this,
57 SLOT( cardMessage(const QCString&,const QByteArray&) ) ); 57 SLOT( cardMessage(const QCString&,const QByteArray&) ) );
58 58
59 QCopChannel *sdChannel = new QCopChannel( "QPE/Card", this ); 59 QCopChannel *sdChannel = new QCopChannel( "QPE/Card", this );
60 connect( sdChannel, 60 connect( sdChannel,
61 SIGNAL( received(const QCString&,const QByteArray&) ), this, 61 SIGNAL( received(const QCString&,const QByteArray&) ), this,
62 SLOT( cardMessage(const QCString&,const QByteArray&) ) ); 62 SLOT( cardMessage(const QCString&,const QByteArray&) ) );
63 63
64 cardInPcmcia0 = FALSE; 64 cardInPcmcia0 = FALSE;
65 cardInPcmcia1 = FALSE; 65 cardInPcmcia1 = FALSE;
66 cardInSd = FALSE; 66 cardInSd = FALSE;
67 m_process = 0; 67 m_process = 0;
68 68
69 setFocusPolicy( NoFocus ); 69 setFocusPolicy( NoFocus );
70 70
71 setFixedWidth ( AppLnk::smallIconSize() ); 71 setFixedWidth ( AppLnk::smallIconSize() );
72 setFixedHeight ( AppLnk::smallIconSize() ); 72 setFixedHeight ( AppLnk::smallIconSize() );
73 73
74 getStatusPcmcia( TRUE ); 74 getStatusPcmcia( TRUE );
75 getStatusSd( TRUE ); 75 getStatusSd( TRUE );
76 repaint( FALSE ); 76 repaint( FALSE );
77 popupMenu = 0; 77 popupMenu = 0;
78} 78}
79 79
80CardMonitor::~CardMonitor() { 80CardMonitor::~CardMonitor() {
81 delete popupMenu; 81 delete popupMenu;
82} 82}
83 83
84void CardMonitor::popUp( QString message, QString icon ) { 84void CardMonitor::popUp( QString message, QString icon ) {
85 if ( !popupMenu ) { 85 if ( !popupMenu ) {
86 popupMenu = new QPopupMenu( this ); 86 popupMenu = new QPopupMenu( this );
87 } 87 }
88 88
89 popupMenu->clear(); 89 popupMenu->clear();
90 if ( icon.isEmpty() ) { 90 if ( icon.isEmpty() ) {
91 popupMenu->insertItem( message, 0 ); 91 popupMenu->insertItem( message, 0 );
92 } else { 92 } else {
93 popupMenu->insertItem( QIconSet( Resource::loadPixmap( icon ) ), 93 popupMenu->insertItem( QIconSet( Resource::loadPixmap( icon ) ),
94 message, 0 ); 94 message, 0 );
95 } 95 }
96 96
97 QPoint p = mapToGlobal( QPoint( 0, 0 ) ); 97 QPoint p = mapToGlobal( QPoint( 0, 0 ) );
98 QSize s = popupMenu->sizeHint(); 98 QSize s = popupMenu->sizeHint();
99 popupMenu->popup( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), 99 popupMenu->popup( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ),
100 p.y() - s.height() ), 0 ); 100 p.y() - s.height() ), 0 );
101 101
102 QTimer::singleShot( 2000, this, SLOT( popupTimeout() ) ); 102 QTimer::singleShot( 2000, this, SLOT( popupTimeout() ) );
103} 103}
104 104
105void CardMonitor::popupTimeout() { 105void CardMonitor::popupTimeout() {
106 popupMenu->hide(); 106 popupMenu->hide();
107} 107}
108 108
109void CardMonitor::mousePressEvent( QMouseEvent * ) { 109void CardMonitor::mousePressEvent( QMouseEvent * ) {
110 QPopupMenu * menu = new QPopupMenu( this ); 110 QPopupMenu * menu = new QPopupMenu( this );
111 QStringList cmd; 111 QStringList cmd;
112 bool execute = true; 112 bool execute = true;
113 113
114 if ( cardInSd ) { 114 if ( cardInSd ) {
115 menu->insertItem( QIconSet( Resource::loadPixmap( "cardmon/ide" ) ), 115 menu->insertItem( QIconSet( Resource::loadPixmap( "cardmon/ide" ) ),
116 tr( "Eject SD/MMC card" ), 0 ); 116 tr( "Eject SD/MMC card" ), 0 );
117 } 117 }
118 118
119 if ( cardInPcmcia0 ) { 119 if ( cardInPcmcia0 ) {
120 menu-> 120 menu->
121 insertItem( QIconSet 121 insertItem( QIconSet
122 ( Resource::loadPixmap( "cardmon/" + cardInPcmcia0Type ) ), 122 ( Resource::loadPixmap( "cardmon/" + cardInPcmcia0Type ) ),
123 tr( "Eject card 0: %1" ).arg( cardInPcmcia0Name ), 1 ); 123 tr( "Eject card 0: %1" ).arg( cardInPcmcia0Name ), 1 );
124 } 124 }
125 125
126 if ( cardInPcmcia1 ) { 126 if ( cardInPcmcia1 ) {
127 menu-> 127 menu->
128 insertItem( QIconSet 128 insertItem( QIconSet
129 ( Resource::loadPixmap( "cardmon/" + cardInPcmcia1Type ) ), 129 ( Resource::loadPixmap( "cardmon/" + cardInPcmcia1Type ) ),
130 tr( "Eject card 1: %1" ).arg( cardInPcmcia1Name ), 2 ); 130 tr( "Eject card 1: %1" ).arg( cardInPcmcia1Name ), 2 );
131 } 131 }
132 132
133 QPoint p = mapToGlobal( QPoint( 0, 0 ) ); 133 QPoint p = mapToGlobal( QPoint( 0, 0 ) );
134 QSize s = menu->sizeHint(); 134 QSize s = menu->sizeHint();
135 int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), 135 int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ),
136 p.y() - s.height() ), 0 ); 136 p.y() - s.height() ), 0 );
137 137
138 if ( opt == 1 ) { 138 if ( opt == 1 ) {
139 m_commandOrig = PCMCIA_Socket1; 139 m_commandOrig = PCMCIA_Socket1;
140 cmd << "/sbin/cardctl" << "eject" << "0"; 140 cmd << "/sbin/cardctl" << "eject" << "0";
141 } else if ( opt == 0 ) { 141 } else if ( opt == 0 ) {
142 m_commandOrig = MMC_Socket; 142 m_commandOrig = MMC_Socket;
143 cmd << "umount" << cardSdName; 143 cmd << "umount" << cardSdName;
144 } else if ( opt == 2 ) { 144 } else if ( opt == 2 ) {
145 m_commandOrig = PCMCIA_Socket2; 145 m_commandOrig = PCMCIA_Socket2;
146 cmd << "/sbin/cardctl" << "eject" << "1"; 146 cmd << "/sbin/cardctl" << "eject" << "1";
147 }else 147 }else
148 execute = false; 148 execute = false;
149 149
150 if ( execute ) 150 if ( execute )
151 execCommand( cmd ); 151 execCommand( cmd );
152 152
153 delete menu; 153 delete menu;
154} 154}
155 155
156 156
157void CardMonitor::cardMessage( const QCString & msg, const QByteArray & ) { 157void CardMonitor::cardMessage( const QCString & msg, const QByteArray & ) {
158 if ( msg == "stabChanged()" ) { 158 if ( msg == "stabChanged()" ) {
159 // odebug << "Pcmcia: stabchanged" << oendl; 159 // odebug << "Pcmcia: stabchanged" << oendl;
160 getStatusPcmcia(); 160 getStatusPcmcia();
161 } else if ( msg == "mtabChanged()" ) { 161 } else if ( msg == "mtabChanged()" ) {
162 // odebug << "CARDMONAPPLET: mtabchanged" << oendl; 162 // odebug << "CARDMONAPPLET: mtabchanged" << oendl;
163 getStatusSd(); 163 getStatusSd();
164 } 164 }
165} 165}
166 166
167bool CardMonitor::getStatusPcmcia( int showPopUp ) { 167bool CardMonitor::getStatusPcmcia( int showPopUp ) {
168 168
169 bool cardWas0 = cardInPcmcia0; // remember last state 169 bool cardWas0 = cardInPcmcia0; // remember last state
170 bool cardWas1 = cardInPcmcia1; 170 bool cardWas1 = cardInPcmcia1;
171 171
172 QString fileName; 172 QString fileName;
173 173
174 // one of these 3 files should exist 174 // one of these 3 files should exist
175 if ( QFile::exists( "/var/run/stab" ) ) { 175 if ( QFile::exists( "/var/run/stab" ) ) {
176 fileName = "/var/run/stab"; 176 fileName = "/var/run/stab";
177 } else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { 177 } else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) {
178 fileName = "/var/state/pcmcia/stab"; 178 fileName = "/var/state/pcmcia/stab";
179 } else { 179 } else {
180 fileName = "/var/lib/pcmcia/stab"; 180 fileName = "/var/lib/pcmcia/stab";
181 } 181 }
182 182
183 QFile f( fileName ); 183 QFile f( fileName );
184 184
185 if ( f.open( IO_ReadOnly ) ) { 185 if ( f.open( IO_ReadOnly ) ) {
186 QStringList list; 186 QStringList list;
187 QTextStream stream( &f ); 187 QTextStream stream( &f );
188 QString streamIn; 188 QString streamIn;
189 streamIn = stream.read(); 189 streamIn = stream.read();
190 list = QStringList::split( "\n", streamIn ); 190 list = QStringList::split( "\n", streamIn );
191 for ( QStringList::Iterator line = list.begin(); line != list.end(); 191 for ( QStringList::Iterator line = list.begin(); line != list.end();
192 line++ ) { 192 line++ ) {
193 if ( ( *line ).startsWith( "Socket 0:" ) ) { 193 if ( ( *line ).startsWith( "Socket 0:" ) ) {
194 if ( ( *line ).startsWith( "Socket 0: empty" ) && cardInPcmcia0 ) { 194 if ( ( *line ).startsWith( "Socket 0: empty" ) && cardInPcmcia0 ) {
195 cardInPcmcia0 = FALSE; 195 cardInPcmcia0 = FALSE;
196 } else if ( !( *line ).startsWith( "Socket 0: empty" ) 196 } else if ( !( *line ).startsWith( "Socket 0: empty" )
197 && !cardInPcmcia0 ) { 197 && !cardInPcmcia0 ) {
198 cardInPcmcia0Name = 198 cardInPcmcia0Name =
199 ( *line ).mid( ( ( *line ).find( ':' ) + 1 ), 199 ( *line ).mid( ( ( *line ).find( ':' ) + 1 ),
200 ( *line ).length() - 9 ); 200 ( *line ).length() - 9 );
201 cardInPcmcia0Name.stripWhiteSpace(); 201 cardInPcmcia0Name.stripWhiteSpace();
202 cardInPcmcia0 = TRUE; 202 cardInPcmcia0 = TRUE;
203 show(); 203 show();
204 line++; 204 line++;
205 int pos = ( *line ).find( '\t' ) + 1; 205 int pos = ( *line ).find( '\t' ) + 1;
206 cardInPcmcia0Type = 206 cardInPcmcia0Type =
207 ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos ); 207 ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos );
208 } 208 }
209 } else if ( ( *line ).startsWith( "Socket 1:" ) ) { 209 } else if ( ( *line ).startsWith( "Socket 1:" ) ) {
210 if ( ( *line ).startsWith( "Socket 1: empty" ) && cardInPcmcia1 ) { 210 if ( ( *line ).startsWith( "Socket 1: empty" ) && cardInPcmcia1 ) {
211 cardInPcmcia1 = FALSE; 211 cardInPcmcia1 = FALSE;
212 } else if ( !( *line ).startsWith( "Socket 1: empty" ) 212 } else if ( !( *line ).startsWith( "Socket 1: empty" )
213 && !cardInPcmcia1 ) { 213 && !cardInPcmcia1 ) {
214 cardInPcmcia1Name = 214 cardInPcmcia1Name =
215 ( *line ).mid( ( ( *line ).find( ':' ) + 1 ), 215 ( *line ).mid( ( ( *line ).find( ':' ) + 1 ),
216 ( *line ).length() - 9 ); 216 ( *line ).length() - 9 );
217 cardInPcmcia1Name.stripWhiteSpace(); 217 cardInPcmcia1Name.stripWhiteSpace();
218 cardInPcmcia1 = TRUE; 218 cardInPcmcia1 = TRUE;
219 show(); 219 show();
220 line++; 220 line++;
221 int pos = ( *line ).find( '\t' ) + 1; 221 int pos = ( *line ).find( '\t' ) + 1;
222 cardInPcmcia1Type = 222 cardInPcmcia1Type =
223 ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos ); 223 ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos );
224 } 224 }
225 } 225 }
226 } 226 }
227 f.close(); 227 f.close();
228 228
229 if ( !showPopUp 229 if ( !showPopUp
230 && ( cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1 ) ) { 230 && ( cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1 ) ) {
231 QString text = QString::null; 231 QString text = QString::null;
232 QString what = QString::null; 232 QString what = QString::null;
233 if ( cardWas0 != cardInPcmcia0 ) { 233 if ( cardWas0 != cardInPcmcia0 ) {
234 if ( cardInPcmcia0 ) { 234 if ( cardInPcmcia0 ) {
235 text += tr( "New card: " ); 235 text += tr( "New card: " );
236 what = "on"; 236 what = "on";
237 } else { 237 } else {
238 text += tr( "Ejected: " ); 238 text += tr( "Ejected: " );
239 what = "off"; 239 what = "off";
240 } 240 }
241 text += cardInPcmcia0Name; 241 text += cardInPcmcia0Name;
242 popUp( text, "cardmon/" + cardInPcmcia0Type ); 242 popUp( text, "cardmon/" + cardInPcmcia0Type );
243 } 243 }
244 244
245 if ( cardWas1 != cardInPcmcia1 ) { 245 if ( cardWas1 != cardInPcmcia1 ) {
246 if ( cardInPcmcia1 ) { 246 if ( cardInPcmcia1 ) {
247 text += tr( "New card: " ); 247 text += tr( "New card: " );
248 what = "on"; 248 what = "on";
249 } else { 249 } else {
250 text += tr( "Ejected: " ); 250 text += tr( "Ejected: " );
251 what = "off"; 251 what = "off";
252 } 252 }
253 text += cardInPcmcia1Name; 253 text += cardInPcmcia1Name;
254 popUp( text, "cardmon/" + cardInPcmcia1Type ); 254 popUp( text, "cardmon/" + cardInPcmcia1Type );
255 } 255 }
256 #ifndef QT_NO_SOUND 256 #ifndef QT_NO_SOUND
257 QSound::play( Resource::findSound( "cardmon/card" + what ) ); 257 QSound::play( Resource::findSound( "cardmon/card" + what ) );
258 #endif 258 #endif
259 259
260 } 260 }
261 } else { 261 } else {
262 // no file found 262 // no file found
263 odebug << "no file found" << oendl; 263 odebug << "no file found" << oendl;
264 cardInPcmcia0 = FALSE; 264 cardInPcmcia0 = FALSE;
265 cardInPcmcia1 = FALSE; 265 cardInPcmcia1 = FALSE;
266 } 266 }
267 repaint( FALSE ); 267 repaint( FALSE );
268 return ( ( cardWas0 == cardInPcmcia0 268 return ( ( cardWas0 == cardInPcmcia0
269 && cardWas1 == cardInPcmcia1 ) ? FALSE : TRUE ); 269 && cardWas1 == cardInPcmcia1 ) ? FALSE : TRUE );
270 270
271} 271}
272 272
273 273
274bool CardMonitor::getStatusSd( int showPopUp ) { 274bool CardMonitor::getStatusSd( int showPopUp ) {
275 275
276 bool cardWas = cardInSd; // remember last state 276 bool cardWas = cardInSd; // remember last state
277 cardInSd = FALSE; 277 cardInSd = FALSE;
278 278
279 #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 279 #if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
280 280
281 struct mntent *me; 281 struct mntent *me;
282 FILE *mntfp = setmntent( "/etc/mtab", "r" ); 282 FILE *mntfp = setmntent( "/etc/mtab", "r" );
283 283
284 if ( mntfp ) { 284 if ( mntfp ) {
285 while ( ( me = getmntent( mntfp ) ) != 0 ) { 285 while ( ( me = getmntent( mntfp ) ) != 0 ) {
286 QString fs = QFile::decodeName( me->mnt_fsname ); 286 QString fs = QFile::decodeName( me->mnt_fsname );
287 //odebug << fs << oendl; 287 //odebug << fs << oendl;
288 if ( fs.left( 14 ) == "/dev/mmc/part1" || fs.left( 7 ) == "/dev/sd" 288 if ( fs.left( 14 ) == "/dev/mmc/part1" || fs.left( 7 ) == "/dev/sd"
289 || fs.left( 9 ) == "/dev/mmcd" ) { 289 || fs.left( 9 ) == "/dev/mmcd" ) {
290 cardInSd = TRUE; 290 cardInSd = TRUE;
291 cardSdName = fs; 291 cardSdName = fs;
292 show(); 292 show();
293 } 293 }
294 // else { 294 // else {
295 // cardInSd = FALSE; 295 // cardInSd = FALSE;
296 // } 296 // }
297 } 297 }
298 endmntent( mntfp ); 298 endmntent( mntfp );
299 } 299 }
300 300
301 if ( !showPopUp && cardWas != cardInSd ) { 301 if ( !showPopUp && cardWas != cardInSd ) {
302 QString text = QString::null; 302 QString text = QString::null;
303 QString what = QString::null; 303 QString what = QString::null;
304 if ( cardInSd ) { 304 if ( cardInSd ) {
305 text += "New card: SD/MMC"; 305 text += tr("New card: SD/MMC");
306 what = "on"; 306 what = "on";
307 } else { 307 } else {
308 text += "Ejected: SD/MMC"; 308 text += tr("Ejected: SD/MMC");
309 what = "off"; 309 what = "off";
310 } 310 }
311 //odebug << "TEXT: " + text << oendl; 311 //odebug << "TEXT: " + text << oendl;
312 #ifndef QT_NO_SOUND 312 #ifndef QT_NO_SOUND
313 QSound::play( Resource::findSound( "cardmon/card" + what ) ); 313 QSound::play( Resource::findSound( "cardmon/card" + what ) );
314 #endif 314 #endif
315 315
316 popUp( text, "cardmon/ide" ); // XX add SD pic 316 popUp( text, "cardmon/ide" ); // XX add SD pic
317 } 317 }
318 #else 318 #else
319 #error "Not on Linux" 319 #error "Not on Linux"
320 #endif 320 #endif
321 repaint( FALSE ); 321 repaint( FALSE );
322 return ( ( cardWas == cardInSd ) ? FALSE : TRUE ); 322 return ( ( cardWas == cardInSd ) ? FALSE : TRUE );
323} 323}
324 324
325void CardMonitor::paintEvent( QPaintEvent * ) { 325void CardMonitor::paintEvent( QPaintEvent * ) {
326 326
327 QPainter p( this ); 327 QPainter p( this );
328 328
329 if ( cardInPcmcia0 || cardInPcmcia1 || cardInSd ) { 329 if ( cardInPcmcia0 || cardInPcmcia1 || cardInSd ) {
330 p.drawPixmap( 0, 0, pm ); 330 p.drawPixmap( 0, 0, pm );
331 show(); 331 show();
332 } else { 332 } else {
333 //p.eraseRect(rect()); 333 //p.eraseRect(rect());
334 hide(); 334 hide();
335 } 335 }
336} 336}
337 337
338int CardMonitor::position() { 338int CardMonitor::position() {
339 return 7; 339 return 7;
340} 340}
341 341
342void CardMonitor::execCommand( const QStringList &strList ) { 342void CardMonitor::execCommand( const QStringList &strList ) {
343 delete m_process; 343 delete m_process;
344 m_process = 0; 344 m_process = 0;
345 345
346 if ( m_process == 0 ) { 346 if ( m_process == 0 ) {
347 m_process = new OProcess(); 347 m_process = new OProcess();
348 348
349 349
350 for ( QStringList::ConstIterator it = strList.begin(); it != strList.end(); ++it ) { 350 for ( QStringList::ConstIterator it = strList.begin(); it != strList.end(); ++it ) {
351 *m_process << *it; 351 *m_process << *it;
352 } 352 }
353 353
354 connect(m_process, SIGNAL(processExited(Opie::Core::OProcess*)), 354 connect(m_process, SIGNAL(processExited(Opie::Core::OProcess*)),
355 this, SLOT( slotExited(Opie::Core::OProcess*))); 355 this, SLOT( slotExited(Opie::Core::OProcess*)));
356 356
357 if(!m_process->start(OProcess::NotifyOnExit, OProcess::AllOutput ) ) { 357 if(!m_process->start(OProcess::NotifyOnExit, OProcess::AllOutput ) ) {
358 delete m_process; 358 delete m_process;
359 m_process = 0; 359 m_process = 0;
360 } 360 }
361 } 361 }
362} 362}
363 363
364void CardMonitor::slotExited( OProcess* ) { 364void CardMonitor::slotExited( OProcess* ) {
365 365
366 if( m_process->normalExit() ) { 366 if( m_process->normalExit() ) {
367 int ret = m_process->exitStatus(); 367 int ret = m_process->exitStatus();
368 if( ret != 0 ) { 368 if( ret != 0 ) {
369 if ( m_commandOrig == PCMCIA_Socket1 || 369 if ( m_commandOrig == PCMCIA_Socket1 ||
370 m_commandOrig == PCMCIA_Socket2 ) { 370 m_commandOrig == PCMCIA_Socket2 ) {
371 popUp( tr( "CF/PCMCIA card eject failed!" ) ); 371 popUp( tr( "CF/PCMCIA card eject failed!" ) );
372 } else if ( m_commandOrig == MMC_Socket ) { 372 } else if ( m_commandOrig == MMC_Socket ) {
373 popUp( tr( "SD/MMC card eject failed!" ) ); 373 popUp( tr( "SD/MMC card eject failed!" ) );
374 } 374 }
375 } 375 }
376 } 376 }
377} 377}
378 378
379EXPORT_OPIE_APPLET_v1( CardMonitor ) 379EXPORT_OPIE_APPLET_v1( CardMonitor )
380 380