summaryrefslogtreecommitdiff
path: root/core/pim/datebook/datebook.cpp
Unidiff
Diffstat (limited to 'core/pim/datebook/datebook.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp46
1 files changed, 38 insertions, 8 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index b7e89b0..10a9b59 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -225,12 +225,16 @@ void DateBook::receive( const QCString &msg, const QByteArray &data )
225 } 225 }
226 else if (msg == "editEvent(int)") { 226 else if (msg == "editEvent(int)") {
227 int uid; 227 int uid;
228 stream >> uid; 228 stream >> uid;
229 Event e=db->eventByUID(uid); 229 Event e=db->eventByUID(uid);
230 editEvent(e); 230 editEvent(e);
231 }else if (msg == "viewDefault(QDate)"){
232 QDate day;
233 stream >> day;
234 viewDefault(day);
231 } 235 }
232} 236}
233 237
234DateBook::~DateBook() 238DateBook::~DateBook()
235{ 239{
236} 240}
@@ -433,15 +437,25 @@ void DateBook::duplicateEvent( const Event &e )
433 editDlg.showMaximized(); 437 editDlg.showMaximized();
434#endif 438#endif
435 while (editDlg.exec() ) { 439 while (editDlg.exec() ) {
436 Event newEv = entry->event(); 440 Event newEv = entry->event();
437 QString error = checkEvent(newEv); 441 QString error = checkEvent(newEv);
438 if (!error.isNull()) { 442 if (!error.isNull()) {
439 if (QMessageBox::warning(this, "error box", error, "Fix it", "Continue", 0, 0, 1) == 0) 443 if (QMessageBox::warning(this, tr("error box"), error, tr("Fix it"), tr("Continue"), 0, 0, 1) == 0)
440 continue; 444 continue;
441 } 445 }
446 /*
447 * The problem:
448 * DateBookDB does remove repeating events not by uid but by the time
449 * the recurrence was created
450 * so we need to update that time as well
451 */
452 Event::RepeatPattern rp = newEv.repeatPattern();
453 rp.createTime = ::time( NULL );
454 newEv.setRepeat( TRUE, rp ); // has repeat and repeatPattern...
455
442 db->addEvent(newEv); 456 db->addEvent(newEv);
443 emit newEvent(); 457 emit newEvent();
444 break; 458 break;
445 } 459 }
446} 460}
447 461
@@ -473,13 +487,13 @@ void DateBook::editEvent( const Event &e )
473 Event newEv = entry->event(); 487 Event newEv = entry->event();
474 if(newEv.description().isEmpty() && newEv.notes().isEmpty() ) 488 if(newEv.description().isEmpty() && newEv.notes().isEmpty() )
475 break; 489 break;
476 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid 490 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid
477 QString error = checkEvent(newEv); 491 QString error = checkEvent(newEv);
478 if (!error.isNull()) { 492 if (!error.isNull()) {
479 if (QMessageBox::warning(this, "error box", error, "Fix it", "Continue", 0, 0, 1) == 0) continue; 493 if (QMessageBox::warning(this, tr("error box"), error, tr("Fix it"), tr("Continue"), 0, 0, 1) == 0) continue;
480 } 494 }
481 db->editEvent(e, newEv); 495 db->editEvent(e, newEv);
482 emit newEvent(); 496 emit newEvent();
483 break; 497 break;
484 } 498 }
485} 499}
@@ -516,14 +530,14 @@ void DateBook::showDay( int year, int month, int day )
516 530
517void DateBook::initDay() 531void DateBook::initDay()
518{ 532{
519 if ( !dayView ) { 533 if ( !dayView ) {
520 dayView = new DateBookDay( ampm, onMonday, db, views, "day view" ); 534 dayView = new DateBookDay( ampm, onMonday, db, views, "day view" );
521 views->addWidget( dayView, DAY ); 535 views->addWidget( dayView, DAY );
522 dayView->setStartViewTime( startTime );
523 dayView->setJumpToCurTime( bJumpToCurTime ); 536 dayView->setJumpToCurTime( bJumpToCurTime );
537 dayView->setStartViewTime( startTime );
524 dayView->setRowStyle( rowStyle ); 538 dayView->setRowStyle( rowStyle );
525 connect( this, SIGNAL( newEvent() ), dayView, SLOT( redraw() ) ); 539 connect( this, SIGNAL( newEvent() ), dayView, SLOT( redraw() ) );
526 connect( dayView, SIGNAL( newEvent() ), this, SLOT( fileNew() ) ); 540 connect( dayView, SIGNAL( newEvent() ), this, SLOT( fileNew() ) );
527 connect( dayView, SIGNAL( removeEvent( const Event & ) ), this, SLOT( removeEvent( const Event & ) ) ); 541 connect( dayView, SIGNAL( removeEvent( const Event & ) ), this, SLOT( removeEvent( const Event & ) ) );
528 connect( dayView, SIGNAL( editEvent( const Event & ) ), this, SLOT( editEvent( const Event & ) ) ); 542 connect( dayView, SIGNAL( editEvent( const Event & ) ), this, SLOT( editEvent( const Event & ) ) );
529 connect( dayView, SIGNAL( duplicateEvent( const Event & ) ), this, SLOT( duplicateEvent( const Event & ) ) ); 543 connect( dayView, SIGNAL( duplicateEvent( const Event & ) ), this, SLOT( duplicateEvent( const Event & ) ) );
@@ -694,12 +708,13 @@ void DateBook::appMessage(const QCString& msg, const QByteArray& data)
694 708
695 if ( bSound ) 709 if ( bSound )
696 killTimer( stopTimer ); 710 killTimer( stopTimer );
697 } 711 }
698 } 712 }
699 } else if ( msg == "nextView()" ) { 713 } else if ( msg == "nextView()" ) {
714 needShow = true;
700 if ( !qApp-> activeWindow ( )) { 715 if ( !qApp-> activeWindow ( )) {
701 needShow = TRUE; 716 needShow = TRUE;
702 } else { 717 } else {
703 QWidget* cur = views->visibleWidget(); 718 QWidget* cur = views->visibleWidget();
704 if ( cur ) { 719 if ( cur ) {
705 if ( cur == dayView ) 720 if ( cur == dayView )
@@ -710,22 +725,37 @@ void DateBook::appMessage(const QCString& msg, const QByteArray& data)
710 viewMonth(); 725 viewMonth();
711 else if ( cur == monthView ) 726 else if ( cur == monthView )
712 viewDay(); 727 viewDay();
713 needShow = TRUE; 728 needShow = TRUE;
714 } 729 }
715 } 730 }
731 } else if (msg == "editEvent(int)") {
732 /* simple copy from receive */
733 QDataStream stream(data,IO_ReadOnly);
734 int uid;
735 stream >> uid;
736 Event e=db->eventByUID(uid);
737 editEvent(e);
738 } else if (msg == "viewDefault(QDate)"){
739 /* simple copy from receive */
740 QDataStream stream(data,IO_ReadOnly);
741 QDate day;
742 stream >> day;
743 viewDefault(day);
744 needShow = true;
716 } 745 }
746
717 if ( needShow ) { 747 if ( needShow ) {
718#if defined(Q_WS_QWS) || defined(_WS_QWS_) 748#if defined(Q_WS_QWS) || defined(_WS_QWS_)
719 showMaximized(); 749 // showMaximized();
720#else 750#else
721 show(); 751 // show();
722#endif 752#endif
723 raise(); 753 // raise();
724 QPEApplication::setKeepRunning(); 754 QPEApplication::setKeepRunning();
725 setActiveWindow(); 755 // setActiveWindow();
726 } 756 }
727} 757}
728 758
729void DateBook::reload() 759void DateBook::reload()
730{ 760{
731 db->reload(); 761 db->reload();
@@ -914,13 +944,13 @@ void DateBook::beamDone( Ir *ir )
914} 944}
915 945
916void DateBook::slotFind() 946void DateBook::slotFind()
917{ 947{
918 // move it to the day view... 948 // move it to the day view...
919 viewDay(); 949 viewDay();
920 FindDialog frmFind( "Calendar", this ); 950 FindDialog frmFind( "Calendar", this ); // no tr needed
921 frmFind.setUseDate( true ); 951 frmFind.setUseDate( true );
922 frmFind.setDate( currentDate() ); 952 frmFind.setDate( currentDate() );
923 QObject::connect( &frmFind, 953 QObject::connect( &frmFind,
924 SIGNAL(signalFindClicked(const QString&, const QDate&, 954 SIGNAL(signalFindClicked(const QString&, const QDate&,
925 bool, bool, int)), 955 bool, bool, int)),
926 this, 956 this,