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

Elvis Stansvik elvstone at gmail.com
Tue Jul 19 23:58:37 UTC 2011

Hi all,

Much belated, here's finally a seventh report from me [1].

The reason for the delay is that last week I caught this horrible flu
with quite high fever. It's been sticking with me until just recently,
but even though I'm still a bit shaky, it's finally beginning to fade.

Unfortunately I managed to pass it on to Hanna, so I have to take care
of her a bit. My work with the project has suffered a little because
of this.


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

= Tables GSoC - Weekly Report #7 =

== Work Report ==
* Changed PageItem_Table to declare its properties using Q_PROPERTY
and to emit a changed() signal when the table changes.
* Added unset*() functions for the properties in PageItem_Table.
* Added functions for getting the maximum border widths in effect
along the four sides of a table.
* Used the above functions to translate the painter. The table is now
always painted inside its frame at the top/left.
* Changed PageItem_Table::adjustToFrame() to take the borders around
the table into account.
* Fixed a bug in ScribusDoc where the PoLine (point array for the
frame geometry) wasn't set correctly on the table.
* Fixed painting to clip to the frame.
* Added a PageItem_Table::resize(...) function to PageItem_Table. The
function supports two resize strategies; Equal and Proportional. Equal
will give each row/column and equal amount of the space to be
distributed, Proportional will give them space proportional to their
current width/height. When shrinking a table, the function will never
shrink it so that a row or column goes below the new limits
MinimumRowHeight and MinimumColumnWidth, respectively.
* Updated unit tests in Python script to take the changed behavior of
adjustToFrame into account.
* Renamed adjustToFrame() to adjustTableToFrame() and added a
symmetric adjustFrameToTable() function.
* Added UI support for "Adjust Frame to Table" and "Adjust Table to
Frame", similar to how it's done for image items: These new actions
can now be performed on one or more selected tables using context menu
or application menu actions.
* Fixed a crash when copy/pasting a table. The fix is temporary and
simply makes sure that an item of the right type is inserted on paste.
Real copy paste support needs serializing of the table to Scribus file
format though, which will come later.
* Fixed the (hopefully) last lingering bugs in the border collection
code in CollapsedTablePainter.
* Did some aesthetic improvements to the handling of case 14 and 15 in
the border joining: When four borders meet at a cross and they can
join pairwise, it looks much better if the thicker of the two pairs
win the conflict. So we separate the two cases 14 and 15 into 14A,
14B, 15A and 15B. I think our handling of these cases are now more
graceful than InDesign's. The picture of all the cases on the wiki has
been updated, as well as the test script that tests them all.
* Various doc fixes and cleanups.
* Wrote a short mid-term report for the mid-term evaluation.

== Project Status ==
On my schedule for the past week was

* Row and column spanning.

but since that was already done, I decided last week that I would keep
working on the UI, and while I have done some work on that, my illness
really put a dent in my productivity this week, and I didn't get as
much done as I wanted.

== Problems / Questions ==
No specific questions at the moment.

== Next Week ==
The schedule for next week says

* Table/row/column/cell styles.

and I guess I'll be doing some work on their UI.

However, with the mid-term evaluations done, even though there are
still quite a few weeks left, it's starting to feel like the project
starting to come to a close.

I think it's very important now that I start to really focus on what
is missing to make what I have work like proper tables. To make it
possible to actually create and edit tables, with content. To that
effect, in the next week I propose that I:

* Keep working on the UI bits that are essential to basic tables support.
* Really get my ass out of the wagon and start experimenting with
integration of text frames and story text in cells, following the
discussions we had here on the ML.

More information about the scribus-dev mailing list