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

Peter Linnell mrdocs at scribus.net
Sun Jun 19 23:09:13 UTC 2011

On 06/19/2011 07:47 PM, Elvis Stansvik wrote:
> I almost forgot. I have two little screencasts to go with the report
> this week. They are at
> http://www.nya-doxa.se/elvis/gsoc2011/week3_screencast_direct_formatting.ogv
> and
> http://www.nya-doxa.se/elvis/gsoc2011/week3_screencast_styles.ogv
> Cheers,
> Elvis
> 2011/6/19 Elvis Stansvik <elvstone at gmail.com>:
>> Hi Craig, all
>> Below is my third weekly report. As usual, it's also available at [1].
>> Regards,
>> Elvis
>> [1] http://wiki.scribus.net/canvas/GSoC_2011_Tables_Weekly_Reports
>> = Tables GSoC - Weekly Report #3 =
>> == Work Report ==
>> * Added a QList<QList<TableCell>> structure of cells to
>> PageItem_Table. And made sure that cells removed from this structure
>> are invalidated properly.
>> * Added the cellAt(int, int) API for retrieving cells from the table.
>> Retrieved cells can be queried for their validity with isValid().
>> * Added QDebug operator<<(...) to TableCell for convenient printing of cells.
>> * Added correct updating of the row/column span of cells when
>> rows/columns are removed/inserted, or when several areas of merged
>> cells are united.
>> * Added a thorough internal assertValid() method to PageItem_Table
>> which checks the consistency of the table. Also added an accompanying
>> ASSERT_VALID macro, which compiles to nothing unless WANT_DEBUG is
>> set.
>> * Added scripting methods getCellRowSpan(...) and getCellColumnSpan(...).
>> * Added unit test for mergeTableCells(...) to test script.
>> * Added scripting API for setting/getting cell border colors and widths.
>> * Moved cell related command out of cmdtable.h/.cpp and into their own
>> cmdcell.h/.cpp.
>> * Added API for border widths/colors to PageItem_Table.
>> * Simplified the cellRect(int, int) and isCovered(int, int) methods in
>> PageItem_Table by using the new cellAt(int, int) API.
>> * Moved styles/overview.txt into the wiki and expanded it with a
>> little section on style property lookup.
>> * Added getNamedResources(...) and replaceNamedResources to CellStyle
>> and TableStyle.
>> * Added two new document-wide style contexts to ScribusDoc,
>> docTableStyles and docCellStyles, along with API that uses them:
>> ** const TableStyle& tableStyle(QString name)
>> ** const StyleSet<TableStyle>& tableStyles()
>> ** bool isDefaultStyle(const TableStyle& style) const
>> ** void redefineTableStyles(const StyleSet<TableStyle>& newStyles,
>> bool removeUnused = false)
>> ** void replaceTableStyles(const QMap<QString, QString>& newNameForOld)
>> * Created default styles for tables/cells in ScribusDoc::init().
>> * Added API for handling table/cell style names to ResourceCollection.
>> * Added apply() and updateStylesCache() to SMTableStyle and
>> SMCellStyle, finally allowing the SM to redefine these new styles on
>> the document.
>> * Added getCellStyle()/setCellStyle(...) to scripting API.
>> * Added properties for border width/color to TableStyle and CellStyle.
>> * Changed PageItem_Table and TableCell to use an internal style for
>> storing local properties. The style has the new style context added to
>> ScribusDoc as context, and setting a named style on a cell or table
>> will set the parent style of the internal style.
>> * Added API and scripting API for background color to tables and cells.
>> * Added missing update(...) functions to TableStyle and CellStyle.
>> * Added getTableStyle()/setTableStyle(...) to scripting API.
>> * Added some initial painting of cell / table backgrounds. Color is
>> taken from style and direct formatting also works.
>> * Various documentation fixes, bug fixes and cleanups.
>> == Project Status ==
>> On the schedule for this past week was
>> * More advanced layout.
>> * Variable column widths.
>> But as those were already done, I decided last week that this week I'd
>> instead start working on proper painting of cell borders. However,
>> despite getting a lot of things done, it seems my schedule has finally
>> caught up with me. You could say that I'm now on schedule instead of
>> ahead of it.
>> The main reason why I'm no longer staying ahead is that it's been more
>> work than anticipated in bringing the styles up to snuff. A lot of
>> legwork to get them integrated into the the document and updates
>> SM<-->ScribusDoc working.
>> Things are pretty much ready now though. New properties can now easily
>> be added and the tables and cells will pick them up. Work on
>> cell/table border painting can now begin.
>> == Problems / Questions ==
>> No specific questions this time either. I had some during the week,
>> but those were resolved over e-mail/IRC. (Thanks to Craig/avox!).
>> == Next Week ==
>> In the timeline for next week it reads
>> * Cell formatting properties such as border and padding.
>> * Cell content layout; use Scribus' text frames to populate cells.
>> And for the first time since my first week, I'll actually be doing
>> what the schedule says :) I'll work on the painting of tables/cells.
>> Solid backgrounds are actually already painted, as of a commit some
>> hour ago. Hopefully I'll also be able to also start working on
>> bringing Scribus' text frames into the game. I'm sure that will be a
>> lot of work, which is why it's in my schedule for the week after next
>> as well.

Awesomeness!   The detailed reports are clear and succinct. Keep on
hacking :)



More information about the scribus-dev mailing list