-rw-r--r-- | bin/kdepim/WhatsNew.txt | 4 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 46 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 2 |
3 files changed, 34 insertions, 18 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index f4b3ddb..201f863 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt @@ -4,4 +4,6 @@ Info about the changes in new versions of KDE-Pim/Pi -Fixed a crash in journal view and a crash in setting a todo to stopped when KO/Pi saved the file when "stop todo" dialog was shown. +Fixed a crash in journal view. +Fixed a crash at setting a todo to stopped if KO/Pi saved the file while "stop todo" dialog was shown. Fixed a minor problem with the marcus bains line (whatever that is). +Fixed a crash when setting a todo to complete from the show dialog which was called from the What's Next View. diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 00c2d97..27d755e 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -504,3 +504,4 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : KOrg::BaseView(calendar,parent,name) -{ +{ + mActiveItem = 0; mCategoryPopupMenu = 0; @@ -809,4 +810,14 @@ void KOTodoView::paintEvent(QPaintEvent * pevent) +void KOTodoView::clearList( bool saveCurrentItem ) // default true +{ + if ( mTodoListView->childCount() ) { + if ( saveCurrentItem ) + storeCurrentItem(); + mTodoListView->clear(); + mTodoMap.clear(); + } +} void KOTodoView::updateView() { + mActiveItem = 0; pendingSubtodo = 0; @@ -816,4 +827,5 @@ void KOTodoView::updateView() if ( !isVisible() ) { - mPendingUpdateBeforeRepaint = true; - return; + clearList (); + mPendingUpdateBeforeRepaint = true; + return; } @@ -824,3 +836,2 @@ void KOTodoView::updateView() } - storeCurrentItem(); //qDebug("update "); @@ -829,4 +840,4 @@ void KOTodoView::updateView() - - mTodoListView->clear(); + clearList (); + if ( mName == "todolistsmall" ) { @@ -866,3 +877,2 @@ void KOTodoView::updateView() // recursively for proper hierarchical display of Todos. - mTodoMap.clear(); Todo *todo; @@ -976,3 +986,4 @@ void KOTodoView::resetCurrentItem() processSelectionChange(); - QTimer::singleShot( 100, this, SLOT ( resetFocusToList() )); + if ( mName != "todolistsmall" ) + QTimer::singleShot( 100, this, SLOT ( resetFocusToList() )); } @@ -1102,3 +1113,4 @@ void KOTodoView::editItem(QListViewItem *item ) { - emit editTodoSignal(((KOTodoViewItem *)item)->todo()); + if ( item ) + emit editTodoSignal(((KOTodoViewItem *)item)->todo()); } @@ -1107,3 +1119,4 @@ void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) { - emit showTodoSignal(((KOTodoViewItem *)item)->todo()); + if ( item ) + emit showTodoSignal(((KOTodoViewItem *)item)->todo()); } @@ -1359,3 +1372,3 @@ void KOTodoView::toggleRunningItem() tp.exec(); - updateTodo ( t, 0 ); + updateTodo ( t, KOGlobals::EVENTEDITED ); } else { @@ -1376,3 +1389,3 @@ void KOTodoView::toggleRunningItem() t->setRunning( true ); - updateTodo ( t, 0 ); + updateTodo ( t, KOGlobals::EVENTEDITED ); } @@ -1507,3 +1520,4 @@ void KOTodoView::displayAllFlat() { - storeCurrentItem(); + + mActiveItem = 0; pendingSubtodo = 0; @@ -1512,2 +1526,3 @@ void KOTodoView::displayAllFlat() } + clearList (); mPopupMenu->setItemChecked( 8,true ); @@ -1515,4 +1530,2 @@ void KOTodoView::displayAllFlat() QPtrList<Todo> todoList = calendar()->todos(); - mTodoMap.clear(); - mTodoListView->clear(); Todo *todo; @@ -1698,5 +1711,6 @@ void KOTodoView::keyPressEvent ( QKeyEvent * e ) } + void KOTodoView::updateTodo( Todo * t, int type ) { - if ( mBlockUpdate) + if ( mBlockUpdate ) return; diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index a8e90e2..9180015 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h @@ -176,3 +176,3 @@ class KOTodoView : public KOrg::BaseView QString getWhatsThisText(QPoint p); - void clearList() {mTodoListView->clear(); } + void clearList( bool saveCurrentItem = true ); |