summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-02 09:22:13 (UTC)
committer zautrix <zautrix>2005-07-02 09:22:13 (UTC)
commitcf243d3d9faa7d79eb706f6e70c8d01926e9da89 (patch) (unidiff)
treeccacd0631c1e850ad1d1f7ae5d740d11bcaf35a3
parent58a4e6e5dcc24e2f5c17ef9f0e6879d625b5f764 (diff)
downloadkdepimpi-cf243d3d9faa7d79eb706f6e70c8d01926e9da89.zip
kdepimpi-cf243d3d9faa7d79eb706f6e70c8d01926e9da89.tar.gz
kdepimpi-cf243d3d9faa7d79eb706f6e70c8d01926e9da89.tar.bz2
todo view fix
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/kotodoview.cpp22
-rw-r--r--korganizer/kotodoview.h1
2 files changed, 15 insertions, 8 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 8d354c8..e2966f8 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -745,19 +745,18 @@ void KOTodoView::updateView()
745 return; 745 return;
746 } 746 }
747 if ( !isVisible() ) { 747 if ( !isVisible() ) {
748 mPendingUpdateBeforeRepaint = true; 748 mPendingUpdateBeforeRepaint = true;
749 return; 749 return;
750 } 750 }
751 storeCurrentItem();
752 //qDebug("KOTodoView::updateView() %x", this); 751 //qDebug("KOTodoView::updateView() %x", this);
753 if ( isFlatDisplay ) { 752 if ( isFlatDisplay ) {
754 displayAllFlat(); 753 displayAllFlat();
755 resetCurrentItem();
756 return; 754 return;
757 } 755 }
756 storeCurrentItem();
758 //qDebug("update "); 757 //qDebug("update ");
759// kdDebug() << "KOTodoView::updateView()" << endl; 758// kdDebug() << "KOTodoView::updateView()" << endl;
760 QFont fo = KOPrefs::instance()->mTodoViewFont; 759 QFont fo = KOPrefs::instance()->mTodoViewFont;
761 760
762 761
763 mTodoListView->clear(); 762 mTodoListView->clear();
@@ -832,13 +831,12 @@ void KOTodoView::updateView()
832 } 831 }
833 // Restore opened/closed state 832 // Restore opened/closed state
834 mTodoListView->blockSignals( true ); 833 mTodoListView->blockSignals( true );
835 if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); 834 if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() );
836 mTodoListView->blockSignals( false ); 835 mTodoListView->blockSignals( false );
837 resetCurrentItem(); 836 resetCurrentItem();
838 processSelectionChange();
839} 837}
840 838
841void KOTodoView::storeCurrentItem() 839void KOTodoView::storeCurrentItem()
842{ 840{
843 mCurItem = 0; 841 mCurItem = 0;
844 mCurItemRootParent = 0; 842 mCurItemRootParent = 0;
@@ -857,13 +855,13 @@ void KOTodoView::storeCurrentItem()
857 } 855 }
858 mActiveItem = 0; 856 mActiveItem = 0;
859} 857}
860 858
861void KOTodoView::resetCurrentItem() 859void KOTodoView::resetCurrentItem()
862{ 860{
863 mTodoListView->setFocus(); 861 //mTodoListView->setFocus();
864 KOTodoViewItem* foundItem = 0; 862 KOTodoViewItem* foundItem = 0;
865 KOTodoViewItem* foundItemRoot = 0; 863 KOTodoViewItem* foundItemRoot = 0;
866 KOTodoViewItem* foundItemParent = 0; 864 KOTodoViewItem* foundItemParent = 0;
867 KOTodoViewItem* foundItemAbove = 0; 865 KOTodoViewItem* foundItemAbove = 0;
868 if ( mTodoListView->firstChild () ) { 866 if ( mTodoListView->firstChild () ) {
869 if ( mCurItem ) { 867 if ( mCurItem ) {
@@ -893,18 +891,28 @@ void KOTodoView::resetCurrentItem()
893 else 891 else
894 foundItem = foundItemAbove; 892 foundItem = foundItemAbove;
895 } 893 }
896 } 894 }
897 } 895 }
898 if ( foundItem ) { 896 if ( foundItem ) {
897 mTodoListView->setSelected ( foundItem, true );
899 mTodoListView->setCurrentItem( foundItem ); 898 mTodoListView->setCurrentItem( foundItem );
900 mTodoListView->ensureItemVisible( foundItem ); 899 mTodoListView->ensureItemVisible( foundItem );
901 } else { 900 } else {
901 if ( mTodoListView->firstChild () ) {
902 mTodoListView->setSelected ( mTodoListView->firstChild (), true );
902 mTodoListView->setCurrentItem( mTodoListView->firstChild () ); 903 mTodoListView->setCurrentItem( mTodoListView->firstChild () );
903 } 904 }
904 } 905 }
906 }
907 processSelectionChange();
908 QTimer::singleShot( 100, this, SLOT ( resetFocusToList() ));
909}
910void KOTodoView::resetFocusToList()
911{
912 topLevelWidget()->setActiveWindow();
905 mTodoListView->setFocus(); 913 mTodoListView->setFocus();
906} 914}
907//Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; 915//Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove;
908bool KOTodoView::checkTodo( Todo * todo ) 916bool KOTodoView::checkTodo( Todo * todo )
909{ 917{
910 918
@@ -1401,12 +1409,13 @@ void KOTodoView::setOpen( QListViewItem* item, bool setOpenI)
1401 item = item->nextSibling(); 1409 item = item->nextSibling();
1402 } 1410 }
1403} 1411}
1404 1412
1405void KOTodoView::displayAllFlat() 1413void KOTodoView::displayAllFlat()
1406{ 1414{
1415 storeCurrentItem();
1407 pendingSubtodo = 0; 1416 pendingSubtodo = 0;
1408 if ( mBlockUpdate ) { 1417 if ( mBlockUpdate ) {
1409 return; 1418 return;
1410 } 1419 }
1411 mPopupMenu->setItemChecked( 8,true ); 1420 mPopupMenu->setItemChecked( 8,true );
1412 isFlatDisplay = true; 1421 isFlatDisplay = true;
@@ -1415,27 +1424,24 @@ void KOTodoView::displayAllFlat()
1415 mTodoListView->clear(); 1424 mTodoListView->clear();
1416 Todo *todo; 1425 Todo *todo;
1417 for(todo = todoList.first(); todo; todo = todoList.next()) { 1426 for(todo = todoList.first(); todo; todo = todoList.next()) {
1418 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); 1427 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
1419 mTodoMap.insert(todo,todoItem); 1428 mTodoMap.insert(todo,todoItem);
1420 } 1429 }
1421 mTodoListView->setFocus(); 1430 resetCurrentItem();
1422 processSelectionChange();
1423} 1431}
1424 1432
1425void KOTodoView::setAllFlat() 1433void KOTodoView::setAllFlat()
1426{ 1434{
1427 if ( isFlatDisplay ) { 1435 if ( isFlatDisplay ) {
1428 isFlatDisplay = false; 1436 isFlatDisplay = false;
1429 mPopupMenu->setItemChecked( 8,false ); 1437 mPopupMenu->setItemChecked( 8,false );
1430 updateView(); 1438 updateView();
1431 return; 1439 return;
1432 } 1440 }
1433 storeCurrentItem();
1434 displayAllFlat(); 1441 displayAllFlat();
1435 resetCurrentItem();
1436} 1442}
1437 1443
1438void KOTodoView::purgeCompleted() 1444void KOTodoView::purgeCompleted()
1439{ 1445{
1440 emit purgeCompletedSignal(); 1446 emit purgeCompletedSignal();
1441 1447
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 1b31d0d..9ae7f53 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -221,12 +221,13 @@ class KOTodoView : public KOrg::BaseView
221 void updateTodo( Todo *, int ); 221 void updateTodo( Todo *, int );
222 222
223 void itemClicked(QListViewItem *); 223 void itemClicked(QListViewItem *);
224 void itemStateChanged(QListViewItem *); 224 void itemStateChanged(QListViewItem *);
225 void modified(bool); 225 void modified(bool);
226 void itemDoubleClicked(QListViewItem *item); 226 void itemDoubleClicked(QListViewItem *item);
227 void resetFocusToList();
227 228
228 signals: 229 signals:
229 void newTodoSignal(); 230 void newTodoSignal();
230 void newSubTodoSignal(Todo *); 231 void newSubTodoSignal(Todo *);
231 void unparentTodoSignal(Todo *); 232 void unparentTodoSignal(Todo *);
232 void reparentTodoSignal( Todo *,Todo * ); 233 void reparentTodoSignal( Todo *,Todo * );