summaryrefslogtreecommitdiffabout
path: root/korganizer/kotodoview.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/kotodoview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoview.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 3483e95..5e8ea27 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -604,8 +604,13 @@ void KOTodoView::updateView()
}
//qDebug("update ");
// kdDebug() << "KOTodoView::updateView()" << endl;
QFont fo = KOPrefs::instance()->mTodoViewFont;
+ Incidence* oldInc = 0;
+ mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
+ if (mActiveItem)
+ oldInc = mActiveItem->todo();
+
mTodoListView->clear();
if ( mName == "todolistsmall" ) {
if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) {
int ps = fo.pointSize() -2;
@@ -685,8 +690,25 @@ void KOTodoView::updateView()
mTodoListView->blockSignals( true );
if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() );
mTodoListView->blockSignals( false );
mTodoListView->setFocus();
+ if ( mTodoListView->firstChild () ) {
+ if ( oldInc ) {
+ KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild ();
+ while ( item ) {
+ if ( item->todo() == oldInc ) {
+ mTodoListView->setCurrentItem( item );
+ mTodoListView->ensureItemVisible( item );
+ break;
+ }
+ item = (KOTodoViewItem*)item->itemBelow();
+ }
+ if ( ! item )
+ mTodoListView->setCurrentItem( mTodoListView->firstChild () );
+ } else {
+ mTodoListView->setCurrentItem( mTodoListView->firstChild () );
+ }
+ }
processSelectionChange();
}
bool KOTodoView::checkTodo( Todo * todo )