[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kexi/tableview
From:       Jaroslaw Staniek <js () iidea ! pl>
Date:       2004-08-25 19:48:46
Message-ID: 20040825194846.AABFB24E7 () office ! kde ! org
[Download RAW message or body]

CVS commit by staniek: 

TableView
- cell-cursor's is position not reset after initDataContents() on show()
  if it was set before KexiTableView widget showing.


  M +26 -21    kexitableview.cpp   1.166
  M +1 -0      kexitableview_p.cpp   1.22
  M +5 -0      kexitableview_p.h   1.26


--- koffice/kexi/tableview/kexitableview.cpp  #1.165:1.166
@@ -554,9 +554,11 @@ void KexiTableView::setData( KexiTableVi
 void KexiTableView::initDataContents()
 {
+        QSize s(tableSize());
+        resizeContents(s.width(),s.height());
+
+        if (!d->cursorPositionSetExplicityBeforeShow) {
         //set current row:
         d->pCurrentItem = 0;
         int curRow = -1, curCol = -1;
-//      d->curRow = -1;
-//      d->curCol = -1;
         if (m_data->columnsCount()>0) {
                 if (rows()>0) {
@@ -574,13 +576,12 @@ void KexiTableView::initDataContents()
         }
         
-        QSize s(tableSize());
-        resizeContents(s.width(),s.height());
-        
-        updateRowCountInfo();
-        
         setCursor(curRow, curCol);
-        ensureVisible(0,0);
+        }
+        ensureVisible(d->curRow,d->curCol);
+        updateRowCountInfo();
         updateContents();
 
+        d->cursorPositionSetExplicityBeforeShow = false;
+
         emit dataRefreshed();
 }
@@ -2873,4 +2874,8 @@ void KexiTableView::setCursor(int row, i
                 emit cellSelected(d->curCol, d->curRow);
         }
+
+        if(d->initDataContentsOnShow) {
+                d->cursorPositionSetExplicityBeforeShow = true;
+        }
 }
 

--- koffice/kexi/tableview/kexitableview_p.cpp  #1.21:1.22
@@ -126,4 +126,5 @@ KexiTableViewPrivate::KexiTableViewPriva
         dropsAtRowEnabled = false;
         initDataContentsOnShow = false;
+        cursorPositionSetExplicityBeforeShow = false;
         pVerticalHeaderAlreadyAdded = false;
         ensureCellVisibleOnShow = QPoint(-1,-1);

--- koffice/kexi/tableview/kexitableview_p.h  #1.25:1.26
@@ -171,4 +171,9 @@ class KexiTableViewPrivate 
         bool initDataContentsOnShow : 1;
 
+        /*! Set to true in setCursor() to indicate that cursor position was set
+         before show() and it shouldn't be changed on show(). 
+         Only used if initDataContentsOnShow is true. */
+        bool cursorPositionSetExplicityBeforeShow : 1;
+
         /*! true, if certical header shouldn't be increased in
          KexiTableView::slotRowInserted() because it was already done 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic