summaryrefslogtreecommitdiff
path: root/sax/inc
AgeCommit message (Collapse)Author
2016-02-09Remove excess newlinesChris Sherlock
A ridiculously fast way of doing this is: for i in $(pcregrep -l -M -r --include='.*[hc]xx$' \ --exclude-dir=workdir --exclude-dir=instdir '^ {3,}' .) do perl -0777 -i -pe 's/^ {3,}/ /gm' $i done Change-Id: Iebb93eccbee9e4fc5c4380474ba595858a27ac2c Reviewed-on: https://gerrit.libreoffice.org/22224 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2015-11-10loplugin:nullptr (automatic rewrite)Stephan Bergmann
Change-Id: I54bf272b404d2302cafbde73ec5061ea2cd966ab
2015-10-28com::sun::star->css in sal,saxNoel Grandin
Change-Id: I24e202b1f8071fe918e4e164b5fa1c08a561cb24 Reviewed-on: https://gerrit.libreoffice.org/19626 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-07-06loplugin:unusedmethods sax,shell,stoc,basegfxNoel Grandin
Change-Id: I8f3871fd4e82b6850718b6f2a8757f3043d00017
2015-07-03Revert "loplugin:unusedmethods sax,shell,stoc,basegfx"Michael Stahl
The basegfx changes appear to break Windows builds. This reverts commit 3b32c5898ff4e744d3f18b00421b433500426d74.
2015-07-03loplugin:unusedmethods sax,shell,stoc,basegfxNoel Grandin
Change-Id: Ia5d63f7153e4b02acc5e206739316264d6d1184e
2015-03-27loplugin:staticfunctionNoel Grandin
Change-Id: I10c30ef28e7321882a720d1e7869a75a89febfc5
2014-06-01fdo#68849: Add header guards to all include filesJens Carl
Added header guards to files in directories sal/, sal/, and scripting/ Change-Id: Ieb7f224f2d27bd671618c516f47f5b7f08c1d294 Reviewed-on: https://gerrit.libreoffice.org/9582 Reviewed-by: Thomas Arnhold <thomas@arnhold.org> Tested-by: Thomas Arnhold <thomas@arnhold.org>
2014-04-07sax: sal_Bool->boolNoel Grandin
Change-Id: I8d9dd585c509fd4c1f09ee817d828f3e600e31d5
2013-04-23execute move of global headersBjoern Michaelsen
see https://gerrit.libreoffice.org/#/c/3367/ and Change-Id: I00c96fa77d04b33a6f8c8cd3490dfcd9bdc9e84a for details Change-Id: I199a75bc4042af20817265d5ef85b1134a96ff5a
2013-04-07mass removal of rtl:: prefixes for O(U)String*Luboš Luňák
Modules sal, salhelper, cppu, cppuhelper, codemaker (selectively) and odk have kept them, in order not to break external API (the automatic using declaration is LO-internal). Change-Id: I588fc9e0c45b914f824f91c0376980621d730f09
2013-01-14sax: add methods to duplicate current top marker and reapply it laterPierre-Eric Pelloux-Prayer
The need for this is ooxml: we need to have a duplicate entry (rPr) like this: <p> <pPr> <rPr>...</rPr> </pPr> <r> <rPr>...</rPR> </r> </p> This patch allows to do that by setting aside a copy of the <rPr> line, and then merging the copy when needed. Change-Id: I3868a822aa9e5210f3d814c68398a38f95072cd5 Reviewed-on: https://gerrit.libreoffice.org/1648 Reviewed-by: Noel Power <noel.power@suse.com> Tested-by: Noel Power <noel.power@suse.com>
2013-01-13callcatcher: update and remove newly unused codeCaolán McNamara
Change-Id: Iff3ce7c3a44010b3bc81fc0d2156216ee13948dc
2013-01-07added Converter::convertColor with opacity parameterChr. Rossmanith
Change-Id: I0f3759d8f75f2739b2815c37e8c81bc97e097ec8
2012-12-19wrap vararg sax functions in typesafe overloadsLuboš Luňák
Now automatic conversions can take place (no getStr() needed), and there are compile errors when used improperly. The FSEND terminator is also no longer needed, but it's better to dump it only after forgetting it no longer silently breaks backports. Change-Id: Ib47e6eda2d5e12ce889b69bf2affbda3679c2d3f
2012-09-08sax: com.sun.star.xml.sax.FastSerializer seems to be unusedMatúš Kukan
Change-Id: I826da00c83589f468c499879d86546d60b2aa515 Reviewed-on: https://gerrit.libreoffice.org/480 Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Kohei Yoshida <kohei.yoshida@gmail.com>
2012-08-24sax: avoid pointless linking expwrap against saxMatúš Kukan
..only to share one class with fastsax in sax, where it's not used. The link dependency is ugly, mostly for libmerged. Use static library. Another option would be to link fastsax against expwrap. Change-Id: Ia85b01150959e2472d1ac04013b8b9a27232a070
2012-06-27re-base on ALv2 code.Michael Meeks
2012-06-27Remove unused include filesThomas Arnhold
Those never get included at any point in the code. Change-Id: I17736e005635b9e57759cfc95176a99e7c5e8988
2012-06-21re-base on ALv2 code.Michael Meeks
Change-Id: I6c145e984c885c7e06caa1c27bfb354ea49ad9ce
2012-06-16other mis-includeNorbert Thiebaud
Change-Id: Ibc82592650fe54e4a174c5c57050f805a1834cc9
2012-06-16fix build breakage due to sax gbuildificationNorbert Thiebaud
Change-Id: I742c598451134f1d2d0cdc6bcfd5c77adf13ad98
2012-06-16gbuildification of saxNorbert Thiebaud
Change-Id: I6e8220e88566e04b20687d54181205d31ec68e13
2012-03-12sax: replace Min/Max macros with std::maxMichael Stahl
2012-03-12sax: move xml2utf.cxx to libsax to prevent duplicate linkage warningsMichael Stahl
2012-02-10Removed unused codeAlexander Bergmann
2012-02-08update unused listCaolán McNamara
2012-01-16remove unimplemented methods from headersCaolán McNamara
2012-01-16cleanup: remove unused prototype tooMichael Meeks
2011-10-11#i108468#: clean up xmluconv code duplication, DateTime edition:Michael Stahl
remove duplicate methods from SvXMLUnitConverter: convertTime (all variants), convertDateTime (DateTime variants), convertTimeDuration. move convertAny from SvXMLUnitConverter to sax::converter.
2011-10-11#i108468#: clean up xmluconv code duplication, part 1:Michael Stahl
move convertNumber64 from SvXMLUnitConverter to sax::converter. remove duplicate methods from SvXMLUnitConverter: convertBool, convertPercent, convertColor, convertNumber, convertDouble, indexOfComma, encodeBase64, decodeBase64, decodeBase64SomeChars, clearUndefinedChars
2011-02-03New sax documenthandler adapter.Peter Jentsch
A simple adapter for sax document handlers and is a prerequisite of the new flat odf export implementation.
2010-12-10XLSX VML Export fixes.Muthu Subramanian K
Make generation of xml header optional.
2010-11-09DOCX export: order pPr children according to specsCédric Bosdonnat
This is still a first attempt: the base is present and all the exported properties needs to be checked. rPr properties order needs to be checked as well.
2010-10-28add modelines to .h and .c files as wellCaolán McNamara
2010-10-14Add vim/emacs modelines to all source filesSebastian Spaeth
Fixes #fdo30794 Based on bin/add-modelines script (originally posted in mail 1286706307.1871.1399280959@webmail.messagingengine.com) Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2010-10-05more removed include guards using fixguard.pyPetr Mladek
2010-05-19sw33bf04: #i111712#: sax: convert crude test in converter.cxx to cppunit testMichael Stahl
2010-02-12changefileheader2: #i109125#: change source file copyright notice from Sun ↵Jens-Heiner Rechtien
Microsystems to Oracle; remove CVS style keywords (RCSfile, Revision)
2009-11-19#i97029#: sax::Converter: properly support XMLSchema-2 "duration" type:Michael Stahl
replace convertTime() funtions with convertDuration(). reimplement convertDuration(util::Duration) to be free of rounding error.
2009-10-09#i97029#: sax::Converter: add convertDateOrDateTime() and convertDate()Michael Stahl
2009-08-25CWS-TOOLING: integrate CWS ooxml03Release Engineers
2009-08-11 12:16:50 +0200 kendy r274852 : CWS-TOOLING: rebase CWS ooxml03 to trunk@274622 (milestone: DEV300:m54) 2009-07-17 17:55:14 +0200 hbrinkm r274100 : resolved warning on unxlngi6.pro 2009-07-15 17:11:09 +0200 kendy r274015 : #i96319# With the disabled docx pieces, libmsword is not a UNO library. 2009-07-15 13:38:36 +0200 hbrinkm r274010 : removed unresolved symbols 2009-07-13 16:06:11 +0200 hbrinkm r273943 : resolved warnings 2009-07-10 14:01:03 +0200 hbrinkm r273889 : changes to make compile on Windows 2009-06-22 19:46:17 +0200 kendy r273252 : #i96319# Disable the DOCX export, it's not perfect yet... 2009-06-22 13:04:32 +0200 kendy r273219 : CWS-TOOLING: rebase CWS ooxml03 to trunk@272827 (milestone: DEV300:m50) 2009-06-11 17:11:39 +0200 kendy r272890 : #i96319# Fix regression in the Word 95 output of hyperlinks. 2009-06-05 17:53:08 +0200 kendy r272710 : #i96319# Fix regression in Word 95 output (wrong style number when nodes recurse). 2009-06-03 00:19:27 +0200 kendy r272529 : #i96319# Fix regression in output of the section breaks. 2009-05-29 18:30:19 +0200 kendy r272475 : CWS-TOOLING: rebase CWS ooxml03 to trunk@272291 (milestone: DEV300:m49) 2009-05-29 09:58:02 +0200 kendy r272435 : #i102354# Don't write the debug info directly to the document. 2009-05-28 15:57:01 +0200 kendy r272411 : #i102260# Revert another trivial fix. 2009-05-26 16:43:07 +0200 kendy r272310 : #i102260# Disable fix of FILLIN fields. 2009-05-26 14:14:09 +0200 kendy r272302 : #i96319# Fix regression in the calculation of size of cells. 2009-05-26 01:42:29 +0200 kendy r272274 : #i96319# Fix a regression - don't export RES_PARATR_LINESPACING and RES_UL_SPACE with every style. [And additionally some beautification.] 2009-05-23 00:37:44 +0200 thb r272212 : #i102156# added XFastSAXSerializable plus implementation 2009-05-22 16:43:09 +0200 kendy r272201 : CWS-TOOLING: rebase CWS ooxml03 to trunk@271830 (milestone: DEV300:m48) 2009-05-14 23:37:02 +0200 thb r271924 : #i10000# post-filter split fixes - make non-pro compile again 2009-05-14 22:35:54 +0200 thb r271923 : #i10000# post-svx split fixes - both librpt and librptui need libsvx 2009-05-14 21:39:08 +0200 thb r271922 : #i10000# post-svx split work - getting nonpro build working again 2009-05-11 09:11:23 +0200 kendy r271740 : #i99638# svxcore library is not a UNO library. 2009-04-29 17:31:45 +0200 kendy r271389 : #i96319# Fixed a corner case in docx export of nested tables. Actually, this even simplifies the code a bit :-) 2009-04-29 12:10:08 +0200 kendy r271364 : #i96319# Fix output of spacing in docx. 2009-04-29 10:56:43 +0200 kendy r271357 : #i96319# Fix an endless loop in the docx export of bookmarks. 2009-04-29 01:06:21 +0200 kendy r271348 : #i96319# Fix output of cell width and height. 2009-04-27 13:29:02 +0200 kendy r271264 : #i96319# Fix output of section columns (their number + widths) for docx. 2009-04-24 15:51:23 +0200 kendy r271219 : #i96319# Fix output of dates - xsi:type=... should be there only for dcterms. 2009-04-23 18:27:28 +0200 kendy r271190 : #i96319# Fix output of gridCol's. 2009-04-23 17:13:44 +0200 kendy r271184 : #i96319# Avoid incorrect double output of tcPr. 2009-04-22 15:58:10 +0200 kendy r271125 : #i96319# Fix the output of the nested tables after all the rebases. 2009-04-20 15:16:48 +0200 kendy r270989 : #i96319# More correct output of the nodes. 2009-04-20 13:27:06 +0200 kendy r270976 : #i96319# Make it build after the rebase to m46 again; maybe does not run yet. 2009-04-10 23:00:46 +0200 kendy r270725 : CWS-TOOLING: rebase CWS ooxml03 to trunk@270723 (milestone: DEV300:m46) 2009-04-09 17:31:44 +0200 kendy r270716 : #i96319# Fix output of headers/footers. 2009-04-09 16:42:13 +0200 kendy r270715 : #i99638# Fix visibility for the debug build of svx. 2009-04-03 10:27:50 +0200 kendy r270466 : #i99683# One forgotten gid_File_Filter_Emp -> gid_File_Filter_Sdfilt. 2009-03-06 16:19:03 +0100 kendy r269013 : #i99638# Remove SpecialProgress-related methods and members, not used any more, and breaks linking on Win32. 2009-03-06 09:43:55 +0100 kendy r268974 : #i99638# Resolve some more unresolved symbols on Win32. 2009-03-05 23:01:39 +0100 kendy r268946 : #i99638# Export less SdStyleSheetPool symbols. 2009-03-05 15:31:23 +0100 kendy r268910 : #i99638# MSVC needs struct WW8_PdAttrDesc declared, otherwise fails to link. 2009-03-04 14:15:23 +0100 kendy r268826 : #i99638# More Win32-related build fixes. 2009-03-04 13:47:48 +0100 kendy r268823 : #i99638# Disable pptx export again, brougth in by mistake. 2009-03-04 09:54:00 +0100 kendy r268786 : #i99638# Deliver also isvxcore.lib and isvxmsfilter.lib. 2009-03-03 17:42:25 +0100 kendy r268773 : #i99638# SdrModel::setUnoModel() should not be inline. 2009-03-03 17:25:59 +0100 kendy r268770 : #i99638# Ugh, revert. 2009-03-03 17:05:16 +0100 kendy r268765 : #i99638# Make ObjectContact dll private. 2009-03-03 15:35:41 +0100 kendy r268733 : #i99638# More destructors visible for Win32 linking. 2009-03-03 14:26:23 +0100 kendy r268726 : #i99638# Make some destructors visible, and change one static inline to static to Win32 linking happy. 2009-03-03 10:42:12 +0100 kendy r268712 : #i99638# More moving stuff around to make Win32 linking happy. 2009-03-03 09:48:17 +0100 kendy r268708 : #i99638# Reduce the includes, needed for Win32 linking. 2009-03-03 08:48:00 +0100 kendy r268705 : #i99638# ImpGetResStr() visibility markup moved to the header. 2009-03-02 16:30:17 +0100 kendy r268664 : #i99638# Fix visibility problems that appeared on x86. 2009-02-27 22:25:57 +0100 kendy r268618 : #i96319# Better definition of DBG in utils.hxx. 2009-02-27 21:53:17 +0100 kendy r268616 : #i96319# License for utils.hxx, define DBG only for the debug builds. 2009-02-27 21:44:25 +0100 kendy r268615 : #i96319# Fixed types for printf etc. parameters. 2009-02-27 17:23:17 +0100 kendy r268607 : #i96319# Fix build after the rebase. 2009-02-27 15:12:49 +0100 kendy r268597 : CWS-TOOLING: rebase CWS ooxml03 to trunk@268395 (milestone: DEV300:m42) 2009-02-27 12:37:57 +0100 kendy r268580 : #i96319# Fix build dependency in oox. 2009-02-26 22:02:06 +0100 kendy r268547 : #i99683# Move ppt import to a separate library. The ppt export is already separate, so it makes sense to give there the import as well. The current library 'emp' was renamed to 'scfilt', it links against svxmsfilter, and few symbols had to be made visible (28 of them). 2009-02-26 14:36:25 +0100 kendy r268520 : #i99638# Whitespace fixes. 2009-02-26 14:31:35 +0100 kendy r268518 : #i99638# Split svx into svxcore, svxmsfilter and the rest. SvxImportMSVBasic's SaveOrDelMSVBAStorage(), GetSaveWarningOfMSVBAStorage(), and GetMSBasicStorageName() must go to svxcore (because of Writer). 2009-02-26 00:16:32 +0100 kendy r268471 : #i99638# Split libsvx into 3 pieces - svxcore, svxmsfilter, and svx (the rest). This contains: - the split (based on inter-object dependencies) - svxcore is actually a closure on a graph where the objects are vertexes, and where there's an edge between 2 vertexes when one needs symbol from the second ;-) - maybe still could be split, but that will be most probably harder to achieve - svxmsfilter is a subset that is needed just by the filters of the MS Office formats - the new svx contains the rest that did not fit the above 2 - visibility for svxcore - some svxcore symbols had to be exposed for svxmsfilter or svx - adaption of modules linking against svx - in some cases, linking just against svxcore is enough 2009-02-25 23:35:03 +0100 kendy r268470 : #i99545# Get rid of struct ConstAsciiString, and use simple #define's instead - it's a pre-requisite for a svx split, and also saves memory on x86-64, and some symbol names. 2009-02-25 22:39:02 +0100 kendy r268468 : #i96319# Get rid of the now unneecessary debug class DOCX. 2009-02-17 20:35:29 +0100 kendy r268190 : #i96319# WW8 filter rework + docx export License header + whitespace fixes. 2009-02-17 20:02:39 +0100 kendy r268189 : #i96319# WW8 filter rework + docx export Add license header to preset-definitions-to-shape-types.pl. 2009-02-17 19:58:11 +0100 kendy r268188 : #i96319# WW8 filter rework + docx export oox does not have to depend on FASTSAXLIB. 2009-02-17 17:05:34 +0100 kendy r268182 : #i96319# WW8 filter rework + docx export Fix the sax compilation, apparently some of the changes were missing. 2009-02-17 13:04:14 +0100 kendy r268163 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fix output of shape paths (point components can be either 16 or 32 bit). [And also implement a fallback for the missing shapes - treated as rectangle.] 2009-02-17 13:03:56 +0100 kendy r268162 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Correction of some values. Now the shapes seem to be good enough; time to abandon them ;-) 2009-02-17 13:03:37 +0100 kendy r268161 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Better detection of consts. 2009-02-17 13:03:19 +0100 kendy r268160 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fixed the 'sun' shape. 2009-02-17 13:03:00 +0100 kendy r268159 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Better check for unneeded 'prod's. 2009-02-17 13:02:42 +0100 kendy r268158 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fix the adj values. 2009-02-17 13:02:23 +0100 kendy r268157 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fix pentagon and star5 shapes. 2009-02-17 13:02:04 +0100 kendy r268156 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fix most of the 'star' shapes by preventing an overflow. 2009-02-17 13:01:41 +0100 kendy r268155 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * fixed build after resolving conflicts 2009-02-17 13:01:19 +0100 kendy r268154 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * added TODO comment 2009-02-17 13:00:59 +0100 kendy r268153 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * implemented adjustments export in custom shapes 2009-02-17 13:00:40 +0100 kendy r268152 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * partially refactored EscherPropertyContainer::CreateCustomShapeProperties extracted 3 helper functions, which are now used in ooxml export 2009-02-17 13:00:17 +0100 kendy r268151 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * make mAny member of DrawingML protected, so that ShapeExport can access it * export connector shape * added DrawingML::WriteConnectorConnections * fixed bezier shape outline export (regression fix) 2009-02-17 12:59:54 +0100 kendy r268150 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * make EscherConnectorListEntry structure public, so that it can be used by ooxml export 2009-02-17 12:59:34 +0100 kendy r268149 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * added mapping of shapes to shape IDs * cleaned a bit shape name generation 2009-02-17 12:59:13 +0100 kendy r268148 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fixed some of the text shapes, 166/202. In the 202, I counted even shapes that are marked 'should not be used' (and their definition is missing) even in the documentation. The only really missing shapes are those that use general arcTo... 2009-02-17 12:58:53 +0100 kendy r268147 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Found missing shapes, now 159/202. 2009-02-17 12:58:36 +0100 kendy r268146 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Optimize the amount of formulas a bit. Adds one more shape that previously reached the top amount of formulas ;-) 2009-02-17 12:58:15 +0100 kendy r268145 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Implemented quadratic beziers, 144/202 now. I was unable to use 'qb', it did not produce good results, no idea why :-( Instead used 'c' - cubic bezier - and recounted the control points (mathematically equivalent representation). The downside is that for some shapes I run out of formulas :-( - TODO later. 2009-02-17 12:57:56 +0100 kendy r268144 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fix presetShapeDefinitions.xml, there's an error there. 2009-02-17 12:57:31 +0100 kendy r268143 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Implemented cubicBezTo + few formulas, now 136/202. 2009-02-17 12:57:11 +0100 kendy r268142 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Fixed units of sin/cos, which makes it now 118/202. Realized that some of the shapes are 'too small' - like <10 units, insetad of ~21600; have to look at that. 2009-02-17 12:56:43 +0100 kendy r268141 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: More arcTo shapes, 116/202 now. 2009-02-17 12:56:21 +0100 kendy r268140 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Better conversion of */ (fixes some shapes). Implemented nostroke/nofill. 2009-02-17 12:56:01 +0100 kendy r268139 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: More formulas, and partially implemented 'arcTo' - 93/202 shapes now. 2009-02-17 12:55:39 +0100 kendy r268138 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Radically changed the conversion of formulas to be able to implement +/. [...and actually implemented it ;-), 60/202 shapes now.] 2009-02-17 12:55:19 +0100 kendy r268137 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Shape types generation plugged to the build, 53/202 shapes now. 2009-02-17 12:54:57 +0100 kendy r268136 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: More predefined shapes generated (thanks to 'pin' translation). 2009-02-17 12:54:36 +0100 kendy r268135 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Script that creates the predefined shape types + the definitions. The shape types themselves come from the OOXML documentation; the script just converts them from DrawingML to a VML representation in a C++ file. The converter is not feature-complete yet, resulting in some missing shapes. Also it is not yet part of the build (makefile.mk not modified yet). 2009-02-17 12:54:10 +0100 kendy r268134 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: + Fixed a regression on sections output + Columns break has to be postponed to the next paragraph + Implemented sections properly + Columns formatting properties exported 2009-02-17 12:53:49 +0100 kendy r268133 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> haven't I fixed those problems? 2009-02-17 12:53:29 +0100 kendy r268132 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: + table alignment is now exported 2009-02-17 12:53:07 +0100 kendy r268131 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Integrate VMLExport with Calc for Comment export. Few minor changes needed to VMLExport so that Calc could customize the behavior. Specifically, Calc needed to be able to: - Explicitly specify the //v:shape/@type attribute value so that Excel wouldn't show a diagonal "arrow" underneath the note text instead of showing an actual box. - Add custom Escher properties such as "hidden", etc. - Insert the //v:shape/x:ClientData element before //v:shape is closed. * oox/inc/oox/export/vmlexport.hxx, oox/source/export/vmlexport.cxx: - Make Commit(), StartShape(), and EndShape() protected so that Calc can override those methods - StartShape() is needed to add //v:shape/@type - Commit() is needed to add new Escher properties - EndShape() is needed to generate //v:shape/x:ClientData. - Add AddShapeAttribute() method, so Calc can set the //v:shape/@type value. - Output "visibility:hidden" for the ESCHER_Prop_fHidden property. 2009-02-17 12:52:46 +0100 kendy r268130 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Finish the transition of VMLExport from 'sw' to 'oox' + few trivial fixes. The VML export code is now accessible as oox::vml::VMLExport. The (not that related) fixes include SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC change and few warning fixes. 2009-02-17 12:52:24 +0100 kendy r268129 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Moved vmlexport.[hc]xx to oox. 2009-02-17 12:52:04 +0100 kendy r268128 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Cleanup before we move to oox. 2009-02-17 12:51:41 +0100 kendy r268127 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: Some more features for tables export 2009-02-17 12:51:21 +0100 kendy r268126 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: + nested tables export refinement + export row height and table headers 2009-02-17 12:50:58 +0100 kendy r268125 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Initialize a local variable. 2009-02-17 12:50:34 +0100 kendy r268124 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: fixed table layout for nested tables. Fixed nested tables output 2009-02-17 12:50:13 +0100 kendy r268123 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: added support of nested tables. Still needs to be heavily tested. Some problems are occuring with the grid layout. 2009-02-17 12:49:49 +0100 kendy r268122 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Change SAL_DLLPUBLIC_EXPORT to SW_DLLPUBLIC which is more appropriate here. 2009-02-17 12:49:28 +0100 kendy r268121 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Fix line-callout-3 translation. The `line-callout-3' callout was being mapped to the `accentBorderCallout90' OOXML callout, which Excel didn't like at all. Changing this to `borderCallout3' produces OOXML that Excel will load. Not sure what mso-spt49 is supposed to be, but given the other mso-spt* values I think accentBorderCallout90 makes more sense (but cannot find such a value in the OOXML XSD files). 2009-02-17 12:49:05 +0100 kendy r268120 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Fix refactoring of DrawingML::WritePolyPolygon(). The original version only checked rPoly.GetFlags() for every item *after* the first item -- i.e. the first item was skipped. Change the `for' loop start index to follow this behavior. 2009-02-17 12:48:42 +0100 kendy r268119 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Fix Bezier output. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit The //a:cubicBezTo element (?5.1.11.7) requires that there be *three* //a:pt child elements. Ensure that this is the case (otherwise Excel yells at me about invalid DrawingML if I export a free-form shape). This also cleans up the code slightly, by moving out a `if(j==0)` block to before the for loop, and re-indenting the code to simplify understanding. 2009-02-17 12:48:22 +0100 kendy r268118 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Flush documentation. 2009-02-17 12:48:00 +0100 kendy r268117 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: + implemented table cell margins and fixed grid layout + reapplied missing patch from m34 about default spacing of paragraphs 2009-02-17 12:47:40 +0100 kendy r268116 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Migrate Calc to use ShapeExport. Minor snafu here: XML_nvPr is valid only within Impress, so if Calc exports it Excel doesn't like the resulting documents. Remove XML_nvPr output from ShapeExport and replace with calls to ShapeExport::WriteNonVisualProperties(). PowerPointShapeExport can thus override ShapeExport::WriteNonVisualProperties() to generate the required //p:nvPr elements. * oox/inc/oox/export/shapes.hxx: Declare ShapeExport::WriteNonVisualProperties(). * oox/source/export/shapes.cxx: * - Replace XML_nvPr generation with calls to WriteNonVisualProperties(). - Get the GraphicObject name property from the shape instead of generating "Picture N" values (if the shape has a Name property). - Generate a GraphicObject Description attribute, if present. - Remove unused method parameter names (to remove warnings). 2009-02-17 12:47:15 +0100 kendy r268114 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * fixed few shape names, which were missing Shape at the end * fixed mso-spt202 custom shape translation, which was causing problems with word wrapping * enabled wrap attribure for bodyPr tag * fixed 2 compiler warnings 2009-02-17 12:46:55 +0100 kendy r268113 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: column spans in tables are now exported 2009-02-17 12:46:33 +0100 kendy r268112 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx: + Fixed table structure output + Output table borders + Fixed borders output 2009-02-17 12:46:11 +0100 kendy r268111 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Excercise ShapeExport::WriteShape(). Refactor PowerPointExport::WriteShapeTree() to use ShapeExport::WriteShape(), overloading ShapeExport virtual Write* methods as appropriate to insert support for additional shapes. * oox/source/export/shapes.cxx: Correct the shape names (often by appending "Shape") so that the table lookup works as expected. 2009-02-17 12:45:49 +0100 kendy r268110 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Implement multiplexing ShapeExport::WriteShape(). What got me started on this whole "migrate large fractions of sd into oox" binge was PowerPointExport::WriteShapeTree(), which included a "multiplexer" -- a method that took the XShape's shape type and translated it into a (set of) member function(s) to call to convert the shape. I needed just such a multiplexer for Calc, and was loathe to copy/paste it. However, PowerPointExport::WriteShapeTree() is far more complicated for something to go into oox, dealing as it does with grouping and myriad other sd-specific details. Thus, an overhaul: All the ShapeExport::Write* methods are now virtual. The multiplexing ShapeExport::WriteShape() method will consult a string type -> member function lookup table, and if a matching member function is found it will be invoked. This allows subclasses to customize behavior. If no matching conversion member function is found, then ShapeExport::WriteUnknownShape() is invoked, allowing subclasses to transparently handle additional shapes w/o special-casing the WriteShape() call. * oox/inc/oox/export/shapes.hxx, oox/source/export/shapes.cxx: Make Write* methods virtual; Add WriteUnknownShape(); Replace the (non-functional) WriteShapeTree() with the multiplexing WriteShape(), and provide a hashtable mapping shape type to conversion method. 2009-02-17 12:45:28 +0100 kendy r268109 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Move Impress DrawingML Export code into oox::drawingml::ShapeExport. Begin moving sharable sd/source/filter/eppt/epptooxml.cxx DrawingML code into oox::drawingml::ShapeExport, so that DrawingML elements (w/ different namespaces) can use the same export code. WARNING: the migration makes the assumption that mXPropSet comes from mXShape, that is: Reference< XPropertySet > mXPropSet( mXShape, UNO_QUERY ); If this is wrong, things will obviously break. This *should* be correct, as the altered code path rooted in PowerPointExport::WriteShapeTree() calls PPTWriterBase::GetShapeByIndex(), which ensures that mXPropSet is the XPropertySet for the mXShape instance: Any aAny( mXShape->queryInterface( ::getCppuType( (const Reference< XPropertySet >*) 0 ) )); aAny >>= mXPropSet; * oox/inc/oox/export/shapes.hxx, oox/source/export/shapes.cxx: Sync with the above removed PowerPointExport methods. 2009-02-17 12:45:11 +0100 kendy r268108 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Deliver inc/oox/export/shapes.hxx. 2009-02-17 12:44:51 +0100 kendy r268107 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Abstract out sd's shape export code. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit DrawingML is an evil, evil thing -- it's highly duplicative. For example, the <cNvPr/> element has been duplicated no less than four times into different XML namespaces: ?4.4.1.12, ?5.1.2.1.8, ?5.2.2.3, ?5.6.2.8, i.e. in the following XML namespaces (from the XSD files): http://schemas.openxmlformats.org/drawingml/2006/chartDrawing http://schemas.openxmlformats.org/drawingml/2006/main http://schemas.openxmlformats.org/drawingml/2006/picture http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing http://schemas.openxmlformats.org/presentationml/2006/main In all these cases, they all have the same attributes, the same parent elements, and the same child elements. They are, for all intents and purposes, identica EXCEPT for the XML namespace. Instead of rampantly duplicating sd's shape export code and doing s/XML_p/XML_???/g (i.e. replace the namespace), I'm refactoring sd's export code into oox::drawingml::ShapeExport. The ShapeExport constructor takes the target XML namespace as a parameter, and generates all XML relative to this namespace. * inc/oox/export/drawingml.hxx: Add DrawingML::GetFB() and DrawingML::GetFS() accessor methods, which are needed by ShapeExport. * source/export/makefile.mk: Add shapes.cxx to the build. * inc/oox/export/shapes.hxx, source/export/shapes.cxx: Declare and implement oox::drawingml::ShapeExport. 2009-02-17 12:44:32 +0100 kendy r268106 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * extracted paragraph adjustment translation * added text wrap (commented out as it doesn't work flawlessly yet) 2009-02-17 12:44:12 +0100 kendy r268105 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: now able to export the tables structures 2009-02-17 12:43:53 +0100 kendy r268104 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Fixed a bug in doc table export. 2009-02-17 12:43:34 +0100 kendy r268103 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Fixed several build bugs: + strange integer conversion + unexported symbol dbg_out + Reintegrated missing patches from m34 + Reupdated scp2 module to flag libmsword as a uno component 2009-02-17 12:43:15 +0100 kendy r268102 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Change hardcoded numbers into sprm constants. 2009-02-17 12:42:58 +0100 kendy r268101 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Make the tables build even with the docx-related changes. 2009-02-17 12:42:38 +0100 kendy r268100 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Write shapes defined by paths. 2009-02-17 12:42:14 +0100 kendy r268099 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: implemented paraSnapToGrid & suppressAutoHyphens 2009-02-17 12:41:54 +0100 kendy r268098 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: Implemented ParaScriptSpace and its friends 2009-02-17 12:41:32 +0100 kendy r268097 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx export: Keep with next paragraph 2009-02-17 12:41:11 +0100 kendy r268096 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx: Fixed tab position export, left margin was missing 2009-02-17 12:40:48 +0100 kendy r268095 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> TOX export: + fixed export fields expression containing tabs + fixed the begin element of fields like TOX, Hyperlinks and index marks + implemented export of index marks (same missing things than binary filter) 2009-02-17 12:40:28 +0100 kendy r268094 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Export the core revision document property. The mapping between revision and getEditingCycles() was found by perusing the existing OLE Structured Storage output source. 2009-02-17 12:40:10 +0100 kendy r268093 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Preparations for the predefined shape types. 2009-02-17 12:39:50 +0100 kendy r268092 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Implemented the most interesting stroke properties. 2009-02-17 12:39:31 +0100 kendy r268091 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Minimal working TOX export, not fully tested yet. Implemented DocxExport::AppendBookmark method 2009-02-17 12:39:11 +0100 kendy r268090 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Implemented the most interesting fill properties. 2009-02-17 12:38:53 +0100 kendy r268089 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> VML: Output of lines. 2009-02-17 12:38:35 +0100 kendy r268088 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Thanks to kendy, dateToW3CDTF is now useless 2009-02-17 12:38:16 +0100 kendy r268087 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Uncomplete merge + change the timestamp generation with the use of strftime 2009-02-17 12:37:58 +0100 kendy r268086 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> + Fixes in core properties export: - the first keyword was duplicated, - the CreationTime in apps.xml was written several times + Refactored the fields output to prepare the place for TOX: now using a stack of fields to output + Refactored the Hyperlink export implementation to handle links with anchors in documents 2009-02-17 12:37:36 +0100 kendy r268085 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> MS Word begins to like the VML generated by the docx export :-) We can export basic groups, rects and ellipses now; TODO other shapes and lots of properties. 2009-02-17 12:37:18 +0100 kendy r268084 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Propagate bounding rectangle in EscherEx::Commit(). Ignored in EscherEx itself, but mandatory for the VML export. 2009-02-17 12:36:59 +0100 kendy r268083 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Comment out output of XML_TotalTime (xProperties->getEditingDuration()), breaks here. #i96319# WW8 filter rework + docx export confuses MS Office terribly. 2009-02-17 12:36:42 +0100 kendy r268082 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> The boost datetime conversion broke from time to time, no idea why :-( Now using the most trivial approach... 2009-02-17 12:36:24 +0100 kendy r268081 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Implementation of few basic VML shapes and properties. 2009-02-17 12:36:06 +0100 kendy r268080 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Add EscherPropertyContainer::GetOpts() to be able to get all the options at once. 2009-02-17 12:35:48 +0100 kendy r268079 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Include "tokens.hxx" instead of <oox/core/tokens.hxx>. The latter attempts to take the version from solver which is not there yet when building from scratch ;-) 2009-02-17 12:35:28 +0100 kendy r268078 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Forgot to remove an include. Compiler didn't crash on it... strange 2009-02-17 12:35:10 +0100 kendy r268077 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Merged the properties export code with the one of jonp. In fact, only the date formatting code of mine has been kept to replace jon's one. 2009-02-17 12:34:49 +0100 kendy r268076 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Export of core properties migrated to oox module 2009-02-17 12:34:23 +0100 kendy r268075 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Add some trace/debugging information. Some of the app/core properties are #ifdef'd, as I don't know what XDocumentProperties attribute is the appropriate mapping. My suspicion is that many of the remaining app/core properties may be found within the DocumentStatistics attribute, and thus I print out the document statistics found. (So far, I'm not seeing any from Calc, but this may bear some fruit with .docx or .pptx export...) 2009-02-17 12:34:01 +0100 kendy r268074 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Document Properties: skip empty elements. * xmlfilterbase.cxx (writeElement): Don't generate an element if the element has no value. 2009-02-17 12:33:35 +0100 kendy r268073 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Initial stab at exporting document properties. Short, short version: to export document properties call XmlFilterBase::exportDocumentProperties(Reference<XDocumentProperties>). * oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx: Add and implement XmlFilterBase::exportDocumentProperties(), which generates docProps/core.xml and docProps/app.xml. * oox/source/token/tokens.txt: Add XML_vt element. * sc/source/filter/excel/excdoc.cxx: call XmlFilterBase::exportDocumentProperties(). * sc/source/filter/excel/expop2.cxx: Remove sfx2::SaveOlePropertySet() call, as it isn't useful for OOXML output. 2009-02-17 12:33:17 +0100 kendy r268072 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Beginnings of the VML export. The shapes are exported, but with no attributes - so their position is not written yet, etc. 2009-02-17 12:32:54 +0100 kendy r268070 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Do more EscherEx methods virtual. We want to re-use EscherEx for the export of VML. For this, some of the methods have to be made virtual so that we can change them to do what we need ;-) 2009-02-17 12:32:26 +0100 kendy r268069 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Removed debug fprintf's 2009-02-17 12:32:09 +0100 kendy r268068 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx: bookmarks now exported 2009-02-17 12:31:52 +0100 kendy r268067 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * export polypolygons * export transformation defined by rectangle 2009-02-17 12:31:35 +0100 kendy r268066 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Split text runs to be able to insert bookmark tags 2009-02-17 12:31:18 +0100 kendy r268065 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Enum for specifying the document type to DrawingML. Various document types need it differently... 2009-02-17 12:30:57 +0100 kendy r268064 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Provide an appropriate //Relationship/@Target value. * oox/source/export/drawingml.cxx: The //Relationship/@Target value needs to be a path relative to the DrawingML document. For Excel, the DrawingML is in xl/drawings/drawing*.xml, while the embedded media is in xl/media/image*. Thus, to get from xl/drawings/drawing*.xml to xl/media/image*, we need "../media/image", not "media/image". Without this change, Excel throws an error when loading the Spreadsheet, as it can't find the resource. 2009-02-17 12:30:35 +0100 kendy r268063 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fixed output of the properties that are written at </pPr> or </rPr> time. Fixes the most annoying "the first run has strange properties" bug, and generally improves the quality of output of styles a lot. 2009-02-17 12:30:16 +0100 kendy r268062 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Generate valid DrawingML. The DrawingML is a hack, with hard-coded values in various places that have no business being hardcoded, but it is valid, and Excel does load the DrawingML without error. (It instead errors out because xl/drawings/_rels/drawing1.xml.rels contains an invalid file path. :-( * oox/inc/oox/export/drawingml.hxx, oox/source/export/drawingml.cxx: Add a WriteBlipFill() overload which takes the XML namespace as an argument. This is necessary because Excel wants a <xdr:blipFill/> element, not <a:blipFill/>, and I don't want to have to duplicate the rest of the WriteBlipFill() logic within sc. 2009-02-17 12:29:59 +0100 kendy r268061 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Remove one of the 2 fixes of the same problem ;-) 2009-02-17 12:29:32 +0100 kendy r268060 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Few whitespace fixes. 2009-02-17 12:29:12 +0100 kendy r268059 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Basic output of images works, both embedded as well as linked. Still some TODOs in FlyFrameGraphic(), to be solved later... 2009-02-17 12:28:51 +0100 kendy r268058 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Add TwipsToEMU() to oox/export/utils.hxx. 2009-02-17 12:28:30 +0100 kendy r268057 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Fix the build. DrawingML::WriteImage(const Graphic&) needs to have a Graphic type in scope. 2009-02-17 12:28:10 +0100 kendy r268056 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Change define FSEND -1 to const sal_Int32 FSEND = -1. The former can hide errors, like startElementNS( ..., "xyz" FSEND ), because it compiles without warning, but then gets part of the string, and we end up without a sentinel. 2009-02-17 12:27:50 +0100 kendy r268055 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Docx export: Dropdown field now exported 2009-02-17 12:27:28 +0100 kendy r268054 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Add the xdr token. The `xdr' token is used as the XML namespace in Spreadsheet DrawingML documents. 2009-02-17 12:27:08 +0100 kendy r268053 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> With a bit of cheating, images can be written... Everything (but the image itself) is hardcoded so far. 2009-02-17 12:26:47 +0100 kendy r268052 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write the location of the image as media/image, not ../media/image. Hopefully it does not break pptx - but for docx it's necessary. 2009-02-17 12:26:24 +0100 kendy r268051 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Improved mergeTopMarks(). - instead of bool, it accepts MergeMarksEnum with values MERGE_MARKS_APPEND, MERGE_MARKS_PREPEND, and MERGE_MARKS_POSTPONE, which should be more readable - MERGE_MARKS_POSTPONE is a new thing, it allows to write output that is written with the next mergeTopMarks() - useful when you get some data too early and need to write them after the end of data that you are just writing. 2009-02-17 12:26:05 +0100 kendy r268050 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output of images; framework is mostly done, but disabled due to problems with order. [So far it would be output inside rPr which is not what we want ;-)] 2009-02-17 12:25:41 +0100 kendy r268049 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Intoduced OUString DrawingML::WriteImage( const Graphic& rGraphic ). Additionally - added the possibility to write images to word/ subdir in the zip container, not just ppt/ - added 'wp' to the known tokens - fixed Graphic::GetLink() in vcl to be 'const' - added svx and vcl to the dependencies of oox 2009-02-17 12:25:18 +0100 kendy r268048 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> merged binary and ooxml filters export. 2009-02-17 12:24:55 +0100 kendy r268047 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Core properties created (still have to write the dates) 2009-02-17 12:24:32 +0100 kendy r268046 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Added support for GetExpression and SetExpression fields (only in text format). 2009-02-17 12:24:09 +0100 kendy r268045 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Some more fields supported 2009-02-17 12:23:49 +0100 kendy r268044 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Some more fields 2009-02-17 12:23:27 +0100 kendy r268043 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write also numbering type "none". 2009-02-17 12:23:07 +0100 kendy r268041 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Numbering finished, implemented the rest of the level information. 2009-02-17 12:22:45 +0100 kendy r268040 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx fields exports: the start of the way 2009-02-17 12:22:23 +0100 kendy r268039 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write abstract numbering definitions including the levels. Not all of the information is written yet, but will be soon ;-) 2009-02-17 12:22:00 +0100 kendy r268038 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Implementation of the abstract numbering definitions, not yet finished. 2009-02-17 12:21:39 +0100 kendy r268037 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output numbering definition instances. Abstract numbering definitions are still TODO. 2009-02-17 12:21:21 +0100 kendy r268036 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename OutListTab() -> NumberingDefinitions(), and OutListTabLevels() -> AbstractNumberingDefinitions(). This is better aligned with what is used in the docx documentation. 2009-02-17 12:21:00 +0100 kendy r268035 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Changed the ColorToHex to support the "auto" value Code cleaning according to kendy's remarks 2009-02-17 12:20:37 +0100 kendy r268034 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> table horizontal merge 2009-02-17 12:20:15 +0100 kendy r268033 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> impl_convertColor() is not necessary, we already have impl_ColorToHex(). 2009-02-17 12:19:52 +0100 kendy r268032 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx Line numbering 2009-02-17 12:19:31 +0100 kendy r268031 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> docx: Implemented Section Types 2009-02-17 12:19:09 +0100 kendy r268030 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> FIX for borders: documents with no section border didn't wrote completely 2009-02-17 12:18:50 +0100 kendy r268029 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Fixed some output errors for paragraphs borders 2009-02-17 12:18:31 +0100 kendy r268028 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Fixed docx page border export problems and added color support 2009-02-17 12:18:13 +0100 kendy r268027 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Beginning of page borders implementation 2009-02-17 12:17:54 +0100 kendy r268026 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * export line arrow ends 2009-02-17 12:17:34 +0100 kendy r268025 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * make helper function GetLineArrow public so that it can be used in ooxml export put it in EscherPropertyContainer class (static method) 2009-02-17 12:17:16 +0100 kendy r268024 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> renamed AppendRelation to AddRelation. 2009-02-17 12:16:58 +0100 kendy r268023 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Fixed hyperlinks style. Fixed having a run of text before the hyperlink 2009-02-17 12:16:39 +0100 kendy r268022 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Initialize m_pHyperlinkAttrList to NULL. 2009-02-17 12:16:17 +0100 kendy r268021 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> Fixed the Hyperlink output Partly fixed the language Id output 2009-02-17 12:15:54 +0100 kendy r268020 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * fix type mismatch in gradient code * add flip and rotation parameters to shape transformation 2009-02-17 12:15:29 +0100 kendy r268019 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * finished gradient fill 2009-02-17 12:15:07 +0100 kendy r268018 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> + docx URL export: output is still wrong 2009-02-17 12:14:44 +0100 kendy r268017 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * export linear and axial gradients 2009-02-17 12:14:27 +0100 kendy r268016 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * export line joint type 2009-02-17 12:14:05 +0100 kendy r268015 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * export dashed lines 2009-02-17 12:13:48 +0100 kendy r268014 : #i96319# WW8 filter rework + docx export From: Cedric Bosdonnat <cbosdonnat@novell.com> cast problems fixed 2009-02-17 12:13:25 +0100 kendy r268013 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> * added outline export * wrapped debug printfs in DBG * fix text color and typeface placement * do not write empty runs * do not write empty paragraph properties * added end paragraph properties - need to be filled later 2009-02-17 12:13:02 +0100 kendy r268012 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> export language and fonts are now accepted by msppt 2009-02-17 12:12:44 +0100 kendy r268011 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> re-enable pptx export - it was disabled by ooxml02 changes committed to git repo 2009-02-17 12:12:22 +0100 kendy r268010 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> fix build 2009-02-17 12:12:04 +0100 kendy r268009 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Merge ooxml02 fixes. 2009-02-17 12:11:43 +0100 kendy r268008 : #i96319# WW8 filter rework + docx export From: Radek Doulik <rodo@novell.com> move drawingml export to oox/ from sd/ 2009-02-17 12:11:20 +0100 kendy r268007 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Revert commit 8b63649bf0a5d14703459bbf31e1599d592a5dff. It was already fixed easier way. 2009-02-17 12:11:00 +0100 kendy r268006 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> oox fixes to help sc compile... * inc/oox/core/contexthandler2.hxx, inc/oox/drawingml/chart/modelbase.hxx, inc/oox/drawingml/customshapeproperties.hxx, inc/oox/helper/attributelist.hxx, inc/oox/ppt/pptimport.hxx, inc/oox/ppt/slidepersist.hxx: #include <oox/core/tokens.hxx> not "tokens.hxx" as these files are deployed into solver, and there is no "tokens.hxx" in other modules (such as sc). * prj/d.lst: Deliver enough header files to let sc build some more... 2009-02-17 12:10:34 +0100 kendy r268005 : #i96319# WW8 filter rework + docx export From: Jonathan Pryor <jpryor@novell.com> Deliver tablestylelist.hxx. * d.lst: Deliver inc/oox/drawingml/table/tablestylelist.hxx, as it's needed by sc export. 2009-02-17 12:10:13 +0100 kendy r268004 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix few warnings in sw, and disable DocxExport::WriteNumbering() for now. 2009-02-17 12:09:56 +0100 kendy r268003 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Add empty implementations of 2 abstract import XmlFilterBase methods. To be able to instantiate DocxExportFilter again... 2009-02-17 12:09:35 +0100 kendy r268002 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Resolve an unresolved, forgotten chunk [GetAttr() -> GetFmtAttr()]. 2009-02-17 12:09:08 +0100 kendy r268001 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Field work seems to compile now. Contains also a rename of OutField() to OutputField() to match better the other changes. 2009-02-17 12:08:46 +0100 kendy r268000 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix build, WriteOutliner() is now in WW8Export. 2009-02-17 12:08:26 +0100 kendy r267999 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> OutListTab() split into 2 methods [OutListTab() and OutListTabLevels()]. Also introduced a general WW8Export::WriteNumbering() which calls the needed methods. OutListTabLevels() is planned to be reused in docx export as well. 2009-02-17 12:08:09 +0100 kendy r267998 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> DupNumRuleWithLvlStart() renamed to DuplicateNumRule(). 2009-02-17 12:07:40 +0100 kendy r267997 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Check for max numbering level can be in ParaNumRule(). 2009-02-17 12:07:20 +0100 kendy r267996 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Few whitespace changes. 2009-02-17 12:06:49 +0100 kendy r267995 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> GetId( const SwNumRule& rNumRule ) should not be const. If the first thing it does is a const_cast<...>( this ), then something is wrong ;-) 2009-02-17 12:06:29 +0100 kendy r267994 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Redlining: Save author and date. 2009-02-17 12:06:07 +0100 kendy r267993 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output redlining. So far just insertion and deletion of text, and without author and timestamp. 2009-02-17 12:05:45 +0100 kendy r267992 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write the font table. 2009-02-17 12:05:27 +0100 kendy r267991 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Get ready to output the fonts. 2009-02-17 12:05:06 +0100 kendy r267990 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix namespace of relation id, and output of headers and footers works now... It's r:id, not w:id ;-) 2009-02-17 12:04:40 +0100 kendy r267988 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write actual headers and footers in docx. #i96319# WW8 filter rework + docx export 2009-02-17 12:04:17 +0100 kendy r267987 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> A small cleanup. 2009-02-17 12:04:00 +0100 kendy r267986 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix the regression, caused by SetupSectionPositions() not being virtual (accidentally). 2009-02-17 12:03:40 +0100 kendy r267985 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> another iteration of numbering, utterly broken, but not crashing anything 2009-02-17 12:03:18 +0100 kendy r267984 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> SectionProperties() code is now common for binary and docx. Unfortunately binary output does not pass the tests now. 2009-02-17 12:02:49 +0100 kendy r267983 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Improving the SectionProperties() method to be shared between ww8 and docx. Not there yet, but getting closer ;-) The docx code is still a placeholder only. 2009-02-17 12:02:29 +0100 kendy r267982 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> some more work towards the numbering.xml 2009-02-17 12:02:08 +0100 kendy r267981 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Get rid of rLnNumInfo and aLineNum. 2009-02-17 12:01:44 +0100 kendy r267980 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> We are in attribute output already. 2009-02-17 12:01:21 +0100 kendy r267979 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Get rid of unsigned int nHdFtGroup. 2009-02-17 12:01:03 +0100 kendy r267978 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Introduce WW8AttributeOutput::SectionProperties(). The goal is to share this between ww8 and docx. 2009-02-17 12:00:45 +0100 kendy r267977 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Be careful, m_pSections/CurrentSectionInfo() might be NULL. 2009-02-17 12:00:22 +0100 kendy r267976 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write section properties even for the last section. 2009-02-17 11:59:59 +0100 kendy r267975 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output sections (w:sectPr) and columns. 2009-02-17 11:59:34 +0100 kendy r267974 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> WW8_SepInfo: Move to constructor, what belongs there. 2009-02-17 11:59:14 +0100 kendy r267973 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Remove an obsolete commented out piece. 2009-02-17 11:58:53 +0100 kendy r267972 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output columns break (when the section has more columns). 2009-02-17 11:58:35 +0100 kendy r267971 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Hook the output of the docx sections to the right place. 2009-02-17 11:58:17 +0100 kendy r267970 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename OutputSfxBreakItems() to OutputSectionBreaks(). 2009-02-17 11:57:58 +0100 kendy r267969 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Remove an non-needed comment, add an interesting one. 2009-02-17 11:57:39 +0100 kendy r267968 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Get rid of OutputPageSectionBreaks(), dissolve it into other methods. 2009-02-17 11:57:19 +0100 kendy r267967 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix regression in AttributeOutputBase::FormatBreak(). git bisect, thank you so much! :-) 2009-02-17 11:57:00 +0100 kendy r267966 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Move pDop and pFib to WW8Export. 2009-02-17 11:56:42 +0100 kendy r267965 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Implement DocxExport::PrepareNewPageDesc(). 2009-02-17 11:56:24 +0100 kendy r267964 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Improve WW8Export::PrepareNewPageDesc(). 2009-02-17 11:56:04 +0100 kendy r267963 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Move part of WW8_WrPlcSepx::OutHeaderFooter() to MSWordExportBase::WriteHeaderFooterText(). 2009-02-17 11:55:27 +0100 kendy r267961 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Share OutHeader() nad OutFooter() (remove copy'n'paste). 2009-02-17 11:55:06 +0100 kendy r267960 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename WriteKFTxt1() to WriteHeaderFooterText() and move it to MSWordExportBase. 2009-02-17 11:54:41 +0100 kendy r267959 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> extracting the ParaNumRule to MSWordExportBase 2009-02-17 11:54:20 +0100 kendy r267958 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> write out w:numPr node into document.xml + converting some tabs to 4 spaces 2009-02-17 11:53:56 +0100 kendy r267957 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> MSWordSections split into the base and WW8 specific (WW8_WrPlcSepx). [WW8_WrPlcSepx was the original name of MSWordSections - let it there to decrease confusion ;-)] 2009-02-17 11:53:31 +0100 kendy r267956 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix docx export crash by initializing pSepx. 2009-02-17 11:53:11 +0100 kendy r267955 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> MSWordExportBase::OutputPageSectionBreaks() is now common for binary and docx. 2009-02-17 11:52:48 +0100 kendy r267954 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> AttributeOutputBase::FormatPageDescription() is now common for binary and docx. 2009-02-17 11:52:28 +0100 kendy r267953 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> write an empty numbering stream 2009-02-17 11:52:06 +0100 kendy r267952 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> some more of the spacing 2009-02-17 11:51:39 +0100 kendy r267951 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename WW8_WrPlcSepx to MSWordSections. 2009-02-17 11:51:19 +0100 kendy r267950 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Move pSepx initialization to the WW8_WrPlcSepx constructor. 2009-02-17 11:50:53 +0100 kendy r267949 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fixed styles id's (in styles.xml). Now the styles seem to work pretty well. 2009-02-17 11:50:33 +0100 kendy r267948 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename AttributeOutput's Style() to ParagraphStyle(), that is more correct. 2009-02-17 11:50:11 +0100 kendy r267947 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> FormatBreak() is now in the common AttributeOutputBase. And pageBreakBefore works now... 2009-02-17 11:49:49 +0100 kendy r267946 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Few obvious m_rWW8Export -> GetExport() in WW8AttributeOutput::FormatBreak(). 2009-02-17 11:49:28 +0100 kendy r267945 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Add PageBreakBefore() to AttrbuteOutput's. It's a preparation for moving FormatBreak() to the generic AttributeOutputBase, and also kills some copy and paste. 2009-02-17 11:49:08 +0100 kendy r267944 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Debug output of attributes is not needed any more, remove. 2009-02-17 11:48:46 +0100 kendy r267943 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Don't create a new AttributeOutput in WW8_WrPlcSepx::WriteKFTxt(). 2009-02-17 11:48:25 +0100 kendy r267942 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Move pEnd and pFtn from MSWordExportBase to WW8Export. 2009-02-17 11:48:03 +0100 kendy r267941 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Now outputting footnotes and endnotes. Their styles are not output correctly yet, thus the number of the footnote resp. endnote is not distinguished from the text of the paragraph. Another problem that <w:endnoteRef/> is missing. 2009-02-17 11:47:42 +0100 kendy r267940 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output of footnote/endnote references. And it's prepared for the output of footnote.xml resp. endnote.xml as well. 2009-02-17 11:47:21 +0100 kendy r267939 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> some more para properties: widows control, para-splitting and incomplete implementation of spacing 2009-02-17 11:46:59 +0100 kendy r267938 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Make a bit more obvious what's happenning with AttributeLists. 2009-02-17 11:46:38 +0100 kendy r267937 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Part of the footnote/endnote stuff is shared now between binary and docx. It is just a small part, but better than nothing ;-) I'm not sure that sharing more is possible/reasonable at all... 2009-02-17 11:46:16 +0100 kendy r267936 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> adding paragraph indentation 2009-02-17 11:45:56 +0100 kendy r267935 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename AddWordBookmark() -> AppendWordBookmark(). 2009-02-17 11:45:36 +0100 kendy r267934 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Remove 2nd param from AppendBookmark(), nobody was using that anyway. 2009-02-17 11:45:19 +0100 kendy r267933 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Readability improvements in WW8_WrPlcSubDoc::WriteGenericPlc(). 2009-02-17 11:44:53 +0100 kendy r267932 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Better readable WW8_WrPlcSubDoc::WriteGenericTxt(). 2009-02-17 11:44:35 +0100 kendy r267931 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Move WriteSpecialText() from WW8Export to MSWordExportBase. 2009-02-17 11:44:12 +0100 kendy r267930 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Support for color value 'auto' - used often in the styles. 2009-02-17 11:43:48 +0100 kendy r267929 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Comment the mark()/mergeTopMarks() magic for paragraphs + par. properties. 2009-02-17 11:43:31 +0100 kendy r267928 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Remove the styles debug output. 2009-02-17 11:43:14 +0100 kendy r267927 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output of styles reworked. The ooxml stuff is implemented as well, but not tested yet. 2009-02-17 11:42:54 +0100 kendy r267926 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Output word/styles.xml - empty one for now. 2009-02-17 11:42:36 +0100 kendy r267925 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> Paragraph properties framework + tab stop + paragraph justification + converting some tabs to 4 spaces 2009-02-17 11:42:18 +0100 kendy r267924 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> More preparations for outputting the styles table in docx. 2009-02-17 11:41:56 +0100 kendy r267923 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Initialize pStyles even for docx. MSWordStyles was changed so that it can be initialized from any pDoc, it needs WW8Export just for writing ww8 styles. 2009-02-17 11:41:36 +0100 kendy r267922 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename WW8WrtStyle to MSWordStyles. 2009-02-17 11:41:14 +0100 kendy r267921 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Uncomment nStyleBeforeFly = GetId( lcl_getFormatCollection( *this, &rNode ) ); 2009-02-17 11:40:50 +0100 kendy r267920 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> oops, write actually the lang property 2009-02-17 11:40:24 +0100 kendy r267919 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> character kerning and character language 2009-02-17 11:40:06 +0100 kendy r267918 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> implement font names and also the asian layout part of run properties 2009-02-17 11:39:41 +0100 kendy r267917 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> this looks like a typo, it should be EndBracket for this one, I assume 2009-02-17 11:39:21 +0100 kendy r267916 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> removing some unnecessary warnings 2009-02-17 11:38:56 +0100 kendy r267915 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> OutputTableNode() finally moved to MSWordExportBase. EndTableRow() from *AttributeOutput gets too much parameters now, but unfortunately, at the moment it was the easiest solution. As more functionality will move to the actuall cell output, this will get a bit nicer I hope ;-) 2009-02-17 11:38:36 +0100 kendy r267913 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Trivial output of table cells. Still not complete, OutputTableNode() still contains some WW8-only stuff. 2009-02-17 11:38:10 +0100 kendy r267912 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Reduced code in DocxAttributeOutput::RunText()/impl_RunText(). 2009-02-17 11:37:51 +0100 kendy r267911 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> handle also tabs :) 2009-02-17 11:37:28 +0100 kendy r267910 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> generically filter out any character that is ascii < 0x20 from the string we write to the file 2009-02-17 11:37:10 +0100 kendy r267909 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> wrap debug output in #if #endif statements 2009-02-17 11:36:48 +0100 kendy r267908 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> StartTableRow(), EndTableRow(), and TableRowProperties() for *AttributeOutput. And the appropriate rework in OutputTableNode() (still no ooxml output yet, but getting closer. 2009-02-17 11:36:29 +0100 kendy r267907 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> StartTable() and EndTable() for *AttributeOutput. And the appropriate rework in OutputTableNode() [which is still let in WW8Export, but it's move to MSWordExportBase is close ;-)]. 2009-02-17 11:36:09 +0100 kendy r267906 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Improve readability in OutputTableNode; Out_SfxBreakItems -> MSWordExportBase. Out_SfxBreakItems was also renamed to OutputSfxBreakItems. 2009-02-17 11:35:50 +0100 kendy r267905 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Cosmetic change: OutputFlyFrameImpl() -> OutputFlyFrame_Impl(). 2009-02-17 11:35:30 +0100 kendy r267904 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Change WW8SaveData into SaveData() and RestoreData() methods. WW8SaveData was hard to extend to be able to handle WW8Export and DocxExport at the same time; so instead there are now SaveData() and RestoreData() virtual methods in MSWordExportBase, and the appropriate additions are solved directly in WW8Export (nothing for DocxExport [yet?]). 2009-02-17 11:35:12 +0100 kendy r267903 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Write line breaks. 2009-02-17 11:34:54 +0100 kendy r267902 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> More from WW8Export::ExportDocument_Impl() to MSWordExportBase::ExportDocument(). 2009-02-17 11:34:36 +0100 kendy r267901 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename StoreDoc() to ExportDocument(), and move it to MSWordExportBase. The format-dependant parts were moved to a virtual ExportDocument_Impl(). 2009-02-17 11:34:19 +0100 kendy r267900 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Explicitely default construct maMarkStack [to be safe ;-)]. 2009-02-17 11:34:01 +0100 kendy r267899 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fix few crashes in DocAttributeOutput.cxx (missing FSNS() in vararg). 2009-02-17 11:33:43 +0100 kendy r267898 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Rename writeMarked() to mergeTopMarks() and improve the implementation. Just writing the top mark is not enough; in more complex scenarios it would destroy the order completely. This way we have better control over what's happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as necessary directly in the start/end tags. 2009-02-17 11:33:25 +0100 kendy r267897 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Use serializer's mark() and writeMarked() to change order of <t> and <rPr> ... instead of using m_aText to remember the content of the text. That wouldn't work later anyway - we will probably need to change the order of the paragraph properties and text runs as well which will be done easily using mark() and writeMarked() as well. 2009-02-17 11:33:06 +0100 kendy r267896 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Outputting docx runs with attributes works now. 2009-02-17 11:32:48 +0100 kendy r267895 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> The msword filter compiles again. Added empty implementations of the virtual methods to DocxExport and DocxAttributeBase [printing 'TODO Blah::bleh()' ;-)]. The thing binary output still passes the testsuite, yay! 2009-02-17 11:32:30 +0100 kendy r267894 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> OutputTextNode() is not virtual any more and sits in MSWordExportBase. Lots of stuff has been moved around again - mostly from WW8Export to MSWordExportBase (for the gerenalized stuff) and to WW8AttributeOutput (for the 'hardcore' output of bytes/sprms/data/...) At the moment, it compiles, but the docx part of the filter does not link thanks to the missing implementation of DocxAttributeOutput methods (the new ones). 2009-02-17 11:32:11 +0100 kendy r267893 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Documentation updates. 2009-02-17 11:31:48 +0100 kendy r267892 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Change harcoded sprm ids to consts (reused from writerfilter). This adds a build dependency of sw on writerfilter - hopefully it's OK. 2009-02-17 11:31:28 +0100 kendy r267891 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Get rid of *NodeOutput classes, the code belongs directly to *Export. The callbacks I moved to newly created classes NodeOutputBase, WW8NodeOutput, or DocxNodeOutput respectively in fact should not be in separate classes, but directy in MSWordExportBase, WW8Export, or DocxExport respectively. This commit moves them accordingly. 2009-02-17 11:31:06 +0100 kendy r267890 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> bUnicode -> m_rWW8Export.bWrtWW8; it's the same in this context. 2009-02-17 11:30:44 +0100 kendy r267889 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Remove unnecessary {} block. 2009-02-17 11:30:24 +0100 kendy r267888 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Several German comments to English. 2009-02-17 11:30:08 +0100 kendy r267887 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Move pO cleanup directly into aAttrIter.OutAttr(). 2009-02-17 11:29:44 +0100 kendy r267886 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Shorten WW8NodeOutput::TextNode() by moving SwFmtDrop output to a separate method. 2009-02-17 11:29:22 +0100 kendy r267885 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Unified the use of m_rWW8Export.pO in WW8NodeOutput::TextNode(). In some cases, it was used as m_rWW8Export.pO, in the others as only pO (but meaning the same thing). Changed all the occurences to the simple pO to improve readability. 2009-02-17 11:29:00 +0100 kendy r267884 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> and other attributes coming in; we start to have all the more or less easy ones covered now 2009-02-17 11:28:43 +0100 kendy r267883 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> some more attributes are comming in 2009-02-17 11:28:26 +0100 kendy r267882 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Create DocxNodeOutput. The basic one with a trivial implementation of TexNode() method so that it at least outputs all the paragraphs as one text run. 2009-02-17 11:28:03 +0100 kendy r267881 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> WriteText() moved from WW8Export do MSWordExportBase. And some refactoring implied by the move. 2009-02-17 11:27:35 +0100 kendy r267880 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> some more character attributes implemented 2009-02-17 11:27:18 +0100 kendy r267879 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> some text attributes + build fixes (not very informative, but it is me) 2009-02-17 11:26:57 +0100 kendy r267878 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> WW8Export holds an instance of WW8NodeOutput. Instead of creating a new one with every call of WW8Export::WriteText(). 2009-02-17 11:26:35 +0100 kendy r267877 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Get rid of aWW8NodeFnTab callbacks. Introduce NodeOutputBase/WW8NodeOutput instead, and change the OutWW8_* functions to the WW8NodeOutput methods. 2009-02-17 11:26:13 +0100 kendy r267876 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> pCurPam and pOrigPam back to MSWordExportBase. Looks necessary there... 2009-02-17 11:25:52 +0100 kendy r267875 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> DocxAttributeOutput implementation. So far just bare bones printing TODO's to stderr + output of real <w:b/> and <w:i/>; also nothing instantiates it yet. 2009-02-17 11:25:30 +0100 kendy r267874 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Fixed a problem that more attributes were exported than necessary. 2009-02-17 11:25:10 +0100 kendy r267873 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Moving more stuff from MSWordExportBase to WW8Export. pCurPam and pOrigPam, pO, and pTableStream and pDataStream. Hopefully I won't have to move them back at some stage ;-) 2009-02-17 11:24:49 +0100 kendy r267872 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Cosmetic. 2009-02-17 11:24:27 +0100 kendy r267871 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> fix nondebug build too 2009-02-17 11:24:07 +0100 kendy r267870 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> After rework - even saves a trivial document :-) 2009-02-17 11:23:45 +0100 kendy r267869 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> SwWW8Writer and the attributes rework compiles now. Of course, no idea yet if it works at all. 2009-02-17 11:23:25 +0100 kendy r267868 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Ancestor of MSWordExportBase for docx. Just a dump of the work, still just writing the 'Hello, world!' document [if it compiled, which it does not ;-)] 2009-02-17 11:23:03 +0100 kendy r267867 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Instead of callbacks, use virtual functions to output attributes. This is just a dump of the rewrite, for sure does not compile. All the SwWW8Out_ callbacks were moved to a class dedicated for output - WW8AttributeOutput. It is a descendant of AttributeOutputBase; there will be a separate implementation for the docx case. 2009-02-17 11:22:43 +0100 kendy r267866 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Partial split of SwWW8Writer. Introduced a new structure - the logic of the filter will be in class MSWordExportBase, from which we will derive WW8Export and DocxExport. SwWW8Writer has been split into WW8Export (for the logic) and SwWW8Writer (for the actual access to the stream). For most of the methods it means renaming SwWW8Writer::MethodName() to WW8Export::MethodName() + cleaning access to the attributes/other methods. All this is not finished yet, and does not even compile - but it is necessary to dump the current status ;-) 2009-02-17 11:22:25 +0100 kendy r267865 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> do the filter forwarding the pure UNO way (hell expensive, but no build dependency on anything) 2009-02-17 11:22:06 +0100 kendy r267864 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> yay, we have the same component doing the import and export for word 2007 2009-02-17 11:21:46 +0100 kendy r267863 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> more work towards having the import and export in the same component 2009-02-17 11:21:20 +0100 kendy r267862 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> starting to forward export in writerfilter 2009-02-17 11:20:58 +0100 kendy r267860 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> trying to fix some of the registration stuff 2009-02-17 11:20:35 +0100 kendy r267859 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Exporting a real document. So far just a hardcoded 'Hello, world!' of course ;-) 2009-02-17 11:20:13 +0100 kendy r267858 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Renamed DocxWriter to DocxExportFilter. (...and also the files that contain it) 2009-02-17 11:19:52 +0100 kendy r267857 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> The initial exporter. Can be chosen from the menu, but so far we can just get a SwDoc* in the exportDocument() method, and consequently the exported file has zero size. 2009-02-17 11:19:30 +0100 kendy r267854 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Simple output of the styles. As just the <w:b/> and <w:i/> attributes work for now, the output is not much helpful ;-) - but as a proof-of-concept, this must be enough... 2009-02-17 11:15:14 +0100 kendy r267852 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> The fonts are between <w:fonts> and </w:fonts>. 2009-02-17 11:11:06 +0100 kendy r267851 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Proof-of-concept saving the fonts (word/fontTable.xml). As with the previous commits, it is just dumped to stderr. 2009-02-17 11:08:36 +0100 kendy r267850 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Proof-of-concept saving attributes of the text runs. Still using the DOCX debug class, which will be gone in the real implementation. 2009-02-17 11:04:40 +0100 kendy r267848 : #i96319# WW8 filter rework + docx export From: Jan Holesovsky <kendy@suse.cz> Proof-of-concept save of paragraphs/runs/text. The paragraph pieces of DOCX just get dumped to stdout while saving the 'normal' DOC. This is just a hacky way of doing it, will be cleaned up (and converted to actual output to a stream) when I get the attributes, and distinction between main document/headers/footers/etc. right. 2009-02-17 11:02:54 +0100 kendy r267847 : #i96319# WW8 filter rework + docx export From: Fridrich Strba <fstrba@novell.com> Make writerfilter export filter too (at least formally) 2009-02-16 22:48:29 +0100 kendy r267840 : CWS-TOOLING: rebase CWS ooxml03 to trunk@267171 (milestone: DEV300:m41)
2009-01-06CWS-TOOLING: integrate CWS ooxml02Rüdiger Timm
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on uninitialised value(s)" within XclFontData::SetApiEscapement(short), as nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a default value. 2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1. 2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots. 2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37) 2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later. 2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry. 2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records. 2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering. This was originally done to increase code sharing between the BIFF & OOXML export code, and was tested as being compatible between several .xls-supporting apps, but it is now felt that the change in ordering will complicate testing more than is desirable. 2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact. 2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export filter (and later for VBA formula parsing). 3) use the English XL A1 grammar for OOXML export. 2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export (and probably useful in the import as well). This will also be used in VBA formulas as well. 2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS. 2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS. 2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings. 2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll. 2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes... 2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes... 2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes... 2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes... 2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement... 2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib. 2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc. 2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-) 2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows. 2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32. 2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows. It should also save some good amount of symbols... 2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can specify what visibility markup should it use. 2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident. 2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC). 2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ... 2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ... 2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here. 2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652# 2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla. 2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build. 2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library 2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate module, and tweak the build to build that way. Fix some existing instances of daft symbol naming around the place. Move headers that are now internal into source/filter/inc Saves ~1.4Mb on a normal calc, on Linux 2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export. 2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes... 2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god. And cry. Warnings fixed: - Duplicate definition of CREATE_OUSTRING. This is caused because of the use of oox within sc/source/filter/excel, and oox has it's own version of CREATE_OUSTRING. Fix things by ensuring that the oox version is always included first, thus allowing the ftools.hxx version to #undef it and provide it's own version. - Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||. - One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense). - Changing parameter names so that they don't hide member variables with the same name. 2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>). 2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++ library. Undo this hybridization, reverting it to a normal UNO component, and place the C++ classes into saxinstead. Update project references to use $(SAXLIB) instead of $(FASTSAXLIB). * oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and use $(SAXLIB) instead. * sax/prj/build.lst: Don't build sax\util, as sax\source\tools now builds the sax library. * sax/source/fastparser/exports.map: Remove; no longer needed. * sax/source/fastparser/facreg.cxx: Change path for fastserializer.hxx. * sax/source/fastparser/fastattribs.cxx, sax/source/fastparser/fastserializer.cxx, sax/source/fastparser/fastserializer.hxx, sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools. * sax/source/fastparser/makefile.mk: Use appropriate UNO naming convention; link against $(SAXLIB) (which now contains FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now built by tools); use component.map instead of export.map (removed). * sax/source/tools/makefile.mk: Build sax library instead of building a saxtools.lib file. The sax library now contains FastAttributeList, FastSaxSerializer, and FastSerializerHelper. * scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not libfastsax. 2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning. 2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem Actually, it should be built as evoab2, not evoab; it should be possible to have both at the same time... 2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now. 2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to be accessible from other shared libraries. (Hopefully this'll work...) * sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add SAX_DLLPUBLIC to class declarations so that they'll be visible from other shared libraries. 2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes. * xestream.cxx: FilterBase now requires that an XModel be provided so that FilterBase::filter() will actually _do_ anything useful, so call FilterBase::setSourceDocument() so that it has one. 2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install process as 2nd installation try fails). Thanks to Radek Doulik <rodo@novell.com> for the patch. 2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux. * connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a proper type declaration (`:.connectivity::SharedResource'? wtf?!), and use a type that actually exists. /me suspects that this was a bad case of regex search & replace without actually making sure things compiled... * connectivity/source/drivers/evoab2/NStatement.cxx: - #include <resource/common_res.hrc> so that the symbol STR_QUERY_TOO_COMPLEX can be found. - Use a variable that actually has the throwGenericSQLException() method... 2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> getTableStyles() needs to be a member of XclExpXmlStream... 2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix runtime crash due to sending a non-POD type through a ... function. * sc/source/filter/excel/xestyle.cxx: Stupid fix: s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!). 2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix sc build problems... * excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection, XclExpProtection references (these don't exist here); remove compiler warnings & errors (AddSdrPage prototype changed?!). * excel/expop2.cxx: XclEscher constructor changed; deal. * excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some additional abstract members; implement them so we're a concrete type. 2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate 2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Flush, Flush, Flush... 2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/numFmts/numFmt support. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate /styleSheet/numFmts/numFmt. 2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/colors/indexedColors/rgbColor. Also generates /worksheet//col/@style. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate /styleSheet/colors/indexedColors/rgbColor. * sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style. 2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Correct /worksheet//row/@s and /worksheet//row/@ht logic. We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML //row/@ht is a value in points, resulting in _huge_ row heights when opening the document in Excel. Oops. * sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht. 2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/cellXfs/xf/@xfId. Now that I understand what this field is supposed to contain... * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate /styleSheet/cellXfs/xf/@xfId. 2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Document current state of style support. 2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Style Index Support, Take 3! The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems to persist for quite some time, and is later "corrected" to the correct style index in XclExpXFBuffer::GetXFIndex(). This leads to all sorts of problems for me, though, as XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and it wasn't easy to get a "valid" nXFId value. Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but nXFIndex::index maps. (nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order that BIFF Excel export uses.) Since the nXFId::nXFIndex map logic must work (it's required for BIFF support), we can rely on this logic via a nXFIndex::xml-index map, allowing us to export correct style indexes. Now things Just Work (at least until I find another set of bugs...). * sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify) maCellIndexes and maStyleIndexes initialization, so that XclExpRkCell can get proper style indexes. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Rewrite XclExpBlankCell and XclExpRkCell XML generation to more closely mimic BIFF generation (thus allowing us to more sanely deal with the XclExpMultiCellBase "chaining" semantics). 2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Correct font export within xl/styles.xml. The problem is that BIFF export inserts a "blind" font to appease older versions of Excel, but Excel/OOXML does not want the blind font. So instead of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to be wrong because the @fontId is counting a font that isn't present -- we just don't use XclExpBlindFont with OOXML output. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Don't override+implement XclExpBlindFont::SaveXml(), and instead don't add a XclExpBlindFont() record for OOXML export. 2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Enable export of blank cells. Blank cells can contain formatting information (background color, borders, etc.), and XclExpBlankCell was previously overlooked. :-( * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Export /worksheet//c elements for blank cells. 2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Start implementing /worksheet/cols/col/c/@s attribute. This allows Style information to be set for cells. It currently works for background color on cells with text; still needs work to support ~everything. * sc/source/filter/excel/xetable.cxx: Generate the /worksheet/cols/col/c/@s attribute so that it contains the Cell XF which contains the appropriate formatting information. 2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix "Excel yells when importing a document that sets cell background color." i.e. styles weren't quite right (shock!). In this case, the issues were: - I wasn't distinguishing between *Cell* XFs and *Style* XFs. - //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't generating //cellStyleXfs. Thus, if //cellStyle was present, Excel yelled. - "Indexes" were *completely* wrong. BIFF only has a single set of indexes to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_ sets: //cellXfs and //cellStyleXfs, each of which are referenced "by index" from other XML parts (and from _this_ XML part, via //cellStyle/@xfId - above). - We needed to export builtin styles. So *now*, if you create an empty Calc document, set a cell background color, save, and load into Excel, it will load without error. You *still* won't see the proper cell background color in Excel, but at least it loads w/o error (which wasn't previously true). * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see above for the details). 2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Er, yeah. 2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Remove deliberate segfault-inducing code. 2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Allow Excel to open a document that changes a cell background. Note: it still doesn't *work* yet (as we don't set the cell's @s property so Excel reads the appropriate style), but it does LOAD w/o error now. This is progress. * sc/source/filter/excel/xestyle.cxx: Lots 'o changes; - Exclude the <bgColor/> and <fgColor/> children of //patternFill if the colors aren't actually set. - Don't export //xf/@xfId, as I'm not sure wtf this is supposed to contain yet. - Enhance the Border/Fill lists created last time so it behaves properly: use custom predicates to check for equality (no idea what the default operator== does; it's probably wrong); don't use AddBorderAndFill() at all the "entry" points as this misses cells, instead process all cells within XclExpXFBuffer::Finalize() and add borders/fills there (thus ensuring we hit all cells); Assert that the border/fill id values are valid. - Add a default set of fills. Excel complains loudly if you're missing these fills, so make sure they're always present. - //borders/@count should contain the *Borders* count, not the Fills count. Oops. 2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Continue style support. Excel can now (again!) open Calc-generated spreadsheets. Compared to other parts, this was a mess, mostly because (for the first time) the XML format did NOT closely match the pre-existing binary format. It's reasonably close, but some additional mapping is necessary. In particular, in BIFF the XF records contain "inline" the border and fill information. In OOXML this information is referred to "by-index"; consequently we need to create an internal table of borders & fills so that we can then determine the by-index value for borders and fills. :-( Furthermore, my previous `font support` commit was broken: it removed duplicate fonts. While this *sounds* like a good idea (look ma, smaller files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is an index into this font list (_with_ duplicate values). Removing the duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which causes Excel to complain (and no end of grief for me). All told, this adds support for: /styleSheet/borders, /styleSheet/borders/border, /styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal, /styleSheet/borders/border/left, /styleSheet/borders/border/right, /styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf, /styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection, /styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill, /styleSheet/fills/fill/patternFill/bgColor, and /styleSheet/fills/fill/patternFill/fgColor. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Get xl/styles.xml into an actual Excel-loadable condition. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOString(Color). 2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/fonts/font. This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset, /styleSheet/fonts/font/color, /styleSheet/fonts/font/condense, /styleSheet/fonts/font/extend, /styleSheet/fonts/font/family, /styleSheet/fonts/font/i, /styleSheet/fonts/font/name, /styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow, /styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz, /styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign. Missing is: /styleSheet/fonts/font/scheme, * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take a `sal_Int32 nFontId' parameter, which is the element to write to contain the font name. This is necessary as the shared string table wants to use XML_rFont for the font name, while //fonts/font wants XML_name for the font name. * sc/source/filter/excel/xestring.cxx: WriteFontData() change. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate </styleSheet> element (oops), and generate /styleSheet/fonts/font/** for all unique fonts. 2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes(). Also adds XclExpXmlStream::WriteFontData(). The WriteCurrentStreamAttributes() to WriteAttributes() change was done so that method names would have a reasonable length, and adding WriteCurrentStreamFontData() was looking like an ugly pattern continuation. XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData generation. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestring.cxx: s/WriteCurrentStreamAttributes/WriteAttributes/g, add WriteFontData() ("moved" from xestring.cxx). * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/excrecds.cxx, sc/source/filter/excel/xepage.cxx, sc/source/filter/excel/xerecord.cxx, sc/source/filter/excel/xestream.cxx, sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes. 2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Begin style support. * sc/source/filter/excel/excdoc.cxx: For OOXML output, create an XclExpXmlStyleSheet instance instead of generating FONTLIST, FORMATLIST, XFLIST, and PALETTE separately, as these need to be written to a separate .zip part. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Begin generating the xl/styles.xml part. 2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> =?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit This generates the /xl/commentsN.xml files (N == sheet index number). This is only a partial generation because Excel requires that a drawing object be associated with the comment in order to display it. No drawing object, and instead Excel displays a dialog warning that the comments could not be displayed. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to generate the appropriate commentsN.xml file, as the commentsN.xml file needs to write information about *all* of the comments (author information), so we can't just write out the XclExpNotes individually. * sc/source/filter/xcl97/xcl97rec.cxx, * sc/source/filter/excel/xecontent.cxx: Cope with XclExpXmlStream::CreateOutputStream() changes. * sc/source/filter/inc/xeescher.hxx, sc/source/filter/excel/xeescher.cxx: Add and implement XclExpComments, and add XML generation to XclExpNote. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Change XclExpXmlStream::CreateOutputStream() to take full and relative paths (instead of trying to cosntruct a full/relative path based on the parameters). This was necessary because commentsN.xml needs to insert a relative path of e.g. "../comments1.xml", which the previous implementation would have made difficult. I think this makes things clearer and less magical as well. 2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement most of the Shared String Table support. Previously we generated /sst/si/t, which supports non-formatted text. Now we support formatting within a cell -- AS LONG AS the formatting isn't applied to the first character/token. (The first character/token requires formal styles support, which is lacking; everything after character position 1 can be handled within the shared string table.) Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color, /sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline, /sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow, /sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u, /sst/si/r/rPr/vertAlign, and /sst/si/r/t. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml() to generate string values, instead of assuming everything is unformatted /sst/si/t elements. * sc/source/filter/inc/xestring.hxx, sc/source/filter/excel/xestring.cxx: Add and implement XclExpString::WriteXml(), which now handles formatted text runs. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Change XclXmlUtils::ToOUString(ScfUInt16Vec) to XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be easily used for substrings; add asserts to XclXmlUtils::To*String(XclExpString) to ensure that we're not dealing with formatted text there (as formatted text needs to go through XclExpString::WriteXml(), but these methods are often used for attribute values which cannot have formatted text). 2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Update of TODO. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. 2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Add /Relationships/Relationship/@TargetMode support. This also fixes Calc hyperlink export, allowing Excel to properly read documents containing a hyperlink. * sc/source/filter/excel/xecontent.cxx: Generate "External" for the hyperlink's TargetMode property, so that Excel will load the generated spreadsheet without error. 2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> I think this was what was meant 2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Allow Excel to open documents w/ all contents selected. Previously, if you selected all cells (Ctrl+A) then saved, the //selection/@sqref attribute would contain "A:IV", which Excel didn't like. * sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL value to hit ScRange::Format(), thus avoiding the "missing row numbers" issue. 2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> (Mostly) Implement /worksheet/hyperlinks/hyperlink. The only piece missing is error-free Excel import, and in order for Excel to import a generated document error-free is for the sheetN.xml.rels document to contain a /Relationships/Relationship/@TargetMode attribute, e.g. <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/> I'm not sure how to add this functionality yet. * sc/source/filter/excel/excdoc.cxx: Generate the /worksheet/hyperlinks start and end elements, if appropriate. * sc/source/filter/inc/xecontent.hxx, sc/source/filter/excel/xecontent.cxx: Generate the /worksheet/hyperlinks/hyperlink element * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOUString(XclExpString). 2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement AutoFilter support. This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn, /worksheet/autoFilter/filterColumn/top10, /worksheet/autofilter/filterColumn/customFilters, and /worksheet/autofilter/filterColumn/customFilter. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*. * sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter adds a "defined name" with an empty string (!), so change XclExpName::SaveXml() to skip entries with empty names. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Declare and implement a specialization for XclExpValueRecord<double>::SaveXml(). This is necessary because Fridrich's change to XclExpValueRecord::SaveXml() (to case maValue to sal_Int32) broke double exports (as it cast the double to a sal_Int32, thus truncating the value). Since we don't want to re-add the ambiguity warning, we need to specialize so that `double' output uses the correct rtl::OString::valueOf() method. 2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix OOXML Calc export so that documents containing > 1 feature work. While most previous features worked -- you could create a document using the feature, save it, and open it in Excel w/o issue -- they worked in isolation. So in trying to create a single test document to test as many features as possible, things (expectedly) broke, so this fixes things up. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx, sc/source/filter/excel/excrecds.cxx: Reorder element output to conform to the OOXML XSD (and allow Excel to read features.xlsx). 2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/autoFilter. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Generate the /worksheet/autoFilter element. 2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate OUString::valueOf calls 2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> (Hopefully) Make Formula Export Locale-Independent. Nice as Kohei's patch was, it relied on formula export being in the same locale as the user's locale. So import into Excel would work for *me* (en-US user), but fail for ~everyone else (i.e. not very useful). This patch is a hack, but has the added benefit that it appears to work: create an ScCompiler::OpCodeMapPtr that's specific to OOXML output, and not cache the results. Not ideal, but enough to progress further... * sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent grammar value (forces ENGLISH, which is what Excel expects). * sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1, create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP. * sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output. 2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix formula export to use ',' to separate parameters instead of ';'. This is just Kohei's calc-formula-variable-separators-sc.diff patch, but it works quite nicely for this. :-) * sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow characters other than ';' to be used as the parameter separator within functions. We don't care so much about permitting people to *enter* such formulas, but this also gives us the ability to *export* such formulas using ',' instead of ';', which Excel requires. 2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Finish initial support for /worksheet/sheetData/row/c. Support for some attributes is missing (such as those storing formatting information), but we now (almost completely) save cell values, errors, boolean cells, and formulas. The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)". This needs to be exported as "SUM(A1,B1)" (note the comma). * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Add formula support for /worksheet/sheetData/row/c. Remove XclExpBlankCell::SaveXml(), as I can't think of anything it would actually need to do. 2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement partial support for /worksheet/sheetData/row/c. This is take 1 of string and value support (//c[@t='s' or @t='n']). Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I have no idea how to test bool and error output without formula support. TESTING: Numbers have two serialization paths: - "RK" numbers, which go through XclExpRkCell. - non-RK numbers, which go thorugh XclExpNumberCell. RK numbers are integers or numbers evenly divisible by 100. All other floating point values (e.g. Pi) are non-RK values. Strings are, well, strings. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Generate /worksheet/sheetData/row/c for strings and numeric values, and stub out support for the other //c types (formulas, errors, boolean values, blank values...). 2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetData/row. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Generate /worksheet/sheetData/row; generate <sheetData/> instead of <sheetData></sheetData> if there are no rows. 2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> =?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. 2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetViews/sheetView. * sc/source/filter/excel/xeview.cxx: Generate attributes for /worksheet/sheetViews/sheetView. 2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetPr/pageSetUpPr. This also partially implements /worksheet/sheetPr, but most of it is TODO. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization for XML output so we can output additional information. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and /worksheet/sheetPtr/pageSetUpPr elements. 2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection. When multiple cells are selected, //selection/@sqref needs to be space separated ("A1 A3 B2") not comma-separated ("A1,A3,B2"). * sc/source/filter/excel/xestream.cxx: Use space as the separator character between ScRanges. 2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /workbook/sheetViews/sheetView/selection. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOString(XclRangeList). * sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx: Generate /workbook/sheetViews/sheetView/selection. 2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> *Actually* implement /worksheet/printOptions. Previously I was emitting /worksheet/printOptions, but neglected to actually emit any attributes for that element. Oops. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx: Use the new 3-argument XclExpBoolRecord constructor to specify the OOXML attribute to generate from SaveXml(). * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to the constructor (default is disabled) so that the caller can specify which attribute to generate instead of having a horrible special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a very scalable solution; this is much better). This isn't perfect, as XclExpBoolRecord::SaveXml() still has some special logic, but it's better than it was... 2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetViews/sheetView/pane. Slightly more complicated than you'd think, as //pane needs to be after //dimension but *before* //sheetData, and previously //dimension was being generated as part of the //sheetData processing (thus making it difficult to interrupt the generation for //sheetViews). * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx: Add FillAsXmlTable(); aRecList now gets filled either as a BINARY (FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was straining my head, and OOXML record ordering is looking to be quite different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that //dimension is generated before //sheetViews. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord. This is needed because I need an ScfRef<XclExpRecordBase> (to insert the DIMENSION record into the correct location), but XclExpDimension is located within another object and thus can't be heap-allocated itself (at least not w/o changing how it works). Thus I instead create an XclExpDelegatingRecord instance which points to the XclExpDimension instance I care about w/o worrying about double freeing or `delete`ing non-`new`d memory... * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOString(XclAddress). * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to the already existing XclExpDimensions instance; change XclExpCellTable::CreateRecord() to (a) make it non-const, and (b) return the appropriate XclExpDimension instance for the EXC_ID3_DIMENSIONS record type. * sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx: Implement /worksheet/sheetViews and /worksheet/sheetViews/sheetView/pane, and partially implement /worksheet/sheetViews/sheetView. * sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the /workbook/workbookProtection/@revisionsPassword attribute, as this causes xmllint XSD Schema validation to fail. 2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet[pageMargins and pageSetup and printOptions]. Note: this change alters the ordering of records in (binary) .xls files as well as .xlsx files. This change does not seem to cause any repercussions; Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint. (The records were reordered to simplify generation of OOXML, as otherwise we'd either have a conditional mess or we'd have code duplication. This seems to work, but can be worked around if deemed necessary.) * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx: Generate /worksheet/pageMargins, /worksheet/pageSetup, and /worksheet/printOptions elements. * sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml() and ExlExpValueRecord<T>::SetAttribute() (needed to generate attributes for some of the above elements). 2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/mergeCells/mergeCell. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xecontent.hxx, sc/source/filter/excel/xecontent.cxx: Generate /worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements. 2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/scenarios, //scenario, //inputCells. "Minor" implementation difficulty (making this patch larger than would normally be required): Scenarios implicitly add a new invisible worksheet (as is noticable if you look at the Calc status bar after clicking Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4"). This extra sheet foiled my (stupid) resource ID mapping which "just happened" to work, allowing rId1::sheet1 mappings. The problem was that it worked only by "luck" (and I'm not exporting too much), and it was bound to break at some point...like now. Consequently in addition to exporting //scenarios et. al, this also adds additional infrastructure to deal with creating and storing Resource Ids, in particular so that sheet's get valid resource Ids and Excel will still deign to open our files w/o generating errors. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Change the ordering of ExcEScenarioManager & FilterManager to follow the OOXML XSD; ExcTable::WriteXml() no longer creates the sheet stream (this is done by ExcBundlesheet8::SaveXml()), so lookup the correct stream to use instead. * sc/source/filter/excel/xepage.cxx: Flush comments. * sc/source/filter/excel/xetable.cxx: Cleanup. * sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Change ExcBundlesheet8::WriteXml() to open the appropriate sheet output stream (so that we can get a valid ResourceId for this output stream to use in //sheet[@r:id]); implement //scenarios, //scenario, and //inputCells for scenario generation. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress), XclXmlUtils::ToOString(ScRange), XclXmlUtils::ToOString(XclExpString), XclExpXmlStream::GetIdForPath(), XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are helper routines (code cleanup), while the XclExpXmlStream methods are to permit "registration" of a Path to both a RelationshipId and a FSHelperPtr for later output. This allows e.g. ExcBundlesheet8::SaveXml() to open the output stream, and have ExcTable::WriteXml() grab and use this output stream later. Changed CreateOutputStream() to (optionally) return the ResourceId as an output parameter. 2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Move XML character escape logic into FastSerializerHelper. * sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx, sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of write() in places that require escaping. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape(). 2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/headerFooter[oddHeader, oddFooter]. Excel distinguishes between left, right, and front page sets, while Calc doesn't (at least, the .xls output doesn't make that distinction). Consequently, we generate "all pages have these headers/footers" output. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the //headerFooter element is inserted into the correct position to allow Excel to open generated documents. * sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx: Generate the /worksheet/headerFooter, /worksheet/headerFooter/oddHeader, and /worksheet/headerFooter/evenHeader elements. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Extend the XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord types to accept a callback function which is invoked after starting the element. This allows us to ~easily provide the /worksheet/headerFooter attributes w/o creating new XclExpRecordBase subclasses. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape() functions which perform XML character escaping (e.g. s/</&lt;/g) so that we don't generate invalid XML. In particular, the header/footer contains a "formatting code" which contains '&', which must be escaped within the generated XML. 2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/dimensions. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx: Implement /worksheet/dimensions. 2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/dataValidations/dataValidation[formula1, formula2]. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xecontent.cxx, sc/source/filter/inc/xecontent.hxx: Implement /worksheet/dataValidations, /worksheet/dataValidations/dataValidation, //formula1, //formula2. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(), XclXmlUtils::ToOString(ScRangeList), XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*). 2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/conditionalFormatting. Note that Excel will NOT currently open files containing this element, as the XML is incomplete: the XSD requires at least one nested /worksheet/conditionalFormatting/cfRule element, which we're not yet generating. We do properly generate //conditionalFormatting/@sqref. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xecontent.cxx, sc/source/filter/inc/xecontent.hxx: Generate /worksheet/conditionalFormatting. 2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/cols/col; unstub /worksheet/sheetData. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as //col needs to come _before_ //sheetData, and emitting //sheetData here makes that impossible (and keeps Excel from loading our files). * sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx: Implement /worksheet/cols (XclExpColinfoBuffer), /worksheet/cols/col (XclExpColinfo), and stub out /worksheet/sheetData in the correct position to appease Excel. 2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx: Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() -- the former to call the latter, and the latter to generate /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk. 2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate 2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement (more-) proper /workbook/calcPr support. Cleanup. Previously, /workbook/calcPr was generated by filling a temporary XclExpXmlCalculationProperties instance, and generating the //calcPr element at the ~end of generation. This was not ideal, as it involved more code (the class to hold the intermediate values, etc.), and it could potentially place the //calcPr element into the wrong position (the XSD requires that it be before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous approach would have placed it after ~everything). * sc/source/filter/excel/excdoc.cxx: Follow the pattern of //workbookProtection and insert the //calcPr BIFF records into the appropriate position based on file type. One minor quirk: the records move from the per-SHEET array into the workbook array. * sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/xestream.hxx: Remove unnecessary code. * sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes instead of filling an intermediate object. 2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Enable /workbook/workbookProtection. /workbook/workbookProtection was previously disabled as emitting it would cause Excel to generate an error message. The problem has been resolved: /workbook/workbookProtection *must* be before /workbook/bookviews (which in turn must be before /workbook/sheets), and this wasn't previously the case. Placing the element into the proper location makes Excel happy. * sc/source/filter/excel/excdoc.cxx: Place the workbookProtection-related BIFF records into the correct position to appease the Excel gods. * sc/source/filter/excel/excrecds.cxx, sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various /workbook/workbookProtection attributes. 2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /workbook/bookviews/workbookView. * sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx, sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx, sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in one of two different locations, depending on output format. Add a new XclOutput enumeration to contain the output format (we do NOT want to reuse XclBiff for this purpose, as otherwise XML output is a superset of BIFF8, and we don't want to update every existing check for BIFF8 to check for both BIFF8 and XML), and check for this flag so that the WINDOW1 record is created in the appropriate place. * sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change constructor to take a `const XclExpRoot&`, as XclExpWindow::SaveXml() requires this information. * sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx: XclExpWindow1::SaveXml() generates the //workbookView element. * sc/source/filter/xcl97/xcl97rec.cxx: Cleanup. 2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Remove SIGILL from ExcBundlesheet8::SaveXml(). * sc/source/filter/excel/xestream.cxx: Add some asserts. * sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL when passed as a "..." argument to a function. Doh! 2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate 2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> /workbook/workbookProtection, mostly cancelled during rebase. This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out -- as Excel barfs when this element + attributes are emitted. Funnier, even <workbookProtection/> causes Excel to barf, so until all the semantics are worked out it all needs to be uncommented out. What is useful here is the mapping from BIFF record -> OOXML attribute. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excrecds.cxx, sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate the /workbook/workbookProtection element & attributes. 2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial /workbook/workbookPr implementation. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Add records to start/end the <workbookPr/> element; cleanup & document TODOs. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Declare & Implement Xcl1904::SaveXml(). * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Declare and implement XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord, both used to single-style XML elements instead of the "full" start/end XML created by XclExpXmlStartElementRecord and XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(), which generates some <workbookPr/> attributes. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Declare & implement XclExpXmlStream::WriteCurrentStreamAttributes(). 2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement (more-) proper /workbook/sheets support. Refactor. Instead of hacking around "limitations" in NameBuffer to generate /workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the /workbook/sheets/sheet elements. This also allows us to emit the //sheet/@state attribute, which is private to ExcBundlesheet8. In order to generate the /workbook/sheets elements, XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around the ExcBundlesheet8 record entries, so that the existing record-based infrastructure could automagically generate the structural XML tags. These records do nothing for existing BIFF output. Finally, XclExpXmlStream::GetWorkbook() has been replaced with XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were added. This is hoped to permit nesting of streams, and is currently being used to generate the xl/worksheets/sheetN.xml files (to no effect, as not enough records are generate XML for the results to be visible). * sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer changes, as we no longer use pTabNames to generate //sheets/; add records to emit the <sheets/> element; place the sheet stream on top of the XclExpXmlStream stack. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Save the tab that ExcBundlesheetBase was constructed for -- needed for <sheet/> generation within ExcBundlesheet8. * sc/source/filter/excel/xecontent.cxx, sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx: s#GetWorkbook#GetCurrentStream#g; don't emit empty collections. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Declare and Implement XclExpXmlElementRecord, XclExpXmlStartElementRecord, XclExpXmlEndElementRecord. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add stream stack methods; remove warning about unused parameter. * sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml() and generate /workbook/sheets/sheet elements from it. 2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Add Calc OOXML TODO list. * sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a breadth-first fashion (i.e. top-down), and implementing each element as I'm able. I'm not always able to immediately implement an element (frequently because I can't find the equivalent binary export code) within a short period of time, so any such elements are recorded here for later passes. Just because an element isn't here doesn't mean it's been fully implemented; any elements with associated code will have OOXTODO comments specifying what's missing/needed for that particular code. 2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial /workbook/pivotCaches/pivotCache implementation. * sc/source/filter/excel/xepivot.cxx, sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml() methods so that PivotCaches are saved into xl/workbook.xml. 2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial <definedName/> implementation. * sc/source/filter/excel/xename.cxx: Generate <definedName/>. * sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool). * sc/source/filter/inc/xename.hxx: Declare XclExpNameManager::SaveXml() so we can emit <definedName/> elements. * sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool). 2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes. * sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr generation implementation. * sc/source/filter/excel/xecontent.cxx: Provide the count and uniqueCount attributes for the <sst/> element. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Provide/implement a XclExpXmlStream::GetWorkbookCalculationProperties() method which keeps track of data used by excdoc.cxx for <calcPr/> generation. * sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select types to cache the information needed to write <calcPr/>. 2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Simplify addRelation/openOutputStream use within sc. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to create sub-streams. * sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream(); use CreateOutputStream() to create xl/workbook.xml. * sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods which merge addRelation() w/ openOutputStreamWithSerializer(). 2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Allow Excel to open an empty spreadsheet. * sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the relations file so that correct relative paths are present within the .rels file; Use the correct content type when creating sheetN.xml; Insert a <sheetData/> element into the worksheet.xml files; insert the sheetN.xml relational data into the correct .rels file. * sc/source/filter/excel/xestream.cxx: Use the correct content type when creating xl/workbook.xml. 2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> More Excel export cleanup. * sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...) so that the added relation is (hopefully) inserted into the appropriate xl/_rels/workbook.xml.rels file; extra tracing. * sc/source/filter/excel/xecontent.cxx: Cleanup/simplification. * sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/xestream.hxx: Add more ToOString() and ToOUString() helper methods. 2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Current work-in-progress for minimal Excel support. * sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to write xl/worksheets/sheetN.xml or the workbook.xml <sheets/> elements, depending on whether we're the header or not. Implement ExcDocument::WriteXml() to stub out xl/workbook.xml. * sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of strings to speed up XML creation. * sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String() helpers to simplify XML writing; open the xl/workbook.xml file so that it can be written to from multiple locations. * sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold various To*String() helpers; add XclExpXmlStream::GetWorkbook(). 2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Generate a correct shared string table. * sc/source/filter/excel/xecontent.cxx: Write proper shared string table entries. * sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we can easily use XmlFilterBase::openOutputStreamWithSerializer(). 2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Write an actual ZIP package for .xlsx output, including a (stubbed) shared string table. * sc/prj/build.lst: We now depend on oox to build. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP package files. This allows increased code sharing. * sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction. * sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance over pMedStrm (this makes ZipStorage very angry); don't call lcl_ExportExcelBiff(), as we want to preserve our generated file. * sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared string table (incomplete, as I need to find an easier/more elegant way of inserting strings into the XML, but it'll need updating anyway to use the FastSaxSerializer). * sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well. 2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Trace output for the shared string table. This is step forward as we're hooking into the new XclExpRecordBase::SaveXml() to invoke the string table SaveXml() routine. It's still largely proof-of-concept, but we can actually invoke the appropriate code now. * oox/workben/ooxml-export-notes.txt: Flush. * sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx: Add and implement the new ExportXml2007 type. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx, sc/source/filter/excel/xecontent.cxx, sc/source/filter/excel/xepivot.cxx, sc/source/filter/excel/xerecord.cxx, sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx, sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx, sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx, sc/source/filter/inc/xestring.hxx: Implement enough glue to allow XclExpSstImpl::SaveXml() to be invoked from the XML export context and print useful information to the screen. 2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement support for writing .xlsx files. The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written instead of generating an error message. * sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we can specify Excel 2007 XML (Exp2007Xml) as a file format. * sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that Exp2007Xml is a supported format, and stub out Exp2007Xml support so that BIFF8 output is currently generated. * sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007 XML" filter and the new ScExportExcel5() semantics. 2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Make the filter names consistent with other filters used in sc/.../docsh.cxx. * filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu, filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu, filter/source/config/fragments/types/MS_Excel_2007_XML.xcu, filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu: Remove 'Calc ' from the filter names (as none of the other filters mentioned in sc/source/ui/docshell.cxx use that convention), and remove 3RDPARTYFILTER from the filter's Flags property, as this flag causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the existing Calc->Export logic is all within ConvertTo(). 2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export From: Radek Doulik <rodo@novell.com> Initial work on ooxml export (xlsx) * filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu: ditto * filter/source/config/fragments/types/MS_Excel_2007_XML.xcu: reverse extensions order so that xlsx is shown in Save dialog as default 2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx. And also just do forward declaration of TableStyle instead of including the header - it includes too much in that case. 2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Fix build break. * source/ppt/pptimport.cxx: getServiceFactory() was renamed to getGlobalFactory(). 2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Add some namespaces so that sax builds again. 2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Cleanup in sax (wrt. escaping attribute values). FastSaxSerializer::writeFastAttributeList() didn't properly escape attribute values, which broke number format export if the number format included e.g. '"' (double quote), e.g.: [$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;"" which shows numbers with a currency type, negative numbers in red, and 0 values as the empty string. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sax/source/fastparser/fshelper.cxx, sax/source/fastparser/fastserializer.hxx, sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml() when writing attribute values. 2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Make a bit more obvious what's happenning with AttributeLists. 2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> a from-scratch-build reveals some missed changes in include files :( 2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> deliver the header too 2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> public visibility of FastAttributeList class + some more convenience functions in fshelper 2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Add /Relationships/Relationship/@TargetMode support. This also fixes Calc hyperlink export, allowing Excel to properly read documents containing a hyperlink. * oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx: Add a rTargetMode parameter to XmlFilterBase::addRelation(). 2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> add string.h 2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Explicitely default construct maMarkStack [to be safe ;-)]. 2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Rename writeMarked() to mergeTopMarks() and improve the implementation. Just writing the top mark is not enough; in more complex scenarios it would destroy the order completely. This way we have better control over what's happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as necessary directly in the start/end tags. 2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Add mark() and writeMarked() methods. These are to be able to change the order of the data being written. If you need to write eg. p, r, rPr, [something], /rPr, t, [text], /r, /p, but get it in order p, r, t, [text], /t, rPr, [something], /rPr, /r, /p, simply do p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr, writeMarked(), writeMarked(), /r, /p and you are done. 2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Move XML character escape logic into FastSerializerHelper. * sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add and implement FastSerializerHelper::writeEscaped(), which escapes any XML characters within the string before writing. 2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Introduce writeId(). * sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx, sax/source/fastparser/fastserializer.hxx, sax/source/fastparser/fshelper.cxx: Add/implement FastSerializerHelper::writeId(), which does the "usual" sal_Int32->string conversion but manually, outside of any automatic context. This is done so that XclExpXmlStream::WriteCurrentStreamAttributes() can write element attributes "piecemeal"/on-demand, without needing to store the relevant information into a separate object to generate all the attributes at once. 2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Change the semantics of startElement() and singleElement(). * sax/source/fastparser/fshelper.cxx: Change the semantics of startElement() and singleElement(), so that attributes with values that are NULL are _skipped_, instead of ending all attributes. This allows us to have "optional" attributes, in which the attribute won't be generated if the value is null. This is needed so that the //definedName/@localSheetId attribute is only emitted for non-global sheet-specific names. 2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-) 2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> How to install the stuff. 2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Change 'core::addRelation' to 'static addRelation_impl'. To be better readable, and no symbol for that. 2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> generate document wide unique Id's 2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added standalone="yes" to xml document beginning removed unneccessary ::rtl:: prefix in one case 2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added FSHelperPtr here as well 2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages 2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Implement getOutputStream(), some cleanup. * sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that excdoc.cxx can easily use the addRelation(XOutputStream, ...) method. * sax/source/fastparser/fastserializer.cxx: Code refactor to remove useless string duplication -- Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad. * sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for use in fshelper.cxx); cleanupl. * sax/source/fastparser/fshelper.cxx: Implement getOutputStream(). 2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Add write() methods to write inside elements. * sax/inc/sax/fshelper.hxx: Add write() methods to write content to the string inside of elements. * sax/source/fastparser/fshelper.cxx: Implement write() methods. 2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> making singleUnknownElement and singleFastElement be a uno method 2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added NS versions of fast methods 2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> support namespaces in attribute names as well 2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath 2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind) 2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fix attributes list and its reference creation so that the instance can be freed in Reference::release 2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> export tokens added xmlns to tokens 2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> instantiate token handler support xml namespaces 2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr 2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> * oox/workben/ooxml-export-notes.txt: Flush. 2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> beefing up the fshelper 2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> export ChartConverterClass - it is now needed in XmlFilterBase 2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> fastsax.uno.so was renamed to libfastsaxlx.so 2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> trying to do some useful stuff with the serializer 2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> use relation id names similar to ms office 2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fixed typo in namespace url 2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams 2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> let writable stream handle relation id's new id can be queried by asking for property "RelId" fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :( 2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> trying to avoid char* -> OUString and back conversions 2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added commit methods to StorageBase and FilterBase to make things easier 2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml] updated pptx export filter 2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> some casts to make compiler happy 2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> trying to make the fast serializer a bit less bloated 2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> do not get out of bounds of sequence do not overwrite the id tag 2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Notes for trace output for the shared string table. * oox/workben/ooxml-export-notes.txt: Flush. 2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added ifdefs to fshelper.hxx to avoid problems when including more than once fixed the constructor namespace added export.map and made FastSerializerHelper class global 2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> defined OOXLIB and FASTSAXLIB variables to be used in makefiles 2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added constructor and added fshelper.obj to the makefile.mk 2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added fast serializer helper files (not implemented yet) make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so) deliver the fast serializer header 2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> add fast serializer to the uno component 2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> moved uno service and implementation names to headers 2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation 2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> export storage base class, remove old proof code from xml filter base 2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> exported filter base and zipstorage to be used in other module's filters 2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> make the FastSerializer as UNO service 2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> write out the attributes too 2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> some more changes to the fastserializer Originally this also duplicated the offapi changes in unoxml; but the unoxml files were removed recently ;-) 2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> move the fastserializer from oox module to sax module 2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones 2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> refactor the serializer 2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> stuffing the serializer a bit more 2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> More explicit pointers to the export code. 2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> adding and removing files up and down 2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> adding fastserializer dummy inplementation 2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> Escher pointers. 2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> removing the unnecessary FastSerializer service 2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters From: Radek Doulik <rodo@novell.com> XStream instead of XOutputStream for OOXML export filter. 2008-04-25 Radek Doulik <rodo@novell.com> * oox/workben/ooxml-export-notes.txt: added odp export trace * oox/source/core/xmlfilterbase.cxx (implCreateStorage): added test code to create test storage and stream, also committing changes here * oox/inc/oox/helper/olestorage.* (class OleStorage): as below * oox/inc/oox/helper/zipstorage.*: as below * oox/inc/oox/helper/storagebase.* (class StorageBase): let export constructor use XStream instead of XOutputStream, change member type as well * oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as below * oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase): as below * oox/inc/oox/core/filterbase.*: changed implCreateStorage method to get XStream instead of XOutputStream * sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput XStream to media descriptor properties for OOXML export filter * comphelper/source/misc/mediadescriptor.cxx (PROP_STREAMFOROUTPUT): added StreamForOutput property * oox/source/helper/zipstorage.cxx (ZipStorage): open storage with OFOPXMLFormat * oox/source/helper/zipstorage.cxx (implOpenSubStorage): added implementation for export * oox/source/core/filterbase.cxx (setMediaDescriptor): add input stream only on import 2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> add FastSerializer Service 2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> add FastSerializer service 2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> adapting the makefile.mk to build the XFastSerializer 2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> Adding the XFastSerializer interface 2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> Added pointers to export code of binary filters. 2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> Implementation notes: affected modules. [Started the implementation notes by asking Fridrich ;-)] 2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters From: Radek Doulik <rodo@novell.com> Initial work on ooxml export * oox/source/helper/zipstorage.cxx (implOpenOutputStream): added prototype implementation (ZipStorage): this constructor needs to be implemented (on output stream)
2008-10-14CWS-TOOLING: integrate CWS mba30fixes02Oliver Bolte
2008-04-10INTEGRATION: CWS changefileheader (1.2.14); FILE MERGEDRüdiger Timm
2008/04/01 15:25:28 thb 1.2.14.3: #i85898# Stripping all external header guards 2008/04/01 12:34:35 thb 1.2.14.2: #i85898# Stripping all external header guards 2008/03/31 16:22:29 rt 1.2.14.1: #i87441# Change license header to LPGL v3.
2008-04-10INTEGRATION: CWS changefileheader (1.2.14); FILE MERGEDRüdiger Timm
2008/04/01 12:34:35 thb 1.2.14.2: #i85898# Stripping all external header guards 2008/03/31 16:22:29 rt 1.2.14.1: #i87441# Change license header to LPGL v3.
2008-04-10INTEGRATION: CWS changefileheader (1.2.14); FILE MERGEDRüdiger Timm
2008/04/01 15:25:27 thb 1.2.14.3: #i85898# Stripping all external header guards 2008/04/01 12:34:35 thb 1.2.14.2: #i85898# Stripping all external header guards 2008/03/31 16:22:28 rt 1.2.14.1: #i87441# Change license header to LPGL v3.
2008-04-10INTEGRATION: CWS changefileheader (1.2.14); FILE MERGEDRüdiger Timm
2008/04/01 15:25:27 thb 1.2.14.2: #i85898# Stripping all external header guards 2008/03/31 16:22:28 rt 1.2.14.1: #i87441# Change license header to LPGL v3.
2008-04-10INTEGRATION: CWS changefileheader (1.2.14); FILE MERGEDRüdiger Timm
2008/03/31 16:22:28 rt 1.2.14.1: #i87441# Change license header to LPGL v3.
2008-01-10INTEGRATION: CWS xmlfilter02 (1.1.2); FILE ADDEDOliver Bolte
2006/05/10 15:39:50 cl 1.1.2.4: added comments, using OString for attributes 2006/05/08 14:25:57 cl 1.1.2.3: new token based sax implementation 2006/02/20 14:45:48 cl 1.1.2.2: added missing newline at end of file 2006/02/14 18:40:53 cl 1.1.2.1: added initial libxml2 wrapper