-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello, it has been almost 6 months without a libwpd release. There has
been quite number of things done in the meantime and the three is stable
for a new release. I am planning it for tomorrow (Thursday 1 June) just
to throw some shadow on the insignificant event of Ubuntu Dapper release.

So, what has been done:
* We added some new items in the list of converted features for WP5 and
WP3 formats. Font information (face, size, colour), headers/footers and
footnotes/endnotes for WP5 and headers/footers for WP3 file-format.
* We fixed some bugs from which one crasher.
* We are now having the page/section/paragraph margins right even in
multicolumn sections, which allows us to know which absolute position
corresponds to which column and to count the relative position from the
begining of the column. This fixes the long standing problem with
05mechanicalservice.wpd where the last table was out of the document.
This is also allowing us to count correctly tabulator positions in
multicolumn sections.
* We are now preventing -- inside the document body -- negative
paragraph margins that were resulting from page margin change in the
middle of a page. This is achieved in following way: (a) we have the
same page margins between two hard page breaks, (b) these margins
correspond to the minimum page margin between the two hard page breaks.
It is still possible to craft a document the way that there will be
negative margins in header and footer, though it is very unlikely to
meet something like this in the real life.
* We are avoiding closing page spans and/or sections inside a paragraph
which used to add paragraph breaks where they were not supposed to be.
We defer now the page span change to the end of the paragraph.
* We added to the wpd2text tool an option switch "--info"; if called
with this switch, wpd2text will not convert the document in plain text,
but dump the document metadata instead. This feature could be used in a
beagle wpd indexer if designed as a wrapper of wpd2text.

This is what is visible to the user. There were some changes in the
internal design:
* In an intense discussion with Marc at [EMAIL PROTECTED], we came
with a design that introduces WPXContentListener and WPXStylesListener
classes. The design is found at
http://libwpd.cvs.sourceforge.net/*checkout*/libwpd/libwpd2/docs/libwpd.png
1) The WPnListener classes are basically purely virtual interfaces that
are the common base of WPnStylesListener and WPnContentListener (which
are instantiated in the first and second pass).
2) The heritage relationship of WPnListener with WPXListener is not
there anymore. Basically, this prevents the problems that can arise from
so-called "diamond inheritance". The WPnContentListener and
WPnStylesListener classes inherit all from WPXContentListener and
WPXStylesListener respectively. These WPX listener classes do not need
to have by the design any public member, so we made them protected.
3) The reason of these WPX listener classes is to abstract the common
logic from the WPn listeners. As it was the case of WPXListener already.

In order to keep the things clean, I would propose that we implement all
the purely virtual functions from WPnListener classes in the
corresponding content and styles listeners. Under implementation, one
can understand even an inline forward to a corresponding function of
WPX{,Content,Styles}Listener.
Other thing that I would propose is not to make functions virtual unless
they need to be virtual :-). The design introduces multiple inheritance
into WPn{Content,Styles}Listener and this can make a mess if one is not
careful. IMHO of TrainedMonkey(tm) naturally. One of valid reasons to
make a function from WPX framework virtual can be the fact that it has
to be overridden in one of the WPn listeners (i.e.
WP3ContentListener::_openParagraph() due to different logic of table
codes in WP3 file-format). I write this because I met some problems on
the way where it was not easy for me to see quickly what was actually
broken.

Future plans:
1) A fine hacker well known to libwp* community, Ariya Hidayat, is
sponsorized by Google to work on the libwpg project / wpg2odg converter.
Which means that the conversion of images is not so abstract issue
anymore. Welcome back to Ariya and thank you to Google.
2) As for me, I would like to implement tabulators in WP3 and WP5 file
formats for 0.8.6 as well as to try to bring all the formats to the same
level of features converted. Which means add multicolumn sections for
WP5 and list styles for both WP3 and WP5. In the same time, I would like
to stuff a little bit the WP42 parser.
3) One of my objectives would be to motivate someone with a copy of WP
5.x to do a QA. I would like to thank in the same toke Smokey Ardisson
for his great QA work of WP3 changes and for updating our feature page
(which I will upload as soon as shell.sf.net stops giving me disconnect
because of authentication failure :-( ). Without Smokey it would not be
possible to arrive so far in the WP3 support.

As usual, a lot of text was written. Feel free to read it if you are not
discouraged.

Cheers

Fridrich

- --
Please avoid sending me Word, Excel or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEfZNGu9a1imXPdA8RAjeZAJ4kHIhFT3rBltqhvRnw8L9W4B2PdgCfdfG3
g7+RPblGdm0Cb480GF7v6xY=
=jfUb
-----END PGP SIGNATURE-----


-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
Libwpd-devel mailing list
Libwpd-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libwpd-devel

Reply via email to