author | umopapisdn <umopapisdn> | 2003-03-24 09:06:06 (UTC) |
---|---|---|
committer | umopapisdn <umopapisdn> | 2003-03-24 09:06:06 (UTC) |
commit | fea2436fef9e7096b31840e7170a23280f3d6e39 (patch) (unidiff) | |
tree | 83bcaeafa071242e4b1d5df76409ff41d9900eac | |
parent | 4a0041efd5cc7e08063c09b02858fcd9c2b59880 (diff) | |
download | opie-fea2436fef9e7096b31840e7170a23280f3d6e39.zip opie-fea2436fef9e7096b31840e7170a23280f3d6e39.tar.gz opie-fea2436fef9e7096b31840e7170a23280f3d6e39.tar.bz2 |
New feature: In dayview it's now possible to duplicate an event (and immediatly change some parameters for the duplicate).
-rw-r--r-- | core/pim/datebook/datebook.cpp | 67 | ||||
-rw-r--r-- | core/pim/datebook/datebook.h | 3 | ||||
-rw-r--r-- | core/pim/datebook/datebookday.cpp | 29 | ||||
-rw-r--r-- | core/pim/datebook/datebookday.h | 2 |
4 files changed, 86 insertions, 15 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp index fa509d9..47be523 100644 --- a/core/pim/datebook/datebook.cpp +++ b/core/pim/datebook/datebook.cpp | |||
@@ -389,32 +389,89 @@ void DateBook::viewDefault(const QDate &d) { | |||
389 | void DateBook::viewDay() { | 389 | void DateBook::viewDay() { |
390 | view(DAY,currentDate()); | 390 | view(DAY,currentDate()); |
391 | } | 391 | } |
392 | 392 | ||
393 | void DateBook::viewWeek() { | 393 | void DateBook::viewWeek() { |
394 | view(WEEK,currentDate()); | 394 | view(WEEK,currentDate()); |
395 | } | 395 | } |
396 | 396 | ||
397 | void DateBook::viewWeekLst() { | 397 | void DateBook::viewWeekLst() { |
398 | view(WEEKLST,currentDate()); | 398 | view(WEEKLST,currentDate()); |
399 | } | 399 | } |
400 | 400 | ||
401 | void DateBook::viewMonth() { | 401 | void DateBook::viewMonth() { |
402 | view(MONTH,currentDate()); | 402 | view(MONTH,currentDate()); |
403 | } | 403 | } |
404 | 404 | ||
405 | void DateBook::duplicateEvent( const Event &e ) | ||
406 | { | ||
407 | qWarning("Hmmm..."); | ||
408 | // Alot of code duplication, as this is almost like editEvent(); | ||
409 | if (syncing) { | ||
410 | QMessageBox::warning( this, tr("Calendar"), | ||
411 | tr( "Can not edit data, currently syncing") ); | ||
412 | return; | ||
413 | } | ||
414 | |||
415 | Event dupevent; | ||
416 | dupevent.setStart(e.start()); | ||
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. | ||
428 | QDialog editDlg( this, 0, TRUE ); | ||
429 | DateEntry *entry; | ||
430 | editDlg.setCaption( tr("Duplicate Event") ); | ||
431 | QVBoxLayout *vb = new QVBoxLayout( &editDlg ); | ||
432 | QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); | ||
433 | sv->setResizePolicy( QScrollView::AutoOneFit ); | ||
434 | // KLUDGE!!! | ||
435 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); | ||
436 | vb->addWidget( sv ); | ||
437 | entry = new DateEntry( onMonday, dupevent, ampm, &editDlg, "editor" ); | ||
438 | entry->timezone->setEnabled( FALSE ); | ||
439 | sv->addChild( entry ); | ||
440 | |||
441 | #if defined(Q_WS_QWS) || defined(_WS_QWS_) | ||
442 | editDlg.showMaximized(); | ||
443 | #endif | ||
444 | while (editDlg.exec() ) { | ||
445 | Event newEv = entry->event(); | ||
446 | if(newEv.description().isEmpty() && newEv.notes().isEmpty() ) | ||
447 | break; | ||
448 | newEv.setUid(e.uid()); // FIXME: Hack not to clear uid | ||
449 | QString error = checkEvent(newEv); | ||
450 | if (!error.isNull()) { | ||
451 | if (QMessageBox::warning(this, "error box", | ||
452 | error, "Fix it", "Continue", | ||
453 | 0, 0, 1) == 0) | ||
454 | continue; | ||
455 | } | ||
456 | db->addEvent(newEv); | ||
457 | emit newEvent(); | ||
458 | break; | ||
459 | } | ||
460 | } | ||
461 | |||
405 | void DateBook::editEvent( const Event &e ) | 462 | void DateBook::editEvent( const Event &e ) |
406 | { | 463 | { |
407 | if (syncing) { | 464 | if (syncing) { |
408 | QMessageBox::warning( this, tr("Calendar"), | 465 | QMessageBox::warning( this, tr("Calendar"), |
409 | tr( "Can not edit data, currently syncing") ); | 466 | tr( "Can not edit data, currently syncing") ); |
410 | return; | 467 | return; |
411 | } | 468 | } |
412 | 469 | ||
413 | // workaround added for text input. | 470 | // workaround added for text input. |
414 | QDialog editDlg( this, 0, TRUE ); | 471 | QDialog editDlg( this, 0, TRUE ); |
415 | DateEntry *entry; | 472 | DateEntry *entry; |
416 | editDlg.setCaption( tr("Edit Event") ); | 473 | editDlg.setCaption( tr("Edit Event") ); |
417 | QVBoxLayout *vb = new QVBoxLayout( &editDlg ); | 474 | QVBoxLayout *vb = new QVBoxLayout( &editDlg ); |
418 | QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); | 475 | QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); |
419 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 476 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
420 | // KLUDGE!!! | 477 | // KLUDGE!!! |
@@ -479,32 +536,34 @@ void DateBook::showDay( int year, int month, int day ) | |||
479 | void DateBook::initDay() | 536 | void DateBook::initDay() |
480 | { | 537 | { |
481 | if ( !dayView ) { | 538 | if ( !dayView ) { |
482 | dayView = new DateBookDay( ampm, onMonday, db, views, "day view" ); | 539 | dayView = new DateBookDay( ampm, onMonday, db, views, "day view" ); |
483 | views->addWidget( dayView, DAY ); | 540 | views->addWidget( dayView, DAY ); |
484 | dayView->setStartViewTime( startTime ); | 541 | dayView->setStartViewTime( startTime ); |
485 | dayView->setJumpToCurTime( bJumpToCurTime ); | 542 | dayView->setJumpToCurTime( bJumpToCurTime ); |
486 | dayView->setRowStyle( rowStyle ); | 543 | dayView->setRowStyle( rowStyle ); |
487 | connect( this, SIGNAL( newEvent() ), | 544 | connect( this, SIGNAL( newEvent() ), |
488 | dayView, SLOT( redraw() ) ); | 545 | dayView, SLOT( redraw() ) ); |
489 | connect( dayView, SIGNAL( newEvent() ), | 546 | connect( dayView, SIGNAL( newEvent() ), |
490 | this, SLOT( fileNew() ) ); | 547 | this, SLOT( fileNew() ) ); |
491 | connect( dayView, SIGNAL( removeEvent( const Event & ) ), | 548 | connect( dayView, SIGNAL( removeEvent( const Event & ) ), |
492 | this, SLOT( removeEvent( const Event & ) ) ); | 549 | this, SLOT( removeEvent( const Event & ) ) ); |
493 | connect( dayView, SIGNAL( editEvent( const Event & ) ), | 550 | connect( dayView, SIGNAL( editEvent( const Event & ) ), |
494 | this, SLOT( editEvent( const Event & ) ) ); | 551 | this, SLOT( editEvent( const Event & ) ) ); |
552 | connect( dayView, SIGNAL( duplicateEvent( const Event & ) ), | ||
553 | this, SLOT( duplicateEvent( const Event & ) ) ); | ||
495 | connect( dayView, SIGNAL( beamEvent( const Event & ) ), | 554 | connect( dayView, SIGNAL( beamEvent( const Event & ) ), |
496 | this, SLOT( beamEvent( const Event & ) ) ); | 555 | this, SLOT( beamEvent( const Event & ) ) ); |
497 | connect( dayView, SIGNAL(sigNewEvent(const QString &)), | 556 | connect( dayView, SIGNAL(sigNewEvent(const QString &)), |
498 | this, SLOT(slotNewEventFromKey(const QString &)) ); | 557 | this, SLOT(slotNewEventFromKey(const QString &)) ); |
499 | } | 558 | } |
500 | } | 559 | } |
501 | 560 | ||
502 | void DateBook::initWeek() | 561 | void DateBook::initWeek() |
503 | { | 562 | { |
504 | if ( !weekView ) { | 563 | if ( !weekView ) { |
505 | weekView = new DateBookWeek( ampm, onMonday, db, views, "week view" ); | 564 | weekView = new DateBookWeek( ampm, onMonday, db, views, "week view" ); |
506 | weekView->setStartViewTime( startTime ); | 565 | weekView->setStartViewTime( startTime ); |
507 | views->addWidget( weekView, WEEK ); | 566 | views->addWidget( weekView, WEEK ); |
508 | connect( weekView, SIGNAL( showDate( int, int, int ) ), | 567 | connect( weekView, SIGNAL( showDate( int, int, int ) ), |
509 | this, SLOT( showDay( int, int, int ) ) ); | 568 | this, SLOT( showDay( int, int, int ) ) ); |
510 | connect( this, SIGNAL( newEvent() ), | 569 | connect( this, SIGNAL( newEvent() ), |
@@ -803,49 +862,53 @@ void DateBook::slotNewEventFromKey( const QString &str ) | |||
803 | start = end = d; | 862 | start = end = d; |
804 | start.setTime( QTime( 10, 0 ) ); | 863 | start.setTime( QTime( 10, 0 ) ); |
805 | end.setTime( QTime( 12, 0 ) ); | 864 | end.setTime( QTime( 12, 0 ) ); |
806 | } else if ( views->visibleWidget() == weekView ) { | 865 | } else if ( views->visibleWidget() == weekView ) { |
807 | QDate d = weekView->date(); | 866 | QDate d = weekView->date(); |
808 | start = end = d; | 867 | start = end = d; |
809 | start.setTime( QTime( 10, 0 ) ); | 868 | start.setTime( QTime( 10, 0 ) ); |
810 | end.setTime( QTime( 12, 0 ) ); | 869 | end.setTime( QTime( 12, 0 ) ); |
811 | } else if ( views->visibleWidget() == weekLstView ) { | 870 | } else if ( views->visibleWidget() == weekLstView ) { |
812 | QDate d = weekLstView->date(); | 871 | QDate d = weekLstView->date(); |
813 | start = end = d; | 872 | start = end = d; |
814 | start.setTime( QTime( 10, 0 ) ); | 873 | start.setTime( QTime( 10, 0 ) ); |
815 | end.setTime( QTime( 12, 0 ) ); | 874 | end.setTime( QTime( 12, 0 ) ); |
816 | } | 875 | } |
817 | slotNewEntry(start, end, str); | 876 | slotNewEntry(start, end, str); |
818 | } | 877 | } |
819 | void DateBook::slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str) { | 878 | void DateBook::slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str, const QString &location) { |
820 | // argh! This really needs to be encapsulated in a class | 879 | // argh! This really needs to be encapsulated in a class |
821 | // or function. | 880 | // or function. |
822 | QDialog newDlg( this, 0, TRUE ); | 881 | QDialog newDlg( this, 0, TRUE ); |
823 | newDlg.setCaption( DateEntryBase::tr("New Event") ); | 882 | newDlg.setCaption( DateEntryBase::tr("New Event") ); |
824 | DateEntry *e; | 883 | DateEntry *e; |
825 | QVBoxLayout *vb = new QVBoxLayout( &newDlg ); | 884 | QVBoxLayout *vb = new QVBoxLayout( &newDlg ); |
826 | QScrollView *sv = new QScrollView( &newDlg ); | 885 | QScrollView *sv = new QScrollView( &newDlg ); |
827 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 886 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
828 | sv->setFrameStyle( QFrame::NoFrame ); | 887 | sv->setFrameStyle( QFrame::NoFrame ); |
829 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); | 888 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); |
830 | vb->addWidget( sv ); | 889 | vb->addWidget( sv ); |
831 | 890 | ||
832 | Event ev; | 891 | Event ev; |
833 | ev.setDescription( str ); | 892 | ev.setDescription( str ); |
834 | // When the new gui comes in, change this... | 893 | // When the new gui comes in, change this... |
835 | ev.setLocation( tr("(Unknown)") ); | 894 | if(location==0) { |
895 | ev.setLocation( tr("(Unknown)") ); | ||
896 | } else { | ||
897 | ev.setLocation(location); | ||
898 | } | ||
836 | ev.setStart( start ); | 899 | ev.setStart( start ); |
837 | ev.setEnd( end ); | 900 | ev.setEnd( end ); |
838 | 901 | ||
839 | e = new DateEntry( onMonday, ev, ampm, &newDlg ); | 902 | e = new DateEntry( onMonday, ev, ampm, &newDlg ); |
840 | e->setAlarmEnabled( aPreset, presetTime, Event::Loud ); | 903 | e->setAlarmEnabled( aPreset, presetTime, Event::Loud ); |
841 | sv->addChild( e ); | 904 | sv->addChild( e ); |
842 | #if defined(Q_WS_QWS) || defined(_WS_QWS_) | 905 | #if defined(Q_WS_QWS) || defined(_WS_QWS_) |
843 | newDlg.showMaximized(); | 906 | newDlg.showMaximized(); |
844 | #endif | 907 | #endif |
845 | while (newDlg.exec()) { | 908 | while (newDlg.exec()) { |
846 | ev = e->event(); | 909 | ev = e->event(); |
847 | ev.assignUid(); | 910 | ev.assignUid(); |
848 | QString error = checkEvent( ev ); | 911 | QString error = checkEvent( ev ); |
849 | if ( !error.isNull() ) { | 912 | if ( !error.isNull() ) { |
850 | if ( QMessageBox::warning( this, tr("Error!"), | 913 | if ( QMessageBox::warning( this, tr("Error!"), |
851 | error, tr("Fix it"), tr("Continue"), 0, 0, 1 ) == 0 ) | 914 | error, tr("Fix it"), tr("Continue"), 0, 0, 1 ) == 0 ) |
diff --git a/core/pim/datebook/datebook.h b/core/pim/datebook/datebook.h index ba8f97e..623862b 100644 --- a/core/pim/datebook/datebook.h +++ b/core/pim/datebook/datebook.h | |||
@@ -52,54 +52,55 @@ signals: | |||
52 | void signalNotFound(); | 52 | void signalNotFound(); |
53 | void signalWrapAround(); | 53 | void signalWrapAround(); |
54 | 54 | ||
55 | protected: | 55 | protected: |
56 | QDate currentDate(); | 56 | QDate currentDate(); |
57 | void timerEvent( QTimerEvent *e ); | 57 | void timerEvent( QTimerEvent *e ); |
58 | void closeEvent( QCloseEvent *e ); | 58 | void closeEvent( QCloseEvent *e ); |
59 | 59 | ||
60 | void view(int v, const QDate &d); | 60 | void view(int v, const QDate &d); |
61 | 61 | ||
62 | public slots: | 62 | public slots: |
63 | void flush(); | 63 | void flush(); |
64 | void reload(); | 64 | void reload(); |
65 | 65 | ||
66 | private slots: | 66 | private slots: |
67 | void fileNew(); | 67 | void fileNew(); |
68 | void slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str); | 68 | void slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str, const QString &location=0); |
69 | void slotSettings(); | 69 | void slotSettings(); |
70 | void newDefaultView(QAction *a); | 70 | void newDefaultView(QAction *a); |
71 | void slotToday();// view today | 71 | void slotToday();// view today |
72 | void changeClock( bool newClock ); | 72 | void changeClock( bool newClock ); |
73 | void changeWeek( bool newDay ); | 73 | void changeWeek( bool newDay ); |
74 | void appMessage(const QCString& msg, const QByteArray& data); | 74 | void appMessage(const QCString& msg, const QByteArray& data); |
75 | // handle key events in the day view... | 75 | // handle key events in the day view... |
76 | void slotNewEventFromKey( const QString &str ); | 76 | void slotNewEventFromKey( const QString &str ); |
77 | void slotFind(); | 77 | void slotFind(); |
78 | void slotDoFind( const QString &, const QDate &, bool, bool, int ); | 78 | void slotDoFind( const QString &, const QDate &, bool, bool, int ); |
79 | 79 | ||
80 | void viewDefault(const QDate &d); | 80 | void viewDefault(const QDate &d); |
81 | 81 | ||
82 | void viewDay(); | 82 | void viewDay(); |
83 | void viewWeek(); | 83 | void viewWeek(); |
84 | void viewWeekLst(); | 84 | void viewWeekLst(); |
85 | void viewMonth(); | 85 | void viewMonth(); |
86 | 86 | ||
87 | void showDay( int y, int m, int d ); | 87 | void showDay( int y, int m, int d ); |
88 | 88 | ||
89 | void editEvent( const Event &e ); | 89 | void editEvent( const Event &e ); |
90 | void duplicateEvent( const Event &e ); | ||
90 | void removeEvent( const Event &e ); | 91 | void removeEvent( const Event &e ); |
91 | 92 | ||
92 | void receive( const QCString &msg, const QByteArray &data ); | 93 | void receive( const QCString &msg, const QByteArray &data ); |
93 | void setDocument( const QString & ); | 94 | void setDocument( const QString & ); |
94 | void beamEvent( const Event &e ); | 95 | void beamEvent( const Event &e ); |
95 | void beamDone( Ir *ir ); | 96 | void beamDone( Ir *ir ); |
96 | 97 | ||
97 | private: | 98 | private: |
98 | void addEvent( const Event &e ); | 99 | void addEvent( const Event &e ); |
99 | void initDay(); | 100 | void initDay(); |
100 | void initWeek(); | 101 | void initWeek(); |
101 | void initWeekLst(); | 102 | void initWeekLst(); |
102 | void initMonth(); | 103 | void initMonth(); |
103 | void loadSettings(); | 104 | void loadSettings(); |
104 | void saveSettings(); | 105 | void saveSettings(); |
105 | 106 | ||
diff --git a/core/pim/datebook/datebookday.cpp b/core/pim/datebook/datebookday.cpp index 42f026a..5d472a6 100644 --- a/core/pim/datebook/datebookday.cpp +++ b/core/pim/datebook/datebookday.cpp | |||
@@ -300,32 +300,34 @@ void DateBookDay::redraw() | |||
300 | if ( isUpdatesEnabled() ) | 300 | if ( isUpdatesEnabled() ) |
301 | relayoutPage(); | 301 | relayoutPage(); |
302 | } | 302 | } |
303 | 303 | ||
304 | void DateBookDay::getEvents() | 304 | void DateBookDay::getEvents() |
305 | { | 305 | { |
306 | widgetList.clear(); | 306 | widgetList.clear(); |
307 | 307 | ||
308 | QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate, currDate ); | 308 | QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate, currDate ); |
309 | QValueListIterator<EffectiveEvent> it; | 309 | QValueListIterator<EffectiveEvent> it; |
310 | for ( it = eventList.begin(); it != eventList.end(); ++it ) { | 310 | for ( it = eventList.begin(); it != eventList.end(); ++it ) { |
311 | EffectiveEvent ev=*it; | 311 | EffectiveEvent ev=*it; |
312 | if(!(ev.end().hour()==ev.start().hour() && ev.end().minute()==ev.start().minute())) {// Skip effective events with no duration. (i.e ending at 00:00) | 312 | if(!(ev.end().hour()==ev.start().hour() && ev.end().minute()==ev.start().minute())) {// Skip effective events with no duration. (i.e ending at 00:00) |
313 | DateBookDayWidget* w = new DateBookDayWidget( *it, this ); | 313 | DateBookDayWidget* w = new DateBookDayWidget( *it, this ); |
314 | connect( w, SIGNAL( deleteMe( const Event & ) ), | 314 | connect( w, SIGNAL( deleteMe( const Event & ) ), |
315 | this, SIGNAL( removeEvent( const Event & ) ) ); | 315 | this, SIGNAL( removeEvent( const Event & ) ) ); |
316 | connect( w, SIGNAL( duplicateMe( const Event & ) ), | ||
317 | this, SIGNAL( duplicateEvent( const Event & ) ) ); | ||
316 | connect( w, SIGNAL( editMe( const Event & ) ), | 318 | connect( w, SIGNAL( editMe( const Event & ) ), |
317 | this, SIGNAL( editEvent( const Event & ) ) ); | 319 | this, SIGNAL( editEvent( const Event & ) ) ); |
318 | connect( w, SIGNAL( beamMe( const Event & ) ), | 320 | connect( w, SIGNAL( beamMe( const Event & ) ), |
319 | this, SIGNAL( beamEvent( const Event & ) ) ); | 321 | this, SIGNAL( beamEvent( const Event & ) ) ); |
320 | widgetList.append( w ); | 322 | widgetList.append( w ); |
321 | } | 323 | } |
322 | } | 324 | } |
323 | 325 | ||
324 | } | 326 | } |
325 | 327 | ||
326 | static int place( const DateBookDayWidget *item, bool *used, int maxn ) | 328 | static int place( const DateBookDayWidget *item, bool *used, int maxn ) |
327 | { | 329 | { |
328 | int place = 0; | 330 | int place = 0; |
329 | int start = item->event().start().hour(); | 331 | int start = item->event().start().hour(); |
330 | QTime e = item->event().end(); | 332 | QTime e = item->event().end(); |
331 | int end = e.hour(); | 333 | int end = e.hour(); |
@@ -707,44 +709,47 @@ void DateBookDayWidget::paintEvent( QPaintEvent *e ) | |||
707 | QSimpleRichText rt( text, font() ); | 709 | QSimpleRichText rt( text, font() ); |
708 | rt.setWidth( geom.width() - d - 6 ); | 710 | rt.setWidth( geom.width() - d - 6 ); |
709 | rt.draw( &p, 7, 0, e->region(), colorGroup() ); | 711 | rt.draw( &p, 7, 0, e->region(), colorGroup() ); |
710 | } | 712 | } |
711 | 713 | ||
712 | void DateBookDayWidget::mousePressEvent( QMouseEvent *e ) | 714 | void DateBookDayWidget::mousePressEvent( QMouseEvent *e ) |
713 | { | 715 | { |
714 | DateBookDayWidget *item; | 716 | DateBookDayWidget *item; |
715 | 717 | ||
716 | item = dateBook->getSelectedWidget(); | 718 | item = dateBook->getSelectedWidget(); |
717 | if (item) item->update(); | 719 | if (item) item->update(); |
718 | 720 | ||
719 | dateBook->setSelectedWidget(this); | 721 | dateBook->setSelectedWidget(this); |
720 | update(); | 722 | update(); |
721 | dateBook->repaint(); | 723 | dateBook->repaint(); |
722 | 724 | ||
723 | QPopupMenu m; | 725 | QPopupMenu m; |
724 | m.insertItem( tr( "Edit" ), 1 ); | 726 | m.insertItem( tr( "Edit" ), 1 ); |
725 | m.insertItem( tr( "Delete" ), 2 ); | 727 | m.insertItem( tr( "Duplicate" ), 4 ); |
726 | if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 ); | 728 | m.insertItem( tr( "Delete" ), 2 ); |
727 | int r = m.exec( e->globalPos() ); | 729 | if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 ); |
728 | if ( r == 1 ) { | 730 | int r = m.exec( e->globalPos() ); |
729 | emit editMe( ev.event() ); | 731 | if ( r == 1 ) { |
730 | } else if ( r == 2 ) { | 732 | emit editMe( ev.event() ); |
731 | emit deleteMe( ev.event() ); | 733 | } else if ( r == 2 ) { |
732 | } else if ( r == 3 ) { | 734 | emit deleteMe( ev.event() ); |
733 | emit beamMe( ev.event() ); | 735 | } else if ( r == 3 ) { |
734 | } | 736 | emit beamMe( ev.event() ); |
737 | } else if ( r == 4 ) { | ||
738 | emit duplicateMe( ev.event() ); | ||
739 | } | ||
735 | } | 740 | } |
736 | 741 | ||
737 | void DateBookDayWidget::setGeometry( const QRect &r ) | 742 | void DateBookDayWidget::setGeometry( const QRect &r ) |
738 | { | 743 | { |
739 | geom = r; | 744 | geom = r; |
740 | setFixedSize( r.width()+1, r.height()+1 ); | 745 | setFixedSize( r.width()+1, r.height()+1 ); |
741 | dateBook->dayView()->moveChild( this, r.x(), r.y()-1 ); | 746 | dateBook->dayView()->moveChild( this, r.x(), r.y()-1 ); |
742 | show(); | 747 | show(); |
743 | } | 748 | } |
744 | 749 | ||
745 | 750 | ||
746 | //--------------------------------------------------------------------------------------------- | 751 | //--------------------------------------------------------------------------------------------- |
747 | //--------------------------------------------------------------------------------------------- | 752 | //--------------------------------------------------------------------------------------------- |
748 | 753 | ||
749 | 754 | ||
750 | DateBookDayTimeMarker::DateBookDayTimeMarker( DateBookDay *db ) | 755 | DateBookDayTimeMarker::DateBookDayTimeMarker( DateBookDay *db ) |
diff --git a/core/pim/datebook/datebookday.h b/core/pim/datebook/datebookday.h index db1cd04..2faf24e 100644 --- a/core/pim/datebook/datebookday.h +++ b/core/pim/datebook/datebookday.h | |||
@@ -66,32 +66,33 @@ private: | |||
66 | class DateBookDay; | 66 | class DateBookDay; |
67 | class DateBookDayWidget : public QWidget | 67 | class DateBookDayWidget : public QWidget |
68 | { | 68 | { |
69 | Q_OBJECT | 69 | Q_OBJECT |
70 | 70 | ||
71 | public: | 71 | public: |
72 | DateBookDayWidget( const EffectiveEvent &e, DateBookDay *db ); | 72 | DateBookDayWidget( const EffectiveEvent &e, DateBookDay *db ); |
73 | ~DateBookDayWidget(); | 73 | ~DateBookDayWidget(); |
74 | 74 | ||
75 | const QRect &geometry() { return geom; } | 75 | const QRect &geometry() { return geom; } |
76 | void setGeometry( const QRect &r ); | 76 | void setGeometry( const QRect &r ); |
77 | 77 | ||
78 | const EffectiveEvent &event() const { return ev; } | 78 | const EffectiveEvent &event() const { return ev; } |
79 | 79 | ||
80 | signals: | 80 | signals: |
81 | void deleteMe( const Event &e ); | 81 | void deleteMe( const Event &e ); |
82 | void duplicateMe( const Event &e ); | ||
82 | void editMe( const Event &e ); | 83 | void editMe( const Event &e ); |
83 | void beamMe( const Event &e ); | 84 | void beamMe( const Event &e ); |
84 | 85 | ||
85 | protected: | 86 | protected: |
86 | void paintEvent( QPaintEvent *e ); | 87 | void paintEvent( QPaintEvent *e ); |
87 | void mousePressEvent( QMouseEvent *e ); | 88 | void mousePressEvent( QMouseEvent *e ); |
88 | 89 | ||
89 | private: | 90 | private: |
90 | /** | 91 | /** |
91 | * Sets the text for an all day Event | 92 | * Sets the text for an all day Event |
92 | * All day events have no time associated | 93 | * All day events have no time associated |
93 | */ | 94 | */ |
94 | void setAllDayText( QString& text ); | 95 | void setAllDayText( QString& text ); |
95 | 96 | ||
96 | /** | 97 | /** |
97 | * Sets the EventText | 98 | * Sets the EventText |
@@ -162,32 +163,33 @@ public: | |||
162 | int startViewTime() const; | 163 | int startViewTime() const; |
163 | void setSelectedWidget( DateBookDayWidget * ); | 164 | void setSelectedWidget( DateBookDayWidget * ); |
164 | DateBookDayWidget * getSelectedWidget( void ); | 165 | DateBookDayWidget * getSelectedWidget( void ); |
165 | void setJumpToCurTime( bool bJump ); | 166 | void setJumpToCurTime( bool bJump ); |
166 | void setRowStyle( int style ); | 167 | void setRowStyle( int style ); |
167 | 168 | ||
168 | public slots: | 169 | public slots: |
169 | void setDate( int y, int m, int d ); | 170 | void setDate( int y, int m, int d ); |
170 | void setDate( QDate ); | 171 | void setDate( QDate ); |
171 | void redraw(); | 172 | void redraw(); |
172 | void slotWeekChanged( bool bStartOnMonday ); | 173 | void slotWeekChanged( bool bStartOnMonday ); |
173 | void updateView();//updates TimeMarker and DayWidget-colors | 174 | void updateView();//updates TimeMarker and DayWidget-colors |
174 | 175 | ||
175 | signals: | 176 | signals: |
176 | void removeEvent( const Event& ); | 177 | void removeEvent( const Event& ); |
177 | void editEvent( const Event& ); | 178 | void editEvent( const Event& ); |
179 | void duplicateEvent( const Event& ); | ||
178 | void beamEvent( const Event& ); | 180 | void beamEvent( const Event& ); |
179 | void newEvent(); | 181 | void newEvent(); |
180 | void sigNewEvent( const QString & ); | 182 | void sigNewEvent( const QString & ); |
181 | 183 | ||
182 | protected slots: | 184 | protected slots: |
183 | void keyPressEvent(QKeyEvent *); | 185 | void keyPressEvent(QKeyEvent *); |
184 | 186 | ||
185 | private slots: | 187 | private slots: |
186 | void dateChanged( int y, int m, int d ); | 188 | void dateChanged( int y, int m, int d ); |
187 | void slotColWidthChanged() { relayoutPage(); }; | 189 | void slotColWidthChanged() { relayoutPage(); }; |
188 | 190 | ||
189 | private: | 191 | private: |
190 | void getEvents(); | 192 | void getEvents(); |
191 | void relayoutPage( bool fromResize = false ); | 193 | void relayoutPage( bool fromResize = false ); |
192 | DateBookDayWidget *intersects( const DateBookDayWidget *item, const QRect &geom ); | 194 | DateBookDayWidget *intersects( const DateBookDayWidget *item, const QRect &geom ); |
193 | QDate currDate; | 195 | QDate currDate; |