Re: GSoC Project: Table Improvements

From: pooja narula <>
Date: Tue Mar 27 2012 - 00:04:32 CEST

Hi Again,

While playing with the code, I found a potential bug in the table
formatting: Highlighting text does not seem to work for columns other
than the first column on a linux machine. I will try to fix it and get
back here in case of any queries.

Also, it would be great if someone could provide feedback on my last
post, just to confirm whether I'm thinking in the right direction or

Pooja Narula

On Sun, Mar 25, 2012 at 11:53 AM, pooja narula
<> wrote:
> Hi All,
> I'm a pre-final year student majoring in IT from NSIT, India. I am
> interested to work for Abiword under GSoC. Last year, I worked for
> LimeSurvey under GSoC, here's the link to my project
> I am particularly interested in the 'Table Improvements' project idea.
> I have been looking into the code for some time now. It would be
> really great if you could help me in understanding the code better.
> Here's my understanding of current working of the code for table insertion:
> When the user clicks the insert label in the table menu, the
> insertTable method of ap_EditMethods class is triggered which
> generates a dialog view, that invokes the user for details like
> numRows, numColumns. On successful submission, ap_Dialog_InsertTable
> class object stores these details. It then calls the cmdInsertTable
> method that does the following:
> - it determines the position at which the table is to be inserted
> (pointBreak), in various scenarios.
> - the table is inserted cell-wise, i.e., it iterates over each cell
> and inserts it into the document using insertStrux function of
> pd_Document. In terms of the layout, each cell can be seen as a
> section, which contains a block, which then contains the contents of
> the cell. Note that a cell can further contain a table inside it.
> - it also creates a changeRecord for each cell; this is coalesced for
> the table such that an undo operation removes the whole table and not
> a cell.
> Now, to enable the user to specify the header row, which will repeat
> on the top of each page of the table, we can add a check-box in the
> Insert Table dialog box. However before coming up with a solution for
> the backend part, we should keep in mind the following scenarios:
> - Editing the table like inserting/deleting rows/columns, changing
> text, changing the font size, or anything that causes to alter its
> position, should not alter the header row from occurring on the top.
> - Editing the header row like changing text, font or cell size on any
> page, should also perform the change in the header row of the other
> pages as well.
> Basically, whenever the table is edited, these header rows need to be rebuilt.
> There can be broadly two approaches to go about this: one would be to
> include the selected row as header on each page in the table structure
> before rendering the layout and updating the table structure whenever
> the table is edited.These changes would be similar to the way editing
> of table is handled currently, say when we add a row, we can skip the
> header rows from shifting their position. Though it seems to me that
> this would be a bit inefficient.
> Another way is to edit the final table layout to append the selected
> row on each page, without actually editing the table structure while
> creating and editing.
> These are the initial thoughts I have which would surely groom once I
> get an insight from your feedback.
> Thanks very much.
> Pooja Narula
Received on Tue Mar 27 00:04:40 2012

This archive was generated by hypermail 2.1.8 : Tue Mar 27 2012 - 00:04:40 CEST