summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 47be523..3e18374 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -344,516 +344,516 @@ QDate DateBook::currentDate()
344 } else if ( weekLstView && views->visibleWidget() == weekLstView ) { 344 } else if ( weekLstView && views->visibleWidget() == weekLstView ) {
345 d = weekLstView->date(); 345 d = weekLstView->date();
346 } else if ( monthView && views->visibleWidget() == monthView ) { 346 } else if ( monthView && views->visibleWidget() == monthView ) {
347 d = monthView->selectedDate(); 347 d = monthView->selectedDate();
348 } 348 }
349 349
350 return d; 350 return d;
351} 351}
352 352
353void DateBook::view(int v, const QDate &d) { 353void DateBook::view(int v, const QDate &d) {
354 if (v==DAY) { 354 if (v==DAY) {
355 initDay(); 355 initDay();
356 dayAction->setOn( TRUE ); 356 dayAction->setOn( TRUE );
357 dayView->setDate( d ); 357 dayView->setDate( d );
358 views->raiseWidget( dayView ); 358 views->raiseWidget( dayView );
359 dayView->redraw(); 359 dayView->redraw();
360 } else if (v==WEEK) { 360 } else if (v==WEEK) {
361 initWeek(); 361 initWeek();
362 weekAction->setOn( TRUE ); 362 weekAction->setOn( TRUE );
363 weekView->setDate( d ); 363 weekView->setDate( d );
364 views->raiseWidget( weekView ); 364 views->raiseWidget( weekView );
365 weekView->redraw(); 365 weekView->redraw();
366 } else if (v==WEEKLST) { 366 } else if (v==WEEKLST) {
367 initWeekLst(); 367 initWeekLst();
368 weekLstAction->setOn( TRUE ); 368 weekLstAction->setOn( TRUE );
369 weekLstView->setDate(d); 369 weekLstView->setDate(d);
370 views->raiseWidget( weekLstView ); 370 views->raiseWidget( weekLstView );
371 weekLstView->redraw(); 371 weekLstView->redraw();
372 } else if (v==MONTH) { 372 } else if (v==MONTH) {
373 initMonth(); 373 initMonth();
374 monthAction->setOn( TRUE ); 374 monthAction->setOn( TRUE );
375 monthView->setDate( d.year(), d.month(), d.day() ); 375 monthView->setDate( d.year(), d.month(), d.day() );
376 views->raiseWidget( monthView ); 376 views->raiseWidget( monthView );
377 monthView->redraw(); 377 monthView->redraw();
378 } 378 }
379} 379}
380 380
381void DateBook::viewDefault(const QDate &d) { 381void DateBook::viewDefault(const QDate &d) {
382 Config config("DateBook"); 382 Config config("DateBook");
383 config.setGroup("Main"); 383 config.setGroup("Main");
384 int current=config.readNumEntry("defaultview", DAY); 384 int current=config.readNumEntry("defaultview", DAY);
385 385
386 view(current,d); 386 view(current,d);
387} 387}
388 388
389void DateBook::viewDay() { 389void DateBook::viewDay() {
390 view(DAY,currentDate()); 390 view(DAY,currentDate());
391} 391}
392 392
393void DateBook::viewWeek() { 393void DateBook::viewWeek() {
394 view(WEEK,currentDate()); 394 view(WEEK,currentDate());
395} 395}
396 396
397void DateBook::viewWeekLst() { 397void DateBook::viewWeekLst() {
398 view(WEEKLST,currentDate()); 398 view(WEEKLST,currentDate());
399} 399}
400 400
401void DateBook::viewMonth() { 401void DateBook::viewMonth() {
402 view(MONTH,currentDate()); 402 view(MONTH,currentDate());
403} 403}
404 404
405void DateBook::duplicateEvent( const Event &e ) 405void DateBook::duplicateEvent( const Event &e )
406{ 406{
407 qWarning("Hmmm..."); 407 qWarning("Hmmm...");
408 // Alot of code duplication, as this is almost like editEvent(); 408 // Alot of code duplication, as this is almost like editEvent();
409 if (syncing) { 409 if (syncing) {
410 QMessageBox::warning( this, tr("Calendar"), 410 QMessageBox::warning( this, tr("Calendar"),
411 tr( "Can not edit data, currently syncing") ); 411 tr( "Can not edit data, currently syncing") );
412 return; 412 return;
413 } 413 }
414 414
415 Event dupevent; 415 Event dupevent;
416 dupevent.setStart(e.start()); 416 dupevent.setStart(e.start());
417 dupevent.setEnd(e.end()); 417 dupevent.setEnd(e.end());
418 dupevent.setDescription(e.description()); 418 dupevent.setDescription(e.description());
419 dupevent.setLocation(e.location()); 419 dupevent.setLocation(e.location());
420 // dupevent.setCategory(e.category());// how is this done?? 420 // dupevent.setCategory(e.category());// how is this done??
421 dupevent.setNotes(e.notes()); 421 dupevent.setNotes(e.notes());
422 dupevent.setAllDay(e.isAllDay()); 422 dupevent.setAllDay(e.isAllDay());
423 dupevent.setTimeZone(e.timeZone()); 423 dupevent.setTimeZone(e.timeZone());
424 if(e.hasAlarm()) dupevent.setAlarm(e.alarmDelay(),e.alarmSound()); 424 if(e.hasAlarm()) dupevent.setAlarm(e.alarmDelay(),e.alarmSound());
425 if(e.hasRepeat()) dupevent.setRepeat(e.repeatPattern()); 425 if(e.hasRepeat()) dupevent.setRepeat(e.repeatPattern());
426 426
427 // workaround added for text input. 427 // workaround added for text input.
428 QDialog editDlg( this, 0, TRUE ); 428 QDialog editDlg( this, 0, TRUE );
429 DateEntry *entry; 429 DateEntry *entry;
430 editDlg.setCaption( tr("Duplicate Event") ); 430 editDlg.setCaption( tr("Duplicate Event") );
431 QVBoxLayout *vb = new QVBoxLayout( &editDlg ); 431 QVBoxLayout *vb = new QVBoxLayout( &editDlg );
432 QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); 432 QScrollView *sv = new QScrollView( &editDlg, "scrollview" );
433 sv->setResizePolicy( QScrollView::AutoOneFit ); 433 sv->setResizePolicy( QScrollView::AutoOneFit );
434 // KLUDGE!!! 434 // KLUDGE!!!
435 sv->setHScrollBarMode( QScrollView::AlwaysOff ); 435 sv->setHScrollBarMode( QScrollView::AlwaysOff );
436 vb->addWidget( sv ); 436 vb->addWidget( sv );
437 entry = new DateEntry( onMonday, dupevent, ampm, &editDlg, "editor" ); 437 entry = new DateEntry( onMonday, dupevent, ampm, &editDlg, "editor" );
438 entry->timezone->setEnabled( FALSE ); 438 entry->timezone->setEnabled( FALSE );
439 sv->addChild( entry ); 439 sv->addChild( entry );
440 440
441#if defined(Q_WS_QWS) || defined(_WS_QWS_) 441#if defined(Q_WS_QWS) || defined(_WS_QWS_)
442 editDlg.showMaximized(); 442 editDlg.showMaximized();
443#endif 443#endif
444 while (editDlg.exec() ) { 444 while (editDlg.exec() ) {
445 Event newEv = entry->event(); 445 Event newEv = entry->event();
446 if(newEv.description().isEmpty() && newEv.notes().isEmpty() ) 446 if(newEv.description().isEmpty() && newEv.notes().isEmpty() )
447 break; 447 break;
448 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid 448 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid
449 QString error = checkEvent(newEv); 449 QString error = checkEvent(newEv);
450 if (!error.isNull()) { 450 if (!error.isNull()) {
451 if (QMessageBox::warning(this, "error box", 451 if (QMessageBox::warning(this, "error box",
452 error, "Fix it", "Continue", 452 error, "Fix it", "Continue",
453 0, 0, 1) == 0) 453 0, 0, 1) == 0)
454 continue; 454 continue;
455 } 455 }
456 db->addEvent(newEv); 456 db->addEvent(newEv);
457 emit newEvent(); 457 emit newEvent();
458 break; 458 break;
459 } 459 }
460} 460}
461 461
462void DateBook::editEvent( const Event &e ) 462void DateBook::editEvent( const Event &e )
463{ 463{
464 if (syncing) { 464 if (syncing) {
465 QMessageBox::warning( this, tr("Calendar"), 465 QMessageBox::warning( this, tr("Calendar"),
466 tr( "Can not edit data, currently syncing") ); 466 tr( "Can not edit data, currently syncing") );
467 return; 467 return;
468 } 468 }
469 469
470 // workaround added for text input. 470 // workaround added for text input.
471 QDialog editDlg( this, 0, TRUE ); 471 QDialog editDlg( this, 0, TRUE );
472 DateEntry *entry; 472 DateEntry *entry;
473 editDlg.setCaption( tr("Edit Event") ); 473 editDlg.setCaption( tr("Edit Event") );
474 QVBoxLayout *vb = new QVBoxLayout( &editDlg ); 474 QVBoxLayout *vb = new QVBoxLayout( &editDlg );
475 QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); 475 QScrollView *sv = new QScrollView( &editDlg, "scrollview" );
476 sv->setResizePolicy( QScrollView::AutoOneFit ); 476 sv->setResizePolicy( QScrollView::AutoOneFit );
477 // KLUDGE!!! 477 // KLUDGE!!!
478 sv->setHScrollBarMode( QScrollView::AlwaysOff ); 478 sv->setHScrollBarMode( QScrollView::AlwaysOff );
479 vb->addWidget( sv ); 479 vb->addWidget( sv );
480 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" ); 480 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" );
481 entry->timezone->setEnabled( FALSE ); 481 entry->timezone->setEnabled( FALSE );
482 sv->addChild( entry ); 482 sv->addChild( entry );
483 483
484#if defined(Q_WS_QWS) || defined(_WS_QWS_) 484#if defined(Q_WS_QWS) || defined(_WS_QWS_)
485 editDlg.showMaximized(); 485 editDlg.showMaximized();
486#endif 486#endif
487 while (editDlg.exec() ) { 487 while (editDlg.exec() ) {
488 Event newEv = entry->event(); 488 Event newEv = entry->event();
489 if(newEv.description().isEmpty() && newEv.notes().isEmpty() ) 489 if(newEv.description().isEmpty() && newEv.notes().isEmpty() )
490 break; 490 break;
491 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid 491 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid
492 QString error = checkEvent(newEv); 492 QString error = checkEvent(newEv);
493 if (!error.isNull()) { 493 if (!error.isNull()) {
494 if (QMessageBox::warning(this, "error box", 494 if (QMessageBox::warning(this, "error box",
495 error, "Fix it", "Continue", 495 error, "Fix it", "Continue",
496 0, 0, 1) == 0) 496 0, 0, 1) == 0)
497 continue; 497 continue;
498 } 498 }
499 db->editEvent(e, newEv); 499 db->editEvent(e, newEv);
500 emit newEvent(); 500 emit newEvent();
501 break; 501 break;
502 } 502 }
503} 503}
504 504
505void DateBook::removeEvent( const Event &e ) 505void DateBook::removeEvent( const Event &e )
506{ 506{
507 if (syncing) { 507 if (syncing) {
508 QMessageBox::warning( this, tr("Calendar"), 508 QMessageBox::warning( this, tr("Calendar"),
509 tr( "Can not edit data, currently syncing") ); 509 tr( "Can not edit data, currently syncing") );
510 return; 510 return;
511 } 511 }
512 512
513 QString strName = e.description(); 513 QString strName = e.description();
514 514
515 if ( !QPEMessageBox::confirmDelete( this, tr( "Calendar" ),strName ) ) 515 if ( !QPEMessageBox::confirmDelete( this, tr( "Calendar" ),strName ) )
516 return; 516 return;
517 517
518 db->removeEvent( e ); 518 db->removeEvent( e );
519 if ( views->visibleWidget() == dayView && dayView ) 519 if ( views->visibleWidget() == dayView && dayView )
520 dayView->redraw(); 520 dayView->redraw();
521} 521}
522 522
523void DateBook::addEvent( const Event &e ) 523void DateBook::addEvent( const Event &e )
524{ 524{
525 QDate d = e.start().date(); 525 QDate d = e.start().date();
526 initDay(); 526 initDay();
527 dayView->setDate( d ); 527 dayView->setDate( d );
528} 528}
529 529
530void DateBook::showDay( int year, int month, int day ) 530void DateBook::showDay( int year, int month, int day )
531{ 531{
532 QDate d(year, month, day); 532 QDate d(year, month, day);
533 view(DAY,d); 533 view(DAY,d);
534} 534}
535 535
536void DateBook::initDay() 536void DateBook::initDay()
537{ 537{
538 if ( !dayView ) { 538 if ( !dayView ) {
539 dayView = new DateBookDay( ampm, onMonday, db, views, "day view" ); 539 dayView = new DateBookDay( ampm, onMonday, db, views, "day view" );
540 views->addWidget( dayView, DAY ); 540 views->addWidget( dayView, DAY );
541 dayView->setStartViewTime( startTime ); 541 dayView->setStartViewTime( startTime );
542 dayView->setJumpToCurTime( bJumpToCurTime ); 542 dayView->setJumpToCurTime( bJumpToCurTime );
543 dayView->setRowStyle( rowStyle ); 543 dayView->setRowStyle( rowStyle );
544 connect( this, SIGNAL( newEvent() ), 544 connect( this, SIGNAL( newEvent() ),
545 dayView, SLOT( redraw() ) ); 545 dayView, SLOT( redraw() ) );
546 connect( dayView, SIGNAL( newEvent() ), 546 connect( dayView, SIGNAL( newEvent() ),
547 this, SLOT( fileNew() ) ); 547 this, SLOT( fileNew() ) );
548 connect( dayView, SIGNAL( removeEvent( const Event & ) ), 548 connect( dayView, SIGNAL( removeEvent( const Event & ) ),
549 this, SLOT( removeEvent( const Event & ) ) ); 549 this, SLOT( removeEvent( const Event & ) ) );
550 connect( dayView, SIGNAL( editEvent( const Event & ) ), 550 connect( dayView, SIGNAL( editEvent( const Event & ) ),
551 this, SLOT( editEvent( const Event & ) ) ); 551 this, SLOT( editEvent( const Event & ) ) );
552 connect( dayView, SIGNAL( duplicateEvent( const Event & ) ), 552 connect( dayView, SIGNAL( duplicateEvent( const Event & ) ),
553 this, SLOT( duplicateEvent( const Event & ) ) ); 553 this, SLOT( duplicateEvent( const Event & ) ) );
554 connect( dayView, SIGNAL( beamEvent( const Event & ) ), 554 connect( dayView, SIGNAL( beamEvent( const Event & ) ),
555 this, SLOT( beamEvent( const Event & ) ) ); 555 this, SLOT( beamEvent( const Event & ) ) );
556 connect( dayView, SIGNAL(sigNewEvent(const QString &)), 556 connect( dayView, SIGNAL(sigNewEvent(const QString &)),
557 this, SLOT(slotNewEventFromKey(const QString &)) ); 557 this, SLOT(slotNewEventFromKey(const QString &)) );
558 } 558 }
559} 559}
560 560
561void DateBook::initWeek() 561void DateBook::initWeek()
562{ 562{
563 if ( !weekView ) { 563 if ( !weekView ) {
564 weekView = new DateBookWeek( ampm, onMonday, db, views, "week view" ); 564 weekView = new DateBookWeek( ampm, onMonday, db, views, "week view" );
565 weekView->setStartViewTime( startTime ); 565 weekView->setStartViewTime( startTime );
566 views->addWidget( weekView, WEEK ); 566 views->addWidget( weekView, WEEK );
567 connect( weekView, SIGNAL( showDate( int, int, int ) ), 567 connect( weekView, SIGNAL( showDate( int, int, int ) ),
568 this, SLOT( showDay( int, int, int ) ) ); 568 this, SLOT( showDay( int, int, int ) ) );
569 connect( this, SIGNAL( newEvent() ), 569 connect( this, SIGNAL( newEvent() ),
570 weekView, SLOT( redraw() ) ); 570 weekView, SLOT( redraw() ) );
571 } 571 }
572 //But also get it right: the year that we display can be different 572 //But also get it right: the year that we display can be different
573 //from the year of the current date. So, first find the year 573 //from the year of the current date. So, first find the year
574 //number of the current week. 574 //number of the current week.
575 575
576 int yearNumber, totWeeks; 576 int yearNumber, totWeeks;
577 calcWeek( currentDate(), totWeeks, yearNumber, onMonday ); 577 calcWeek( currentDate(), totWeeks, yearNumber, onMonday );
578 578
579 QDate d = QDate( yearNumber, 12, 31 ); 579 QDate d = QDate( yearNumber, 12, 31 );
580 calcWeek( d, totWeeks, yearNumber, onMonday ); 580 calcWeek( d, totWeeks, yearNumber, onMonday );
581 581
582 while ( totWeeks == 1 ) { 582 while ( totWeeks == 1 ) {
583 d = d.addDays( -1 ); 583 d = d.addDays( -1 );
584 calcWeek( d, totWeeks, yearNumber, onMonday ); 584 calcWeek( d, totWeeks, yearNumber, onMonday );
585 } 585 }
586 if ( totWeeks != weekView->totalWeeks() ) 586 if ( totWeeks != weekView->totalWeeks() )
587 weekView->setTotalWeeks( totWeeks ); 587 weekView->setTotalWeeks( totWeeks );
588} 588}
589void DateBook::initWeekLst() { 589void DateBook::initWeekLst() {
590 if ( !weekLstView ) { 590 if ( !weekLstView ) {
591 weekLstView = new DateBookWeekLst( ampm, onMonday, db, 591 weekLstView = new DateBookWeekLst( ampm, onMonday, db,
592 views, "weeklst view" ); 592 views, "weeklst view" );
593 views->addWidget( weekLstView, WEEKLST ); 593 views->addWidget( weekLstView, WEEKLST );
594 594
595 //weekLstView->setStartViewTime( startTime ); 595 //weekLstView->setStartViewTime( startTime );
596 connect( weekLstView, SIGNAL( showDate( int, int, int ) ), 596 connect( weekLstView, SIGNAL( showDate( int, int, int ) ),
597 this, SLOT( showDay( int, int, int ) ) ); 597 this, SLOT( showDay( int, int, int ) ) );
598 connect( weekLstView, SIGNAL( addEvent( const QDateTime &, 598 connect( weekLstView, SIGNAL( addEvent( const QDateTime &,
599 const QDateTime &, 599 const QDateTime &,
600 const QString & ) ), 600 const QString & , const QString &) ),
601 this, SLOT( slotNewEntry( const QDateTime &, 601 this, SLOT( slotNewEntry( const QDateTime &,
602 const QDateTime &, 602 const QDateTime &,
603 const QString & ) ) ); 603 const QString & , const QString &) ) );
604 connect( this, SIGNAL( newEvent() ), 604 connect( this, SIGNAL( newEvent() ),
605 weekLstView, SLOT( redraw() ) ); 605 weekLstView, SLOT( redraw() ) );
606 connect( weekLstView, SIGNAL( editEvent( const Event & ) ), 606 connect( weekLstView, SIGNAL( editEvent( const Event & ) ),
607 this, SLOT( editEvent( const Event & ) ) ); 607 this, SLOT( editEvent( const Event & ) ) );
608 } 608 }
609} 609}
610 610
611 611
612void DateBook::initMonth() 612void DateBook::initMonth()
613{ 613{
614 if ( !monthView ) { 614 if ( !monthView ) {
615 monthView = new DateBookMonth( views, "month view", FALSE, db ); 615 monthView = new DateBookMonth( views, "month view", FALSE, db );
616 views->addWidget( monthView, MONTH ); 616 views->addWidget( monthView, MONTH );
617 connect( monthView, SIGNAL( dateClicked( int, int, int ) ), 617 connect( monthView, SIGNAL( dateClicked( int, int, int ) ),
618 this, SLOT( showDay( int, int, int ) ) ); 618 this, SLOT( showDay( int, int, int ) ) );
619 connect( this, SIGNAL( newEvent() ), 619 connect( this, SIGNAL( newEvent() ),
620 monthView, SLOT( redraw() ) ); 620 monthView, SLOT( redraw() ) );
621 qApp->processEvents(); 621 qApp->processEvents();
622 } 622 }
623} 623}
624 624
625void DateBook::loadSettings() 625void DateBook::loadSettings()
626{ 626{
627 { 627 {
628 Config config( "qpe" ); 628 Config config( "qpe" );
629 config.setGroup("Time"); 629 config.setGroup("Time");
630 ampm = config.readBoolEntry( "AMPM", TRUE ); 630 ampm = config.readBoolEntry( "AMPM", TRUE );
631 onMonday = config.readBoolEntry( "MONDAY" ); 631 onMonday = config.readBoolEntry( "MONDAY" );
632 } 632 }
633 633
634 { 634 {
635 Config config("DateBook"); 635 Config config("DateBook");
636 config.setGroup("Main"); 636 config.setGroup("Main");
637 startTime = config.readNumEntry("startviewtime", 8); 637 startTime = config.readNumEntry("startviewtime", 8);
638 aPreset = config.readBoolEntry("alarmpreset"); 638 aPreset = config.readBoolEntry("alarmpreset");
639 presetTime = config.readNumEntry("presettime"); 639 presetTime = config.readNumEntry("presettime");
640 bJumpToCurTime = config.readBoolEntry("jumptocurtime"); 640 bJumpToCurTime = config.readBoolEntry("jumptocurtime");
641 rowStyle = config.readNumEntry("rowstyle"); 641 rowStyle = config.readNumEntry("rowstyle");
642 } 642 }
643} 643}
644 644
645void DateBook::saveSettings() 645void DateBook::saveSettings()
646{ 646{
647 Config config( "qpe" ); 647 Config config( "qpe" );
648 Config configDB( "DateBook" ); 648 Config configDB( "DateBook" );
649 configDB.setGroup( "Main" ); 649 configDB.setGroup( "Main" );
650 configDB.writeEntry("startviewtime",startTime); 650 configDB.writeEntry("startviewtime",startTime);
651 configDB.writeEntry("alarmpreset",aPreset); 651 configDB.writeEntry("alarmpreset",aPreset);
652 configDB.writeEntry("presettime",presetTime); 652 configDB.writeEntry("presettime",presetTime);
653 configDB.writeEntry("jumptocurtime", bJumpToCurTime); 653 configDB.writeEntry("jumptocurtime", bJumpToCurTime);
654 configDB.writeEntry("rowstyle", rowStyle); 654 configDB.writeEntry("rowstyle", rowStyle);
655} 655}
656 656
657void DateBook::newDefaultView(QAction *a) { 657void DateBook::newDefaultView(QAction *a) {
658 int val=DAY; 658 int val=DAY;
659 if (a->text() == "Day") val=DAY; 659 if (a->text() == "Day") val=DAY;
660 if (a->text() == "Week") val=WEEK; 660 if (a->text() == "Week") val=WEEK;
661 if (a->text() == "WeekLst") val=WEEKLST; 661 if (a->text() == "WeekLst") val=WEEKLST;
662 if (a->text() == "Month") val=MONTH; 662 if (a->text() == "Month") val=MONTH;
663 663
664 Config configDB( "DateBook" ); 664 Config configDB( "DateBook" );
665 configDB.setGroup( "Main" ); 665 configDB.setGroup( "Main" );
666 configDB.writeEntry("defaultview",val); 666 configDB.writeEntry("defaultview",val);
667} 667}
668 668
669void DateBook::appMessage(const QCString& msg, const QByteArray& data) 669void DateBook::appMessage(const QCString& msg, const QByteArray& data)
670{ 670{
671 bool needShow = FALSE; 671 bool needShow = FALSE;
672 if ( msg == "alarm(QDateTime,int)" ) { 672 if ( msg == "alarm(QDateTime,int)" ) {
673 QDataStream ds(data,IO_ReadOnly); 673 QDataStream ds(data,IO_ReadOnly);
674 QDateTime when; int warn; 674 QDateTime when; int warn;
675 ds >> when >> warn; 675 ds >> when >> warn;
676 676
677 // check to make it's okay to continue, 677 // check to make it's okay to continue,
678 // this is the case that the time was set ahead, and 678 // this is the case that the time was set ahead, and
679 // we are forced given a stale alarm... 679 // we are forced given a stale alarm...
680 QDateTime current = QDateTime::currentDateTime(); 680 QDateTime current = QDateTime::currentDateTime();
681 if ( current.time().hour() != when.time().hour() 681 if ( current.time().hour() != when.time().hour()
682 && current.time().minute() != when.time().minute() ) 682 && current.time().minute() != when.time().minute() )
683 return; 683 return;
684 684
685 QValueList<EffectiveEvent> list = db->getEffectiveEvents(when.addSecs(warn*60)); 685 QValueList<EffectiveEvent> list = db->getEffectiveEvents(when.addSecs(warn*60));
686 if ( list.count() > 0 ) { 686 if ( list.count() > 0 ) {
687 QString msg; 687 QString msg;
688 bool bSound = FALSE; 688 bool bSound = FALSE;
689 int stopTimer = 0; 689 int stopTimer = 0;
690 bool found = FALSE; 690 bool found = FALSE;
691 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin(); 691 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin();
692 it!=list.end(); ++it ) { 692 it!=list.end(); ++it ) {
693 if ( (*it).event().hasAlarm() ) { 693 if ( (*it).event().hasAlarm() ) {
694 found = TRUE; 694 found = TRUE;
695 msg += "<CENTER><B>" + (*it).description() + "</B>" 695 msg += "<CENTER><B>" + (*it).description() + "</B>"
696 + "<BR>" + (*it).location() + "<BR>" 696 + "<BR>" + (*it).location() + "<BR>"
697 + TimeString::dateString((*it).event().start(),ampm) 697 + TimeString::dateString((*it).event().start(),ampm)
698 + (warn 698 + (warn
699 ? tr(" (in " + QString::number(warn) 699 ? tr(" (in " + QString::number(warn)
700 + tr(" minutes)")) 700 + tr(" minutes)"))
701 : QString("")) 701 : QString(""))
702 + "<BR>" 702 + "<BR>"
703 + (*it).notes() + "</CENTER>"; 703 + (*it).notes() + "</CENTER>";
704 if ( (*it).event().alarmSound() != Event::Silent ) { 704 if ( (*it).event().alarmSound() != Event::Silent ) {
705 bSound = TRUE; 705 bSound = TRUE;
706 } 706 }
707 } 707 }
708 } 708 }
709 if ( found ) { 709 if ( found ) {
710 if ( bSound ) { 710 if ( bSound ) {
711 Sound::soundAlarm(); 711 Sound::soundAlarm();
712 alarmCounter = 0; 712 alarmCounter = 0;
713 stopTimer = startTimer( 5000 ); 713 stopTimer = startTimer( 5000 );
714 } 714 }
715 715
716 QDialog dlg( this, 0, TRUE ); 716 QDialog dlg( this, 0, TRUE );
717 QVBoxLayout *vb = new QVBoxLayout( &dlg ); 717 QVBoxLayout *vb = new QVBoxLayout( &dlg );
718 QScrollView *view = new QScrollView( &dlg, "scrollView"); 718 QScrollView *view = new QScrollView( &dlg, "scrollView");
719 view->setResizePolicy( QScrollView::AutoOneFit ); 719 view->setResizePolicy( QScrollView::AutoOneFit );
720 vb->addWidget( view ); 720 vb->addWidget( view );
721 QLabel *lblMsg = new QLabel( msg, &dlg ); 721 QLabel *lblMsg = new QLabel( msg, &dlg );
722 view->addChild( lblMsg ); 722 view->addChild( lblMsg );
723 QPushButton *cmdOk = new QPushButton( tr("OK"), &dlg ); 723 QPushButton *cmdOk = new QPushButton( tr("OK"), &dlg );
724 connect( cmdOk, SIGNAL(clicked()), &dlg, SLOT(accept()) ); 724 connect( cmdOk, SIGNAL(clicked()), &dlg, SLOT(accept()) );
725 vb->addWidget( cmdOk ); 725 vb->addWidget( cmdOk );
726 726
727#if defined(Q_WS_QWS) || defined(_WS_QWS_) 727#if defined(Q_WS_QWS) || defined(_WS_QWS_)
728 dlg.showMaximized(); 728 dlg.showMaximized();
729#endif 729#endif
730 needShow = dlg.exec(); 730 needShow = dlg.exec();
731 731
732 if ( bSound ) 732 if ( bSound )
733 killTimer( stopTimer ); 733 killTimer( stopTimer );
734 } 734 }
735 } 735 }
736 } else if ( msg == "nextView()" ) { 736 } else if ( msg == "nextView()" ) {
737 if ( !qApp-> activeWindow ( )) { 737 if ( !qApp-> activeWindow ( )) {
738 needShow = TRUE; 738 needShow = TRUE;
739 } 739 }
740 else { 740 else {
741 QWidget* cur = views->visibleWidget(); 741 QWidget* cur = views->visibleWidget();
742 if ( cur ) { 742 if ( cur ) {
743 if ( cur == dayView ) 743 if ( cur == dayView )
744 viewWeek(); 744 viewWeek();
745 else if ( cur == weekView ) 745 else if ( cur == weekView )
746 viewWeekLst(); 746 viewWeekLst();
747 else if ( cur == weekLstView ) 747 else if ( cur == weekLstView )
748 viewMonth(); 748 viewMonth();
749 else if ( cur == monthView ) 749 else if ( cur == monthView )
750 viewDay(); 750 viewDay();
751 needShow = TRUE; 751 needShow = TRUE;
752 } 752 }
753 } 753 }
754 } 754 }
755 if ( needShow ) { 755 if ( needShow ) {
756#if defined(Q_WS_QWS) || defined(_WS_QWS_) 756#if defined(Q_WS_QWS) || defined(_WS_QWS_)
757 showMaximized(); 757 showMaximized();
758#else 758#else
759 show(); 759 show();
760#endif 760#endif
761 raise(); 761 raise();
762 QPEApplication::setKeepRunning(); 762 QPEApplication::setKeepRunning();
763 setActiveWindow(); 763 setActiveWindow();
764 } 764 }
765} 765}
766 766
767void DateBook::reload() 767void DateBook::reload()
768{ 768{
769 db->reload(); 769 db->reload();
770 if ( dayAction->isOn() ) 770 if ( dayAction->isOn() )
771 viewDay(); 771 viewDay();
772 else if ( weekAction->isOn() ) 772 else if ( weekAction->isOn() )
773 viewWeek(); 773 viewWeek();
774 else if ( monthAction->isOn() ) 774 else if ( monthAction->isOn() )
775 viewMonth(); 775 viewMonth();
776 syncing = FALSE; 776 syncing = FALSE;
777} 777}
778 778
779void DateBook::flush() 779void DateBook::flush()
780{ 780{
781 syncing = TRUE; 781 syncing = TRUE;
782 db->save(); 782 db->save();
783} 783}
784 784
785void DateBook::timerEvent( QTimerEvent *e ) 785void DateBook::timerEvent( QTimerEvent *e )
786{ 786{
787 if ( alarmCounter < 10 ) { 787 if ( alarmCounter < 10 ) {
788 alarmCounter++; 788 alarmCounter++;
789 Sound::soundAlarm(); 789 Sound::soundAlarm();
790 } 790 }
791 else 791 else
792 killTimer( e->timerId() ); 792 killTimer( e->timerId() );
793} 793}
794 794
795void DateBook::changeClock( bool newClock ) 795void DateBook::changeClock( bool newClock )
796{ 796{
797 ampm = newClock; 797 ampm = newClock;
798 // repaint the affected objects... 798 // repaint the affected objects...
799 if (dayView) dayView->redraw(); 799 if (dayView) dayView->redraw();
800 if (weekView) weekView->redraw(); 800 if (weekView) weekView->redraw();
801 if (weekLstView) weekLstView->redraw(); 801 if (weekLstView) weekLstView->redraw();
802} 802}
803 803
804void DateBook::changeWeek( bool m ) 804void DateBook::changeWeek( bool m )
805{ 805{
806 /* no need to redraw, each widget catches. Do need to 806 /* no need to redraw, each widget catches. Do need to
807 store though for widgets we haven't made yet */ 807 store though for widgets we haven't made yet */
808 onMonday = m; 808 onMonday = m;
809} 809}
810 810
811void DateBook::slotToday() 811void DateBook::slotToday()
812{ 812{
813 // we need to view today using default view 813 // we need to view today using default view
814 viewDefault(QDate::currentDate()); 814 viewDefault(QDate::currentDate());
815} 815}
816 816
817void DateBook::closeEvent( QCloseEvent *e ) 817void DateBook::closeEvent( QCloseEvent *e )
818{ 818{
819 if(syncing) { 819 if(syncing) {
820 /* no need to save, did that at flush */ 820 /* no need to save, did that at flush */
821 e->accept(); 821 e->accept();
822 return; 822 return;
823 } 823 }
824 824
825 // save settings will generate it's own error messages, no 825 // save settings will generate it's own error messages, no
826 // need to do checking ourselves. 826 // need to do checking ourselves.
827 saveSettings(); 827 saveSettings();
828 if ( db->save() ) 828 if ( db->save() )
829 e->accept(); 829 e->accept();
830 else { 830 else {
831 if ( QMessageBox::critical( this, tr( "Out of space" ), 831 if ( QMessageBox::critical( this, tr( "Out of space" ),
832 tr("Calendar was unable to save\n" 832 tr("Calendar was unable to save\n"
833 "your changes.\n" 833 "your changes.\n"
834 "Free up some space and try again.\n" 834 "Free up some space and try again.\n"
835 "\nQuit anyway?"), 835 "\nQuit anyway?"),
836 QMessageBox::Yes|QMessageBox::Escape, 836 QMessageBox::Yes|QMessageBox::Escape,
837 QMessageBox::No|QMessageBox::Default ) 837 QMessageBox::No|QMessageBox::Default )
838 != QMessageBox::No ) 838 != QMessageBox::No )
839 e->accept(); 839 e->accept();
840 else 840 else
841 e->ignore(); 841 e->ignore();
842 } 842 }
843} 843}
844 844
845// Entering directly from the "keyboard" 845// Entering directly from the "keyboard"
846void DateBook::slotNewEventFromKey( const QString &str ) 846void DateBook::slotNewEventFromKey( const QString &str )
847{ 847{
848 if (syncing) { 848 if (syncing) {
849 QMessageBox::warning( this, tr("Calendar"), 849 QMessageBox::warning( this, tr("Calendar"),
850 tr( "Can not edit data, currently syncing") ); 850 tr( "Can not edit data, currently syncing") );
851 return; 851 return;
852 } 852 }
853 853
854 // We get to here from a key pressed in the Day View 854 // We get to here from a key pressed in the Day View
855 // So we can assume some things. We want the string 855 // So we can assume some things. We want the string
856 // passed in to be part of the description. 856 // passed in to be part of the description.
857 QDateTime start, end; 857 QDateTime start, end;
858 if ( views->visibleWidget() == dayView ) { 858 if ( views->visibleWidget() == dayView ) {
859 dayView->selectedDates( start, end ); 859 dayView->selectedDates( start, end );