-----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