summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp137
1 files changed, 58 insertions, 79 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 3e18374..1bc82a5 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -402,118 +402,97 @@ void 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"), tr( "Can not edit data, currently syncing") );
411 tr( "Can not edit data, currently syncing") ); 411 return;
412 return;
413 } 412 }
414 413
415 Event dupevent; 414 Event dupevent(e);// Make a duplicate.
416 dupevent.setStart(e.start()); 415
417 dupevent.setEnd(e.end());
418 dupevent.setDescription(e.description());
419 dupevent.setLocation(e.location());
420 // dupevent.setCategory(e.category());// how is this done??
421 dupevent.setNotes(e.notes());
422 dupevent.setAllDay(e.isAllDay());
423 dupevent.setTimeZone(e.timeZone());
424 if(e.hasAlarm()) dupevent.setAlarm(e.alarmDelay(),e.alarmSound());
425 if(e.hasRepeat()) dupevent.setRepeat(e.repeatPattern());
426
427 // workaround added for text input. 416 // workaround added for text input.
428 QDialog editDlg( this, 0, TRUE ); 417 QDialog editDlg( this, 0, TRUE );
429 DateEntry *entry; 418 DateEntry *entry;
430 editDlg.setCaption( tr("Duplicate Event") ); 419 editDlg.setCaption( tr("Duplicate Event") );
431 QVBoxLayout *vb = new QVBoxLayout( &editDlg ); 420 QVBoxLayout *vb = new QVBoxLayout( &editDlg );
432 QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); 421 QScrollView *sv = new QScrollView( &editDlg, "scrollview" );
433 sv->setResizePolicy( QScrollView::AutoOneFit ); 422 sv->setResizePolicy( QScrollView::AutoOneFit );
434 // KLUDGE!!! 423 // KLUDGE!!!
435 sv->setHScrollBarMode( QScrollView::AlwaysOff ); 424 sv->setHScrollBarMode( QScrollView::AlwaysOff );
436 vb->addWidget( sv ); 425 vb->addWidget( sv );
437 entry = new DateEntry( onMonday, dupevent, ampm, &editDlg, "editor" ); 426 entry = new DateEntry( onMonday, dupevent, ampm, &editDlg, "editor" );
438 entry->timezone->setEnabled( FALSE ); 427 entry->timezone->setEnabled( FALSE );
439 sv->addChild( entry ); 428 sv->addChild( entry );
440 429
441#if defined(Q_WS_QWS) || defined(_WS_QWS_) 430#if defined(Q_WS_QWS) || defined(_WS_QWS_)
442 editDlg.showMaximized(); 431 editDlg.showMaximized();
443#endif 432#endif
444 while (editDlg.exec() ) { 433 while (editDlg.exec() ) {
445 Event newEv = entry->event(); 434 Event newEv = entry->event();
446 if(newEv.description().isEmpty() && newEv.notes().isEmpty() ) 435 QString error = checkEvent(newEv);
447 break; 436 if (!error.isNull()) {
448 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid 437 if (QMessageBox::warning(this, "error box", error, "Fix it", "Continue", 0, 0, 1) == 0)
449 QString error = checkEvent(newEv); 438 continue;
450 if (!error.isNull()) { 439 }
451 if (QMessageBox::warning(this, "error box", 440 db->addEvent(newEv);
452 error, "Fix it", "Continue", 441 emit newEvent();
453 0, 0, 1) == 0) 442 break;
454 continue;
455 } 443 }
456 db->addEvent(newEv);
457 emit newEvent();
458 break;
459 }
460} 444}
461 445
462void DateBook::editEvent( const Event &e ) 446void DateBook::editEvent( const Event &e )
463{ 447{
464 if (syncing) { 448 if (syncing) {
465 QMessageBox::warning( this, tr("Calendar"), 449 QMessageBox::warning( this, tr("Calendar"), tr( "Can not edit data, currently syncing") );
466 tr( "Can not edit data, currently syncing") ); 450 return;
467 return; 451 }
468 }
469 452
470 // workaround added for text input. 453 // workaround added for text input.
471 QDialog editDlg( this, 0, TRUE ); 454 QDialog editDlg( this, 0, TRUE );
472 DateEntry *entry; 455 DateEntry *entry;
473 editDlg.setCaption( tr("Edit Event") ); 456 editDlg.setCaption( tr("Edit Event") );
474 QVBoxLayout *vb = new QVBoxLayout( &editDlg ); 457 QVBoxLayout *vb = new QVBoxLayout( &editDlg );
475 QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); 458 QScrollView *sv = new QScrollView( &editDlg, "scrollview" );
476 sv->setResizePolicy( QScrollView::AutoOneFit ); 459 sv->setResizePolicy( QScrollView::AutoOneFit );
477 // KLUDGE!!! 460 // KLUDGE!!!
478 sv->setHScrollBarMode( QScrollView::AlwaysOff ); 461 sv->setHScrollBarMode( QScrollView::AlwaysOff );
479 vb->addWidget( sv ); 462 vb->addWidget( sv );
480 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" ); 463 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" );
481 entry->timezone->setEnabled( FALSE ); 464 entry->timezone->setEnabled( FALSE );
482 sv->addChild( entry ); 465 sv->addChild( entry );
483 466
484#if defined(Q_WS_QWS) || defined(_WS_QWS_) 467#if defined(Q_WS_QWS) || defined(_WS_QWS_)
485 editDlg.showMaximized(); 468 editDlg.showMaximized();
486#endif 469#endif
487 while (editDlg.exec() ) { 470 while (editDlg.exec() ) {
488 Event newEv = entry->event(); 471 Event newEv = entry->event();
489 if(newEv.description().isEmpty() && newEv.notes().isEmpty() ) 472 if(newEv.description().isEmpty() && newEv.notes().isEmpty() )
490 break; 473 break;
491 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid 474 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid
492 QString error = checkEvent(newEv); 475 QString error = checkEvent(newEv);
493 if (!error.isNull()) { 476 if (!error.isNull()) {
494 if (QMessageBox::warning(this, "error box", 477 if (QMessageBox::warning(this, "error box", error, "Fix it", "Continue", 0, 0, 1) == 0) continue;
495 error, "Fix it", "Continue",
496 0, 0, 1) == 0)
497 continue;
498 } 478 }
499 db->editEvent(e, newEv); 479 db->editEvent(e, newEv);
500 emit newEvent(); 480 emit newEvent();
501 break; 481 break;
502 } 482 }
503} 483}
504 484
505void DateBook::removeEvent( const Event &e ) 485void DateBook::removeEvent( const Event &e )
506{ 486{
507 if (syncing) { 487 if (syncing) {
508 QMessageBox::warning( this, tr("Calendar"), 488 QMessageBox::warning( this, tr("Calendar"), tr( "Can not edit data, currently syncing") );
509 tr( "Can not edit data, currently syncing") ); 489 return;
510 return; 490 }
511 }
512 491
513 QString strName = e.description(); 492 QString strName = e.description();
514 493
515 if ( !QPEMessageBox::confirmDelete( this, tr( "Calendar" ),strName ) ) 494 if ( !QPEMessageBox::confirmDelete( this, tr( "Calendar" ),strName ) )
516 return; 495 return;
517 496
518 db->removeEvent( e ); 497 db->removeEvent( e );
519 if ( views->visibleWidget() == dayView && dayView ) 498 if ( views->visibleWidget() == dayView && dayView )