[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