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

List:       kde-commits
Subject:    koffice/kexi/widget/tableview
From:       Jaroslaw Staniek <js () iidea ! pl>
Date:       2008-12-07 22:13:05
Message-ID: 1228687985.670448.593.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 894097 by staniek:

Table View
- delay the 1st call to 'ensure cell visible' routine to avoid invalid 
  vertical scroll position on table view creation



 M  +12 -5     kexitableview.cpp  
 M  +1 -0      kexitableview_p.cpp  
 M  +2 -0      kexitableview_p.h  


--- trunk/koffice/kexi/widget/tableview/kexitableview.cpp #894096:894097
@@ -466,10 +466,10 @@
 
 void KexiTableView::slotUpdate()
 {
-    kDebug() << m_navPanel;
-// QSize s(tableSize());
+//    kDebug() << m_navPanel;
+    QSize s(tableSize());
 // viewport()->setUpdatesEnabled(false);
-/// resizeContents(s.width(), s.height());
+    resizeContents(s.width(), s.height());
 // viewport()->setUpdatesEnabled(true);
 
     updateContents();
@@ -1806,9 +1806,9 @@
 {
     QSize s(tableSize());
     int w = contentsWidth();
-    viewport()->setUpdatesEnabled(false);
+//    viewport()->setUpdatesEnabled(false);
     resizeContents(s.width(), s.height());
-    viewport()->setUpdatesEnabled(true);
+//    viewport()->setUpdatesEnabled(true);
     if (contentsWidth() < w) {
         updateContents(contentsX(), 0, viewport()->width(), contentsHeight());
 //  repaintContents( s.width(), 0, w - s.width() + 1, contentsHeight(), true );
@@ -1828,6 +1828,10 @@
     updateScrollBars();
     if (m_navPanel)
         m_navPanel->updateGeometry(leftMargin());
+    if (d->firstTimeEnsureCellVisible) {
+        d->firstTimeEnsureCellVisible = false;
+        ensureCellVisible( currentRow(), currentColumn() );
+    }
 // updateNavPanelGeometry();
 }
 
@@ -1988,7 +1992,10 @@
     }
 
     QPoint pcenter = r.center();
+    kDebug() << pcenter.x() << pcenter.y() << (r.width() / 2)  << (r.height() / 2);
     ensureVisible(pcenter.x(), pcenter.y(), r.width() / 2, r.height() / 2);
+//    ensureVisible(r.x(), r.y(), 0, 0);
+//    ensureVisible(r.bottomRight().x(), r.bottomRight().y(), 0, 0);
 // updateContents();
 // updateNavPanelGeometry();
 // slotUpdate();
--- trunk/koffice/kexi/widget/tableview/kexitableview_p.cpp #894096:894097
@@ -54,6 +54,7 @@
     horizontalHeaderVisible = true;
     recentCellWithToolTip = QPoint(-1, -1);
     dragIndicatorRubberBand = 0;
+    firstTimeEnsureCellVisible = true;
 }
 
 KexiTableViewPrivate::~KexiTableViewPrivate()
--- trunk/koffice/kexi/widget/tableview/kexitableview_p.h #894096:894097
@@ -115,6 +115,8 @@
      False by default. Used by KeixComboBoxPopup. */
     bool moveCursorOnMouseRelease : 1;
 
+    bool firstTimeEnsureCellVisible : 1;
+
     KexiTableView::Appearance appearance;
 
     //! brushes, fonts
[prev in list] [next in list] [prev in thread] [next in thread] 

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