[prev in list] [next in list] [prev in thread] [next in thread]
List: koffice-devel
Subject: KSpread Fix: unmerge
From: Norbert Andres <nandres () web ! de>
Date: 2002-08-26 1:51:27
[Download RAW message or body]
Hi,
try that:
A B
1 1
2 2
4 4
=SUM(A1:B3)
Merge A3 and B3:
Sum updates to 10 (from 14)
Umerge A3 => nothing happens.
This small patch fixes it.
Commit?
Regards
Norbert
["unmerge-bug.diff" (text/x-diff)]
Index: kspread_cell.cc
===================================================================
RCS file: /home/kde/koffice/kspread/kspread_cell.cc,v
retrieving revision 1.438
diff -u -r1.438 kspread_cell.cc
--- kspread_cell.cc 2002/08/20 18:58:41 1.438
+++ kspread_cell.cc 2002/08/26 01:38:49
@@ -367,12 +370,15 @@
{
m_ObscuringCells.append(cell);
}
+ setFlag(Flag_LayoutDirty);
+ updateDepending();
}
void KSpreadCell::unobscure( KSpreadCell *cell )
{
m_ObscuringCells.remove(cell);
setFlag(Flag_LayoutDirty);
+ updateDepending();
}
void KSpreadCell::clicked( KSpreadCanvas *_canvas )
@@ -3635,6 +3661,7 @@
setFlag(Flag_UpdatingDeps);
+ KSpreadCell * cell;
// Every cell that references us must calculate with this new value
for (d = m_lstDependingOnMe.first(); d != NULL; d = m_lstDependingOnMe.next())
{
@@ -3642,7 +3669,10 @@
{
for (int r = d->Top(); r <= d->Bottom(); r++)
{
- d->Table()->cellAt( c, r )->calc();
+ cell = d->Table()->cellAt( c, r );
+ cell->setCalcDirtyFlag();
+ cell->calc();
}
}
}
Index: kspread_table.cc
===================================================================
RCS file: /home/kde/koffice/kspread/kspread_table.cc,v
retrieving revision 1.453
diff -u -r1.453 kspread_table.cc
--- kspread_table.cc 2002/08/18 06:54:57 1.453
+++ kspread_table.cc 2002/08/26 01:40:24
@@ -5655,13 +5656,15 @@
KSpreadUndoMergedCell *undo = new KSpreadUndoMergedCell( m_pDoc, this, \
marker.x() ,marker.y(), cell->extraXCells(), cell->extraYCells()); \
m_pDoc->undoBuffer()->appendUndo( undo ); }
- int x=cell->extraXCells();
+ int x = cell->mergedXCells() + 1;
if( x == 0 )
- x=1;
- int y = cell->extraYCells();
+ x = 1;
+ int y = cell->mergedYCells() + 1;
if( y == 0 )
- y=1;
+ y = 1;
cell->forceExtraCells( marker.x() ,marker.y(), 0, 0 );
QRect selection( marker.x(), marker.y(), x, y );
_______________________________________________
koffice-devel mailing list
koffice-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/koffice-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic