[prev in list] [next in list] [prev in thread] [next in thread] 

List:       koffice-devel
Subject:    Re: Formal GSoC Proposal [Second Draft]: Basic tables support for
From:       Elvis Stansvik <elvstone () gmail ! com>
Date:       2009-03-28 11:48:53
Message-ID: 751a4f870903280448tfe9f322wc69c777d561fa2b3 () mail ! gmail ! com
[Download RAW message or body]

2009/3/27 Elvis Stansvik <elvstone@gmail.com>:
> 2009/3/27 Thomas Zander <zander@kde.org>:
>> On Thursday 26. March 2009 22:04:39 Elvis Stansvik wrote:
>>> Below is a second draft of my formal GSoC proposal. Please point out
>>> if you think there's anything that I should leave out or if there's
>>> any glaring inaccuracies. I plan on submitting my proposal on Monday.
>>
>> Hi Elvis,
>>
>> The suggestion looks good. I like the level of detail!
>>
>> I would suggest you add the concept of unit testing to your application.  The
>
> Good idea. An updated draft is at the end of this mail with a fifth
> paragraph under the "Implementation Details" section about unit
> testing.
>
>> loading/saving of ODFs is already unit tested using the work that Girish did
>> last year but it doesn't test any tables loading yet.
>> I suggest to extend his work with tables loading tests and aim to keep the
>> existing unit tests passing.
>>
>> Next to the loading the text-layout is also heavily unit tested (see the
>> plugins/textshape/tests/ dir) since this is practically the only way to write
>> something as complex as a (text) layout engine without breaking what already
>> exists every time you make a little addition ;)
>
> Ah, I was aware of Girish's loading/saving work in
> libs/kotext/opendocument from before. Good to know where the layout
> tests go. Which tests go in libs/kotext/tests BTW? More low-level
> kotext tests?
>
>> So I would suggest having all new features that you write for tables to have
>> an accompanying unit test written.
>> This additionally makes it possible to design a simple tables layouting
>> structure first and make that work. Later, when your knowledge and insight in
>> the matter grows, you can probably restructure or even rewrite the code in a
>> fraction of the time when more features have to be supported, and the unit
>> tests will help you to make sure that what worked before still works after
>> such changes.
>
> We <3 tests ;)
>
>>
>> Would your proposal be selected I offer to mentor it.
>
> That's great. Thanks for the input.
>
> Elvis
>
>> --
>> Thomas Zander
>>
>> _______________________________________________
>> koffice-devel mailing list
>> koffice-devel@kde.org
>> https://mail.kde.org/mailman/listinfo/koffice-devel
>>
>>
>
> DRAFT
>
> Name:
> Elvis Stansvik
>
> Email Address:
> elvstone@gmail.com
>
> Freenode IRC Nick:
> estan
>
> Location (City, Country and/or Time Zone):
> Örebro, Sweden, GMT+1
>
> Proposal Name:
> Basic tables support for KWord
>
> Motivation for Proposal / Goal:
> Tables are common in many documents, and can be considered a key
> feature of a word processor. KWord currently lacks a competitive
> implementation of tables in its latest iteration, the upcoming 2.0
> release. In this project, I will try to build a basic and robust
> implementation of editable tables, including loading and saving, that
> can later be extended to a more competitive implementation.
>
> I'm fully aware that this is an ambitious task that might be more
> suited for one of the core developers, but I think this year's Summer
> of Code could be a good opportunity to get the ball rolling on this,
> because let's face it; it will have to be done at one point or another.
>
> Implementation Details:
> My implementation will use the built-in support for tables in Qt's
> Scribe framework. I will modify the text layout engine in KOffice's
> kotext library to support layout of text into table cells instead of
> into the normal document flow of the text shape.
>
> I'll also add loading and saving code and will try to map as many
> of the ODF table related style attributes in the ODF specification to
> properties of KOffice's and Qt's style (/format) classes as possible,
> extending them where necessary. I'll do this in order of importance,
> starting with the attributes required for a very basic table
> implementation first.
>
> I will ensure correct cursor and selection behavior during
> keyboard/mouse interaction as well as correct table breaking at page
> boundaries. The table editing functionality will most likely be part
> of one or several tools working with the text shape and will allow
> the user to split/merge cells, resize rows/columns, edit the table
> heading et.c.
>
> I'll put quite some focus on documenting my implementation and,
> together with my mentor and other KOffice developers, making sure that
> it will scale well to meet the demands of a future full implementation
> of ODF tables, and possibly also taking into account the requirements
> of tables as they are specified by the Microsoft Office .DOC format.
>
> Unit tests for both loading and saving as well as layout of the tables
> will be added to the existing infrastructure in libs/kotext/opendocument/

