Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Hi Matteo,

On Sun, Mar 09, 2014 at 01:21:37AM -0500, Matteo Campanelli <matteo.campanelli@gmail.com> wrote:
I am planning to apply to GSoC '14 and a few weeks ago I started hacking
LibreOffice (I've been working on this Easy
Hack<https://bugs.freedesktop.org/show_bug.cgi?id=53472>
).

Great! :-) Please don't forget to push your patch for review once you're
happy with it.

I'm writing to start a discussion and ask some questions on the idea
project in the subject of this email
([1<https://wiki.documentfoundation.org/Development/GSoC/Ideas#ODF_Formulas_in_Writer>
]).

Also - most important question (!!) - would there be anyone interested in
mentoring this project?

AFAIK the project idea is from Cédric, but he's not mentoring Writer
projects this year. This doesn't mean you can't propose to work on this
project, but it's not the best Writer project you could pick up. ;-)

My understanding of the issue:
- Currently Writer uses its own, non-standard syntax for formulas. At the
moment this syntax is both what is used/typed by the user and the one used
for internal computations. (At a first glance, the class
SwCalc<http://opengrok.libreoffice.org/search?q=&project=core&defs=SwCalc&refs=&path=&hist=>seems
to be responsible for both parsing and interpreting these formulas,
is that right?)

Yes, that sounds correct.

- The goal of the project would be to enable users to write formulas in the
ODF Format [2]<http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html>
and use this same format for the internal computations.

Correct, what's currently written is like this:

<table:table-cell table:style-name="Table1.B1" table:formula="ooow:&lt;A1&gt;+&lt;A2&gt;" 
office:value-type="float" office:value="3">

The "ooow" part clearly indicates that it's something LO inherited from
OOo.

- As far as I have understood, we may use the ixion library
[3]<https://gitorious.org/ixion> to
interpret ODF-style formulas. This library is already used by Writer for
interpreting formulas in doc/docx files (which, I suppose, are first
converted to the actual ODF format). [is this point of my interpretation
correct? Could anyone provide code pointers for the computation of formula
for .doc files?]

The ixion library is currently not part of LibreOffice in any way.
Regarding, .doc files, this is not handled in the filter (AFACS), just
the result of the formula is written to the file as a plain string.

- Part of the project will have to deal with import/export filters and
backward compatibility: first, files with formulas in the old-syntax should
still be parsed correctly; second, users should have the option of saving
in the old syntax or in the default new ODF syntax.

We have a general mechanism for that, in ODF 1.2 extended, probably you
could just write the new syntax, and you only need to make sure that the
old syntax can be read.

Also, I have two additional questions:
- the project idea page mentions changes in the code for the formula input
bar. What should these changes to the UI consist of specifically? Are they
mostly related to the strings produced by using the "Formula" dropdown menu
in the bar?
- Can anyone who is into the code roughly assess the relative hardness of
the three subparts of this project (i.e. refactoring to use ODF and
delegation to ixion, changes in the UI, adapting import/export filters)? In
other words, which of these parts (if any) is likely to take longer
compared to the others?

Probably the largest part is to make Writer core use the ODF formulas
(with the help of ixion), after that the ODF import/export is just
filter work, much easier. Regarding UI, it's about to change it, so that
it generates the ODF-syntax formulas, that's probably something you can
do incrementally once core support is there.

Additionally here, is a starter patch:

http://cgit.freedesktop.org/libreoffice/build/tree/patches/dev300/fields-table-formula.diff?h=master-backup

If you're interested in this project, you probably want to start with
porting that to current master. :-)

However, for now, I would suggest focusing getting your easy hack ready
& accepted; that's required even in case at the end you're interested in
some other LibreOffice idea.

Best,

Miklos

Attachment: signature.asc
Description: Digital signature


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.