-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 4 | ||||
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.cpp | 108 | ||||
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.h | 35 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 1 | ||||
-rw-r--r-- | korganizer/searchdialog.cpp | 5 |
5 files changed, 135 insertions, 18 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index a8035d4..b6293b5 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -1302,8 +1302,12 @@ | |||
1302 | { "Journal/Details...","Journale/Details..." }, | 1302 | { "Journal/Details...","Journale/Details..." }, |
1303 | { "Agenda View","Agenda Ansicht" }, | 1303 | { "Agenda View","Agenda Ansicht" }, |
1304 | { "Show current time","Zeige aktuelle Zeit" }, | 1304 | { "Show current time","Zeige aktuelle Zeit" }, |
1305 | { "Edit new item","Bearbeite neuen Eintrag" }, | 1305 | { "Edit new item","Bearbeite neuen Eintrag" }, |
1306 | { "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" }, | ||
1307 | { "","" }, | ||
1308 | { "","" }, | ||
1309 | { "","" }, | ||
1306 | { "","" }, | 1310 | { "","" }, |
1307 | { "","" }, | 1311 | { "","" }, |
1308 | { "","" }, | 1312 | { "","" }, |
1309 | { "","" }, | 1313 | { "","" }, |
diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp index 50c4605..ec7f730 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp | |||
@@ -30,12 +30,16 @@ | |||
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 | ||
@@ -62,9 +66,11 @@ SimpleAlarmDaemonImpl::SimpleAlarmDaemonImpl( QWidget *parent ) | |||
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 ); |
@@ -354,9 +360,9 @@ void SimpleAlarmDaemonImpl::fillTimerPopUp() | |||
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( " " ); |
@@ -369,10 +375,13 @@ void SimpleAlarmDaemonImpl::fillTimerPopUp() | |||
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 ); |
@@ -463,15 +472,27 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
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 | ||
@@ -485,17 +506,26 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
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 |
@@ -509,17 +539,52 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
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(); |
@@ -527,12 +592,21 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
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; |
diff --git a/kalarmd/simplealarmdaemonimpl.h b/kalarmd/simplealarmdaemonimpl.h index 32a3867..cbdba47 100644 --- a/kalarmd/simplealarmdaemonimpl.h +++ b/kalarmd/simplealarmdaemonimpl.h | |||
@@ -25,8 +25,9 @@ | |||
25 | 25 | ||
26 | //#include "simplealarmdaemon.h" | 26 | //#include "simplealarmdaemon.h" |
27 | #include <qdatetime.h> | 27 | #include <qdatetime.h> |
28 | #include <qlabel.h> | 28 | #include <qlabel.h> |
29 | #include <qtimer.h> | ||
29 | 30 | ||
30 | class QLabel; | 31 | class QLabel; |
31 | class QTimer; | 32 | class QTimer; |
32 | class QPopupMenu; | 33 | class QPopupMenu; |
@@ -77,10 +78,42 @@ class SimpleAlarmDaemonImpl : public QLabel | |||
77 | QDateTime mRunningTimer; | 78 | QDateTime mRunningTimer; |
78 | void fillTimerPopUp(); | 79 | void fillTimerPopUp(); |
79 | QString timerMesssage; | 80 | QString timerMesssage; |
80 | QString mCustomText; | 81 | QString mCustomText; |
82 | QString mRunningTimerText; | ||
81 | int mCustomMinutes; | 83 | int mCustomMinutes; |
82 | int mTimerPopupConf; | 84 | int mTimerPopupConf; |
83 | bool wavAlarm; | 85 | bool wavAlarm; |
84 | }; | 86 | }; |
85 | 87 | class KODateLabel : public QLabel | |
88 | { | ||
89 | Q_OBJECT | ||
90 | public: | ||
91 | KODateLabel( QWidget *parent=0, const char *name=0 ) : | ||
92 | QLabel( parent, name ) | ||
93 | { | ||
94 | hour = 0; | ||
95 | minutes = 0; | ||
96 | QTimer * ti = new QTimer( this ); | ||
97 | connect ( ti, SIGNAL ( timeout () ), this, SLOT ( updateText() )); | ||
98 | ti->start( 1000 ); | ||
99 | |||
100 | } | ||
101 | public slots: | ||
102 | void slot_minutes( int m ) | ||
103 | { | ||
104 | minutes = m; updateText(); | ||
105 | } | ||
106 | void slot_hours( int h ) | ||
107 | { | ||
108 | hour = h; updateText(); | ||
109 | } | ||
110 | private slots: | ||
111 | void updateText() | ||
112 | { | ||
113 | QDateTime dt = QDateTime::currentDateTime(); | ||
114 | dt = dt.addSecs( minutes * 60 + hour * 3600 ); | ||
115 | setText( dt.time().toString() ); | ||
116 | } | ||
117 | int hour, minutes; | ||
118 | }; | ||
86 | #endif | 119 | #endif |
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index 92fcd1c..b14ca43 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp | |||
@@ -184,8 +184,9 @@ void KOEditorGeneral::initAlarm(QWidget *parent,QBoxLayout *topLayout) | |||
184 | connect(mAlarmButton, SIGNAL(toggled(bool)), SLOT(enableAlarmEdit(bool))); | 184 | connect(mAlarmButton, SIGNAL(toggled(bool)), SLOT(enableAlarmEdit(bool))); |
185 | alarmLayout->addWidget(mAlarmButton); | 185 | alarmLayout->addWidget(mAlarmButton); |
186 | 186 | ||
187 | mAlarmTimeEdit = new QSpinBox ( 0, 9999, 1, parent, "mAlarmTimeEdit " ) ; | 187 | mAlarmTimeEdit = new QSpinBox ( 0, 9999, 1, parent, "mAlarmTimeEdit " ) ; |
188 | mAlarmTimeEdit->setButtonSymbols( QSpinBox::PlusMinus ); | ||
188 | alarmLayout->addWidget(mAlarmTimeEdit); | 189 | alarmLayout->addWidget(mAlarmTimeEdit); |
189 | mAlarmIncrCombo = new QComboBox(false, parent); | 190 | mAlarmIncrCombo = new QComboBox(false, parent); |
190 | if ( QApplication::desktop()->width() < 320 ) { | 191 | if ( QApplication::desktop()->width() < 320 ) { |
191 | mAlarmIncrCombo->insertItem(i18n("min")); | 192 | mAlarmIncrCombo->insertItem(i18n("min")); |
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp index 678e1bd..341a839 100644 --- a/korganizer/searchdialog.cpp +++ b/korganizer/searchdialog.cpp | |||
@@ -163,8 +163,13 @@ void SearchDialog::doSearch() | |||
163 | 163 | ||
164 | re.setWildcard(true); // most people understand these better. | 164 | re.setWildcard(true); // most people understand these better. |
165 | re.setCaseSensitive(false); | 165 | re.setCaseSensitive(false); |
166 | re.setPattern(searchEdit->text()); | 166 | re.setPattern(searchEdit->text()); |
167 | if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) { | ||
168 | KMessageBox::sorry(this, | ||
169 | i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals")); | ||
170 | return; | ||
171 | } | ||
167 | if (!re.isValid() ) { | 172 | if (!re.isValid() ) { |
168 | KMessageBox::sorry(this, | 173 | KMessageBox::sorry(this, |
169 | i18n("Invalid search expression,\ncannot perform " | 174 | i18n("Invalid search expression,\ncannot perform " |
170 | "the search.\nPlease enter a search expression\n" | 175 | "the search.\nPlease enter a search expression\n" |