summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp46
-rw-r--r--korganizer/calendarview.h3
-rw-r--r--korganizer/koagendaitem.cpp4
-rw-r--r--korganizer/komonthview.cpp10
-rw-r--r--korganizer/komonthview.h3
-rw-r--r--korganizer/koviewmanager.cpp3
-rw-r--r--korganizer/mainwindow.cpp7
7 files changed, 70 insertions, 6 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 543897a..15c5dd9 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -488,12 +488,19 @@ CalendarView::~CalendarView()
488 delete mViewManager; 488 delete mViewManager;
489 delete mStorage; 489 delete mStorage;
490 delete mDateFrame ; 490 delete mDateFrame ;
491 delete beamDialog; 491 delete beamDialog;
492 //kdDebug() << "~CalendarView() done" << endl; 492 //kdDebug() << "~CalendarView() done" << endl;
493} 493}
494
495void CalendarView::showDay( QDate d )
496{
497 dateNavigator()->selectDate( d );
498 mViewManager->showWeekView();
499 dateNavigator()->selectDate( d );
500}
494void CalendarView::timerAlarm() 501void CalendarView::timerAlarm()
495{ 502{
496 //qDebug("CalendarView::timerAlarm() "); 503 //qDebug("CalendarView::timerAlarm() ");
497 computeAlarm(mAlarmNotification ); 504 computeAlarm(mAlarmNotification );
498} 505}
499 506
@@ -2206,12 +2213,13 @@ void CalendarView::edit_paste()
2206void CalendarView::edit_options() 2213void CalendarView::edit_options()
2207{ 2214{
2208 mDialogManager->showOptionsDialog(); 2215 mDialogManager->showOptionsDialog();
2209 //writeSettings(); 2216 //writeSettings();
2210} 2217}
2211 2218
2219
2212void CalendarView::slotSelectPickerDate( QDate d) 2220void CalendarView::slotSelectPickerDate( QDate d)
2213{ 2221{
2214 mDateFrame->hide(); 2222 mDateFrame->hide();
2215 if ( mDatePickerMode == 1 ) { 2223 if ( mDatePickerMode == 1 ) {
2216 mNavigator->slotDaySelect( d ); 2224 mNavigator->slotDaySelect( d );
2217 } else if ( mDatePickerMode == 2 ) { 2225 } else if ( mDatePickerMode == 2 ) {
@@ -2226,12 +2234,25 @@ void CalendarView::slotSelectPickerDate( QDate d)
2226 to->setHasDueDate( true ); 2234 to->setHasDueDate( true );
2227 } 2235 }
2228 QDateTime dt ( d,tim ); 2236 QDateTime dt ( d,tim );
2229 to->setDtDue( dt ); 2237 to->setDtDue( dt );
2230 todoChanged( to ); 2238 todoChanged( to );
2231 } else { 2239 } else {
2240 if ( mMoveIncidence->doesRecur() ) {
2241#if 0
2242 // PENDING implement this
2243 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
2244 mCalendar()->addIncidence( newInc );
2245 if ( mMoveIncidence->type() == "Todo" )
2246 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
2247 else
2248 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
2249 mMoveIncidence = newInc;
2250
2251#endif
2252 }
2232 QTime tim = mMoveIncidence->dtStart().time(); 2253 QTime tim = mMoveIncidence->dtStart().time();
2233 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2254 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2234 QDateTime dt ( d,tim ); 2255 QDateTime dt ( d,tim );
2235 mMoveIncidence->setDtStart( dt ); 2256 mMoveIncidence->setDtStart( dt );
2236 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2257 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2237 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2258 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
@@ -2423,12 +2444,14 @@ void CalendarView::moveIncidence(Incidence * inc )
2423 da = to->dtDue().date(); 2444 da = to->dtDue().date();
2424 else 2445 else
2425 da = QDate::currentDate(); 2446 da = QDate::currentDate();
2426 } else { 2447 } else {
2427 da = mMoveIncidence->dtStart().date(); 2448 da = mMoveIncidence->dtStart().date();
2428 } 2449 }
2450 //PENDING set date for recurring incidence to date of recurrence
2451 //mMoveIncidenceOldDate;
2429 mDatePicker->setDate( da ); 2452 mDatePicker->setDate( da );
2430} 2453}
2431void CalendarView::showDatePicker( ) 2454void CalendarView::showDatePicker( )
2432{ 2455{
2433 //qDebug("CalendarView::showDatePicker( ) "); 2456 //qDebug("CalendarView::showDatePicker( ) ");
2434 if ( mDateFrame->isVisible() ) 2457 if ( mDateFrame->isVisible() )
@@ -2881,21 +2904,21 @@ void CalendarView::deleteEvent(Event *anEvent)
2881 if (anEvent->recurrence()->doesRecur()) { 2904 if (anEvent->recurrence()->doesRecur()) {
2882 QDate itemDate = mViewManager->currentSelectionDate(); 2905 QDate itemDate = mViewManager->currentSelectionDate();
2883 int km; 2906 int km;
2884 if (!itemDate.isValid()) { 2907 if (!itemDate.isValid()) {
2885 //kdDebug() << "Date Not Valid" << endl; 2908 //kdDebug() << "Date Not Valid" << endl;
2886 if (KOPrefs::instance()->mConfirm) { 2909 if (KOPrefs::instance()->mConfirm) {
2887 km = KMessageBox::warningContinueCancel(this,anEvent->summary() + 2910 km = KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) +
2888 i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"), 2911 i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"),
2889 i18n("KO/Pi Confirmation"),i18n("Delete All")); 2912 i18n("KO/Pi Confirmation"),i18n("Delete All"));
2890 if ( km == KMessageBox::Continue ) 2913 if ( km == KMessageBox::Continue )
2891 km = KMessageBox::No; // No = all below 2914 km = KMessageBox::No; // No = all below
2892 } else 2915 } else
2893 km = KMessageBox::No; 2916 km = KMessageBox::No;
2894 } else { 2917 } else {
2895 km = KMessageBox::warningYesNoCancel(this,anEvent->summary() + 2918 km = KMessageBox::warningYesNoCancel(this,anEvent->summary().left(25) +
2896 i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+ 2919 i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+
2897 KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"), 2920 KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"),
2898 i18n("KO/Pi Confirmation"),i18n("Current"), 2921 i18n("KO/Pi Confirmation"),i18n("Current"),
2899 i18n("All")); 2922 i18n("All"));
2900 } 2923 }
2901 switch(km) { 2924 switch(km) {
@@ -2930,13 +2953,13 @@ void CalendarView::deleteEvent(Event *anEvent)
2930 } 2953 }
2931 break; 2954 break;
2932 //#endif 2955 //#endif
2933 } // switch 2956 } // switch
2934 } else { 2957 } else {
2935 if (KOPrefs::instance()->mConfirm) { 2958 if (KOPrefs::instance()->mConfirm) {
2936 switch (KMessageBox::warningContinueCancel(this,anEvent->summary() + 2959 switch (KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) +
2937 i18n("\nAre you sure you want\nto delete this event?"), 2960 i18n("\nAre you sure you want\nto delete this event?"),
2938 i18n("KO/Pi Confirmation"),i18n("Delete"))) { 2961 i18n("KO/Pi Confirmation"),i18n("Delete"))) {
2939 case KMessageBox::Continue: // OK 2962 case KMessageBox::Continue: // OK
2940 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2963 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2941 schedule(Scheduler::Cancel,anEvent); 2964 schedule(Scheduler::Cancel,anEvent);
2942 checkExternalId( anEvent); 2965 checkExternalId( anEvent);
@@ -3796,6 +3819,23 @@ void CalendarView::setSyncManager(KSyncManager* manager)
3796void CalendarView::removeSyncInfo( QString syncProfile) 3819void CalendarView::removeSyncInfo( QString syncProfile)
3797{ 3820{
3798 qDebug("removeSyncInfo for profile %s ", syncProfile.latin1()); 3821 qDebug("removeSyncInfo for profile %s ", syncProfile.latin1());
3799 mCalendar->removeSyncInfo( syncProfile ); 3822 mCalendar->removeSyncInfo( syncProfile );
3800 3823
3801} 3824}
3825
3826void CalendarView::undo_delete()
3827{
3828 //qDebug("undo_delete() ");
3829 Incidence* undo = mCalendar->undoIncidence();
3830 if ( !undo ) {
3831 KMessageBox::sorry(this,i18n("There is nothing to undo!"),
3832 i18n("KO/Pi"));
3833 return;
3834 }
3835 if ( KMessageBox::Continue ==KMessageBox::warningContinueCancel(this,undo->summary().left(25) +
3836 i18n("\nAre you sure you want\nto restore this?"),
3837 i18n("KO/Pi Confirmation"),i18n("Restore"))) {
3838 mCalendar->undoDeleteIncidence();
3839 updateView();
3840 }
3841}
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 437a51c..646973d 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -447,12 +447,14 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
447 void beamIncidenceList(QPtrList<Incidence>) ; 447 void beamIncidenceList(QPtrList<Incidence>) ;
448 void manageCategories(); 448 void manageCategories();
449 int addCategories(); 449 int addCategories();
450 void removeCategories(); 450 void removeCategories();
451 void setSyncDevice( QString ); 451 void setSyncDevice( QString );
452 void setSyncName( QString ); 452 void setSyncName( QString );
453 void showDay( QDate );
454 void undo_delete();
453 protected slots: 455 protected slots:
454 void timerAlarm(); 456 void timerAlarm();
455 void suspendAlarm(); 457 void suspendAlarm();
456 void beamDone( Ir *ir ); 458 void beamDone( Ir *ir );
457 /** Select a view or adapt the current view to display the specified dates. */ 459 /** Select a view or adapt the current view to display the specified dates. */
458 void showDates( const KCal::DateList & ); 460 void showDates( const KCal::DateList & );
@@ -551,12 +553,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
551 bool mModified; // flag indicating if calendar is modified 553 bool mModified; // flag indicating if calendar is modified
552 bool mReadOnly; // flag indicating if calendar is read-only 554 bool mReadOnly; // flag indicating if calendar is read-only
553 QDate mSaveSingleDate; 555 QDate mSaveSingleDate;
554 556
555 Incidence *mSelectedIncidence; 557 Incidence *mSelectedIncidence;
556 Incidence *mMoveIncidence; 558 Incidence *mMoveIncidence;
559 QDate mMoveIncidenceOldDate;
557 KOTodoView *mTodoList; 560 KOTodoView *mTodoList;
558 KOEventEditor * mEventEditor; 561 KOEventEditor * mEventEditor;
559 KOTodoEditor * mTodoEditor; 562 KOTodoEditor * mTodoEditor;
560 KOEventViewerDialog * mEventViewerDialog; 563 KOEventViewerDialog * mEventViewerDialog;
561 void keyPressEvent ( QKeyEvent *e) ; 564 void keyPressEvent ( QKeyEvent *e) ;
562 //QMap<Incidence*,KOIncidenceEditor*> mDialogList; 565 //QMap<Incidence*,KOIncidenceEditor*> mDialogList;
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index f027343..46184ac 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -147,23 +147,25 @@ KOAgendaItem::~KOAgendaItem()
147 // qDebug("deleteKOAgendaItem::~KOAgendaItem( "); 147 // qDebug("deleteKOAgendaItem::~KOAgendaItem( ");
148 148
149} 149}
150 150
151void KOAgendaItem::recreateIncidence() 151void KOAgendaItem::recreateIncidence()
152{ 152{
153#if 0
153 Incidence* newInc = mIncidence->clone(); 154 Incidence* newInc = mIncidence->clone();
154 newInc->recreate(); 155 newInc->recreate();
155 if ( mIncidence->doesRecur() ) { 156 if ( mIncidence->doesRecur() ) {
156 mIncidence->addExDate( mDate ); 157 mIncidence->addExDate( mDate );
157 newInc->recurrence()->unsetRecurs(); 158 newInc->recurrence()->unsetRecurs();
158 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd()); 159 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd());
159 QTime tim = mIncidence->dtStart().time(); 160 QTime tim = mIncidence->dtStart().time();
160 newInc->setDtStart( QDateTime(mDate, tim) ); 161 newInc->setDtStart( QDateTime(mDate, tim) );
161 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) ); 162 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) );
162 } 163 }
163 mIncidence = newInc; 164#endif
165 mIncidence = mIncidence->recreateCloneException( mDate );
164} 166}
165bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout) 167bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout)
166{ 168{
167 int size = AGENDA_ICON_SIZE; 169 int size = AGENDA_ICON_SIZE;
168 170
169 int yOff = 0; 171 int yOff = 0;
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 7d1e82f..08232e2 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -278,14 +278,14 @@ MonthViewCell::MonthViewCell( KOMonthView *parent)
278 // QColor( 0,0,255 ) QColor( 160,1600,255 ) 278 // QColor( 0,0,255 ) QColor( 160,1600,255 )
279 mStandardPalette = palette(); 279 mStandardPalette = palette();
280 mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) ); 280 mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) );
281 281
282 enableScrollBars( false ); 282 enableScrollBars( false );
283 updateConfig(); 283 updateConfig();
284 connect( mLabel, SIGNAL( clicked( )), 284 //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() ));
285 SLOT( newEvent() )); 285 connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() ));
286 connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ), 286 connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ),
287 SLOT( defaultAction( QListBoxItem * ) ) ); 287 SLOT( defaultAction( QListBoxItem * ) ) );
288 connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *, 288 connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *,
289 const QPoint &) ), 289 const QPoint &) ),
290 SLOT( contextMenu( QListBoxItem * ) ) ); 290 SLOT( contextMenu( QListBoxItem * ) ) );
291 connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ), 291 connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ),
@@ -626,12 +626,16 @@ void MonthViewCell::defaultAction( QListBoxItem *item )
626 if ( !item ) return; 626 if ( !item ) return;
627 627
628 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 628 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
629 Incidence *incidence = eventItem->incidence(); 629 Incidence *incidence = eventItem->incidence();
630 if ( incidence ) mMonthView->defaultAction( incidence ); 630 if ( incidence ) mMonthView->defaultAction( incidence );
631} 631}
632void MonthViewCell::showDay()
633{
634 emit showDaySignal( date() );
635}
632void MonthViewCell::newEvent() 636void MonthViewCell::newEvent()
633{ 637{
634 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 638 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
635 emit newEventSignal( dt ); 639 emit newEventSignal( dt );
636} 640}
637void MonthViewCell::cellClicked( QListBoxItem *item ) 641void MonthViewCell::cellClicked( QListBoxItem *item )
@@ -726,12 +730,14 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
726 mCells.insert( row * mDaysPerWeek + col, cell ); 730 mCells.insert( row * mDaysPerWeek + col, cell );
727 731
728 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 732 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
729 SLOT( defaultAction( Incidence * ) ) ); 733 SLOT( defaultAction( Incidence * ) ) );
730 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 734 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
731 SIGNAL( newEventSignal( QDateTime ) ) ); 735 SIGNAL( newEventSignal( QDateTime ) ) );
736 connect( cell, SIGNAL( showDaySignal( QDate ) ),
737 SIGNAL( showDaySignal( QDate ) ) );
732 } 738 }
733 } 739 }
734 740
735 mContextMenu = eventPopup(); 741 mContextMenu = eventPopup();
736 // updateConfig(); //useless here 742 // updateConfig(); //useless here
737 743
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index e94952f..5124057 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -140,22 +140,24 @@ class MonthViewCell : public QWidget
140 void deselect(); 140 void deselect();
141 void select(); 141 void select();
142 142
143 signals: 143 signals:
144 void defaultAction( Incidence * ); 144 void defaultAction( Incidence * );
145 void newEventSignal( QDateTime ); 145 void newEventSignal( QDateTime );
146 void showDaySignal( QDate );
146 147
147 protected: 148 protected:
148 void resizeEvent( QResizeEvent * ); 149 void resizeEvent( QResizeEvent * );
149 150
150 protected slots: 151 protected slots:
151 void defaultAction( QListBoxItem * ); 152 void defaultAction( QListBoxItem * );
152 void contextMenu( QListBoxItem * ); 153 void contextMenu( QListBoxItem * );
153 void selection( QListBoxItem * ); 154 void selection( QListBoxItem * );
154 void cellClicked( QListBoxItem * ); 155 void cellClicked( QListBoxItem * );
155 void newEvent(); 156 void newEvent();
157 void showDay();
156 158
157 private: 159 private:
158 KOMonthView *mMonthView; 160 KOMonthView *mMonthView;
159 161
160 QDate mDate; 162 QDate mDate;
161 bool mPrimary; 163 bool mPrimary;
@@ -218,12 +220,13 @@ class KOMonthView: public KOEventView
218 void setSelectedCell( MonthViewCell * ); 220 void setSelectedCell( MonthViewCell * );
219 221
220 protected slots: 222 protected slots:
221 void processSelectionChange(); 223 void processSelectionChange();
222 signals: 224 signals:
223 void selectWeekNum ( int ); 225 void selectWeekNum ( int );
226 void showDaySignal( QDate );
224 protected: 227 protected:
225 void resizeEvent(QResizeEvent *); 228 void resizeEvent(QResizeEvent *);
226 void viewChanged(); 229 void viewChanged();
227 void updateDayLabels(); 230 void updateDayLabels();
228 231
229 private: 232 private:
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index 391f98c..6e151f9 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -29,12 +29,13 @@
29#include <kglobal.h> 29#include <kglobal.h>
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#else 32#else
33#include <qapplication.h> 33#include <qapplication.h>
34#endif 34#endif
35#include <qdatetime.h>
35#include "calendarview.h" 36#include "calendarview.h"
36#include "datenavigator.h" 37#include "datenavigator.h"
37#include "kotodoview.h" 38#include "kotodoview.h"
38#include "koagendaview.h" 39#include "koagendaview.h"
39#include "kodialogmanager.h" 40#include "kodialogmanager.h"
40#include "komonthview.h" 41#include "komonthview.h"
@@ -441,12 +442,14 @@ void KOViewManager::showMonthView()
441 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 442 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
442 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 443 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
443 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 444 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
444 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 445 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
445 connect( mMonthView, SIGNAL( selectWeekNum( int ) ), 446 connect( mMonthView, SIGNAL( selectWeekNum( int ) ),
446 mMainView, SLOT ( selectWeekNum( int ) ) ); 447 mMainView, SLOT ( selectWeekNum( int ) ) );
448 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ),
449 mMainView, SLOT ( showDay( QDate ) ) );
447 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig())); 450 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig()));
448 mMonthView->updateConfig(); 451 mMonthView->updateConfig();
449 } 452 }
450 453
451 globalFlagBlockAgenda = 1; 454 globalFlagBlockAgenda = 1;
452 //mFlagShowNextxDays = false; 455 //mFlagShowNextxDays = false;
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 46ae6a0..a652c05 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -573,12 +573,19 @@ void MainWindow::initActions()
573 icon = loadPixmap( pathString + "configure" ); 573 icon = loadPixmap( pathString + "configure" );
574 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 574 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
575 action->addTo( actionMenu ); 575 action->addTo( actionMenu );
576 connect( action, SIGNAL( activated() ), 576 connect( action, SIGNAL( activated() ),
577 mView, SLOT( edit_options() ) ); 577 mView, SLOT( edit_options() ) );
578 actionMenu->insertSeparator(); 578 actionMenu->insertSeparator();
579
580 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
581 action->addTo( actionMenu );
582 connect( action, SIGNAL( activated() ),
583 mView, SLOT( undo_delete() ) );
584 actionMenu->insertSeparator();
585
579 icon = loadPixmap( pathString + "newevent" ); 586 icon = loadPixmap( pathString + "newevent" );
580 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 587 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
581 configureToolBarMenu->insertSeparator(); 588 configureToolBarMenu->insertSeparator();
582 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 589 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
583 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 590 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
584 ne_action->addTo( actionMenu ); 591 ne_action->addTo( actionMenu );