summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt7
-rw-r--r--korganizer/calendarview.cpp2
-rw-r--r--korganizer/koagenda.cpp2
-rw-r--r--korganizer/kotodoeditor.cpp5
-rw-r--r--korganizer/kotodoview.cpp62
-rw-r--r--korganizer/kotodoview.h7
6 files changed, 80 insertions, 5 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 8572bf9..0538511 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1171,35 +1171,42 @@
1171{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" }, 1171{ "<qt>Printing on printer <b>%1</b></qt>","<qt>Drucke auf Drucker <b>%1</b></qt>" },
1172{ "[Unconfigured]","[Unkonfiguriert]" }, 1172{ "[Unconfigured]","[Unkonfiguriert]" },
1173{ "OK","OK" }, 1173{ "OK","OK" },
1174{ "FilterEditor","FilterEditor" }, 1174{ "FilterEditor","FilterEditor" },
1175{ "Include","Inclusive" }, 1175{ "Include","Inclusive" },
1176{ "Exclude","Exclusive" }, 1176{ "Exclude","Exclusive" },
1177{ "Edit Selection...","Editiere Auswahl" }, 1177{ "Edit Selection...","Editiere Auswahl" },
1178{ "recurring events","wiederholende Termine" }, 1178{ "recurring events","wiederholende Termine" },
1179{ "recurr. events","wiederh.Termine" }, 1179{ "recurr. events","wiederh.Termine" },
1180{ "completed to-dos","erledigte Todos" }, 1180{ "completed to-dos","erledigte Todos" },
1181{ "events","Termine" }, 1181{ "events","Termine" },
1182{ "todos","Todos" }, 1182{ "todos","Todos" },
1183{ "journals","Journale" }, 1183{ "journals","Journale" },
1184{ "public","öffentl." }, 1184{ "public","öffentl." },
1185{ "private","privat" }, 1185{ "private","privat" },
1186{ "confidential","vertraul." }, 1186{ "confidential","vertraul." },
1187{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" }, 1187{ "\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!","\nhat Unter-Todos.\nAlle erledigten Unter-Todos\nwerden auch gelöscht!" },
1188{ "Yesterday","Gestern" }, 1188{ "Yesterday","Gestern" },
1189{ "Day after tomorrow","Übermorgen" }, 1189{ "Day after tomorrow","Übermorgen" },
1190{ "Tomorrow","Morgen" }, 1190{ "Tomorrow","Morgen" },
1191{ "Day before yesterday","Vorgestern" }, 1191{ "Day before yesterday","Vorgestern" },
1192{ "Size %1","Größe %1" }, 1192{ "Size %1","Größe %1" },
1193{ "New Agendasize: %1","Neue Agendagröße: %1" }, 1193{ "New Agendasize: %1","Neue Agendagröße: %1" },
1194{ " (%1 y.)"," (%1 J.)" }, 1194{ " (%1 y.)"," (%1 J.)" },
1195{ "Allday:","Ganztägig:" }, 1195{ "Allday:","Ganztägig:" },
1196{ "compl.todos","erled.Todos" }, 1196{ "compl.todos","erled.Todos" },
1197{ "Day view","Tagesansicht" }, 1197{ "Day view","Tagesansicht" },
1198{ "Next days","Nächste Tage" }, 1198{ "Next days","Nächste Tage" },
1199{ "Next week","Nächste Woche" }, 1199{ "Next week","Nächste Woche" },
1200{ "Next two weeks","Nächste zwei Wochen" }, 1200{ "Next two weeks","Nächste zwei Wochen" },
1201{ "Next month","Nächster Monat" }, 1201{ "Next month","Nächster Monat" },
1202{ "Journal view","Journal" }, 1202{ "Journal view","Journal" },
1203{ "Display all opened","Zeige alle geöffnet" },
1204{ "Display all closed","Zeige alle geschlossen" },
1205{ "Display all flat","Zeige alle flach" },
1206{ "","" },
1207{ "","" },
1208{ "","" },
1209{ "","" },
1203{ "","" }, 1210{ "","" },
1204{ "","" }, 1211{ "","" },
1205{ "","" }, 1212{ "","" },
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index e7b6755..0c39590 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2687,65 +2687,65 @@ void CalendarView::todoDeleted()
2687} 2687}
2688 2688
2689 2689
2690void CalendarView::newTodoDateTime( QDateTime dt, bool allday ) 2690void CalendarView::newTodoDateTime( QDateTime dt, bool allday )
2691{ 2691{
2692 showTodoEditor(); 2692 showTodoEditor();
2693 mTodoEditor->newTodo(dt,0,allday); 2693 mTodoEditor->newTodo(dt,0,allday);
2694 if ( mFilterView->filtersEnabled() ) { 2694 if ( mFilterView->filtersEnabled() ) {
2695 CalFilter *filter = mFilterView->selectedFilter(); 2695 CalFilter *filter = mFilterView->selectedFilter();
2696 if (filter && filter->showCategories()) { 2696 if (filter && filter->showCategories()) {
2697 mTodoEditor->setCategories(filter->categoryList().join(",") ); 2697 mTodoEditor->setCategories(filter->categoryList().join(",") );
2698 } 2698 }
2699 if ( filter ) 2699 if ( filter )
2700 mTodoEditor->setSecrecy( filter->getSecrecy() ); 2700 mTodoEditor->setSecrecy( filter->getSecrecy() );
2701 } 2701 }
2702} 2702}
2703 2703
2704void CalendarView::newTodo() 2704void CalendarView::newTodo()
2705{ 2705{
2706 newTodoDateTime( QDateTime(),true ); 2706 newTodoDateTime( QDateTime(),true );
2707} 2707}
2708 2708
2709void CalendarView::newSubTodo() 2709void CalendarView::newSubTodo()
2710{ 2710{
2711 Todo *todo = selectedTodo(); 2711 Todo *todo = selectedTodo();
2712 if ( todo ) newSubTodo( todo ); 2712 if ( todo ) newSubTodo( todo );
2713} 2713}
2714 2714
2715void CalendarView::newSubTodo(Todo *parentEvent) 2715void CalendarView::newSubTodo(Todo *parentEvent)
2716{ 2716{
2717 2717
2718 showTodoEditor(); 2718 showTodoEditor();
2719 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true); 2719 mTodoEditor->newTodo(QDateTime(),parentEvent,true);
2720} 2720}
2721 2721
2722void CalendarView::newFloatingEvent() 2722void CalendarView::newFloatingEvent()
2723{ 2723{
2724 DateList tmpList = mNavigator->selectedDates(); 2724 DateList tmpList = mNavigator->selectedDates();
2725 QDate date = tmpList.first(); 2725 QDate date = tmpList.first();
2726 2726
2727 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ), 2727 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ),
2728 QDateTime( date, QTime( 12, 0, 0 ) ), true ); 2728 QDateTime( date, QTime( 12, 0, 0 ) ), true );
2729} 2729}
2730 2730
2731 2731
2732void CalendarView::editEvent( Event *event ) 2732void CalendarView::editEvent( Event *event )
2733{ 2733{
2734 2734
2735 if ( !event ) return; 2735 if ( !event ) return;
2736 if ( event->isReadOnly() ) { 2736 if ( event->isReadOnly() ) {
2737 showEvent( event ); 2737 showEvent( event );
2738 return; 2738 return;
2739 } 2739 }
2740 showEventEditor(); 2740 showEventEditor();
2741 mEventEditor->editEvent( event , mFlagEditDescription); 2741 mEventEditor->editEvent( event , mFlagEditDescription);
2742} 2742}
2743void CalendarView::editJournal( Journal *jour ) 2743void CalendarView::editJournal( Journal *jour )
2744{ 2744{
2745 if ( !jour ) return; 2745 if ( !jour ) return;
2746 mDialogManager->hideSearchDialog(); 2746 mDialogManager->hideSearchDialog();
2747 mViewManager->showJournalView(); 2747 mViewManager->showJournalView();
2748 mNavigator->slotDaySelect( jour->dtStart().date() ); 2748 mNavigator->slotDaySelect( jour->dtStart().date() );
2749} 2749}
2750void CalendarView::editTodo( Todo *todo ) 2750void CalendarView::editTodo( Todo *todo )
2751{ 2751{
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 0eeacb3..002234d 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -409,65 +409,65 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me)
409 // emit showIncidencePopupSignal(mClickedItem->incidence()); 409 // emit showIncidencePopupSignal(mClickedItem->incidence());
410 } 410 }
411 //mItemPopup->popup(QCursor::pos()); 411 //mItemPopup->popup(QCursor::pos());
412 } else { 412 } else {
413 mActionItem = (KOAgendaItem *)object; 413 mActionItem = (KOAgendaItem *)object;
414 if (mActionItem) { 414 if (mActionItem) {
415 if ( mSelectionHeight > 0 ) { 415 if ( mSelectionHeight > 0 ) {
416 int selectionCellX = mSelectionCellX * mGridSpacingX; 416 int selectionCellX = mSelectionCellX * mGridSpacingX;
417 int selectionYTop = mSelectionYTop; 417 int selectionYTop = mSelectionYTop;
418 int gridSpacingX = mGridSpacingX; 418 int gridSpacingX = mGridSpacingX;
419 int selectionHeight = mSelectionHeight; 419 int selectionHeight = mSelectionHeight;
420 clearSelection(); 420 clearSelection();
421 repaintContents( selectionCellX, selectionYTop, 421 repaintContents( selectionCellX, selectionYTop,
422 gridSpacingX, selectionHeight,false ); 422 gridSpacingX, selectionHeight,false );
423 } 423 }
424 selectItem(mActionItem); 424 selectItem(mActionItem);
425 Incidence *incidence = mActionItem->incidence(); 425 Incidence *incidence = mActionItem->incidence();
426 if ( incidence->isReadOnly() /*|| incidence->recurrence()->doesRecur() */) { 426 if ( incidence->isReadOnly() /*|| incidence->recurrence()->doesRecur() */) {
427 mActionItem = 0; 427 mActionItem = 0;
428 } else { 428 } else {
429 startItemAction(viewportPos); 429 startItemAction(viewportPos);
430 startX = viewportPos.x(); 430 startX = viewportPos.x();
431 startY = viewportPos.y(); 431 startY = viewportPos.y();
432 block = true; 432 block = true;
433 } 433 }
434 } 434 }
435 } 435 }
436 } else { 436 } else {
437 selectItem(0); 437 selectItem(0);
438 mActionItem = 0; 438 mActionItem = 0;
439 if (me->button() == RightButton ) { 439 if (me->button() == RightButton ) {
440 blockNewEvent = true; 440 blockNewEvent = true;
441 qDebug("right "); 441 //qDebug("right ");
442 int x,y; 442 int x,y;
443 viewportToContents(viewportPos.x(),viewportPos.y(),x,y); 443 viewportToContents(viewportPos.x(),viewportPos.y(),x,y);
444 int gx,gy; 444 int gx,gy;
445 contentsToGrid(x,y,gx,gy); 445 contentsToGrid(x,y,gx,gy);
446 mStartCellX = gx; 446 mStartCellX = gx;
447 mStartCellY = gy; 447 mStartCellY = gy;
448 mCurrentCellX = gx; 448 mCurrentCellX = gx;
449 mCurrentCellY = gy; 449 mCurrentCellY = gy;
450 mNewItemPopup->popup( viewport()->mapToGlobal( me->pos() ) ); 450 mNewItemPopup->popup( viewport()->mapToGlobal( me->pos() ) );
451 451
452 } else { 452 } else {
453 blockNewEvent = false; 453 blockNewEvent = false;
454 setCursor(arrowCursor); 454 setCursor(arrowCursor);
455 startSelectAction(viewportPos); 455 startSelectAction(viewportPos);
456 } 456 }
457 } 457 }
458 break; 458 break;
459 459
460 case QEvent::MouseButtonRelease: 460 case QEvent::MouseButtonRelease:
461 //qDebug("QEvent::MouseButtonRelease: "); 461 //qDebug("QEvent::MouseButtonRelease: ");
462 if (me->button() == RightButton && block ) { 462 if (me->button() == RightButton && block ) {
463 if (object != viewport()) { 463 if (object != viewport()) {
464 mClickedItem = (KOAgendaItem *)object; 464 mClickedItem = (KOAgendaItem *)object;
465 if (mActionItem ) { 465 if (mActionItem ) {
466 endItemAction(); 466 endItemAction();
467 } 467 }
468 if (mClickedItem) { 468 if (mClickedItem) {
469 selectItem(mClickedItem); 469 selectItem(mClickedItem);
470 emit showIncidencePopupSignal(mClickedItem->incidence()); 470 emit showIncidencePopupSignal(mClickedItem->incidence());
471 } 471 }
472 } 472 }
473 break; 473 break;
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index abeb068..16c19a4 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -244,66 +244,69 @@ void KOTodoEditor::deleteTodo()
244{ 244{
245 if (mTodo) { 245 if (mTodo) {
246 if (KOPrefs::instance()->mConfirm) { 246 if (KOPrefs::instance()->mConfirm) {
247 switch (msgItemDelete()) { 247 switch (msgItemDelete()) {
248 case KMessageBox::Continue: // OK 248 case KMessageBox::Continue: // OK
249 emit todoToBeDeleted(mTodo); 249 emit todoToBeDeleted(mTodo);
250 emit dialogClose(mTodo); 250 emit dialogClose(mTodo);
251 mCalendar->deleteTodo(mTodo); 251 mCalendar->deleteTodo(mTodo);
252 emit todoDeleted(); 252 emit todoDeleted();
253 reject(); 253 reject();
254 break; 254 break;
255 } 255 }
256 } 256 }
257 else { 257 else {
258 emit todoToBeDeleted(mTodo); 258 emit todoToBeDeleted(mTodo);
259 emit dialogClose(mTodo); 259 emit dialogClose(mTodo);
260 mCalendar->deleteTodo(mTodo); 260 mCalendar->deleteTodo(mTodo);
261 emit todoDeleted(); 261 emit todoDeleted();
262 reject(); 262 reject();
263 } 263 }
264 } else { 264 } else {
265 reject(); 265 reject();
266 } 266 }
267} 267}
268 268
269void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay) 269void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay)
270{ 270{
271 mRelatedTodo = relatedEvent; 271 mRelatedTodo = relatedEvent;
272 272
273 mGeneral->setDefaults(due,allDay); 273 mGeneral->setDefaults(due,allDay);
274 mDetails->setDefaults(); 274 mDetails->setDefaults();
275 showPage( 0 ); 275 showPage( 0 );
276 if ( mRelatedTodo ) 276 if ( mRelatedTodo ) {
277 mGeneral->setCategories (mRelatedTodo->categoriesStr ()); 277 mGeneral->setCategories (mRelatedTodo->categoriesStr ());
278 mGeneral->setSecrecy (mRelatedTodo->secrecy ());
279
280 }
278 mGeneral->setFocusOn( 2 ); 281 mGeneral->setFocusOn( 2 );
279} 282}
280 283
281void KOTodoEditor::readTodo(Todo *todo) 284void KOTodoEditor::readTodo(Todo *todo)
282{ 285{
283 mGeneral->readTodo(todo); 286 mGeneral->readTodo(todo);
284 mDetails->readEvent(todo); 287 mDetails->readEvent(todo);
285 mRelatedTodo = 0;//todo->relatedTo(); 288 mRelatedTodo = 0;//todo->relatedTo();
286 // categories 289 // categories
287 // mCategoryDialog->setSelected(todo->categories()); 290 // mCategoryDialog->setSelected(todo->categories());
288 291
289 // We should handle read-only events here. 292 // We should handle read-only events here.
290} 293}
291 294
292void KOTodoEditor::writeTodo(Todo *event) 295void KOTodoEditor::writeTodo(Todo *event)
293{ 296{
294 mGeneral->writeTodo(event); 297 mGeneral->writeTodo(event);
295 mDetails->writeEvent(event); 298 mDetails->writeEvent(event);
296 299
297 // set related event, i.e. parent to-do in this case. 300 // set related event, i.e. parent to-do in this case.
298 if (mRelatedTodo) { 301 if (mRelatedTodo) {
299 event->setRelatedTo(mRelatedTodo); 302 event->setRelatedTo(mRelatedTodo);
300 } 303 }
301} 304}
302 305
303bool KOTodoEditor::validateInput() 306bool KOTodoEditor::validateInput()
304{ 307{
305 if (!mGeneral->validateInput()) return false; 308 if (!mGeneral->validateInput()) return false;
306 if (!mDetails->validateInput()) return false; 309 if (!mDetails->validateInput()) return false;
307 return true; 310 return true;
308} 311}
309 312
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 30adb06..22486ba 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -400,86 +400,95 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
400 mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; 400 mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i;
401 } 401 }
402 connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); 402 connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int)));
403 403
404 404
405 405
406 mItemPopupMenu = new QPopupMenu(this); 406 mItemPopupMenu = new QPopupMenu(this);
407 mItemPopupMenu->insertItem(i18n("Show..."), this, 407 mItemPopupMenu->insertItem(i18n("Show..."), this,
408 SLOT (showTodo())); 408 SLOT (showTodo()));
409 mItemPopupMenu->insertItem(i18n("Edit..."), this, 409 mItemPopupMenu->insertItem(i18n("Edit..."), this,
410 SLOT (editTodo())); 410 SLOT (editTodo()));
411 mItemPopupMenu->insertItem( i18n("Delete"), this, 411 mItemPopupMenu->insertItem( i18n("Delete"), this,
412 SLOT (deleteTodo())); 412 SLOT (deleteTodo()));
413 mItemPopupMenu->insertItem( i18n("Clone..."), this, 413 mItemPopupMenu->insertItem( i18n("Clone..."), this,
414 SLOT (cloneTodo())); 414 SLOT (cloneTodo()));
415 mItemPopupMenu->insertItem( i18n("Move..."), this, 415 mItemPopupMenu->insertItem( i18n("Move..."), this,
416 SLOT (moveTodo())); 416 SLOT (moveTodo()));
417 mItemPopupMenu->insertItem( i18n("Beam..."), this, 417 mItemPopupMenu->insertItem( i18n("Beam..."), this,
418 SLOT (beamTodo())); 418 SLOT (beamTodo()));
419 mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this, 419 mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this,
420 SLOT (cancelTodo())); 420 SLOT (cancelTodo()));
421 mItemPopupMenu->insertSeparator(); 421 mItemPopupMenu->insertSeparator();
422 422
423 mItemPopupMenu->insertItem( i18n("New Todo..."), this, 423 mItemPopupMenu->insertItem( i18n("New Todo..."), this,
424 SLOT (newTodo())); 424 SLOT (newTodo()));
425 mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, 425 mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this,
426 SLOT (newSubTodo())); 426 SLOT (newSubTodo()));
427 mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, 427 mItemPopupMenu->insertItem(i18n("Unparent Todo"), this,
428 SLOT (unparentTodo()),0,21); 428 SLOT (unparentTodo()),0,21);
429 mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, 429 mItemPopupMenu->insertItem(i18n("Reparent Todo"), this,
430 SLOT (reparentTodo()),0,22); 430 SLOT (reparentTodo()),0,22);
431 mItemPopupMenu->insertSeparator(); 431 mItemPopupMenu->insertSeparator();
432#if 0
432 mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed"), 433 mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed"),
433 this, SLOT( purgeCompleted() ) ); 434 this, SLOT( purgeCompleted() ) );
434 mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), 435 mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"),
435 this, SLOT( toggleCompleted() ),0, 33 ); 436 this, SLOT( toggleCompleted() ),0, 33 );
436 mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), 437 mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"),
437 this, SLOT( toggleQuickTodo() ),0, 34 ); 438 this, SLOT( toggleQuickTodo() ),0, 34 );
438 mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), 439 mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"),
439 this, SLOT( toggleRunning() ),0, 35 ); 440 this, SLOT( toggleRunning() ),0, 35 );
440 441
442#endif
441 mPopupMenu = new QPopupMenu(this); 443 mPopupMenu = new QPopupMenu(this);
442 mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this, 444 mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this,
443 SLOT (newTodo()),0,1); 445 SLOT (newTodo()),0,1);
444 mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed"), 446 mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed"),
445 this, SLOT(purgeCompleted()),0,2); 447 this, SLOT(purgeCompleted()),0,2);
446 mPopupMenu->insertItem(i18n("Show Completed"), 448 mPopupMenu->insertItem(i18n("Show Completed"),
447 this, SLOT( toggleCompleted() ),0,3 ); 449 this, SLOT( toggleCompleted() ),0,3 );
448 mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), 450 mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"),
449 this, SLOT( toggleQuickTodo() ),0,4 ); 451 this, SLOT( toggleQuickTodo() ),0,4 );
450 mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), 452 mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"),
451 this, SLOT( toggleRunning() ),0,5 ); 453 this, SLOT( toggleRunning() ),0,5 );
454 mPopupMenu->insertItem(i18n(" set all open","Display all opened"),
455 this, SLOT( setAllOpen() ),0,6 );
456 mPopupMenu->insertItem(i18n(" set all close","Display all closed"),
457 this, SLOT( setAllClose() ),0,7 );
458 mPopupMenu->insertItem(i18n(" set all flat","Display all flat"),
459 this, SLOT( setAllFlat() ),0,8 );
452 mDocPrefs = new DocPrefs( name ); 460 mDocPrefs = new DocPrefs( name );
453 461
462 mItemPopupMenu->insertItem(i18n("Todo View"),mPopupMenu );
454 mPopupMenu->setCheckable( true ); 463 mPopupMenu->setCheckable( true );
455 mItemPopupMenu->setCheckable( true ); 464 mItemPopupMenu->setCheckable( true );
456 465
457 466
458 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); 467 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo );
459 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); 468 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo );
460 469
461 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); 470 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo);
462 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); 471 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo );
463 472
464 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); 473 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos);
465 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); 474 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos );
466 475
467 476
468 // Double clicking conflicts with opening/closing the subtree 477 // Double clicking conflicts with opening/closing the subtree
469 connect( mTodoListView, SIGNAL( doubleClicked( QListViewItem *) ), 478 connect( mTodoListView, SIGNAL( doubleClicked( QListViewItem *) ),
470 SLOT( editItem( QListViewItem *) ) ); 479 SLOT( editItem( QListViewItem *) ) );
471 /* 480 /*
472 connect( mTodoListView, SIGNAL( rightButtonClicked ( QListViewItem *, 481 connect( mTodoListView, SIGNAL( rightButtonClicked ( QListViewItem *,
473 const QPoint &,int ) ), 482 const QPoint &,int ) ),
474 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); 483 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) );
475 */ 484 */
476 connect( mTodoListView, SIGNAL( contextRequest ( QListViewItem *, 485 connect( mTodoListView, SIGNAL( contextRequest ( QListViewItem *,
477 const QPoint &,int ) ), 486 const QPoint &,int ) ),
478 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); 487 SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) );
479 connect( mTodoListView, SIGNAL( clicked( QListViewItem * ) ), 488 connect( mTodoListView, SIGNAL( clicked( QListViewItem * ) ),
480 SLOT( itemClicked( QListViewItem * ) ) ); 489 SLOT( itemClicked( QListViewItem * ) ) );
481 connect( mTodoListView, SIGNAL( double_Clicked( QListViewItem * ) ), 490 connect( mTodoListView, SIGNAL( double_Clicked( QListViewItem * ) ),
482 SLOT( itemDoubleClicked( QListViewItem * ) ) ); 491 SLOT( itemDoubleClicked( QListViewItem * ) ) );
483 connect( mTodoListView, SIGNAL( todoDropped( Todo * ) ), 492 connect( mTodoListView, SIGNAL( todoDropped( Todo * ) ),
484 SLOT( updateView() ) ); 493 SLOT( updateView() ) );
485 connect( mTodoListView, SIGNAL( expanded( QListViewItem * ) ), 494 connect( mTodoListView, SIGNAL( expanded( QListViewItem * ) ),
@@ -493,64 +502,68 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
493 connect(mTodoListView,SIGNAL(clicked(QListViewItem *)), 502 connect(mTodoListView,SIGNAL(clicked(QListViewItem *)),
494 SLOT(selectionChanged(QListViewItem *))); 503 SLOT(selectionChanged(QListViewItem *)));
495 connect(mTodoListView,SIGNAL(pressed(QListViewItem *)), 504 connect(mTodoListView,SIGNAL(pressed(QListViewItem *)),
496 SLOT(selectionChanged(QListViewItem *))); 505 SLOT(selectionChanged(QListViewItem *)));
497#endif 506#endif
498 connect( mTodoListView, SIGNAL(selectionChanged() ), 507 connect( mTodoListView, SIGNAL(selectionChanged() ),
499 SLOT( processSelectionChange() ) ); 508 SLOT( processSelectionChange() ) );
500 connect( mQuickAdd, SIGNAL( returnPressed () ), 509 connect( mQuickAdd, SIGNAL( returnPressed () ),
501 SLOT( addQuickTodo() ) ); 510 SLOT( addQuickTodo() ) );
502 511
503} 512}
504 513
505KOTodoView::~KOTodoView() 514KOTodoView::~KOTodoView()
506{ 515{
507 delete mDocPrefs; 516 delete mDocPrefs;
508} 517}
509 518
510void KOTodoView::jumpToDate () 519void KOTodoView::jumpToDate ()
511{ 520{
512 // if (mActiveItem) { 521 // if (mActiveItem) {
513// mActiveItem->todo()); 522// mActiveItem->todo());
514// if ( mActiveItem->todo()->hasDueDate() ) 523// if ( mActiveItem->todo()->hasDueDate() )
515// emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() ); 524// emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() );
516} 525}
517 526
518void KOTodoView::updateView() 527void KOTodoView::updateView()
519{ 528{
520 pendingSubtodo = 0; 529 pendingSubtodo = 0;
521 if ( mBlockUpdate ) { 530 if ( mBlockUpdate ) {
522 //qDebug("blocked "); 531 //qDebug("blocked ");
523 return; 532 return;
524 } 533 }
534 if ( isFlatDisplay ) {
535 setAllFlat();
536 return;
537 }
525 //qDebug("update "); 538 //qDebug("update ");
526// kdDebug() << "KOTodoView::updateView()" << endl; 539// kdDebug() << "KOTodoView::updateView()" << endl;
527 QFont fo = KOPrefs::instance()->mTodoViewFont; 540 QFont fo = KOPrefs::instance()->mTodoViewFont;
528 mTodoListView->clear(); 541 mTodoListView->clear();
529 if ( mName == "todolistsmall" ) { 542 if ( mName == "todolistsmall" ) {
530 if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { 543 if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) {
531 int ps = fo.pointSize() -2; 544 int ps = fo.pointSize() -2;
532 if ( ps > 12 ) 545 if ( ps > 12 )
533 ps -= 2; 546 ps -= 2;
534 fo.setPointSize( ps ); 547 fo.setPointSize( ps );
535 } 548 }
536 } 549 }
537 550
538 mTodoListView->setFont( fo ); 551 mTodoListView->setFont( fo );
539 // QFontMetrics fm ( KOPrefs::instance()->mTodoViewFont ); 552 // QFontMetrics fm ( KOPrefs::instance()->mTodoViewFont );
540 //mTodoListView->header()->setMaximumHeight(fm.height()); 553 //mTodoListView->header()->setMaximumHeight(fm.height());
541 QPtrList<Todo> todoList = calendar()->todos(); 554 QPtrList<Todo> todoList = calendar()->todos();
542 555
543/* 556/*
544 kdDebug() << "KOTodoView::updateView(): Todo List:" << endl; 557 kdDebug() << "KOTodoView::updateView(): Todo List:" << endl;
545 Event *t; 558 Event *t;
546 for(t = todoList.first(); t; t = todoList.next()) { 559 for(t = todoList.first(); t; t = todoList.next()) {
547 kdDebug() << " " << t->getSummary() << endl; 560 kdDebug() << " " << t->getSummary() << endl;
548 561
549 if (t->getRelatedTo()) { 562 if (t->getRelatedTo()) {
550 kdDebug() << " (related to " << t->getRelatedTo()->getSummary() << ")" << endl; 563 kdDebug() << " (related to " << t->getRelatedTo()->getSummary() << ")" << endl;
551 } 564 }
552 565
553 QPtrList<Event> l = t->getRelations(); 566 QPtrList<Event> l = t->getRelations();
554 Event *c; 567 Event *c;
555 for(c=l.first();c;c=l.next()) { 568 for(c=l.first();c;c=l.next()) {
556 kdDebug() << " - relation: " << c->getSummary() << endl; 569 kdDebug() << " - relation: " << c->getSummary() << endl;
@@ -968,64 +981,111 @@ void KOTodoView::saveLayout(KConfig *config, const QString &group) const
968 981
969void KOTodoView::restoreLayout(KConfig *config, const QString &group) 982void KOTodoView::restoreLayout(KConfig *config, const QString &group)
970{ 983{
971 mTodoListView->restoreLayout(config,group); 984 mTodoListView->restoreLayout(config,group);
972} 985}
973 986
974void KOTodoView::processSelectionChange() 987void KOTodoView::processSelectionChange()
975{ 988{
976// kdDebug() << "KOTodoView::processSelectionChange()" << endl; 989// kdDebug() << "KOTodoView::processSelectionChange()" << endl;
977 990
978 KOTodoViewItem *item = 991 KOTodoViewItem *item =
979 static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() ); 992 static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() );
980 993
981 if ( !item ) { 994 if ( !item ) {
982 emit incidenceSelected( 0 ); 995 emit incidenceSelected( 0 );
983 } else { 996 } else {
984 emit incidenceSelected( item->todo() ); 997 emit incidenceSelected( item->todo() );
985 } 998 }
986} 999}
987 1000
988void KOTodoView::modified(bool b) 1001void KOTodoView::modified(bool b)
989{ 1002{
990 emit isModified(b); 1003 emit isModified(b);
991} 1004}
992void KOTodoView::setTodoModified( Todo* todo ) 1005void KOTodoView::setTodoModified( Todo* todo )
993{ 1006{
994 todoModified( todo, KOGlobals::UNKNOWN_MODIFIED ); 1007 todoModified( todo, KOGlobals::UNKNOWN_MODIFIED );
995} 1008}
996void KOTodoView::clearSelection() 1009void KOTodoView::clearSelection()
997{ 1010{
998 mTodoListView->selectAll( false ); 1011 mTodoListView->selectAll( false );
999} 1012}
1013void KOTodoView::setAllOpen()
1014{
1015 if ( isFlatDisplay ) {
1016 isFlatDisplay = false;
1017 mPopupMenu->setItemChecked( 8,false );
1018 updateView();
1019 }
1020 setOpen(mTodoListView->firstChild(), true);
1021}
1022void KOTodoView::setAllClose()
1023{
1024 if ( isFlatDisplay ) {
1025 isFlatDisplay = false;
1026 mPopupMenu->setItemChecked( 8,false );
1027 updateView();
1028 }
1029 setOpen(mTodoListView->firstChild(), false);
1030}
1031void KOTodoView::setOpen( QListViewItem* item, bool setOpenI)
1032{
1033
1034 while ( item ) {
1035 setOpen( item->firstChild(), setOpenI );
1036 item->setOpen( setOpenI );
1037 item = item->nextSibling();
1038 }
1039}
1040
1041void KOTodoView::setAllFlat()
1042{
1043 pendingSubtodo = 0;
1044 if ( mBlockUpdate ) {
1045 return;
1046 }
1047 mPopupMenu->setItemChecked( 8,true );
1048 isFlatDisplay = true;
1049 QPtrList<Todo> todoList = calendar()->todos();
1050 mTodoMap.clear();
1051 mTodoListView->clear();
1052 Todo *todo;
1053 for(todo = todoList.first(); todo; todo = todoList.next()) {
1054 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
1055 mTodoMap.insert(todo,todoItem);
1056 }
1057 mTodoListView->setFocus();
1058 processSelectionChange();
1059}
1000 1060
1001void KOTodoView::purgeCompleted() 1061void KOTodoView::purgeCompleted()
1002{ 1062{
1003 emit purgeCompletedSignal(); 1063 emit purgeCompletedSignal();
1004} 1064}
1005void KOTodoView::toggleQuickTodo() 1065void KOTodoView::toggleQuickTodo()
1006{ 1066{
1007 if ( mQuickAdd->isVisible() ) { 1067 if ( mQuickAdd->isVisible() ) {
1008 mQuickAdd->hide(); 1068 mQuickAdd->hide();
1009 KOPrefs::instance()->mEnableQuickTodo = false; 1069 KOPrefs::instance()->mEnableQuickTodo = false;
1010 } 1070 }
1011 else { 1071 else {
1012 mQuickAdd->show(); 1072 mQuickAdd->show();
1013 KOPrefs::instance()->mEnableQuickTodo = true; 1073 KOPrefs::instance()->mEnableQuickTodo = true;
1014 } 1074 }
1015 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); 1075 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo);
1016 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); 1076 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo );
1017} 1077}
1018 1078
1019void KOTodoView::toggleRunning() 1079void KOTodoView::toggleRunning()
1020{ 1080{
1021 KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos; 1081 KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos;
1022 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); 1082 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos);
1023 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); 1083 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos );
1024 updateView(); 1084 updateView();
1025} 1085}
1026 1086
1027void KOTodoView::toggleCompleted() 1087void KOTodoView::toggleCompleted()
1028{ 1088{
1029 KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo; 1089 KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo;
1030 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); 1090 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo );
1031 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); 1091 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo );
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 5ca0362..f11518d 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -132,108 +132,113 @@ class KOTodoView : public KOrg::BaseView
132 132
133 public slots: 133 public slots:
134 void updateView(); 134 void updateView();
135 void updateConfig(); 135 void updateConfig();
136 136
137 void changeEventDisplay(Event *, int); 137 void changeEventDisplay(Event *, int);
138 138
139 void showDates(const QDate &start, const QDate &end); 139 void showDates(const QDate &start, const QDate &end);
140 void showEvents(QPtrList<Event> eventList); 140 void showEvents(QPtrList<Event> eventList);
141 141
142 void clearSelection(); 142 void clearSelection();
143 void jumpToDate (); 143 void jumpToDate ();
144 144
145 void editItem(QListViewItem *item); 145 void editItem(QListViewItem *item);
146 void showItem(QListViewItem *item,const QPoint &,int); 146 void showItem(QListViewItem *item,const QPoint &,int);
147 void popupMenu(QListViewItem *item,const QPoint &,int); 147 void popupMenu(QListViewItem *item,const QPoint &,int);
148 void newTodo(); 148 void newTodo();
149 void newSubTodo(); 149 void newSubTodo();
150 void unparentTodo(); 150 void unparentTodo();
151 void reparentTodo(); 151 void reparentTodo();
152 void showTodo(); 152 void showTodo();
153 void editTodo(); 153 void editTodo();
154 void cloneTodo(); 154 void cloneTodo();
155 void cancelTodo(); 155 void cancelTodo();
156 void moveTodo(); 156 void moveTodo();
157 void beamTodo(); 157 void beamTodo();
158 void deleteTodo(); 158 void deleteTodo();
159 159
160 void setNewPriority(int); 160 void setNewPriority(int);
161 void setNewPercentage(int); 161 void setNewPercentage(int);
162 void changedCategories(int); 162 void changedCategories(int);
163 163
164 void setAllOpen();
165 void setAllClose();
166 void setAllFlat();
167
164 void purgeCompleted(); 168 void purgeCompleted();
165 void toggleCompleted(); 169 void toggleCompleted();
166 void toggleRunning(); 170 void toggleRunning();
167 void toggleQuickTodo(); 171 void toggleQuickTodo();
168 void updateTodo( Todo *, int ); 172 void updateTodo( Todo *, int );
169 173
170 void itemClicked(QListViewItem *); 174 void itemClicked(QListViewItem *);
171 void itemStateChanged(QListViewItem *); 175 void itemStateChanged(QListViewItem *);
172 void modified(bool); 176 void modified(bool);
173 void itemDoubleClicked(QListViewItem *item); 177 void itemDoubleClicked(QListViewItem *item);
174 178
175 signals: 179 signals:
176 void newTodoSignal(); 180 void newTodoSignal();
177 void newSubTodoSignal(Todo *); 181 void newSubTodoSignal(Todo *);
178 void unparentTodoSignal(Todo *); 182 void unparentTodoSignal(Todo *);
179 void reparentTodoSignal( Todo *,Todo * ); 183 void reparentTodoSignal( Todo *,Todo * );
180 void showTodoSignal(Todo *); 184 void showTodoSignal(Todo *);
181 185
182 void editTodoSignal(Todo *); 186 void editTodoSignal(Todo *);
183 void deleteTodoSignal(Todo *); 187 void deleteTodoSignal(Todo *);
184 void todoModifiedSignal (Todo *, int); 188 void todoModifiedSignal (Todo *, int);
185 189
186 void isModified(bool); 190 void isModified(bool);
187 void cloneTodoSignal( Incidence * ); 191 void cloneTodoSignal( Incidence * );
188 void cancelTodoSignal( Incidence * ); 192 void cancelTodoSignal( Incidence * );
189 void moveTodoSignal( Incidence * ); 193 void moveTodoSignal( Incidence * );
190 void beamTodoSignal( Incidence * ); 194 void beamTodoSignal( Incidence * );
191 void purgeCompletedSignal(); 195 void purgeCompletedSignal();
192 196
193 protected slots: 197 protected slots:
194 void processSelectionChange(); 198 void processSelectionChange();
195 void addQuickTodo(); 199 void addQuickTodo();
196 200
197 private: 201 private:
198 /* 202 /*
199 * the TodoEditor approach is rather unscaling in the long 203 * the TodoEditor approach is rather unscaling in the long
200 * run. 204 * run.
201 * Korganizer keeps it in memory and we need to update 205 * Korganizer keeps it in memory and we need to update
202 * 1. make KOTodoViewItem a QObject again? 206 * 1. make KOTodoViewItem a QObject again?
203 * 2. add a public method for setting one todo modified? 207 * 2. add a public method for setting one todo modified?
204 * 3. add a private method for setting a todo modified + friend here? 208 * 3. add a private method for setting a todo modified + friend here?
205 * -- zecke 2002-07-08 209 * -- zecke 2002-07-08
206 */ 210 */
207 friend class KOTodoViewItem; 211 friend class KOTodoViewItem;
208 void setTodoModified( Todo* ); 212 void setTodoModified( Todo* );
209 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); 213 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo);
210 void restoreItemState( QListViewItem * ); 214 void restoreItemState( QListViewItem * );
211 215
212 bool checkTodo( Todo * ); 216 bool checkTodo( Todo * );
213 217 bool isFlatDisplay;
218 void setOpen( QListViewItem*, bool setOpen);
214 KOTodoListView *mTodoListView; 219 KOTodoListView *mTodoListView;
215 QPopupMenu *mItemPopupMenu; 220 QPopupMenu *mItemPopupMenu;
216 QPopupMenu *mPopupMenu; 221 QPopupMenu *mPopupMenu;
217 QPopupMenu *mPriorityPopupMenu; 222 QPopupMenu *mPriorityPopupMenu;
218 QPopupMenu *mPercentageCompletedPopupMenu; 223 QPopupMenu *mPercentageCompletedPopupMenu;
219 QPopupMenu *mCategoryPopupMenu; 224 QPopupMenu *mCategoryPopupMenu;
220 225
221 QMap<int, int> mPercentage; 226 QMap<int, int> mPercentage;
222 QMap<int, int> mPriority; 227 QMap<int, int> mPriority;
223 QMap<int, QString> mCategory; 228 QMap<int, QString> mCategory;
224 KOTodoViewItem *mActiveItem; 229 KOTodoViewItem *mActiveItem;
225 230
226 QMap<Todo *,KOTodoViewItem *> mTodoMap; 231 QMap<Todo *,KOTodoViewItem *> mTodoMap;
227 QString mName; 232 QString mName;
228 233
229 DocPrefs *mDocPrefs; 234 DocPrefs *mDocPrefs;
230 QString mCurrentDoc; 235 QString mCurrentDoc;
231 KOQuickTodo *mQuickAdd; 236 KOQuickTodo *mQuickAdd;
232 bool mBlockUpdate; 237 bool mBlockUpdate;
233 void todoModified(Todo *, int ); 238 void todoModified(Todo *, int );
234 void keyPressEvent ( QKeyEvent * ) ; 239 void keyPressEvent ( QKeyEvent * ) ;
235 KOTodoViewItem * pendingSubtodo; 240 KOTodoViewItem * pendingSubtodo;
236 DateNavigator* mNavigator; 241 DateNavigator* mNavigator;
237}; 242};
238 243
239#endif 244#endif