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

List:       koffice
Subject:    Re: [PATCH] Fix table column resizing
From:       Sven Langkamp <longamp () reallygood ! de>
Date:       2003-12-09 23:49:22
[Download RAW message or body]

Am Montag, 8. Dezember 2003 23:14 schrieb Thomas Zander:
> Please substitute m_rowPositions.count() with getRows().
Ok, changed.

I removed row resizing form recalcRows(), so that the first row can be changed 
too:
-            if(lineNumber >= (int)row)  { // below changed row
-                if(*(j)-last < s_minFrameHeight) // Never make it smaller 
then allowed!
-                    difference += s_minFrameHeight - *(j) + last;
-                last=*(j);
-                kdDebug(32004) << "moving " << *(j) << " by " << difference 
<< "; to " << (*j) + difference << endl;
-                (*j) += difference; // move line.
-            }



["rowpatch2.diff" (text/x-diff)]

Index: kword/kwtableframeset.cc
===================================================================
RCS file: /home/kde/koffice/kword/kwtableframeset.cc,v
retrieving revision 1.259
diff -u -r1.259 kwtableframeset.cc
--- kword/kwtableframeset.cc	6 Dec 2003 22:52:36 -0000	1.259
+++ kword/kwtableframeset.cc	9 Dec 2003 23:39:50 -0000
@@ -475,13 +475,6 @@
                     lineNumber--;
                 }
             }
-            if(lineNumber >= (int)row)  { // below changed row
-                if(*(j)-last < s_minFrameHeight) // Never make it smaller then \
                allowed!
-                    difference += s_minFrameHeight - *(j) + last;
-                last=*(j);
-                kdDebug(32004) << "moving " << *(j) << " by " << difference << "; to \
                " << (*j) + difference << endl;
-                (*j) += difference; // move line.
-            }
             j++;
         }
         fromRow=row;
@@ -727,7 +720,21 @@
 void KWTableFrameSet::resizeRow( unsigned int row, double y )
 {
     kdDebug() << k_funcinfo << row << "," << y << endl;
-    m_rowPositions[ row ] = y;
+    double difference = m_rowPositions[row];
+    if ((row != 0) && (y - m_rowPositions[ row-1 ] < s_minFrameHeight))
+      m_rowPositions[ row ] = m_rowPositions[ row-1 ] + s_minFrameHeight;
+    else
+      if ((row != getRows()) && (m_rowPositions[ row + 1 ] - y < s_minFrameHeight))
+        m_rowPositions[row] = m_rowPositions[ row + 1 ] - s_minFrameHeight;
+      else
+        m_rowPositions[ row ] = y;
+    difference = m_rowPositions[row] - difference;
+
+    //move all rows under 'row'
+    if (row != 0)
+       for (int i=row+1; i<= getRows(); i++)
+           m_rowPositions[i] = m_rowPositions[i] + difference;
+
     // move all cells under 'row'
     for (TableIter cell(this); cell; ++cell) {
         if ( cell->rowAfter() >= row ) {



____________________________________
koffice mailing list
koffice@mail.kde.org
To unsubscribe please visit:
https://mail.kde.org/mailman/listinfo/koffice


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

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