author | harlekin <harlekin> | 2003-03-23 13:37:22 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-03-23 13:37:22 (UTC) |
commit | b827dc4fa5b3e1758e627b40de25b68b25e912de (patch) (unidiff) | |
tree | 466e937219baf4be67aa84045ae204d1bab85916 | |
parent | 56192a3d601e5364e9b8f4c331d892befb19cbc1 (diff) | |
download | opie-b827dc4fa5b3e1758e627b40de25b68b25e912de.zip opie-b827dc4fa5b3e1758e627b40de25b68b25e912de.tar.gz opie-b827dc4fa5b3e1758e627b40de25b68b25e912de.tar.bz2 |
hide cardmon applet if no medium is inserted
-rw-r--r-- | core/applets/cardmon/cardmon.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp index 25bb137..f3f9044 100644 --- a/core/applets/cardmon/cardmon.cpp +++ b/core/applets/cardmon/cardmon.cpp | |||
@@ -182,160 +182,163 @@ bool CardMonitor::getStatusPcmcia(int showPopUp) | |||
182 | 182 | ||
183 | bool cardWas0 = cardInPcmcia0;// remember last state | 183 | bool cardWas0 = cardInPcmcia0;// remember last state |
184 | bool cardWas1 = cardInPcmcia1; | 184 | bool cardWas1 = cardInPcmcia1; |
185 | 185 | ||
186 | QString fileName; | 186 | QString fileName; |
187 | 187 | ||
188 | // one of these 3 files should exist | 188 | // one of these 3 files should exist |
189 | if (QFile::exists("/var/run/stab")) { | 189 | if (QFile::exists("/var/run/stab")) { |
190 | fileName = "/var/run/stab"; | 190 | fileName = "/var/run/stab"; |
191 | } else if (QFile::exists("/var/state/pcmcia/stab")) { | 191 | } else if (QFile::exists("/var/state/pcmcia/stab")) { |
192 | fileName = "/var/state/pcmcia/stab"; | 192 | fileName = "/var/state/pcmcia/stab"; |
193 | } else { | 193 | } else { |
194 | fileName = "/var/lib/pcmcia/stab"; | 194 | fileName = "/var/lib/pcmcia/stab"; |
195 | } | 195 | } |
196 | 196 | ||
197 | QFile f(fileName); | 197 | QFile f(fileName); |
198 | 198 | ||
199 | if (f.open(IO_ReadOnly)) { | 199 | if (f.open(IO_ReadOnly)) { |
200 | QStringList list; | 200 | QStringList list; |
201 | QTextStream stream(&f); | 201 | QTextStream stream(&f); |
202 | QString streamIn; | 202 | QString streamIn; |
203 | streamIn = stream.read(); | 203 | streamIn = stream.read(); |
204 | list = QStringList::split("\n", streamIn); | 204 | list = QStringList::split("\n", streamIn); |
205 | for (QStringList::Iterator line = list.begin(); line != list.end(); | 205 | for (QStringList::Iterator line = list.begin(); line != list.end(); |
206 | line++) { | 206 | line++) { |
207 | if ((*line).startsWith("Socket 0:")) { | 207 | if ((*line).startsWith("Socket 0:")) { |
208 | if ((*line).startsWith("Socket 0: empty") && cardInPcmcia0) { | 208 | if ((*line).startsWith("Socket 0: empty") && cardInPcmcia0) { |
209 | cardInPcmcia0 = FALSE; | 209 | cardInPcmcia0 = FALSE; |
210 | } else if (!(*line).startsWith("Socket 0: empty") | 210 | } else if (!(*line).startsWith("Socket 0: empty") |
211 | && !cardInPcmcia0) { | 211 | && !cardInPcmcia0) { |
212 | cardInPcmcia0Name = | 212 | cardInPcmcia0Name = |
213 | (*line).mid(((*line).find(':') + 1), | 213 | (*line).mid(((*line).find(':') + 1), |
214 | (*line).length() - 9); | 214 | (*line).length() - 9); |
215 | cardInPcmcia0Name.stripWhiteSpace(); | 215 | cardInPcmcia0Name.stripWhiteSpace(); |
216 | cardInPcmcia0 = TRUE; | 216 | cardInPcmcia0 = TRUE; |
217 | show(); | 217 | show(); |
218 | line++; | 218 | line++; |
219 | int pos = (*line).find('\t') + 1; | 219 | int pos = (*line).find('\t') + 1; |
220 | cardInPcmcia0Type = | 220 | cardInPcmcia0Type = |
221 | (*line).mid(pos, (*line).find("\t", pos) - pos); | 221 | (*line).mid(pos, (*line).find("\t", pos) - pos); |
222 | } | 222 | } |
223 | } else if ((*line).startsWith("Socket 1:")) { | 223 | } else if ((*line).startsWith("Socket 1:")) { |
224 | if ((*line).startsWith("Socket 1: empty") && cardInPcmcia1) { | 224 | if ((*line).startsWith("Socket 1: empty") && cardInPcmcia1) { |
225 | cardInPcmcia1 = FALSE; | 225 | cardInPcmcia1 = FALSE; |
226 | } else if (!(*line).startsWith("Socket 1: empty") | 226 | } else if (!(*line).startsWith("Socket 1: empty") |
227 | && !cardInPcmcia1) { | 227 | && !cardInPcmcia1) { |
228 | cardInPcmcia1Name = | 228 | cardInPcmcia1Name = |
229 | (*line).mid(((*line).find(':') + 1), | 229 | (*line).mid(((*line).find(':') + 1), |
230 | (*line).length() - 9); | 230 | (*line).length() - 9); |
231 | cardInPcmcia1Name.stripWhiteSpace(); | 231 | cardInPcmcia1Name.stripWhiteSpace(); |
232 | cardInPcmcia1 = TRUE; | 232 | cardInPcmcia1 = TRUE; |
233 | show(); | 233 | show(); |
234 | line++; | 234 | line++; |
235 | int pos = (*line).find('\t') + 1; | 235 | int pos = (*line).find('\t') + 1; |
236 | cardInPcmcia1Type = | 236 | cardInPcmcia1Type = |
237 | (*line).mid(pos, (*line).find("\t", pos) - pos); | 237 | (*line).mid(pos, (*line).find("\t", pos) - pos); |
238 | } | 238 | } |
239 | } | 239 | } |
240 | } | 240 | } |
241 | f.close(); | 241 | f.close(); |
242 | 242 | ||
243 | if (!showPopUp | 243 | if (!showPopUp |
244 | && (cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1)) { | 244 | && (cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1)) { |
245 | QString text = QString::null; | 245 | QString text = QString::null; |
246 | QString what = QString::null; | 246 | QString what = QString::null; |
247 | if (cardWas0 != cardInPcmcia0) { | 247 | if (cardWas0 != cardInPcmcia0) { |
248 | if (cardInPcmcia0) { | 248 | if (cardInPcmcia0) { |
249 | text += tr("New card: "); | 249 | text += tr("New card: "); |
250 | what = "on"; | 250 | what = "on"; |
251 | } else { | 251 | } else { |
252 | text += tr("Ejected: "); | 252 | text += tr("Ejected: "); |
253 | what = "off"; | 253 | what = "off"; |
254 | } | 254 | } |
255 | text += cardInPcmcia0Name; | 255 | text += cardInPcmcia0Name; |
256 | popUp(text, "cardmon/" + cardInPcmcia0Type); | 256 | popUp(text, "cardmon/" + cardInPcmcia0Type); |
257 | } | 257 | } |
258 | 258 | ||
259 | if (cardWas1 != cardInPcmcia1) { | 259 | if (cardWas1 != cardInPcmcia1) { |
260 | if (cardInPcmcia1) { | 260 | if (cardInPcmcia1) { |
261 | text += tr("New card: "); | 261 | text += tr("New card: "); |
262 | what = "on"; | 262 | what = "on"; |
263 | } else { | 263 | } else { |
264 | text += tr("Ejected: "); | 264 | text += tr("Ejected: "); |
265 | what = "off"; | 265 | what = "off"; |
266 | } | 266 | } |
267 | text += cardInPcmcia1Name; | 267 | text += cardInPcmcia1Name; |
268 | popUp(text, "cardmon/" + cardInPcmcia1Type); | 268 | popUp(text, "cardmon/" + cardInPcmcia1Type); |
269 | } | 269 | } |
270 | QSound::play(Resource::findSound("cardmon/card" + what)); | 270 | QSound::play(Resource::findSound("cardmon/card" + what)); |
271 | } | 271 | } |
272 | } else { | 272 | } else { |
273 | // no file found | 273 | // no file found |
274 | qDebug("no file found"); | 274 | qDebug("no file found"); |
275 | cardInPcmcia0 = FALSE; | 275 | cardInPcmcia0 = FALSE; |
276 | cardInPcmcia1 = FALSE; | 276 | cardInPcmcia1 = FALSE; |
277 | } | 277 | } |
278 | repaint( FALSE ); | ||
278 | return ((cardWas0 == cardInPcmcia0 | 279 | return ((cardWas0 == cardInPcmcia0 |
279 | && cardWas1 == cardInPcmcia1) ? FALSE : TRUE); | 280 | && cardWas1 == cardInPcmcia1) ? FALSE : TRUE); |
281 | |||
280 | } | 282 | } |
281 | 283 | ||
282 | 284 | ||
283 | bool CardMonitor::getStatusSd(int showPopUp) | 285 | bool CardMonitor::getStatusSd(int showPopUp) |
284 | { | 286 | { |
285 | 287 | ||
286 | bool cardWas = cardInSd;// remember last state | 288 | bool cardWas = cardInSd;// remember last state |
287 | cardInSd = FALSE; | 289 | cardInSd = FALSE; |
288 | 290 | ||
289 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 291 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
290 | struct mntent *me; | 292 | struct mntent *me; |
291 | FILE *mntfp = setmntent("/etc/mtab", "r"); | 293 | FILE *mntfp = setmntent("/etc/mtab", "r"); |
292 | 294 | ||
293 | if (mntfp) { | 295 | if (mntfp) { |
294 | while ((me = getmntent(mntfp)) != 0) { | 296 | while ((me = getmntent(mntfp)) != 0) { |
295 | QString fs = me->mnt_fsname; | 297 | QString fs = me->mnt_fsname; |
296 | //qDebug( fs ); | 298 | //qDebug( fs ); |
297 | if (fs.left(14) == "/dev/mmc/part1" || fs.left(7) == "/dev/sd" | 299 | if (fs.left(14) == "/dev/mmc/part1" || fs.left(7) == "/dev/sd" |
298 | || fs.left(9) == "/dev/mmcd") { | 300 | || fs.left(9) == "/dev/mmcd") { |
299 | cardInSd = TRUE; | 301 | cardInSd = TRUE; |
300 | show(); | 302 | show(); |
301 | } | 303 | } |
302 | // else { | 304 | // else { |
303 | // cardInSd = FALSE; | 305 | // cardInSd = FALSE; |
304 | // } | 306 | // } |
305 | } | 307 | } |
306 | endmntent(mntfp); | 308 | endmntent(mntfp); |
307 | } | 309 | } |
308 | 310 | ||
309 | if (!showPopUp && cardWas != cardInSd) { | 311 | if (!showPopUp && cardWas != cardInSd) { |
310 | QString text = QString::null; | 312 | QString text = QString::null; |
311 | QString what = QString::null; | 313 | QString what = QString::null; |
312 | if (cardInSd) { | 314 | if (cardInSd) { |
313 | text += "New card: SD/MMC"; | 315 | text += "New card: SD/MMC"; |
314 | what = "on"; | 316 | what = "on"; |
315 | } else { | 317 | } else { |
316 | text += "Ejected: SD/MMC"; | 318 | text += "Ejected: SD/MMC"; |
317 | what = "off"; | 319 | what = "off"; |
318 | } | 320 | } |
319 | //qDebug("TEXT: " + text ); | 321 | //qDebug("TEXT: " + text ); |
320 | QSound::play(Resource::findSound("cardmon/card" + what)); | 322 | QSound::play(Resource::findSound("cardmon/card" + what)); |
321 | popUp(text, "cardmon/ide");// XX add SD pic | 323 | popUp(text, "cardmon/ide");// XX add SD pic |
322 | } | 324 | } |
323 | #else | 325 | #else |
324 | #error "Not on Linux" | 326 | #error "Not on Linux" |
325 | #endif | 327 | #endif |
328 | repaint( FALSE ); | ||
326 | return ((cardWas == cardInSd) ? FALSE : TRUE); | 329 | return ((cardWas == cardInSd) ? FALSE : TRUE); |
327 | } | 330 | } |
328 | 331 | ||
329 | void CardMonitor::paintEvent(QPaintEvent *) | 332 | void CardMonitor::paintEvent(QPaintEvent *) |
330 | { | 333 | { |
331 | 334 | ||
332 | QPainter p(this); | 335 | QPainter p(this); |
333 | 336 | ||
334 | if (cardInPcmcia0 || cardInPcmcia1 || cardInSd) { | 337 | if ( cardInPcmcia0 || cardInPcmcia1 || cardInSd ) { |
335 | p.drawPixmap(0, 0, pm); | 338 | p.drawPixmap(0, 0, pm); |
336 | show(); | 339 | show(); |
337 | } else { | 340 | } else { |
338 | p.eraseRect(rect()); | 341 | //p.eraseRect(rect()); |
339 | hide(); | 342 | hide(); |
340 | } | 343 | } |
341 | } | 344 | } |