Diffstat (limited to 'kalarmd/simplealarmdaemonimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.cpp | 108 |
1 files changed, 91 insertions, 17 deletions
diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp index 50c4605..ec7f730 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp | |||
@@ -28,16 +28,20 @@ | |||
28 | #include <qapp.h> | 28 | #include <qapp.h> |
29 | #include <qdir.h> | 29 | #include <qdir.h> |
30 | #include <qfile.h> | 30 | #include <qfile.h> |
31 | #include <qhbox.h> | 31 | #include <qhbox.h> |
32 | #include <qtimer.h> | 32 | #include <qtimer.h> |
33 | #include <qfile.h> | 33 | #include <qfile.h> |
34 | #include <qdatetime.h> | ||
35 | #include <qpushbutton.h> | ||
34 | #include <qlayout.h> | 36 | #include <qlayout.h> |
35 | #include <qlineedit.h> | 37 | #include <qlineedit.h> |
36 | #include <qdialog.h> | 38 | #include <qdialog.h> |
39 | #define protected public | ||
37 | #include <qspinbox.h> | 40 | #include <qspinbox.h> |
41 | #undef protected | ||
38 | #include <qtextstream.h> | 42 | #include <qtextstream.h> |
39 | #include <qtopia/qcopenvelope_qws.h> | 43 | #include <qtopia/qcopenvelope_qws.h> |
40 | #include <qtopia/alarmserver.h> | 44 | #include <qtopia/alarmserver.h> |
41 | 45 | ||
42 | #include <stdlib.h> | 46 | #include <stdlib.h> |
43 | #include <stdio.h> | 47 | #include <stdio.h> |
@@ -60,13 +64,15 @@ SimpleAlarmDaemonImpl::SimpleAlarmDaemonImpl( QWidget *parent ) | |||
60 | mPopUp->insertItem( "New Event", this, SLOT ( newEvent() ) ); | 64 | mPopUp->insertItem( "New Event", this, SLOT ( newEvent() ) ); |
61 | mPopUp->insertItem( "New Todo", this, SLOT ( newTodo() ) ); | 65 | mPopUp->insertItem( "New Todo", this, SLOT ( newTodo() ) ); |
62 | mPopUp->insertItem( "New Mail", this, SLOT ( newMail() ) ); | 66 | mPopUp->insertItem( "New Mail", this, SLOT ( newMail() ) ); |
63 | mPopUp->insertSeparator(); | 67 | mPopUp->insertSeparator(); |
64 | mPopUp->insertItem( "Multi Sync", this, SLOT ( ringSync() ) ); | 68 | mPopUp->insertItem( "Multi Sync", this, SLOT ( ringSync() ) ); |
65 | mTimerPopUp = new QPopupMenu( this ); | 69 | mTimerPopUp = new QPopupMenu( this ); |
66 | 70 | QFont fon = mTimerPopUp->font(); | |
71 | fon.setPointSize( fon.pointSize() *3/2 ); | ||
72 | mTimerPopUp->setFont( fon ); | ||
67 | mBeepPopUp = new QPopupMenu( this ); | 73 | mBeepPopUp = new QPopupMenu( this ); |
68 | mSoundPopUp = new QPopupMenu( this ); | 74 | mSoundPopUp = new QPopupMenu( this ); |
69 | mPausePopUp = new QPopupMenu( this ); | 75 | mPausePopUp = new QPopupMenu( this ); |
70 | QPopupMenu* savePopUp = new QPopupMenu( this ); | 76 | QPopupMenu* savePopUp = new QPopupMenu( this ); |
71 | savePopUp->insertItem( "Save", 0 ); | 77 | savePopUp->insertItem( "Save", 0 ); |
72 | savePopUp->insertItem( "Load", 1 ); | 78 | savePopUp->insertItem( "Load", 1 ); |
@@ -352,13 +358,13 @@ void SimpleAlarmDaemonImpl::fillTimerPopUp() | |||
352 | 358 | ||
353 | // qDebug(" timer %d %d ",mTimerPopupConf, mTimerTime ); | 359 | // qDebug(" timer %d %d ",mTimerPopupConf, mTimerTime ); |
354 | if ( mTimerPopupConf == mTimerTime ) { | 360 | if ( mTimerPopupConf == mTimerTime ) { |
355 | if ( mTimerTime ) { | 361 | if ( mTimerTime ) { |
356 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); | 362 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); |
357 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); | 363 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); |
358 | mTimerPopUp->changeItem ( 1 , t.toString()); | 364 | mTimerPopUp->changeItem ( 1 , t.toString() + " (remaining time)"); |
359 | } | 365 | } |
360 | else { | 366 | else { |
361 | QString text = mCustomText.stripWhiteSpace (); | 367 | QString text = mCustomText.stripWhiteSpace (); |
362 | int in = text.find( " " ); | 368 | int in = text.find( " " ); |
363 | text = text.left ( in ); | 369 | text = text.left ( in ); |
364 | mTimerPopUp->changeItem ( 3, text ); | 370 | mTimerPopUp->changeItem ( 3, text ); |
@@ -367,14 +373,17 @@ void SimpleAlarmDaemonImpl::fillTimerPopUp() | |||
367 | } | 373 | } |
368 | mTimerPopupConf = mTimerTime; | 374 | mTimerPopupConf = mTimerTime; |
369 | mTimerPopUp->clear(); | 375 | mTimerPopUp->clear(); |
370 | if ( mTimerTime ) { | 376 | if ( mTimerTime ) { |
371 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); | 377 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); |
372 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); | 378 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); |
373 | mTimerPopUp->insertItem( "Stop", 0 ); | 379 | |
374 | mTimerPopUp->insertItem( t.toString(),1); | 380 | |
381 | mTimerPopUp->insertItem( "Stop timer "+ mRunningTimerText , 0 ); | ||
382 | mTimerPopUp->insertItem( t.toString() + " (remaining time)",1); | ||
383 | mTimerPopUp->insertItem( mRunningTimer.time().toString() + " (alarm time)",2); | ||
375 | } else { | 384 | } else { |
376 | 385 | ||
377 | QString fileName = QDir::homeDirPath() +"/.kopialarmtimerrc"; | 386 | QString fileName = QDir::homeDirPath() +"/.kopialarmtimerrc"; |
378 | QFile file( fileName ); | 387 | QFile file( fileName ); |
379 | if( !QFile::exists( fileName) ) { | 388 | if( !QFile::exists( fileName) ) { |
380 | // write defaults | 389 | // write defaults |
@@ -461,19 +470,31 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
461 | int minutes = time; | 470 | int minutes = time; |
462 | if ( minutes == 0 ) { | 471 | if ( minutes == 0 ) { |
463 | if ( ! mTimerTime ) | 472 | if ( ! mTimerTime ) |
464 | return; | 473 | return; |
465 | 474 | ||
466 | QDialog dia ( 0, ("Stop Timer" ), true ); | 475 | QDialog dia ( 0, ("Stop Timer" ), true ); |
467 | QLabel lab (("Really stop the timer?"), &dia ); | 476 | QLabel lab (("Really stop the timer?\n\n"+ mRunningTimerText+"\n"), &dia ); |
477 | lab.setAlignment( AlignCenter ); | ||
468 | dia.setCaption(("KO/Pi Timer Stop" )); | 478 | dia.setCaption(("KO/Pi Timer Stop" )); |
469 | QVBoxLayout lay( &dia ); | 479 | QVBoxLayout lay( &dia ); |
480 | lay.addWidget( &lab); | ||
481 | QPushButton ok ( "Stop timer!", &dia); | ||
482 | QFont fo = dia.font(); | ||
483 | fo.setPointSize( 36 ); | ||
484 | ok.setFont( fo ); | ||
485 | lay.addWidget( &ok); | ||
486 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); | ||
487 | QPushButton con ( "Continue timer!", &dia); | ||
488 | fo.setPointSize( 36 ); | ||
489 | con.setFont( fo ); | ||
490 | lay.addWidget( &con); | ||
491 | connect ( &con, SIGNAL (clicked()), &dia, SLOT ( reject() ) ); | ||
470 | lay.setMargin(5); | 492 | lay.setMargin(5); |
471 | lay.setSpacing(5); | 493 | lay.setSpacing(5); |
472 | lay.addWidget( &lab); | 494 | dia.resize(dia.sizeHint() ); |
473 | dia.resize( 200, dia.sizeHint().height() ); | ||
474 | 495 | ||
475 | if ( !dia.exec() ) | 496 | if ( !dia.exec() ) |
476 | return; | 497 | return; |
477 | 498 | ||
478 | AlarmServer::deleteAlarm ( mRunningTimer,"koalarm" , timerMesssage.latin1() ); | 499 | AlarmServer::deleteAlarm ( mRunningTimer,"koalarm" , timerMesssage.latin1() ); |
479 | mTimerTime = 0; | 500 | mTimerTime = 0; |
@@ -483,21 +504,30 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
483 | return; | 504 | return; |
484 | if ( minutes == 1 ) { | 505 | if ( minutes == 1 ) { |
485 | return; | 506 | return; |
486 | } | 507 | } |
487 | QString mess = "timer_alarm"; | 508 | QString mess = "timer_alarm"; |
488 | mess += ("Timer Alarm!\n"); | 509 | mess += ("Timer Alarm!\n"); |
489 | if ( minutes == 22 ) | 510 | if ( minutes == 22 ) { |
490 | mess += ( "Pizza is ready"); | 511 | mess += ( "Pizza is ready"); |
491 | else if ( minutes == 45 ) | 512 | mRunningTimerText = "Pizza"; |
513 | } | ||
514 | else if ( minutes == 45 ) { | ||
492 | mess += ( "Please wake up!"); | 515 | mess += ( "Please wake up!"); |
493 | else if ( minutes == 5 ) | 516 | mRunningTimerText = "Nap"; |
517 | } | ||
518 | else if ( minutes == 5 ) { | ||
494 | mess += ( "Tea is ready"); | 519 | mess += ( "Tea is ready"); |
520 | mRunningTimerText = "Tea"; | ||
521 | } | ||
495 | else if ( minutes == 3 ) { | 522 | else if ( minutes == 3 ) { |
496 | mess += mCustomText; | 523 | mess += mCustomText; |
497 | minutes = mCustomMinutes ; | 524 | minutes = mCustomMinutes ; |
525 | mRunningTimerText = mCustomText.stripWhiteSpace (); | ||
526 | int in = mRunningTimerText.find( " " ); | ||
527 | mRunningTimerText = mRunningTimerText.left ( in ); | ||
498 | } | 528 | } |
499 | else { | 529 | else { |
500 | if ( minutes == 2 ) { | 530 | if ( minutes == 2 ) { |
501 | // ask time | 531 | // ask time |
502 | QDialog dia ( 0, ("Customize Timer" ), true ); | 532 | QDialog dia ( 0, ("Customize Timer" ), true ); |
503 | QLabel lab (("Message Text:"), &dia ); | 533 | QLabel lab (("Message Text:"), &dia ); |
@@ -507,34 +537,78 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
507 | lay.setSpacing(5); | 537 | lay.setSpacing(5); |
508 | lay.addWidget( &lab); | 538 | lay.addWidget( &lab); |
509 | QLineEdit lEdit( mCustomText, &dia ); | 539 | QLineEdit lEdit( mCustomText, &dia ); |
510 | lay.addWidget( &lEdit); | 540 | lay.addWidget( &lEdit); |
511 | QLabel lab2 (("Countdown time (1 min - 24 h):"), &dia ); | 541 | QLabel lab2 (("Countdown time (1 min - 24 h):"), &dia ); |
512 | lay.addWidget( &lab2); | 542 | lay.addWidget( &lab2); |
543 | QHBox hbox1 ( &dia ); | ||
544 | lay.addWidget( &hbox1); | ||
545 | QLabel lab3 (("Hours"), &hbox1 ); | ||
546 | QLabel lab4 (("Minutes"), &hbox1 ); | ||
513 | QHBox hbox ( &dia ); | 547 | QHBox hbox ( &dia ); |
514 | QLabel lab3 (("h:"), &hbox ); | ||
515 | QSpinBox spinh( 0, 24, 1,& hbox ); | 548 | QSpinBox spinh( 0, 24, 1,& hbox ); |
516 | QLabel lab4 ((" min:"), &hbox ); | 549 | QFont fo = dia.font(); |
550 | fo.setPointSize( 36 ); | ||
517 | QSpinBox spinm( 0, 59, 1,&hbox ); | 551 | QSpinBox spinm( 0, 59, 1,&hbox ); |
552 | spinm.setFont( fo ); | ||
553 | spinh.setFont( fo ); | ||
554 | spinh.setButtonSymbols( QSpinBox::PlusMinus ); | ||
555 | spinm.setButtonSymbols( QSpinBox::PlusMinus ); | ||
556 | spinh.upButton ()->setFixedSize( QSize( 48, 30 )); | ||
557 | spinh.downButton ()->setFixedSize( QSize( 48, 30 )); | ||
558 | //spinh.editor ()->setFixedSize( QSize( 50, 100 )); | ||
559 | spinh.setFixedSize( 100,62 ); | ||
560 | spinm.upButton ()->setFixedSize( QSize( 48, 30 )); | ||
561 | spinm.downButton ()->setFixedSize( QSize( 48, 30 )); | ||
562 | spinm.downButton ()->setGeometry( 50,50,50,50); | ||
563 | spinm.setSuffix( " m" ); | ||
564 | spinh.setSuffix( " h" ); | ||
565 | spinm.setWrapping ( true ); | ||
566 | //spinm.editor ()->setFixedSize( QSize( 50, 100 )); | ||
567 | spinm.setLineStep( 1 ); | ||
568 | spinm.setFixedSize( 110,62 ); | ||
569 | lay.addWidget( &hbox); | ||
570 | QLabel lab5 ("Timer fires at:", &dia ); | ||
571 | lab5.setAlignment( AlignCenter ); | ||
572 | lay.addWidget( &lab5); | ||
573 | KODateLabel dl ( &dia ); | ||
574 | dl.setAlignment( AlignCenter ); | ||
575 | dl.setFont( fo ); | ||
576 | connect ( &spinh, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_hours( int ) ) ); | ||
577 | connect ( &spinm, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_minutes( int ) ) ); | ||
578 | lay.addWidget( &dl); | ||
518 | spinh.setValue( mCustomMinutes/60 ); | 579 | spinh.setValue( mCustomMinutes/60 ); |
519 | spinm.setValue( mCustomMinutes%60 ); | 580 | spinm.setValue( mCustomMinutes%60 ); |
520 | lay.addWidget( &hbox); | 581 | QPushButton ok ( "Start timer", &dia); |
582 | ok.setFont( fo ); | ||
583 | lay.addWidget( &ok); | ||
584 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); | ||
521 | dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); | 585 | dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); |
586 | |||
522 | if ( !dia.exec() ) | 587 | if ( !dia.exec() ) |
523 | return; | 588 | return; |
524 | mCustomText = lEdit.text(); | 589 | mCustomText = lEdit.text(); |
525 | mCustomMinutes = spinh.value()*60+spinm.value(); | 590 | mCustomMinutes = spinh.value()*60+spinm.value(); |
526 | if ( mCustomMinutes == 0 ) | 591 | if ( mCustomMinutes == 0 ) |
527 | mCustomMinutes = 1; | 592 | mCustomMinutes = 1; |
528 | if ( mCustomMinutes > 1440 ) | 593 | if ( mCustomMinutes > 1440 ) |
529 | mCustomMinutes = 1440; | 594 | mCustomMinutes = 1440; |
530 | mess += mCustomText; | 595 | mess += mCustomText; |
531 | minutes = mCustomMinutes; | 596 | minutes = mCustomMinutes; |
597 | mRunningTimerText = mCustomText.stripWhiteSpace (); | ||
598 | int in = mRunningTimerText.find( " " ); | ||
599 | mRunningTimerText = mRunningTimerText.left ( in ); | ||
532 | } | 600 | } |
533 | else | 601 | else { |
534 | mess+= QString::number ( minutes ) + ( " minutes are past!"); | 602 | mess+= QString::number ( minutes ) + ( " minutes are past!"); |
603 | int min = minutes; | ||
604 | if ( min % 60 == 0 ) | ||
605 | mRunningTimerText = QString::number ( min/60 ) + ( " hours"); | ||
606 | else | ||
607 | mRunningTimerText = QString::number ( minutes ) + ( " minutes"); | ||
608 | } | ||
535 | } | 609 | } |
536 | //minutes = 1; | 610 | //minutes = 1; |
537 | mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 ); | 611 | mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 ); |
538 | timerMesssage = mess; | 612 | timerMesssage = mess; |
539 | AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1()); | 613 | AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1()); |
540 | mTimerTime = 1; | 614 | mTimerTime = 1; |