Re: [patch] Sleeping cells, correction



On Sun, Jul 14, 2002 at 10:51:43PM +0200, Eric Methorst wrote:
b.t.w.... am I supposed to reply to the entire mailing list here?
Thats fine.  It is useful to have design choices made on the list so
that others can take part.

+cell_is_sleeping(Cell const *cell)
+{
+ return mstyle_get_content_sleeping(cell_get_mstyle(cell));
 }

ouch this gets expensive.  The quad tree makes style lookups fast,
but still not something you want to do 1M times.
Can that be done via something like: 
cell->mstyle->is_sleeping
directly? Or is there some other means of doing it quickly? 
Cells do not have style pointers.  The mstyle_get_content_sleeping
is fast.  cell_get_mstyle (cell) is the bottleneck.  To be useful it
would probably need to be a dependent flag, however that is
significantly more work to move around as styles are changed.  We
could steal a page from Quattro Pro and have a magic function
wrapper.
    =expensive(expression.....)
That would be make support at the dependent level much simpler.

The main question in my mind is why/how this would be useful.
The notion of a spreadsheet with _partially_ incorrect values is a
little scary.
It is not a _partially_ incorrect value; but a 'explicitly not calculated' 
value. Usage for example: to calculate primary keys and other values and use 
those as part of an insert statement (or update) in a database. You certainly 
donot want any insert untill you're completely done entering all fields. Not 
only would this result in database constraint errors, but it might also be 
killing for performance.

The issue here is whether this is the best way to handle these use
cases.  As long as the extension mechanism is a new sheet function
we don't have much of a choice.  However, a longer term goal would
be to support commands also.  This would allow a menu/toolbar item
to control data refresh for external links and recalc for 'sleeping'
cells would be mostly be a nop (dunno how that would affect things
like cut-n-paste where the value has really changed).



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]