That is supposed to be libs/kotext/opendocument/tests/ of course.

Elvis

> and plugins/textshape/tests/ respectively. I'll take care to keep the
> tests passing as my work progresses and make sure any new features I add
> along the way will be covered by unit tests.
>
> Tentative Timeline:
>
>  June 1-June 30 - Basic functionality
>   I will begin by implementing minimal loading/saving as well as basic
>   display and editing. Using this first iteration, the user should be
>   able to load a document containing a very basic 3x3 table [1], and
>   remove and add columns and rows to it and save the document. More
>   specifically I will add basic support for the following ODF elements:
>
>     o <table:table>
>     o <table:table-columns>
>     o <table:table-rows>
>     o <table:table-row>
>     o <table:table-column>
>
>   along with a basic subset of the properties of their corresponding
>   style families:
>
>     o <style:style ... style:family="table">
>     o <style:style ... style:family="table-column">
>     o <style:style ... style:family="table-row">
>
>   Such as e.g. <style:table-row-properties fo:background-color="..."/>
>
>  July 1-August 10 - Extended functionality
>   In this second step, I will:
>
>     o Add support for row and column span.
>     o Add support for splitting/merging of cells.
>     o Improve the behavior of tables breaking across multiple pages
>       by duplicating the cell position/size calculations performed
>       inside Qt in order to determine where the break will occur
>       and be able to do the break myself at a desired location.
>     o Make sure shapes can be put into table cells, possibly by
>       creating a new kind of anchoring mechanism in kotext for
>       cells which are not allowed to contain any text.
>     o Add support for more of the table related style properties
>       of the ODF specification.
>
>  August 10-August 16 - Finishing up
>   Fix any outstanding bugs and write missing unit tests and
>   documentation.
>
> Do you have other obligations from late May to early August (school,
> work, etc.)?:
> My studies ends on May 31, so I can't really start full-time coding
> until then. During the summer I may have to do some part time work for
> a publishing company to be able to pay my June rent, but it's flexible
> hours and I'll essentially be able to work 100% with my project
> throughout the summer.
>
> About Me (let us know who you are!):
> My name is Elvis Stansvik. I'm 25 years old. Most of you probably know
> me as 'estan' on FreeNode. I live in the nice little town Örebro, about
> 200 km west of Stockholm, Sweden. I've been tinkering with free software
> for about 10 years and I've had an increased interest in programming in
> the last 4-5 years. I already have a handful of commits to KOffice. They
> would be many more had I not been so busy with work and studies.
>
> My past experiences are quite varied and include working with a small
> non profit wireless ISP in the rural town of Nora, running my own book
> shop and later book café and working as an IT technician at a book
> publishing company.
>
> Currently I'm brushing up my old high school (gymnasium) grades at a local
> school, and after this summer I'll be in uni. Things I enjoy other than free
> software include traveling, swimming, the occasional painting session (oil
> or acrylics on canvas), hiking the Swedish mountains and hanging out with
> friends in my home town.
>
> [1] Roughly the minimal example at the very end of 8.1 Basic Table Model in
>    the ODF (v1.1) specification.
>
_______________________________________________
koffice-devel mailing list
koffice-devel@kde.org
https://mail.kde.org/mailman/listinfo/koffice-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic