From: Martin Sevior (msevior@physics.unimelb.edu.au)
Date: Tue Jan 21 2003 - 19:45:02 EST
On 18 Jan 2003, William Lachance wrote:
> Hi Dom, everyone.
>
> On Sat, 2003-01-18 at 12:08, Dom Lachowicz wrote:
> > AbiWord development has been progressing at a
> > marvelous clip and it's getting to the point where we
> > should put another big, fancy DOT-OH release out
> > there.
>
> > Expected polish/bugfix/improved 2.0 features:
> > * Tables (UI, interaction, imp/exp)
>
> Specifically, I would like to see better handling of table selections in
> 2.0 (I think there's a bugzilla entry for this). Not my area of
> expertise.
I've thought quite a bit about this and to implement say
selecting/copying/cutting/pasting ranges of cells we have to significantly
extend our selection mechanism.
Currently we have just two points for selections. An anchor and the
current point.
However to select a column of cells in a table requires selecting each
seperate cell in the piecetable. Since cell are contiguous in rows (not
columns) in the piecetable, this means we need a vector of ranges to
remember the column selection. One range for each cell.
Now in PD_Document there is a nice class
PD_Document::tellListenerSubset(PL_Listener * pListener,
PD_DocumentRange *pDocRange)
Which will pump content from the range given by pDocRange into the
listener.
For cut/copy of tables we dump the content of the range into
*.abw text, save it and then paste it back.
This requires signficant changes to our ie_imp_AbiWord and
ie_exp_AbiWord classes.
In addition we have to write specific special case code to detect where in
the piecetable each cell needs to be pasted in order to get the
structure the user expects. For example swapping the order of two columns
in a table requires working our the document position of each cell.
I don't want to tackle this big problem yet but I thought I'd write out my
thoughts. I'd be happy to provide voleneteers for this job with as much
advice as I can give.
Cheers
Martin
This archive was generated by hypermail 2.1.4 : Tue Jan 21 2003 - 19:48:27 EST