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

List:       koffice-devel
Subject:    Re: improving speed of painting
From:       John Dailey <dailey () vt ! edu>
Date:       2002-09-03 2:25:43
[Download RAW message or body]

> Also, this is more ment like a first step to start working on it. There is
> still room for improvements, tuning,... I didn't want to have something
> perfect for all aspects from the beginning, because you might never meet
> the end if you try to do that.
> And if we decided to do something completely different it wasn't a too big
> waste of time.
I agree in getting a start down in CVS and then working from there. 

>
> > As for meeting, occasionaly I'm hanging at #koffice at irc.kde.org. Feel
> > free to go there if you have some time.
>
> Ok, thanks.
As soon as I figure out how to work irc i'll try it out  :-)

>
> > > Maybe I'll make my solution a little bit simpler for now, commit it and
> > > then we can discuss from that point on. I think "Style" is good name
> > > for it, but I'm open to change it anytime if we decide to. It's just a
> > > name for now...
> >
> > Okay. And I'd like to hear also opinion from others, notably John.

I haven't thought too much about sharing/reference counting.  But I have been 
kicking around some other ideas.  I haven't really thought these through but 
I'll get them out and get some help picking through them to see what is 
worthwhile.

As someone else mentioned before, I like the idea of having separate value, 
formatting, and layout (style?) objects -- all with the concept of a 
'default' in the same way that the 'default cell' has always been 
implemented.  I would like to see for any user operation some kind of call to 
KSpreadDocument to a 'begin' and 'end' function.  While the change is 
happening, all that should happen to the cell is having flags set (calc 
dirty, layout dirty, painting dirty), and the information about the change.  
We need to remove all calls to calc(), makeLayout(), paintCell(), etc.  until 
during the 'end' call in KSpreadDocument which then repaints cells that are 
currently visible.  So each cell is only going to be calculated once, only 
painted once for each view, and only if it is within the viewport of a view.

Also, once we get these styles working, I'd like to see some functionality to 
merge styles or layouts or formatting.  This is for formatting applied to a 
row or column.  Right now applying formatting to a row means applying that 
formatting to each individual (nondefault) cell that is in that row.  I think 
it would be more efficient to have cells 'merge' formatting from what is 
recorded for that particular cell, the row, and the column.  So if the row 
has font Helvetica and the cell has text color red, the result will show red 
Helvetica text.  And if the row formatting has green text and the cell has 
red text, it would just be red, or maybe whichever was applied more recently 
-- this is a sticky point for this idea.

Also, thanks for the link to gnumeric dependancies Ariya!  I looked into that 
and they store dependancies on the table level with a hash, not at the cell 
level.  For now I don't see a compelling reason to change how we store them 
in lists in each cell.  Once we clean up the execution path for calculating 
cells I don't think dependancies will be much of an issue.

What was our long term plan for solving the zooming problem?  Were we planning 
to try and paint everything in zoomed coordinates, or find a way to scale the 
canvas?

-John

_______________________________________________
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