summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-10-10 13:31:57 (UTC)
committer llornkcor <llornkcor>2002-10-10 13:31:57 (UTC)
commitc82a7868e0e2f8dc3e3d2b42629fc8d8efef05c7 (patch) (unidiff)
tree46c91fad5a5869d7ca146cf78c74a02d04eb083a
parent798474a96ae42503b9d73444d7a4c05d6af5bc10 (diff)
downloadopie-c82a7868e0e2f8dc3e3d2b42629fc8d8efef05c7.zip
opie-c82a7868e0e2f8dc3e3d2b42629fc8d8efef05c7.tar.gz
opie-c82a7868e0e2f8dc3e3d2b42629fc8d8efef05c7.tar.bz2
enough memory again mesage is silly and annoying, and takes up memory in low memory situations
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index 1a33b36..6ee7132 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -230,251 +230,251 @@ private:
230 return interval; 230 return interval;
231 } 231 }
232 232
233public: 233public:
234 void setIntervals( int i1, int i2, int i3 ) 234 void setIntervals( int i1, int i2, int i3 )
235 { 235 {
236 Config config( "qpe" ); 236 Config config( "qpe" );
237 config.setGroup( "Screensaver" ); 237 config.setGroup( "Screensaver" );
238 238
239 int v[ 4 ]; 239 int v[ 4 ];
240 i1 = ssi( i1, config, "Dim", "Interval_Dim", 30 ); 240 i1 = ssi( i1, config, "Dim", "Interval_Dim", 30 );
241 i2 = ssi( i2, config, "LightOff", "Interval_LightOff", 20 ); 241 i2 = ssi( i2, config, "LightOff", "Interval_LightOff", 20 );
242 i3 = ssi( i3, config, "", "Interval", 60 ); 242 i3 = ssi( i3, config, "", "Interval", 60 );
243 243
244 //qDebug("screen saver intervals: %d %d %d", i1, i2, i3); 244 //qDebug("screen saver intervals: %d %d %d", i1, i2, i3);
245 245
246 v [ 0 ] = QMAX( 1000 * i1, 100 ); 246 v [ 0 ] = QMAX( 1000 * i1, 100 );
247 v [ 1 ] = QMAX( 1000 * i2, 100 ); 247 v [ 1 ] = QMAX( 1000 * i2, 100 );
248 v [ 2 ] = QMAX( 1000 * i3, 100 ); 248 v [ 2 ] = QMAX( 1000 * i3, 100 );
249 v [ 3 ] = 0; 249 v [ 3 ] = 0;
250 m_enable_dim = ( ( i1 != 0 ) ? config. readNumEntry ( "Dim", 1 ) : false ); 250 m_enable_dim = ( ( i1 != 0 ) ? config. readNumEntry ( "Dim", 1 ) : false );
251 m_enable_lightoff = ( ( i2 != 0 ) ? config. readNumEntry ( "LightOff", 1 ) : false ); 251 m_enable_lightoff = ( ( i2 != 0 ) ? config. readNumEntry ( "LightOff", 1 ) : false );
252 m_enable_onlylcdoff = config. readNumEntry ( "LcdOffOnly", 0 ); 252 m_enable_onlylcdoff = config. readNumEntry ( "LcdOffOnly", 0 );
253 253
254 if ( !i1 && !i2 && !i3 ) 254 if ( !i1 && !i2 && !i3 )
255 QWSServer::setScreenSaverInterval( 0 ); 255 QWSServer::setScreenSaverInterval( 0 );
256 else 256 else
257 QWSServer::setScreenSaverIntervals( v ); 257 QWSServer::setScreenSaverIntervals( v );
258 } 258 }
259 259
260 void setInterval ( int interval ) 260 void setInterval ( int interval )
261 { 261 {
262 setIntervals ( -1, -1, interval ); 262 setIntervals ( -1, -1, interval );
263 } 263 }
264 264
265 void setMode ( int mode ) 265 void setMode ( int mode )
266 { 266 {
267 if ( mode > m_disable_suspend ) 267 if ( mode > m_disable_suspend )
268 setInterval( -1 ); 268 setInterval( -1 );
269 m_disable_suspend = mode; 269 m_disable_suspend = mode;
270 } 270 }
271 271
272 int backlight ( ) 272 int backlight ( )
273 { 273 {
274 if ( m_backlight_bright == -1 ) { 274 if ( m_backlight_bright == -1 ) {
275 // Read from config 275 // Read from config
276 Config config ( "qpe" ); 276 Config config ( "qpe" );
277 config. setGroup ( "Screensaver" ); 277 config. setGroup ( "Screensaver" );
278 m_backlight_bright = config. readNumEntry ( "Brightness", 255 ); 278 m_backlight_bright = config. readNumEntry ( "Brightness", 255 );
279 } 279 }
280 return m_backlight_bright; 280 return m_backlight_bright;
281 } 281 }
282 282
283 void setBacklight ( int bright ) 283 void setBacklight ( int bright )
284 { 284 {
285 if ( bright == -3 ) { 285 if ( bright == -3 ) {
286 // Forced on 286 // Forced on
287 m_backlight_forcedoff = false; 287 m_backlight_forcedoff = false;
288 bright = -1; 288 bright = -1;
289 } 289 }
290 if ( m_backlight_forcedoff && bright != -2 ) 290 if ( m_backlight_forcedoff && bright != -2 )
291 return ; 291 return ;
292 if ( bright == -2 ) { 292 if ( bright == -2 ) {
293 // Toggle between off and on 293 // Toggle between off and on
294 bright = m_backlight_bright ? 0 : -1; 294 bright = m_backlight_bright ? 0 : -1;
295 m_backlight_forcedoff = !bright; 295 m_backlight_forcedoff = !bright;
296 } 296 }
297 297
298 m_backlight_bright = bright; 298 m_backlight_bright = bright;
299 299
300 bright = backlight ( ); 300 bright = backlight ( );
301 ODevice::inst ( ) -> setDisplayBrightness ( bright ); 301 ODevice::inst ( ) -> setDisplayBrightness ( bright );
302 302
303 m_backlight_bright = bright; 303 m_backlight_bright = bright;
304 } 304 }
305 305
306private: 306private:
307 int m_disable_suspend; 307 int m_disable_suspend;
308 bool m_enable_dim; 308 bool m_enable_dim;
309 bool m_enable_lightoff; 309 bool m_enable_lightoff;
310 bool m_enable_onlylcdoff; 310 bool m_enable_onlylcdoff;
311 311
312 bool m_lcd_status; 312 bool m_lcd_status;
313 313
314 int m_backlight_bright; 314 int m_backlight_bright;
315 bool m_backlight_forcedoff; 315 bool m_backlight_forcedoff;
316}; 316};
317 317
318 318
319void DesktopApplication::switchLCD ( bool on ) 319void DesktopApplication::switchLCD ( bool on )
320{ 320{
321 if ( qApp ) { 321 if ( qApp ) {
322 DesktopApplication *dapp = (DesktopApplication *) qApp; 322 DesktopApplication *dapp = (DesktopApplication *) qApp;
323 323
324 if ( dapp-> m_screensaver ) { 324 if ( dapp-> m_screensaver ) {
325 if ( on ) 325 if ( on )
326 dapp-> m_screensaver-> restore ( ); //setBacklight ( on ? -3 : -1 ); 326 dapp-> m_screensaver-> restore ( ); //setBacklight ( on ? -3 : -1 );
327 else 327 else
328 dapp-> m_screensaver-> save ( 1 ); 328 dapp-> m_screensaver-> save ( 1 );
329 329
330 } 330 }
331 } 331 }
332} 332}
333 333
334 334
335DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) 335DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType )
336 : QPEApplication( argc, argv, appType ) 336 : QPEApplication( argc, argv, appType )
337{ 337{
338 338
339 QTimer * t = new QTimer( this ); 339 QTimer * t = new QTimer( this );
340 connect( t, SIGNAL( timeout() ), this, SLOT( psTimeout() ) ); 340 connect( t, SIGNAL( timeout() ), this, SLOT( psTimeout() ) );
341 t->start( 10000 ); 341 t->start( 10000 );
342 ps = new PowerStatus; 342 ps = new PowerStatus;
343 pa = new DesktopPowerAlerter( 0 ); 343 pa = new DesktopPowerAlerter( 0 );
344 344
345 channel = new QCopChannel( "QPE/Desktop", this ); 345 channel = new QCopChannel( "QPE/Desktop", this );
346 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), 346 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ),
347 this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) ); 347 this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) );
348 348
349 channel = new QCopChannel( "QPE/System", this ); 349 channel = new QCopChannel( "QPE/System", this );
350 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), 350 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ),
351 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); 351 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) );
352 352
353 m_screensaver = new QPEScreenSaver; 353 m_screensaver = new QPEScreenSaver;
354 354
355 m_screensaver-> setInterval ( -1 ); 355 m_screensaver-> setInterval ( -1 );
356 QWSServer::setScreenSaver( m_screensaver ); 356 QWSServer::setScreenSaver( m_screensaver );
357} 357}
358 358
359 359
360DesktopApplication::~DesktopApplication() 360DesktopApplication::~DesktopApplication()
361{ 361{
362 delete ps; 362 delete ps;
363 delete pa; 363 delete pa;
364} 364}
365 365
366void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data ) 366void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data )
367{ 367{
368#ifdef Q_WS_QWS 368#ifdef Q_WS_QWS
369 QDataStream stream( data, IO_ReadOnly ); 369 QDataStream stream( data, IO_ReadOnly );
370 if ( msg == "keyRegister(int key, QString channel, QString message)" ) { 370 if ( msg == "keyRegister(int key, QString channel, QString message)" ) {
371 int k; 371 int k;
372 QString c, m; 372 QString c, m;
373 stream >> k; 373 stream >> k;
374 stream >> c; 374 stream >> c;
375 stream >> m; 375 stream >> m;
376 376
377 qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m ); 377 qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m );
378 keyRegisterList.append( QCopKeyRegister( k, c, m ) ); 378 keyRegisterList.append( QCopKeyRegister( k, c, m ) );
379 } 379 }
380 else if ( msg == "suspend()" ) { 380 else if ( msg == "suspend()" ) {
381 emit power(); 381 emit power();
382 } 382 }
383 else if ( msg == "home()" ) { 383 else if ( msg == "home()" ) {
384 qpedesktop-> home ( ); 384 qpedesktop-> home ( );
385 } 385 }
386#endif 386#endif
387} 387}
388 388
389 389
390void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data ) 390void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data )
391{ 391{
392#ifdef Q_WS_QWS 392#ifdef Q_WS_QWS
393 QDataStream stream ( data, IO_ReadOnly ); 393 QDataStream stream ( data, IO_ReadOnly );
394 394
395 if ( msg == "setScreenSaverInterval(int)" ) { 395 if ( msg == "setScreenSaverInterval(int)" ) {
396 int time; 396 int time;
397 stream >> time; 397 stream >> time;
398 m_screensaver-> setInterval( time ); 398 m_screensaver-> setInterval( time );
399 } 399 }
400 else if ( msg == "setScreenSaverIntervals(int,int,int)" ) { 400 else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
401 int t1, t2, t3; 401 int t1, t2, t3;
402 stream >> t1 >> t2 >> t3; 402 stream >> t1 >> t2 >> t3;
403 m_screensaver-> setIntervals( t1, t2, t3 ); 403 m_screensaver-> setIntervals( t1, t2, t3 );
404 } 404 }
405 else if ( msg == "setBacklight(int)" ) { 405 else if ( msg == "setBacklight(int)" ) {
406 int bright; 406 int bright;
407 stream >> bright; 407 stream >> bright;
408 m_screensaver-> setBacklight( bright ); 408 m_screensaver-> setBacklight( bright );
409 } 409 }
410 else if ( msg == "setScreenSaverMode(int)" ) { 410 else if ( msg == "setScreenSaverMode(int)" ) {
411 int mode; 411 int mode;
412 stream >> mode; 412 stream >> mode;
413 m_screensaver-> setMode ( mode ); 413 m_screensaver-> setMode ( mode );
414 } 414 }
415#endif 415#endif
416} 416}
417 417
418enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; 418enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown;
419 419
420#ifdef Q_WS_QWS 420#ifdef Q_WS_QWS
421bool DesktopApplication::qwsEventFilter( QWSEvent *e ) 421bool DesktopApplication::qwsEventFilter( QWSEvent *e )
422{ 422{
423 qpedesktop->checkMemory(); 423 qpedesktop->checkMemory();
424 424
425 if ( e->type == QWSEvent::Key ) { 425 if ( e->type == QWSEvent::Key ) {
426 QWSKeyEvent * ke = ( QWSKeyEvent * ) e; 426 QWSKeyEvent * ke = ( QWSKeyEvent * ) e;
427 if ( !loggedin && ke->simpleData.keycode != Key_F34 ) 427 if ( !loggedin && ke->simpleData.keycode != Key_F34 )
428 return TRUE; 428 return TRUE;
429 bool press = ke->simpleData.is_press; 429 bool press = ke->simpleData.is_press;
430 bool autoRepeat = ke->simpleData.is_auto_repeat; 430 bool autoRepeat = ke->simpleData.is_auto_repeat;
431 431
432 /* 432 /*
433 app that registers key/message to be sent back to the app, when it doesn't have focus, 433 app that registers key/message to be sent back to the app, when it doesn't have focus,
434 when user presses key, unless keyboard has been requested from app. 434 when user presses key, unless keyboard has been requested from app.
435 will not send multiple repeats if user holds key 435 will not send multiple repeats if user holds key
436 i.e. one shot 436 i.e. one shot
437 */ 437 */
438 if ( !keyRegisterList.isEmpty() && ke->simpleData.keycode !=0 && press) { 438 if ( !keyRegisterList.isEmpty() && ke->simpleData.keycode !=0 && press) {
439// qDebug("<<<<<<<<<<<<<keycode %d", ke->simpleData.keycode); 439// qDebug("<<<<<<<<<<<<<keycode %d", ke->simpleData.keycode);
440 KeyRegisterList::Iterator it; 440 KeyRegisterList::Iterator it;
441 for ( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) { 441 for ( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) {
442 if ( ( *it ).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() ) { 442 if ( ( *it ).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() ) {
443 if ( press ) 443 if ( press )
444 qDebug( "press" ); 444 qDebug( "press" );
445 else 445 else
446 qDebug( "release" ); 446 qDebug( "release" );
447 QCopEnvelope( ( *it ).getChannel().utf8(), ( *it ).getMessage().utf8() ); 447 QCopEnvelope( ( *it ).getChannel().utf8(), ( *it ).getMessage().utf8() );
448 } 448 }
449 } 449 }
450 } 450 }
451 451
452 if ( !keyboardGrabbed() ) { 452 if ( !keyboardGrabbed() ) {
453 if ( ke->simpleData.keycode == Key_F9 ) { 453 if ( ke->simpleData.keycode == Key_F9 ) {
454 if ( press ) 454 if ( press )
455 emit datebook(); 455 emit datebook();
456 return TRUE; 456 return TRUE;
457 } 457 }
458 if ( ke->simpleData.keycode == Key_F10 ) { 458 if ( ke->simpleData.keycode == Key_F10 ) {
459 if ( !press && cardSendTimer ) { 459 if ( !press && cardSendTimer ) {
460 emit contacts(); 460 emit contacts();
461 delete cardSendTimer; 461 delete cardSendTimer;
462 } 462 }
463 else if ( press ) { 463 else if ( press ) {
464 cardSendTimer = new QTimer(); 464 cardSendTimer = new QTimer();
465 cardSendTimer->start( 2000, TRUE ); 465 cardSendTimer->start( 2000, TRUE );
466 connect( cardSendTimer, SIGNAL( timeout() ), this, SLOT( sendCard() ) ); 466 connect( cardSendTimer, SIGNAL( timeout() ), this, SLOT( sendCard() ) );
467 } 467 }
468 return TRUE; 468 return TRUE;
469 } 469 }
470 /* menu key now opens application menu/toolbar 470 /* menu key now opens application menu/toolbar
471 if ( ke->simpleData.keycode == Key_F11 ) { 471 if ( ke->simpleData.keycode == Key_F11 ) {
472 if ( press ) emit menu(); 472 if ( press ) emit menu();
473 return TRUE; 473 return TRUE;
474 } 474 }
475 */ 475 */
476 if ( ke->simpleData.keycode == Key_F12 ) { 476 if ( ke->simpleData.keycode == Key_F12 ) {
477 while ( activePopupWidget() ) 477 while ( activePopupWidget() )
478 activePopupWidget() ->close(); 478 activePopupWidget() ->close();
479 if ( press ) 479 if ( press )
480 emit launch(); 480 emit launch();
@@ -582,247 +582,247 @@ void DesktopApplication::sendCard()
582 582
583#if defined(QPE_HAVE_MEMALERTER) 583#if defined(QPE_HAVE_MEMALERTER)
584QPE_MEMALERTER_IMPL 584QPE_MEMALERTER_IMPL
585#endif 585#endif
586 586
587//=========================================================================== 587//===========================================================================
588 588
589Desktop::Desktop() : 589Desktop::Desktop() :
590 QWidget( 0, 0, WStyle_Tool | WStyle_Customize ), 590 QWidget( 0, 0, WStyle_Tool | WStyle_Customize ),
591 qcopBridge( 0 ), 591 qcopBridge( 0 ),
592 transferServer( 0 ), 592 transferServer( 0 ),
593 packageSlave( 0 ) 593 packageSlave( 0 )
594{ 594{
595 qpedesktop = this; 595 qpedesktop = this;
596 596
597 // bg = new Info( this ); 597 // bg = new Info( this );
598 tb = new TaskBar; 598 tb = new TaskBar;
599 599
600 launcher = new Launcher( 0, 0, WStyle_Customize | QWidget::WGroupLeader ); 600 launcher = new Launcher( 0, 0, WStyle_Customize | QWidget::WGroupLeader );
601 601
602 connect( launcher, SIGNAL( busy() ), tb, SLOT( startWait() ) ); 602 connect( launcher, SIGNAL( busy() ), tb, SLOT( startWait() ) );
603 connect( launcher, SIGNAL( notBusy( const QString& ) ), tb, SLOT( stopWait( const QString& ) ) ); 603 connect( launcher, SIGNAL( notBusy( const QString& ) ), tb, SLOT( stopWait( const QString& ) ) );
604 604
605 int displayw = qApp->desktop() ->width(); 605 int displayw = qApp->desktop() ->width();
606 int displayh = qApp->desktop() ->height(); 606 int displayh = qApp->desktop() ->height();
607 607
608 608
609 QSize sz = tb->sizeHint(); 609 QSize sz = tb->sizeHint();
610 610
611 setGeometry( 0, displayh - sz.height(), displayw, sz.height() ); 611 setGeometry( 0, displayh - sz.height(), displayw, sz.height() );
612 tb->setGeometry( 0, displayh - sz.height(), displayw, sz.height() ); 612 tb->setGeometry( 0, displayh - sz.height(), displayw, sz.height() );
613 613
614 tb->show(); 614 tb->show();
615 launcher->showMaximized(); 615 launcher->showMaximized();
616 launcher->show(); 616 launcher->show();
617 launcher->raise(); 617 launcher->raise();
618#if defined(QPE_HAVE_MEMALERTER) 618#if defined(QPE_HAVE_MEMALERTER)
619 619
620 initMemalerter(); 620 initMemalerter();
621#endif 621#endif
622 // start services 622 // start services
623 startTransferServer(); 623 startTransferServer();
624 ( void ) new IrServer( this ); 624 ( void ) new IrServer( this );
625 rereadVolumes(); 625 rereadVolumes();
626 626
627 packageSlave = new PackageSlave( this ); 627 packageSlave = new PackageSlave( this );
628 connect( qApp, SIGNAL( volumeChanged( bool ) ), this, SLOT( rereadVolumes() ) ); 628 connect( qApp, SIGNAL( volumeChanged( bool ) ), this, SLOT( rereadVolumes() ) );
629 629
630 qApp->installEventFilter( this ); 630 qApp->installEventFilter( this );
631} 631}
632 632
633void Desktop::show() 633void Desktop::show()
634{ 634{
635 login( TRUE ); 635 login( TRUE );
636 QWidget::show(); 636 QWidget::show();
637} 637}
638 638
639Desktop::~Desktop() 639Desktop::~Desktop()
640{ 640{
641 delete launcher; 641 delete launcher;
642 delete tb; 642 delete tb;
643 delete qcopBridge; 643 delete qcopBridge;
644 delete transferServer; 644 delete transferServer;
645} 645}
646 646
647bool Desktop::recoverMemory() 647bool Desktop::recoverMemory()
648{ 648{
649 return tb->recoverMemory(); 649 return tb->recoverMemory();
650} 650}
651 651
652void Desktop::checkMemory() 652void Desktop::checkMemory()
653{ 653{
654#if defined(QPE_HAVE_MEMALERTER) 654#if defined(QPE_HAVE_MEMALERTER)
655 static bool ignoreNormal = FALSE; 655 static bool ignoreNormal = FALSE;
656 static bool existingMessage = FALSE; 656 static bool existingMessage = FALSE;
657 657
658 if ( existingMessage ) 658 if ( existingMessage )
659 return ; // don't show a second message while still on first 659 return ; // don't show a second message while still on first
660 660
661 existingMessage = TRUE; 661 existingMessage = TRUE;
662 switch ( memstate ) { 662 switch ( memstate ) {
663 case Unknown: 663 case Unknown:
664 break; 664 break;
665 case Low: 665 case Low:
666 memstate = Unknown; 666 memstate = Unknown;
667 if ( recoverMemory() ) 667 if ( recoverMemory() )
668 ignoreNormal = TRUE; 668 ignoreNormal = TRUE;
669 else 669 else
670 QMessageBox::warning( 0 , "Memory Status", 670 QMessageBox::warning( 0 , "Memory Status",
671 "The memory smacks of shortage. \n" 671 "The memory smacks of shortage. \n"
672 "Please save data. " ); 672 "Please save data. " );
673 break; 673 break;
674 case Normal: 674 case Normal:
675 memstate = Unknown; 675 memstate = Unknown;
676 if ( ignoreNormal ) 676 if ( ignoreNormal )
677 ignoreNormal = FALSE; 677 ignoreNormal = FALSE;
678 else 678// else
679 QMessageBox::information ( 0 , "Memory Status", 679// QMessageBox::information ( 0 , "Memory Status",
680 "There is enough memory again." ); 680// "There is enough memory again." );
681 break; 681 break;
682 case VeryLow: 682 case VeryLow:
683 memstate = Unknown; 683 memstate = Unknown;
684 QMessageBox::critical( 0 , "Memory Status", 684 QMessageBox::critical( 0 , "Memory Status",
685 "The memory is very low. \n" 685 "The memory is very low. \n"
686 "Please end this application \n" 686 "Please end this application \n"
687 "immediately." ); 687 "immediately." );
688 recoverMemory(); 688 recoverMemory();
689 } 689 }
690 existingMessage = FALSE; 690 existingMessage = FALSE;
691#endif 691#endif
692} 692}
693 693
694static bool isVisibleWindow( int wid ) 694static bool isVisibleWindow( int wid )
695{ 695{
696 const QList<QWSWindow> &list = qwsServer->clientWindows(); 696 const QList<QWSWindow> &list = qwsServer->clientWindows();
697 QWSWindow* w; 697 QWSWindow* w;
698 for ( QListIterator<QWSWindow> it( list ); ( w = it.current() ); ++it ) { 698 for ( QListIterator<QWSWindow> it( list ); ( w = it.current() ); ++it ) {
699 if ( w->winId() == wid ) 699 if ( w->winId() == wid )
700 return !w->isFullyObscured(); 700 return !w->isFullyObscured();
701 } 701 }
702 return FALSE; 702 return FALSE;
703} 703}
704 704
705static bool hasVisibleWindow( const QString& clientname ) 705static bool hasVisibleWindow( const QString& clientname )
706{ 706{
707 const QList<QWSWindow> &list = qwsServer->clientWindows(); 707 const QList<QWSWindow> &list = qwsServer->clientWindows();
708 QWSWindow* w; 708 QWSWindow* w;
709 for ( QListIterator<QWSWindow> it( list ); ( w = it.current() ); ++it ) { 709 for ( QListIterator<QWSWindow> it( list ); ( w = it.current() ); ++it ) {
710 if ( w->client() ->identity() == clientname && !w->isFullyObscured() ) 710 if ( w->client() ->identity() == clientname && !w->isFullyObscured() )
711 return TRUE; 711 return TRUE;
712 } 712 }
713 return FALSE; 713 return FALSE;
714} 714}
715 715
716void Desktop::raiseLauncher() 716void Desktop::raiseLauncher()
717{ 717{
718 Config cfg( "qpe" ); //F12 'Home' 718 Config cfg( "qpe" ); //F12 'Home'
719 cfg.setGroup( "AppsKey" ); 719 cfg.setGroup( "AppsKey" );
720 QString tempItem; 720 QString tempItem;
721 tempItem = cfg.readEntry( "Middle", "Home" ); 721 tempItem = cfg.readEntry( "Middle", "Home" );
722 if ( tempItem == "Home" || tempItem.isEmpty() ) { 722 if ( tempItem == "Home" || tempItem.isEmpty() ) {
723 home ( ); 723 home ( );
724 } 724 }
725 else { 725 else {
726 QCopEnvelope e( "QPE/System", "execute(QString)" ); 726 QCopEnvelope e( "QPE/System", "execute(QString)" );
727 e << tempItem; 727 e << tempItem;
728 } 728 }
729} 729}
730 730
731void Desktop::home ( ) 731void Desktop::home ( )
732 { 732{
733 if ( isVisibleWindow( launcher->winId() ) ) 733 if ( isVisibleWindow( launcher->winId() ) )
734 launcher->nextView(); 734 launcher->nextView();
735 else 735 else
736 launcher->raise(); 736 launcher->raise();
737} 737}
738 738
739void Desktop::executeOrModify( const QString& appLnkFile ) 739void Desktop::executeOrModify( const QString& appLnkFile )
740{ 740{
741 AppLnk lnk( MimeType::appsFolderName() + "/" + appLnkFile ); 741 AppLnk lnk( MimeType::appsFolderName() + "/" + appLnkFile );
742 if ( lnk.isValid() ) { 742 if ( lnk.isValid() ) {
743 QCString app = lnk.exec().utf8(); 743 QCString app = lnk.exec().utf8();
744 Global::terminateBuiltin( "calibrate" ); 744 Global::terminateBuiltin( "calibrate" );
745 if ( QCopChannel::isRegistered( "QPE/Application/" + app ) ) { 745 if ( QCopChannel::isRegistered( "QPE/Application/" + app ) ) {
746 // MRUList::addTask( &lnk ); 746 // MRUList::addTask( &lnk );
747 if ( hasVisibleWindow( app ) ) 747 if ( hasVisibleWindow( app ) )
748 QCopChannel::send( "QPE/Application/" + app, "nextView()" ); 748 QCopChannel::send( "QPE/Application/" + app, "nextView()" );
749 else 749 else
750 QCopChannel::send( "QPE/Application/" + app, "raise()" ); 750 QCopChannel::send( "QPE/Application/" + app, "raise()" );
751 } 751 }
752 else { 752 else {
753 lnk.execute(); 753 lnk.execute();
754 } 754 }
755 } 755 }
756} 756}
757 757
758void Desktop::raiseDatebook() 758void Desktop::raiseDatebook()
759{ 759{
760 Config cfg( "qpe" ); //F9 'Activity' 760 Config cfg( "qpe" ); //F9 'Activity'
761 cfg.setGroup( "AppsKey" ); 761 cfg.setGroup( "AppsKey" );
762 QString tempItem; 762 QString tempItem;
763 tempItem = cfg.readEntry( "LeftEnd" , "Calendar" ); 763 tempItem = cfg.readEntry( "LeftEnd" , "Calendar" );
764 if ( tempItem == "Calendar" || tempItem.isEmpty() ) { 764 if ( tempItem == "Calendar" || tempItem.isEmpty() ) {
765 tempItem = "datebook"; 765 tempItem = "datebook";
766 } 766 }
767 QCopEnvelope e( "QPE/System", "execute(QString)" ); 767 QCopEnvelope e( "QPE/System", "execute(QString)" );
768 e << tempItem; 768 e << tempItem;
769} 769}
770 770
771void Desktop::raiseContacts() 771void Desktop::raiseContacts()
772{ 772{
773 Config cfg( "qpe" ); //F10, 'Contacts' 773 Config cfg( "qpe" ); //F10, 'Contacts'
774 cfg.setGroup( "AppsKey" ); 774 cfg.setGroup( "AppsKey" );
775 QString tempItem; 775 QString tempItem;
776 tempItem = cfg.readEntry( "Left2nd", "Address Book" ); 776 tempItem = cfg.readEntry( "Left2nd", "Address Book" );
777 if ( tempItem == "Address Book" || tempItem.isEmpty() ) { 777 if ( tempItem == "Address Book" || tempItem.isEmpty() ) {
778 tempItem = "addressbook"; 778 tempItem = "addressbook";
779 } 779 }
780 QCopEnvelope e( "QPE/System", "execute(QString)" ); 780 QCopEnvelope e( "QPE/System", "execute(QString)" );
781 e << tempItem; 781 e << tempItem;
782} 782}
783 783
784void Desktop::raiseMenu() 784void Desktop::raiseMenu()
785{ 785{
786 Config cfg( "qpe" ); //F11, 'Menu 786 Config cfg( "qpe" ); //F11, 'Menu
787 cfg.setGroup( "AppsKey" ); 787 cfg.setGroup( "AppsKey" );
788 QString tempItem; 788 QString tempItem;
789 tempItem = cfg.readEntry( "Right2nd" , "Popup Menu" ); 789 tempItem = cfg.readEntry( "Right2nd" , "Popup Menu" );
790 if ( tempItem == "Popup Menu" || tempItem.isEmpty() ) { 790 if ( tempItem == "Popup Menu" || tempItem.isEmpty() ) {
791 Global::terminateBuiltin( "calibrate" ); 791 Global::terminateBuiltin( "calibrate" );
792 tb->startMenu() ->launch(); 792 tb->startMenu() ->launch();
793 } 793 }
794 else { 794 else {
795 QCopEnvelope e( "QPE/System", "execute(QString)" ); 795 QCopEnvelope e( "QPE/System", "execute(QString)" );
796 e << tempItem; 796 e << tempItem;
797 } 797 }
798} 798}
799 799
800void Desktop::raiseEmail() 800void Desktop::raiseEmail()
801{ 801{
802 Config cfg( "qpe" ); //F13, 'Mail' // only in zaurus, on ipaq mail key is F11 802 Config cfg( "qpe" ); //F13, 'Mail' // only in zaurus, on ipaq mail key is F11
803 cfg.setGroup( "AppsKey" ); 803 cfg.setGroup( "AppsKey" );
804 QString tempItem; 804 QString tempItem;
805 tempItem = cfg.readEntry( "RightEnd", "Mail" ); 805 tempItem = cfg.readEntry( "RightEnd", "Mail" );
806 if ( tempItem == "Mail" || tempItem == "qtmail" || tempItem.isEmpty() ) { 806 if ( tempItem == "Mail" || tempItem == "qtmail" || tempItem.isEmpty() ) {
807 tempItem = "mail"; 807 tempItem = "mail";
808 } 808 }
809 QCopEnvelope e( "QPE/System", "execute(QString)" ); 809 QCopEnvelope e( "QPE/System", "execute(QString)" );
810 e << tempItem; 810 e << tempItem;
811} 811}
812 812
813// autoStarts apps on resume and start 813// autoStarts apps on resume and start
814void Desktop::execAutoStart() 814void Desktop::execAutoStart()
815{ 815{
816 QString appName; 816 QString appName;
817 int delay; 817 int delay;
818 QDateTime now = QDateTime::currentDateTime(); 818 QDateTime now = QDateTime::currentDateTime();
819 Config cfg( "autostart" ); 819 Config cfg( "autostart" );
820 cfg.setGroup( "AutoStart" ); 820 cfg.setGroup( "AutoStart" );
821 appName = cfg.readEntry( "Apps", "" ); 821 appName = cfg.readEntry( "Apps", "" );
822 delay = ( cfg.readEntry( "Delay", "0" ) ).toInt(); 822 delay = ( cfg.readEntry( "Delay", "0" ) ).toInt();
823 // If the time between suspend and resume was longer then the 823 // If the time between suspend and resume was longer then the
824 // value saved as delay, start the app 824 // value saved as delay, start the app
825 if ( suspendTime.secsTo( now ) >= ( delay * 60 ) && !appName.isEmpty() ) { 825 if ( suspendTime.secsTo( now ) >= ( delay * 60 ) && !appName.isEmpty() ) {
826 QCopEnvelope e( "QPE/System", "execute(QString)" ); 826 QCopEnvelope e( "QPE/System", "execute(QString)" );
827 e << QString( appName ); 827 e << QString( appName );
828 } 828 }