[scribus-dev] Tables GSoC draft proposal

Elvis Stansvik elvstone at gmail.com
Tue Mar 29 09:33:12 CEST 2011


2011/3/29 Elvis Stansvik <elvstone at gmail.com>:
> Hello again,
>
> As the student application period is now open, I'm planning on sending
> my application to Google soon.
>
> No further comments on my draft proposal below? I've done a couple of
> small edits in the version on the wiki [1], but it's essentially the
> same version as the one I sent to the list.
>
> Should I give it the "final" stamp and maybe make a typeset version of it?

I made a quick LaTeX-typeset version of the proposal (attached).

Elvis

>
> Cheers,
> Elvis
>
> [1] http://wiki.scribus.net/canvas/GSoC_2011_Tables_Proposal
>
> 2011/3/20 Elvis Stansvik <elvstone at gmail.com>:
>> Hi,
>>
>> First of all, congratulations on being picked by Google this year!
>>
>> Below is a first draft of my GSoC proposal. The proposal is perhaps
>> better read on the wiki, where it's available at
>>
>> http://wiki.scribus.net/canvas/GSoC_2011_Tables_Proposal
>>
>> Please respond if you have any comments or if there are things I have missed.
>>
>> Best regards,
>> Elvis
>>
>> = Basic support for tables in Scribus [DRAFT 1] =
>>
>> == Abstract ==
>> The Scribus software currently lacks proper support for laying out
>> content in a tabular arrangement, a feature commonly known as tables.
>> In the following document I propose to implement a first basic support
>> for tables in Scribus. The proposal comes in three parts. First, a
>> problem description is given, where I provide a rationale for the
>> project. Second, an implementation plan, including project
>> deliverables and a contingency plan. Third, a tentative timeline for
>> the project, and last some biographical information and other
>> practicalities.
>>
>> == Problem Description ==
>> Tables provide a compact way of representing tabular information in a
>> page layout, and is a common design element in books, magazines and
>> advertisements. Scribus currently has a shortcut for creating an
>> automatically grouped table-like array of text frames. These are not
>> proper tables. To stay competitive, Scribus needs better support for
>> tables. Support that enables the user to create and edit tables as
>> distinct items with their own set of properties as commonly found in
>> other table implementations.
>>
>> == Implementation Plan ==
>> Having been through Summer of Code once before, I think I have a good
>> perspective on what's important going into a project of this nature.
>> One thing that cannot be stressed enough is the importance of having
>> something tangible and working by the end of the project period. Not
>> only will this give closure and a sense of accomplishment to me as a
>> student, it also gives the Scribus core developers a good outlook when
>> it comes to taking the code in and building further on it. To mitigate
>> the risk of ending up with an unfinished project, a contingency plan
>> is included. The contingency plan lists features that can be dropped
>> from the project, should time start to run out.
>>
>> === Basic Idea ===
>> The implementation will be done by introducing a new page item,
>> PageItem_Table. This item will be responsible for layout and drawing
>> of a table. The layout and drawing of table cell content will be
>> delegated to standard text frames, which might have to be given new
>> features/modifications to serve this purpose. As content in the table
>> cells change, the table will be notified of this and perform a
>> relayout of the table, starting from the row in which the change
>> occured.
>>
>> === Project Deliverables ===
>> These are features that I believe are realistic to implement during
>> the course of the project (but see further down for a contingency
>> plan). For more detailed chronological information, see Timeline.
>>
>> * Tables
>> ** Insert, select, resize and remove.
>> ** Background color.
>> ** Border color.
>> ** Border style.
>> ** Default cell style.
>> ** Breaking across page boundaries.
>> ** Import from CSV and ODT.
>>
>> * Table Rows
>> ** Insert, select, resize and remove.
>> ** Background color.
>> ** Default cell style.
>>
>> * Table Columns
>> ** Insert, select, resize and remove.
>> ** Background color.
>> ** Default cell style.
>>
>> * Table Cells
>> ** Select and resize.
>> ** Background color.
>> ** Border color.
>> ** Border style.
>> ** Padding and margin.
>> ** Row and column spanning.
>>
>> For all features, load/save roundtrip to Scribus .sla format will be supported.
>>
>> === Contingency Plan ===
>> If unforeseen difficulties are encountered during the project, one of
>> more of the following features may be dropped. Hopefully to be
>> implemented later. Note that should any of these features be dropped,
>> an effort will still be made keep the feature in mind to avoid
>> painting ourselves into any corners.
>>
>> * '''Breaking across page boundaries'''
>> *: This is a feature which I did not finish completely during my 2009
>> project for KWord, and one which can be quite hairy to implement. I
>> think I have a good general idea of how to go about it, but should it
>> turn out to take too long, it may be dropped.
>> * '''Row and column spanning'''
>> *: This I really think I should be able to pull off. But should time
>> run short, it may be dropped.
>> * '''Import from CSV and ODT'''
>> *: While hopefully not too challanging, technically, this feature may
>> be time consuming and is something which can be added later. Hence it
>> may be dropped.
>>
>> == Timeline ==
>> Below follows a rough tentative timeline for the project. The timeline
>> is of course subject to change, should some parts of the project turn
>> out to be more/less time consuming than anticipated.
>>
>> I have my last exam on May 28, and my first day of school after the
>> summer is Aug 28. This means my project period will be cut five days
>> short in the beginning. It was the same thing during my project in
>> 2009, and I believe it's quite common for European students taking
>> part in Summer of Code. It just means the timeline has to take this
>> into account.
>>
>> In the time leading up to the project period, I'll try to acquaint
>> myself with the Scribus code I'll be touching, and experiment with
>> data structures and layout algorithms for the tables I'll be
>> implementing.
>>
>> * '''Week 1''' May 29-June 5
>> ** Removal of the old "tables" implementation.
>> ** Data structures for tables.
>> * '''Week 2''' June 6-June 12
>> ** Basic table layout with fixed column widths and mock content in cells.
>> ** Insertion/removal of rows/columns.
>> ** Basic drawing of table.
>> * '''Week 3''' June 13-June 19
>> ** More advanced layout.
>> ** Variable column widths.
>> * '''Week 4''' June 20-June 26
>> ** Cell formatting properties such as border and padding.
>> ** Cell content layout; use Scribus' text frames to populate cells.
>> * '''Week 5''' June 27-July 3
>> ** More integration of text frames. Fixing of issues/road bumps.
>> ** UI: Row/column selection/insertion/removal/resizing.
>> * '''Week 6''' July 4-July 10
>> ** Wrapping up for mid-term evaluation.
>> ** Fix bugs/finish up what I have so far.
>> * '''Week 7''' July 11-July 17 '''(Mid-term-evaluation)'''
>> ** Row and column spanning.
>> * '''Week 8''' July 18-July 24
>> ** Table/row/column/cell styles.
>> * '''Week 9''' July 25-July 31
>> ** UI: Direct formatting.
>> ** UI: Integration of styles in Style Manager.
>> * '''Week 10''' August 1-August 7
>> ** Table breaking.
>> * '''Week 11''' August 8-August 14
>> ** More table breaking.
>> ** CSV and/or ODT import.
>> * '''Week 12''' August 15-August 21 '''(Suggested pencils down)'''
>> ** Wrapping up for mid-term evaluation.
>> ** Fix bugs/finish up what I have so far.
>> * '''Deadline''' August 22 '''(Firm pencils down)'''
>>
>> == Post-Summer of Code Commitment ==
>> A big part of what makes a successful project is the students level of
>> involvement after the project period is over. Although the time I will
>> have available for FOSS hacking will go down drastically after the
>> summer, I'll of course stick around to answer questions, fix bugs and
>> help out the best I can. I've stayed in contact with the KWord
>> developers ever since my project in 2009, and I won't treat you
>> Scribus folks differently. In short; I won't disappear on you.
>>
>> == Student Biography ==
>> Living in Stockholm with my girlfriend Hanna, I'm a 27 year old
>> freshman at the Computer Science program at KTH Royal Institute of
>> Technology in Stockholm. I've dabbled with Free Software for about 12
>> years now. In recent years KDE has been my main focus and in 2009 I
>> implemented basic support for tables in the KWord word processor as
>> part of Google Summer of Code. Previous employments include working at
>> my dads small publishing company Nya Doxa AB and running my own book
>> shop as well as a book café. I should note that Scribus has been a
>> great help at both these positions. Apart from my studies I enjoy
>> hiking our small Swedish mountains when I have the opportunity, and
>> hanging out discussing with my friends over a beer. I have no other
>> engagements this summer apart from Summer of Code.
>>
>> == Contact Information ==
>> '''Name:''' Elvis Stansvik<br>
>> '''E-mail:''' elvstone at gmail.com<br>
>> '''IRC:''' estan @ irc.freenode.net<br>
>> '''Phone:''' +46763091545
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gsoc_proposal.pdf
Type: application/pdf
Size: 34060 bytes
Desc: not available
URL: <http://lists.scribus.net/pipermail/scribus-dev/attachments/20110329/74553783/attachment-0001.pdf>


More information about the scribus-dev mailing list