-rw-r--r-- | korganizer/kotodoview.cpp | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 30adb06..22486ba 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -424,38 +424,47 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : SLOT (newTodo())); mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, SLOT (newSubTodo())); mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, SLOT (unparentTodo()),0,21); mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, SLOT (reparentTodo()),0,22); mItemPopupMenu->insertSeparator(); +#if 0 mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed"), this, SLOT( purgeCompleted() ) ); mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), this, SLOT( toggleCompleted() ),0, 33 ); mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), this, SLOT( toggleQuickTodo() ),0, 34 ); mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), this, SLOT( toggleRunning() ),0, 35 ); +#endif mPopupMenu = new QPopupMenu(this); mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this, SLOT (newTodo()),0,1); mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed"), this, SLOT(purgeCompleted()),0,2); mPopupMenu->insertItem(i18n("Show Completed"), this, SLOT( toggleCompleted() ),0,3 ); mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), this, SLOT( toggleQuickTodo() ),0,4 ); mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), this, SLOT( toggleRunning() ),0,5 ); + mPopupMenu->insertItem(i18n(" set all open","Display all opened"), + this, SLOT( setAllOpen() ),0,6 ); + mPopupMenu->insertItem(i18n(" set all close","Display all closed"), + this, SLOT( setAllClose() ),0,7 ); + mPopupMenu->insertItem(i18n(" set all flat","Display all flat"), + this, SLOT( setAllFlat() ),0,8 ); mDocPrefs = new DocPrefs( name ); - + + mItemPopupMenu->insertItem(i18n("Todo View"),mPopupMenu ); mPopupMenu->setCheckable( true ); mItemPopupMenu->setCheckable( true ); mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); @@ -517,16 +526,20 @@ void KOTodoView::jumpToDate () void KOTodoView::updateView() { pendingSubtodo = 0; if ( mBlockUpdate ) { //qDebug("blocked "); return; } + if ( isFlatDisplay ) { + setAllFlat(); + return; + } //qDebug("update "); // kdDebug() << "KOTodoView::updateView()" << endl; QFont fo = KOPrefs::instance()->mTodoViewFont; mTodoListView->clear(); if ( mName == "todolistsmall" ) { if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { int ps = fo.pointSize() -2; if ( ps > 12 ) @@ -992,16 +1005,63 @@ void KOTodoView::modified(bool b) void KOTodoView::setTodoModified( Todo* todo ) { todoModified( todo, KOGlobals::UNKNOWN_MODIFIED ); } void KOTodoView::clearSelection() { mTodoListView->selectAll( false ); } +void KOTodoView::setAllOpen() +{ + if ( isFlatDisplay ) { + isFlatDisplay = false; + mPopupMenu->setItemChecked( 8,false ); + updateView(); + } + setOpen(mTodoListView->firstChild(), true); +} +void KOTodoView::setAllClose() +{ + if ( isFlatDisplay ) { + isFlatDisplay = false; + mPopupMenu->setItemChecked( 8,false ); + updateView(); + } + setOpen(mTodoListView->firstChild(), false); +} +void KOTodoView::setOpen( QListViewItem* item, bool setOpenI) +{ + + while ( item ) { + setOpen( item->firstChild(), setOpenI ); + item->setOpen( setOpenI ); + item = item->nextSibling(); + } +} + +void KOTodoView::setAllFlat() +{ + pendingSubtodo = 0; + if ( mBlockUpdate ) { + return; + } + mPopupMenu->setItemChecked( 8,true ); + isFlatDisplay = true; + QPtrList<Todo> todoList = calendar()->todos(); + mTodoMap.clear(); + mTodoListView->clear(); + Todo *todo; + for(todo = todoList.first(); todo; todo = todoList.next()) { + KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); + mTodoMap.insert(todo,todoItem); + } + mTodoListView->setFocus(); + processSelectionChange(); +} void KOTodoView::purgeCompleted() { emit purgeCompletedSignal(); } void KOTodoView::toggleQuickTodo() { if ( mQuickAdd->isVisible() ) { |