author | zautrix <zautrix> | 2004-07-03 16:49:55 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-07-03 16:49:55 (UTC) |
commit | 1da48d95d970233f0d1ea9a7fba5c98cfcf24798 (patch) (unidiff) | |
tree | ae690b33cbe50291a610842e24de33f9d766f2f2 /korganizer/calendarview.cpp | |
parent | e3b89230f065c48c84b48c88edb6eb088374c487 (diff) | |
download | kdepimpi-1da48d95d970233f0d1ea9a7fba5c98cfcf24798.zip kdepimpi-1da48d95d970233f0d1ea9a7fba5c98cfcf24798.tar.gz kdepimpi-1da48d95d970233f0d1ea9a7fba5c98cfcf24798.tar.bz2 |
Alarm Bugfix. Added connection to KM. Cleaned up main.
-rw-r--r-- | korganizer/calendarview.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index bf98ad4..c3c3d47 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -362,347 +362,372 @@ void CalendarView::init() | |||
362 | connect( mDateNavigator, SIGNAL( goNextYear() ), | 362 | connect( mDateNavigator, SIGNAL( goNextYear() ), |
363 | mNavigator, SLOT( selectNextYear() ) ); | 363 | mNavigator, SLOT( selectNextYear() ) ); |
364 | connect( mDateNavigator, SIGNAL( goPrevMonth() ), | 364 | connect( mDateNavigator, SIGNAL( goPrevMonth() ), |
365 | mNavigator, SLOT( selectPreviousMonth() ) ); | 365 | mNavigator, SLOT( selectPreviousMonth() ) ); |
366 | connect( mDateNavigator, SIGNAL( goNextMonth() ), | 366 | connect( mDateNavigator, SIGNAL( goNextMonth() ), |
367 | mNavigator, SLOT( selectNextMonth() ) ); | 367 | mNavigator, SLOT( selectNextMonth() ) ); |
368 | 368 | ||
369 | connect( mDateNavigator, SIGNAL( goPrevious() ), | 369 | connect( mDateNavigator, SIGNAL( goPrevious() ), |
370 | mNavigator, SLOT( selectPrevious() ) ); | 370 | mNavigator, SLOT( selectPrevious() ) ); |
371 | connect( mDateNavigator, SIGNAL( goNext() ), | 371 | connect( mDateNavigator, SIGNAL( goNext() ), |
372 | mNavigator, SLOT( selectNext() ) ); | 372 | mNavigator, SLOT( selectNext() ) ); |
373 | connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), | 373 | connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), |
374 | mNavigator, SLOT( slotMonthSelect( int ) ) ); | 374 | mNavigator, SLOT( slotMonthSelect( int ) ) ); |
375 | connect( mNavigatorBar, SIGNAL( monthSelected ( int ) ), | 375 | connect( mNavigatorBar, SIGNAL( monthSelected ( int ) ), |
376 | mNavigator, SLOT( slotMonthSelect( int ) ) ); | 376 | mNavigator, SLOT( slotMonthSelect( int ) ) ); |
377 | 377 | ||
378 | connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), | 378 | connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), |
379 | mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); | 379 | mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); |
380 | 380 | ||
381 | connect( mDateNavigator, SIGNAL( eventDropped( Event * ) ), | 381 | connect( mDateNavigator, SIGNAL( eventDropped( Event * ) ), |
382 | SLOT( eventAdded( Event *) ) ); | 382 | SLOT( eventAdded( Event *) ) ); |
383 | 383 | ||
384 | connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); | 384 | connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); |
385 | 385 | ||
386 | connect( this, SIGNAL( configChanged() ), | 386 | connect( this, SIGNAL( configChanged() ), |
387 | mDateNavigator, SLOT( updateConfig() ) ); | 387 | mDateNavigator, SLOT( updateConfig() ) ); |
388 | 388 | ||
389 | connect( mTodoList, SIGNAL( newTodoSignal() ), | 389 | connect( mTodoList, SIGNAL( newTodoSignal() ), |
390 | SLOT( newTodo() ) ); | 390 | SLOT( newTodo() ) ); |
391 | connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), | 391 | connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), |
392 | SLOT( newSubTodo( Todo * ) ) ); | 392 | SLOT( newSubTodo( Todo * ) ) ); |
393 | connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), | 393 | connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), |
394 | SLOT( editTodo( Todo * ) ) ); | 394 | SLOT( editTodo( Todo * ) ) ); |
395 | connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), | 395 | connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), |
396 | SLOT( showTodo( Todo *) ) ); | 396 | SLOT( showTodo( Todo *) ) ); |
397 | connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ), | 397 | connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ), |
398 | SLOT( deleteTodo( Todo *) ) ); | 398 | SLOT( deleteTodo( Todo *) ) ); |
399 | connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) ); | 399 | connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) ); |
400 | connect( mTodoList, SIGNAL( purgeCompletedSignal() ), | 400 | connect( mTodoList, SIGNAL( purgeCompletedSignal() ), |
401 | SLOT( purgeCompleted() ) ); | 401 | SLOT( purgeCompleted() ) ); |
402 | connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ), | 402 | connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ), |
403 | SIGNAL( todoModified( Todo *, int ) ) ); | 403 | SIGNAL( todoModified( Todo *, int ) ) ); |
404 | 404 | ||
405 | connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ), | 405 | connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ), |
406 | this, SLOT ( cloneIncidence( Incidence * ) ) ); | 406 | this, SLOT ( cloneIncidence( Incidence * ) ) ); |
407 | connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ), | 407 | connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ), |
408 | this, SLOT (cancelIncidence( Incidence * ) ) ); | 408 | this, SLOT (cancelIncidence( Incidence * ) ) ); |
409 | 409 | ||
410 | connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ), | 410 | connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ), |
411 | this, SLOT ( moveIncidence( Incidence * ) ) ); | 411 | this, SLOT ( moveIncidence( Incidence * ) ) ); |
412 | connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ), | 412 | connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ), |
413 | this, SLOT ( beamIncidence( Incidence * ) ) ); | 413 | this, SLOT ( beamIncidence( Incidence * ) ) ); |
414 | 414 | ||
415 | connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ), | 415 | connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ), |
416 | this, SLOT ( todo_unsub( Todo * ) ) ); | 416 | this, SLOT ( todo_unsub( Todo * ) ) ); |
417 | 417 | ||
418 | connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList, | 418 | connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList, |
419 | SLOT( updateTodo( Todo *, int ) ) ); | 419 | SLOT( updateTodo( Todo *, int ) ) ); |
420 | connect( this, SIGNAL( todoModified( Todo *, int )), this, | 420 | connect( this, SIGNAL( todoModified( Todo *, int )), this, |
421 | SLOT( changeTodoDisplay( Todo *, int ) ) ); | 421 | SLOT( changeTodoDisplay( Todo *, int ) ) ); |
422 | 422 | ||
423 | 423 | ||
424 | connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) ); | 424 | connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) ); |
425 | connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) ); | 425 | connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) ); |
426 | connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) ); | 426 | connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) ); |
427 | connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) ); | 427 | connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) ); |
428 | 428 | ||
429 | 429 | ||
430 | 430 | ||
431 | 431 | ||
432 | 432 | ||
433 | connect(QApplication::clipboard(),SIGNAL(dataChanged()), | 433 | connect(QApplication::clipboard(),SIGNAL(dataChanged()), |
434 | SLOT(checkClipboard())); | 434 | SLOT(checkClipboard())); |
435 | connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ), | 435 | connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ), |
436 | SLOT( processTodoListSelection( Incidence * ) ) ); | 436 | SLOT( processTodoListSelection( Incidence * ) ) ); |
437 | connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool))); | 437 | connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool))); |
438 | 438 | ||
439 | // kdDebug() << "CalendarView::CalendarView() done" << endl; | 439 | // kdDebug() << "CalendarView::CalendarView() done" << endl; |
440 | 440 | ||
441 | mDateFrame = new QVBox(0,0,WType_Popup); | 441 | mDateFrame = new QVBox(0,0,WType_Popup); |
442 | //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); | 442 | //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); |
443 | mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); | 443 | mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); |
444 | mDateFrame->setLineWidth(3); | 444 | mDateFrame->setLineWidth(3); |
445 | mDateFrame->hide(); | 445 | mDateFrame->hide(); |
446 | mDateFrame->setCaption( i18n( "Pick a date to display")); | 446 | mDateFrame->setCaption( i18n( "Pick a date to display")); |
447 | mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() ); | 447 | mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() ); |
448 | 448 | ||
449 | connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate))); | 449 | connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate))); |
450 | 450 | ||
451 | mEventEditor = mDialogManager->getEventEditor(); | 451 | mEventEditor = mDialogManager->getEventEditor(); |
452 | mTodoEditor = mDialogManager->getTodoEditor(); | 452 | mTodoEditor = mDialogManager->getTodoEditor(); |
453 | 453 | ||
454 | mFlagEditDescription = false; | 454 | mFlagEditDescription = false; |
455 | 455 | ||
456 | mSuspendTimer = new QTimer( this ); | 456 | mSuspendTimer = new QTimer( this ); |
457 | mAlarmTimer = new QTimer( this ); | 457 | mAlarmTimer = new QTimer( this ); |
458 | mRecheckAlarmTimer = new QTimer( this ); | ||
459 | connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) ); | ||
458 | connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) ); | 460 | connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) ); |
459 | connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); | 461 | connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); |
460 | mAlarmDialog = new AlarmDialog( this ); | 462 | mAlarmDialog = new AlarmDialog( this ); |
461 | connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); | 463 | connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); |
462 | mAlarmDialog->setServerNotification( false ); | 464 | mAlarmDialog->setServerNotification( false ); |
463 | mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); | 465 | mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); |
464 | } | 466 | } |
465 | 467 | ||
466 | 468 | ||
467 | CalendarView::~CalendarView() | 469 | CalendarView::~CalendarView() |
468 | { | 470 | { |
469 | // kdDebug() << "~CalendarView()" << endl; | 471 | // kdDebug() << "~CalendarView()" << endl; |
470 | //qDebug("CalendarView::~CalendarView() "); | 472 | //qDebug("CalendarView::~CalendarView() "); |
471 | delete mDialogManager; | 473 | delete mDialogManager; |
472 | delete mViewManager; | 474 | delete mViewManager; |
473 | delete mStorage; | 475 | delete mStorage; |
474 | delete mDateFrame ; | 476 | delete mDateFrame ; |
475 | delete beamDialog; | 477 | delete beamDialog; |
476 | //kdDebug() << "~CalendarView() done" << endl; | 478 | //kdDebug() << "~CalendarView() done" << endl; |
477 | } | 479 | } |
478 | void CalendarView::timerAlarm() | 480 | void CalendarView::timerAlarm() |
479 | { | 481 | { |
480 | //qDebug("CalendarView::timerAlarm() "); | 482 | //qDebug("CalendarView::timerAlarm() "); |
481 | computeAlarm(mAlarmNotification ); | 483 | computeAlarm(mAlarmNotification ); |
482 | } | 484 | } |
483 | 485 | ||
484 | void CalendarView::suspendAlarm() | 486 | void CalendarView::suspendAlarm() |
485 | { | 487 | { |
486 | //qDebug(" CalendarView::suspendAlarm() "); | 488 | //qDebug(" CalendarView::suspendAlarm() "); |
487 | computeAlarm(mSuspendAlarmNotification ); | 489 | computeAlarm(mSuspendAlarmNotification ); |
488 | 490 | ||
489 | } | 491 | } |
490 | 492 | ||
491 | void CalendarView::startAlarm( QString mess , QString filename) | 493 | void CalendarView::startAlarm( QString mess , QString filename) |
492 | { | 494 | { |
493 | mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); | 495 | mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); |
496 | QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) ); | ||
494 | 497 | ||
495 | } | 498 | } |
496 | 499 | ||
500 | void CalendarView::checkNextTimerAlarm() | ||
501 | { | ||
502 | mCalendar->checkAlarmForIncidence( 0, true ); | ||
503 | } | ||
497 | 504 | ||
498 | void CalendarView::computeAlarm( QString msg ) | 505 | void CalendarView::computeAlarm( QString msg ) |
499 | { | 506 | { |
500 | 507 | ||
501 | QString mess = msg; | 508 | QString mess = msg; |
502 | QString mAlarmMessage = mess.mid( 9 ); | 509 | QString mAlarmMessage = mess.mid( 9 ); |
503 | QString filename = MainWindow::resourcePath(); | 510 | QString filename = MainWindow::resourcePath(); |
504 | filename += "koalarm.wav"; | 511 | filename += "koalarm.wav"; |
505 | QString tempfilename; | 512 | QString tempfilename; |
506 | if ( mess.left( 13 ) == "suspend_alarm") { | 513 | if ( mess.left( 13 ) == "suspend_alarm") { |
507 | bool error = false; | 514 | bool error = false; |
508 | int len = mess.mid( 13 ).find("+++"); | 515 | int len = mess.mid( 13 ).find("+++"); |
509 | if ( len < 2 ) | 516 | if ( len < 2 ) |
510 | error = true; | 517 | error = true; |
511 | else { | 518 | else { |
512 | tempfilename = mess.mid( 13, len ); | 519 | tempfilename = mess.mid( 13, len ); |
513 | if ( !QFile::exists( tempfilename ) ) | 520 | if ( !QFile::exists( tempfilename ) ) |
514 | error = true; | 521 | error = true; |
515 | } | 522 | } |
516 | if ( ! error ) { | 523 | if ( ! error ) { |
517 | filename = tempfilename; | 524 | filename = tempfilename; |
518 | } | 525 | } |
519 | mAlarmMessage = mess.mid( 13+len+3 ); | 526 | mAlarmMessage = mess.mid( 13+len+3 ); |
520 | //qDebug("suspend file %s ",tempfilename.latin1() ); | 527 | //qDebug("suspend file %s ",tempfilename.latin1() ); |
521 | startAlarm( mAlarmMessage, filename); | 528 | startAlarm( mAlarmMessage, filename); |
522 | return; | 529 | return; |
523 | } | 530 | } |
524 | if ( mess.left( 11 ) == "timer_alarm") { | 531 | if ( mess.left( 11 ) == "timer_alarm") { |
525 | //mTimerTime = 0; | 532 | //mTimerTime = 0; |
526 | startAlarm( mess.mid( 11 ), filename ); | 533 | startAlarm( mess.mid( 11 ), filename ); |
527 | return; | 534 | return; |
528 | } | 535 | } |
529 | if ( mess.left( 10 ) == "proc_alarm") { | 536 | if ( mess.left( 10 ) == "proc_alarm") { |
530 | bool error = false; | 537 | bool error = false; |
531 | int len = mess.mid( 10 ).find("+++"); | 538 | int len = mess.mid( 10 ).find("+++"); |
532 | if ( len < 2 ) | 539 | if ( len < 2 ) |
533 | error = true; | 540 | error = true; |
534 | else { | 541 | else { |
535 | tempfilename = mess.mid( 10, len ); | 542 | tempfilename = mess.mid( 10, len ); |
536 | if ( !QFile::exists( tempfilename ) ) | 543 | if ( !QFile::exists( tempfilename ) ) |
537 | error = true; | 544 | error = true; |
538 | } | 545 | } |
539 | if ( error ) { | 546 | if ( error ) { |
540 | mAlarmMessage = "Procedure Alarm\nError - File not found\n"; | 547 | mAlarmMessage = "Procedure Alarm\nError - File not found\n"; |
541 | mAlarmMessage += mess.mid( 10+len+3+9 ); | 548 | mAlarmMessage += mess.mid( 10+len+3+9 ); |
542 | } else { | 549 | } else { |
543 | //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); | 550 | //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); |
544 | //qDebug("-----system command %s ",tempfilename.latin1() ); | 551 | //qDebug("-----system command %s ",tempfilename.latin1() ); |
545 | #ifndef _WIN32_ | 552 | #ifndef _WIN32_ |
546 | if ( vfork () == 0 ) { | 553 | if ( vfork () == 0 ) { |
547 | execl ( tempfilename.latin1(), 0 ); | 554 | execl ( tempfilename.latin1(), 0 ); |
548 | return; | 555 | return; |
549 | } | 556 | } |
550 | #else | 557 | #else |
551 | QProcess* p = new QProcess(); | 558 | QProcess* p = new QProcess(); |
552 | p->addArgument( tempfilename.latin1() ); | 559 | p->addArgument( tempfilename.latin1() ); |
553 | p->start(); | 560 | p->start(); |
554 | return; | 561 | return; |
555 | #endif | 562 | #endif |
556 | 563 | ||
557 | return; | 564 | return; |
558 | } | 565 | } |
559 | 566 | ||
560 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); | 567 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); |
561 | } | 568 | } |
562 | if ( mess.left( 11 ) == "audio_alarm") { | 569 | if ( mess.left( 11 ) == "audio_alarm") { |
563 | bool error = false; | 570 | bool error = false; |
564 | int len = mess.mid( 11 ).find("+++"); | 571 | int len = mess.mid( 11 ).find("+++"); |
565 | if ( len < 2 ) | 572 | if ( len < 2 ) |
566 | error = true; | 573 | error = true; |
567 | else { | 574 | else { |
568 | tempfilename = mess.mid( 11, len ); | 575 | tempfilename = mess.mid( 11, len ); |
569 | if ( !QFile::exists( tempfilename ) ) | 576 | if ( !QFile::exists( tempfilename ) ) |
570 | error = true; | 577 | error = true; |
571 | } | 578 | } |
572 | if ( ! error ) { | 579 | if ( ! error ) { |
573 | filename = tempfilename; | 580 | filename = tempfilename; |
574 | } | 581 | } |
575 | mAlarmMessage = mess.mid( 11+len+3+9 ); | 582 | mAlarmMessage = mess.mid( 11+len+3+9 ); |
576 | //qDebug("audio file command %s ",tempfilename.latin1() ); | 583 | //qDebug("audio file command %s ",tempfilename.latin1() ); |
577 | } | 584 | } |
578 | if ( mess.left( 9 ) == "cal_alarm") { | 585 | if ( mess.left( 9 ) == "cal_alarm") { |
579 | mAlarmMessage = mess.mid( 9 ) ; | 586 | mAlarmMessage = mess.mid( 9 ) ; |
580 | } | 587 | } |
581 | 588 | ||
582 | startAlarm( mAlarmMessage, filename ); | 589 | startAlarm( mAlarmMessage, filename ); |
583 | 590 | ||
584 | 591 | ||
585 | } | 592 | } |
586 | 593 | ||
587 | void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString ¬i ) | 594 | void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString ¬i ) |
588 | { | 595 | { |
589 | //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); | 596 | //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); |
590 | 597 | ||
591 | mSuspendAlarmNotification = noti; | 598 | mSuspendAlarmNotification = noti; |
592 | int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; | 599 | int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; |
593 | //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000); | 600 | //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000); |
594 | mSuspendTimer->start( ms , true ); | 601 | mSuspendTimer->start( ms , true ); |
595 | 602 | ||
596 | } | 603 | } |
597 | 604 | ||
598 | void CalendarView::addAlarm(const QDateTime &qdt, const QString ¬i ) | 605 | void CalendarView::addAlarm(const QDateTime &qdt, const QString ¬i ) |
599 | { | 606 | { |
600 | //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); | 607 | //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); |
601 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { | 608 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { |
602 | #ifndef DESKTOP_VERSION | 609 | #ifndef DESKTOP_VERSION |
603 | AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); | 610 | AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); |
604 | #endif | 611 | #endif |
605 | return; | 612 | return; |
606 | } | 613 | } |
614 | int maxSec; | ||
615 | //maxSec = 5; //testing only | ||
616 | maxSec = 86400+3600; // one day+1hour | ||
607 | mAlarmNotification = noti; | 617 | mAlarmNotification = noti; |
608 | int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; | 618 | int sec = QDateTime::currentDateTime().secsTo( qdt ); |
609 | //qDebug("Alarm timer started with secs: %d ", ms/1000); | 619 | if ( sec > maxSec ) { |
610 | mAlarmTimer->start( ms , true ); | 620 | mRecheckAlarmTimer->start( maxSec * 1000 ); |
621 | // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec ); | ||
622 | return; | ||
623 | } else { | ||
624 | mRecheckAlarmTimer->stop(); | ||
625 | } | ||
626 | //qDebug("Alarm timer started with secs: %d ", sec); | ||
627 | mAlarmTimer->start( sec *1000 , true ); | ||
611 | 628 | ||
612 | } | 629 | } |
630 | // called by mRecheckAlarmTimer to get next alarm | ||
631 | // we need this, because a QTimer has only a max range of 25 days | ||
632 | void CalendarView::recheckTimerAlarm() | ||
633 | { | ||
634 | mAlarmTimer->stop(); | ||
635 | mRecheckAlarmTimer->stop(); | ||
636 | mCalendar->checkAlarmForIncidence( 0, true ); | ||
637 | } | ||
613 | void CalendarView::removeAlarm(const QDateTime &qdt, const QString ¬i ) | 638 | void CalendarView::removeAlarm(const QDateTime &qdt, const QString ¬i ) |
614 | { | 639 | { |
615 | //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); | 640 | //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); |
616 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { | 641 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { |
617 | #ifndef DESKTOP_VERSION | 642 | #ifndef DESKTOP_VERSION |
618 | AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); | 643 | AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); |
619 | #endif | 644 | #endif |
620 | return; | 645 | return; |
621 | } | 646 | } |
622 | mAlarmTimer->stop(); | 647 | mAlarmTimer->stop(); |
623 | } | 648 | } |
624 | void CalendarView::selectWeekNum ( int num ) | 649 | void CalendarView::selectWeekNum ( int num ) |
625 | { | 650 | { |
626 | dateNavigator()->selectWeek( num ); | 651 | dateNavigator()->selectWeek( num ); |
627 | mViewManager->showWeekView(); | 652 | mViewManager->showWeekView(); |
628 | } | 653 | } |
629 | KOViewManager *CalendarView::viewManager() | 654 | KOViewManager *CalendarView::viewManager() |
630 | { | 655 | { |
631 | return mViewManager; | 656 | return mViewManager; |
632 | } | 657 | } |
633 | 658 | ||
634 | KODialogManager *CalendarView::dialogManager() | 659 | KODialogManager *CalendarView::dialogManager() |
635 | { | 660 | { |
636 | return mDialogManager; | 661 | return mDialogManager; |
637 | } | 662 | } |
638 | 663 | ||
639 | QDate CalendarView::startDate() | 664 | QDate CalendarView::startDate() |
640 | { | 665 | { |
641 | DateList dates = mNavigator->selectedDates(); | 666 | DateList dates = mNavigator->selectedDates(); |
642 | 667 | ||
643 | return dates.first(); | 668 | return dates.first(); |
644 | } | 669 | } |
645 | 670 | ||
646 | QDate CalendarView::endDate() | 671 | QDate CalendarView::endDate() |
647 | { | 672 | { |
648 | DateList dates = mNavigator->selectedDates(); | 673 | DateList dates = mNavigator->selectedDates(); |
649 | 674 | ||
650 | return dates.last(); | 675 | return dates.last(); |
651 | } | 676 | } |
652 | 677 | ||
653 | 678 | ||
654 | void CalendarView::createPrinter() | 679 | void CalendarView::createPrinter() |
655 | { | 680 | { |
656 | #ifndef KORG_NOPRINTER | 681 | #ifndef KORG_NOPRINTER |
657 | if (!mCalPrinter) { | 682 | if (!mCalPrinter) { |
658 | mCalPrinter = new CalPrinter(this, mCalendar); | 683 | mCalPrinter = new CalPrinter(this, mCalendar); |
659 | connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); | 684 | connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); |
660 | } | 685 | } |
661 | #endif | 686 | #endif |
662 | } | 687 | } |
663 | 688 | ||
664 | void CalendarView::confSync() | 689 | void CalendarView::confSync() |
665 | { | 690 | { |
666 | static KOSyncPrefsDialog* sp = 0; | 691 | static KOSyncPrefsDialog* sp = 0; |
667 | if ( ! sp ) { | 692 | if ( ! sp ) { |
668 | sp = new KOSyncPrefsDialog( this, "syncprefs", true ); | 693 | sp = new KOSyncPrefsDialog( this, "syncprefs", true ); |
669 | } | 694 | } |
670 | sp->usrReadConfig(); | 695 | sp->usrReadConfig(); |
671 | #ifndef DESKTOP_VERSION | 696 | #ifndef DESKTOP_VERSION |
672 | sp->showMaximized(); | 697 | sp->showMaximized(); |
673 | #else | 698 | #else |
674 | sp->show(); | 699 | sp->show(); |
675 | #endif | 700 | #endif |
676 | sp->exec(); | 701 | sp->exec(); |
677 | 702 | ||
678 | } | 703 | } |
679 | 704 | ||
680 | 705 | ||
681 | //KOPrefs::instance()->mWriteBackFile | 706 | //KOPrefs::instance()->mWriteBackFile |
682 | //KOPrefs::instance()->mWriteBackExistingOnly | 707 | //KOPrefs::instance()->mWriteBackExistingOnly |
683 | 708 | ||
684 | // 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); | 709 | // 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); |
685 | // 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); | 710 | // 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); |
686 | // 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); | 711 | // 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); |
687 | // 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); | 712 | // 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); |
688 | // 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); | 713 | // 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); |
689 | // 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); | 714 | // 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); |
690 | 715 | ||
691 | int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) | 716 | int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) |
692 | { | 717 | { |
693 | 718 | ||
694 | //void setZaurusId(int id); | 719 | //void setZaurusId(int id); |
695 | // int zaurusId() const; | 720 | // int zaurusId() const; |
696 | // void setZaurusUid(int id); | 721 | // void setZaurusUid(int id); |
697 | // int zaurusUid() const; | 722 | // int zaurusUid() const; |
698 | // void setZaurusStat(int id); | 723 | // void setZaurusStat(int id); |
699 | // int zaurusStat() const; | 724 | // int zaurusStat() const; |
700 | // 0 equal | 725 | // 0 equal |
701 | // 1 take local | 726 | // 1 take local |
702 | // 2 take remote | 727 | // 2 take remote |
703 | // 3 cancel | 728 | // 3 cancel |
704 | QDateTime lastSync = mLastCalendarSync; | 729 | QDateTime lastSync = mLastCalendarSync; |
705 | if ( mGlobalSyncMode == SYNC_MODE_SHARP ) { | 730 | if ( mGlobalSyncMode == SYNC_MODE_SHARP ) { |
706 | bool remCh, locCh; | 731 | bool remCh, locCh; |
707 | remCh = ( remote->zaurusUid() != local->zaurusUid() ); | 732 | remCh = ( remote->zaurusUid() != local->zaurusUid() ); |
708 | locCh = ( local->zaurusStat() != local->revision() ); | 733 | locCh = ( local->zaurusStat() != local->revision() ); |