[scribus-dev] Tables GSoC - Weekly Report #10

Elvis Stansvik elvstone at gmail.com
Tue Aug 9 19:39:11 UTC 2011


Hi all,

I think you're all pretty much up to date with what I've been doing,
but here's a short report [1] for week #10 of the project.

I'm also including a little screencast showing some of the new
features. Some of it you've probably seen before through my blog or
through IRC pastes.

https://www.strongspace.com/estan/public/gsoc2011/week10_screencast_cell_content.webm

Cheers,
Elvis

[1] http://wiki.scribus.net/canvas/GSoC_2011_Tables_Weekly_Reports

= Tables GSoC - Weekly Report #10 =

== Work Report ==
* Fixed a bug in the painting of page grid, baseline grid, guides and
margins. The old code assumed that ScPainter would stroke even though
stroke mode was set to None. Unrelated to table project but was
uncovered by a change I made to ScPainter.
* Simplified the table hit test a bit.
* Display tooltips with width/height when during resizing of rows/columns/table.
* Gave the table related canvas gestures a common base class to avoid
some code duplication.
* Added support for selecting cells. Individual cells may be selected
by clicking them, rectangular areas by click dragging. The selection
is painted as a blue-tinted overlay. The new API for selecting cells
on the table is:
** void selectCell(int row, int column);
** void selectCells(int startRow, int startColumn, int endRow, int endColumn);
** QSet<TableCell> selection() const;
** void clearSelection();
* Added an optimization to the painting of the table outline during
resizing. I'd say it's now ~10x faster.
* Added support for resizing rows/column by moving the boundaries
between them independently. This mode is entered by holding down Shift
while resizing a row/column.
* Added padding properties to cell and cell style, and scripting
methods to set them.
* Started working on cell text content. It's now possible to set the
content on a cell using setText() (scripter API also available). The
text of the cell is represented by a PageItem_TextFrame, and is
painted as part of normal table painting. The calculation of the
content rectangle occupied by the text frame takes all the borders
along the cell edges as well as paddings into account, and is updated
if any borders/paddings are changed, if a style is changed or if a
style is set/unset.

== Project Status ==
I don't really feel there's a reason to bring up what was in my
schedule for this past week, but for brevity, here it goes anyway:

* Scripting API.
* CSV and/or ODT import.

Funny how "Scripting API" is in there, since it has a been a corner
stone for me when it comes to testing throughout the project :)

Jokes aside, I feel pretty good about the project status. I was
pleasantly surprised that getting the text frames painted went so fast
(except that overflowing problem of course). Now it remains to see
what kind of problems I'll hit with editing. But I'm staying positive.

There are only a couple of weeks left until the official pencils down
date, and after that I will work another week full time before the
school starts.

== Problems / Questions ==
Nothing at the moment. I thought I had run into a wall with that
overflowing problem, but it turned out to be just a oneliner fix after
all.

== Next Week ==
On the schedule for week 11 (this week) is:

* Wrapping up for final evaluation.
* Fix bugs/finish up what I have so far.

This means I'll try to do as many of the following tasks as possible,
in order of priority:

* Basic cell text editing.
* Context menu.
* PP UI.
* SM UI.
* Saving / Loading.
* Painting for print output.



More information about the scribus-dev mailing list