-rw-r--r-- | korganizer/kotodoview.cpp | 13 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 395325c..935a5f5 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -731,6 +731,7 @@ void KOTodoView::storeCurrentItem() | |||
731 | { | 731 | { |
732 | mCurItem = 0; | 732 | mCurItem = 0; |
733 | mCurItemRootParent = 0; | 733 | mCurItemRootParent = 0; |
734 | mCurItemParent = 0; | ||
734 | mCurItemAbove = 0; | 735 | mCurItemAbove = 0; |
735 | mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); | 736 | mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); |
736 | if (mActiveItem) { | 737 | if (mActiveItem) { |
@@ -739,6 +740,7 @@ void KOTodoView::storeCurrentItem() | |||
739 | if ( activeItemAbove ) | 740 | if ( activeItemAbove ) |
740 | mCurItemAbove = activeItemAbove->todo(); | 741 | mCurItemAbove = activeItemAbove->todo(); |
741 | mCurItemRootParent = mCurItem; | 742 | mCurItemRootParent = mCurItem; |
743 | mCurItemParent = mCurItemRootParent->relatedTo(); | ||
742 | while ( mCurItemRootParent->relatedTo() != 0 ) | 744 | while ( mCurItemRootParent->relatedTo() != 0 ) |
743 | mCurItemRootParent = mCurItemRootParent->relatedTo(); | 745 | mCurItemRootParent = mCurItemRootParent->relatedTo(); |
744 | } | 746 | } |
@@ -750,6 +752,7 @@ void KOTodoView::resetCurrentItem() | |||
750 | mTodoListView->setFocus(); | 752 | mTodoListView->setFocus(); |
751 | KOTodoViewItem* foundItem = 0; | 753 | KOTodoViewItem* foundItem = 0; |
752 | KOTodoViewItem* foundItemRoot = 0; | 754 | KOTodoViewItem* foundItemRoot = 0; |
755 | KOTodoViewItem* foundItemParent = 0; | ||
753 | KOTodoViewItem* foundItemAbove = 0; | 756 | KOTodoViewItem* foundItemAbove = 0; |
754 | if ( mTodoListView->firstChild () ) { | 757 | if ( mTodoListView->firstChild () ) { |
755 | if ( mCurItem ) { | 758 | if ( mCurItem ) { |
@@ -761,18 +764,26 @@ void KOTodoView::resetCurrentItem() | |||
761 | } else if ( item->todo() == mCurItemAbove ) { | 764 | } else if ( item->todo() == mCurItemAbove ) { |
762 | foundItemAbove = item; | 765 | foundItemAbove = item; |
763 | 766 | ||
764 | } else if ( item->todo() == mCurItemRootParent ) { | 767 | } |
768 | if ( item->todo() == mCurItemRootParent ) { | ||
765 | foundItemRoot = item; | 769 | foundItemRoot = item; |
766 | } | 770 | } |
771 | if ( item->todo() == mCurItemParent ) { | ||
772 | foundItemParent = item; | ||
773 | } | ||
767 | item = (KOTodoViewItem*)item->itemBelow(); | 774 | item = (KOTodoViewItem*)item->itemBelow(); |
768 | } | 775 | } |
769 | if ( ! foundItem ) { | 776 | if ( ! foundItem ) { |
777 | if ( foundItemParent ) { | ||
778 | foundItem = foundItemParent; | ||
779 | } else { | ||
770 | if ( foundItemRoot ) | 780 | if ( foundItemRoot ) |
771 | foundItem = foundItemRoot; | 781 | foundItem = foundItemRoot; |
772 | else | 782 | else |
773 | foundItem = foundItemAbove; | 783 | foundItem = foundItemAbove; |
774 | } | 784 | } |
775 | } | 785 | } |
786 | } | ||
776 | if ( foundItem ) { | 787 | if ( foundItem ) { |
777 | mTodoListView->setCurrentItem( foundItem ); | 788 | mTodoListView->setCurrentItem( foundItem ); |
778 | mTodoListView->ensureItemVisible( foundItem ); | 789 | mTodoListView->ensureItemVisible( foundItem ); |
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index 39976cf..d0788a9 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h | |||
@@ -257,7 +257,7 @@ class KOTodoView : public KOrg::BaseView | |||
257 | DateNavigator* mNavigator; | 257 | DateNavigator* mNavigator; |
258 | void storeCurrentItem(); | 258 | void storeCurrentItem(); |
259 | void resetCurrentItem(); | 259 | void resetCurrentItem(); |
260 | Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; | 260 | Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove; |
261 | }; | 261 | }; |
262 | 262 | ||
263 | #endif | 263 | #endif |