Review Request 109393: a new library for traversing odf files and a new export filter

Inge Wallin inge at lysator.liu.se
Mon Mar 18 18:39:43 GMT 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109393/
-----------------------------------------------------------

(Updated March 18, 2013, 6:39 p.m.)


Review request for Calligra.


Changes
-------

This is version 4 of this patch.  Changes:

 - Simplified the backend API.  It's now only one callback function per tag and an added parameter that tells if it's the start or the end of the tag.
 - Put the Context in it's own file.
 - Heavily extended the comments and made Doxygen class documentations from the expanded ones.

I know that this is not the final solution. This library is going to see more development, especially in the table and frame departments. I am also open to change into using a QXmlStreamReader based approach. However, I think that the current code is good enough to merge now and further development should be based on some real usecase, e.g. the docx export filter that is the target for this library. The first version is only going to export text and simple formatting and for that it's good enough already.


Description
-------

This patch creates a new library in filters/odftraverse. The purpose of this library is to create classes to make it easier to create export filters for ODF files. What you do to use this library is that you inherit a base class for backends to this parser / traverser and in the many callbacks you write the output that is relevant for your output format.

To show how it can be used I have also created a very simple proof of concept filter that exports to text format, something Calligra actually lacked before.

The current implementation traverses only ODT files and there are still a number of NYI functions that I want to finish before the actual merge. But I thought I'd get some opinions early. In other words, I expect at least one, maybe two iterations before this branch can be merged.


Diffs (updated)
-----

  filters/CMakeLists.txt 8bcd640 
  filters/libodftraverse/CMakeLists.txt PRE-CREATION 
  filters/libodftraverse/OdfParser.h PRE-CREATION 
  filters/libodftraverse/OdfParser.cpp PRE-CREATION 
  filters/libodftraverse/OdfTraverserContext.h PRE-CREATION 
  filters/libodftraverse/OdfTraverserContext.cpp PRE-CREATION 
  filters/libodftraverse/OdtTraverser.h PRE-CREATION 
  filters/libodftraverse/OdtTraverser.cpp PRE-CREATION 
  filters/libodftraverse/OdtTraverserBackend.h PRE-CREATION 
  filters/libodftraverse/OdtTraverserBackend.cpp PRE-CREATION 
  filters/libodftraverse/odftraverse_export.h PRE-CREATION 
  filters/words/ascii/AsciiExport.h PRE-CREATION 
  filters/words/ascii/AsciiExport.cpp PRE-CREATION 
  filters/words/ascii/CMakeLists.txt d36de47 
  filters/words/ascii/OdtTraverserAsciiBackend.h PRE-CREATION 
  filters/words/ascii/OdtTraverserAsciiBackend.cpp PRE-CREATION 
  filters/words/ascii/TODO ceb1a24 
  filters/words/ascii/words_ascii_export.desktop PRE-CREATION 

Diff: http://git.reviewboard.kde.org/r/109393/diff/


Testing
-------

Tested with a lengthy text file.


Thanks,

Inge Wallin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20130318/0d357b49/attachment.htm>


More information about the calligra-devel mailing list