office-gobmx/unoxml/source/dom/node.cxx

940 lines
31 KiB
C++
Raw Normal View History

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#include <node.hxx>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <boost/bind.hpp>
#include <rtl/uuid.h>
#include <rtl/instance.hxx>
#include <osl/mutex.hxx>
#include <com/sun/star/xml/sax/FastToken.hpp>
#include <document.hxx>
#include <childlist.hxx>
#include "../events/eventdispatcher.hxx"
#include "../events/mutationevent.hxx"
using namespace ::com::sun::star;
CWS-TOOLING: integrate CWS ooxml03 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-08-25 06:00:47 -05:00
namespace {
struct UnoTunnelId
: public ::rtl::StaticWithInit< Sequence<sal_Int8>, UnoTunnelId >
{
Sequence<sal_Int8> operator() ()
{
Sequence<sal_Int8> ret(16);
rtl_createUuid(
reinterpret_cast<sal_uInt8*>(ret.getArray()), 0, sal_True);
return ret;
}
};
}
namespace DOM
{
CWS-TOOLING: integrate CWS ooxml03 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-08-25 06:00:47 -05:00
void pushContext(Context& io_rContext)
{
io_rContext.maNamespaces.push_back(
io_rContext.maNamespaces.back());
}
void popContext(Context& io_rContext)
{
io_rContext.maNamespaces.pop_back();
}
void addNamespaces(Context& io_rContext, xmlNodePtr pNode)
{
// add node's namespaces to current context
for (xmlNsPtr pNs = pNode->nsDef; pNs != 0; pNs = pNs->next) {
const xmlChar *pPrefix = pNs->prefix;
OString prefix(reinterpret_cast<const sal_Char*>(pPrefix),
strlen(reinterpret_cast<const char*>(pPrefix)));
const xmlChar *pHref = pNs->href;
OUString val(reinterpret_cast<const sal_Char*>(pHref),
strlen(reinterpret_cast<const char*>(pHref)),
RTL_TEXTENCODING_UTF8);
OSL_TRACE("Trying to add namespace %s (prefix %s)",
(const char*)pHref, (const char*)pPrefix);
Context::NamespaceMapType::iterator aIter=
io_rContext.maNamespaceMap.find(val);
if( aIter != io_rContext.maNamespaceMap.end() )
{
Context::Namespace aNS;
aNS.maPrefix = prefix;
aNS.mnToken = aIter->second;
aNS.maNamespaceURL = val;
io_rContext.maNamespaces.back().push_back(aNS);
OSL_TRACE("Added with token 0x%x", aIter->second);
}
}
}
sal_Int32 getToken( const Context& rContext, const sal_Char* pToken )
{
const Sequence<sal_Int8> aSeq( (sal_Int8*)pToken, strlen( pToken ) );
return rContext.mxTokenHandler->getTokenFromUTF8( aSeq );
}
sal_Int32 getTokenWithPrefix( const Context& rContext, const sal_Char* pPrefix, const sal_Char* pName )
{
sal_Int32 nNamespaceToken = FastToken::DONTKNOW;
OString prefix(pPrefix,
strlen(reinterpret_cast<const char*>(pPrefix)));
OSL_TRACE("getTokenWithPrefix(): prefix %s, name %s",
(const char*)pPrefix, (const char*)pName);
Context::NamespaceVectorType::value_type::const_iterator aIter;
if( (aIter=std::find_if(rContext.maNamespaces.back().begin(),
rContext.maNamespaces.back().end(),
boost::bind(std::equal_to<OString>(),
boost::bind(&Context::Namespace::getPrefix,
_1),
boost::cref(prefix)))) != rContext.maNamespaces.back().end() )
{
nNamespaceToken = aIter->mnToken;
sal_Int32 nNameToken = getToken( rContext, pName );
if( nNameToken != FastToken::DONTKNOW )
nNamespaceToken |= nNameToken;
}
return nNamespaceToken;
}
CNode::CNode(CDocument const& rDocument,
NodeType const& reNodeType, xmlNodePtr const& rpNode)
: m_bUnlinked(false)
, m_aNodeType(reNodeType)
, m_aNodePtr(rpNode)
// keep containing document alive
// (but not if this is a document; that would create a leak!)
, m_xDocument( (m_aNodePtr->type != XML_DOCUMENT_NODE)
? &const_cast<CDocument&>(rDocument) : 0 )
{
OSL_ASSERT(m_aNodePtr);
}
void CNode::invalidate()
{
//remove from list if this wrapper goes away
if (m_aNodePtr != 0 && m_xDocument.is()) {
m_xDocument->RemoveCNode(m_aNodePtr, this);
}
// #i113663#: unlinked nodes will not be freed by xmlFreeDoc
if (m_bUnlinked) {
xmlFreeNode(m_aNodePtr);
}
m_aNodePtr = 0;
}
CNode::~CNode()
{
invalidate();
}
CNode *
CNode::GetImplementation(uno::Reference<uno::XInterface> const& xNode)
{
uno::Reference<lang::XUnoTunnel> const xUnoTunnel(xNode, UNO_QUERY);
if (!xUnoTunnel.is()) { return 0; }
CNode *const pCNode( reinterpret_cast< CNode* >(
::sal::static_int_cast< sal_IntPtr >(
xUnoTunnel->getSomething(UnoTunnelId::get()))));
return pCNode;
}
CDocument & CNode::GetOwnerDocument()
{
OSL_ASSERT(m_xDocument.is());
return *m_xDocument; // needs overriding in CDocument!
}
static void _nsexchange(const xmlNodePtr aNode, xmlNsPtr oldNs, xmlNsPtr newNs)
{
// recursively exchange any references to oldNs with references to newNs
xmlNodePtr cur = aNode;
while (cur != 0)
{
if (cur->ns == oldNs)
cur->ns = newNs;
if (cur->type == XML_ELEMENT_NODE)
{
xmlAttrPtr curAttr = cur->properties;
while(curAttr != 0)
{
if (curAttr->ns == oldNs)
curAttr->ns = newNs;
curAttr = curAttr->next;
}
_nsexchange(cur->children, oldNs, newNs);
}
cur = cur->next;
}
}
/*static*/ void _nscleanup(const xmlNodePtr aNode, const xmlNodePtr aParent)
{
xmlNodePtr cur = aNode;
//handle attributes
if (cur != NULL && cur->type == XML_ELEMENT_NODE)
{
xmlAttrPtr curAttr = cur->properties;
while(curAttr != 0)
{
if (curAttr->ns != NULL)
{
xmlNsPtr ns = xmlSearchNs(cur->doc, aParent, curAttr->ns->prefix);
if (ns != NULL)
curAttr->ns = ns;
}
curAttr = curAttr->next;
}
}
while (cur != NULL)
{
_nscleanup(cur->children, cur);
if (cur->ns != NULL)
{
xmlNsPtr ns = xmlSearchNs(cur->doc, aParent, cur->ns->prefix);
if (ns != NULL && ns != cur->ns && strcmp((char*)ns->href, (char*)cur->ns->href)==0)
{
xmlNsPtr curDef = cur->nsDef;
xmlNsPtr *refp = &(cur->nsDef); // insert point
while (curDef != NULL)
{
ns = xmlSearchNs(cur->doc, aParent, curDef->prefix);
if (ns != NULL && ns != curDef && strcmp((char*)ns->href, (char*)curDef->href)==0)
{
// reconnect ns pointers in sub-tree to newly found ns before
// removing redundant nsdecl to prevent dangling pointers.
_nsexchange(cur, curDef, ns);
*refp = curDef->next;
xmlFreeNs(curDef);
curDef = *refp;
} else {
refp = &(curDef->next);
curDef = curDef->next;
}
}
}
}
cur = cur->next;
}
}
void SAL_CALL CNode::saxify(
const Reference< XDocumentHandler >& i_xHandler) {
if (!i_xHandler.is()) throw RuntimeException();
// default: do nothing
}
CWS-TOOLING: integrate CWS ooxml03 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-08-25 06:00:47 -05:00
void SAL_CALL CNode::fastSaxify(Context& io_rContext) {
if (!io_rContext.mxDocHandler.is()) throw RuntimeException();
// default: do nothing
}
/**
Adds the node newChild to the end of the list of children of this node.
*/
Reference< XNode > CNode::appendChild(Reference< XNode > const& xNewChild)
throw (RuntimeException, DOMException)
{
::rtl::Reference<CNode> pNode;
if (m_aNodePtr != NULL) {
CNode *const pNewChild(CNode::GetImplementation(xNewChild));
if (!pNewChild) { throw RuntimeException(); }
xmlNodePtr const cur = pNewChild->GetNodePtr();
if (!cur) { throw RuntimeException(); }
// error checks:
// from other document
if (cur->doc != m_aNodePtr->doc) {
DOMException e;
e.Code = DOMExceptionType_WRONG_DOCUMENT_ERR;
throw e;
}
// same node
if (cur == m_aNodePtr) {
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
// already has parant and is not attribute
if (cur->parent != NULL && cur->type != XML_ATTRIBUTE_NODE) {
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
// check whether this is an attribute node so we remove it's
// carrier node if it has one
xmlNodePtr res = NULL;
if (cur->type == XML_ATTRIBUTE_NODE)
{
if (cur->parent != NULL)
{
if (m_aNodePtr->type != XML_ELEMENT_NODE ||
strcmp((char*)cur->parent->name, "__private") != 0)
{
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
xmlNsPtr pAttrNs = cur->ns;
xmlNsPtr pParentNs = xmlSearchNs(m_aNodePtr->doc, m_aNodePtr, pAttrNs->prefix);
if (pParentNs == NULL || strcmp((char*)pParentNs->href, (char*)pAttrNs->href) != 0)
pParentNs = xmlNewNs(m_aNodePtr, pAttrNs->href, pAttrNs->prefix);
if (cur->children != NULL)
res = (xmlNodePtr)xmlNewNsProp(m_aNodePtr, pParentNs, cur->name, cur->children->content);
else
res = (xmlNodePtr)xmlNewProp(m_aNodePtr, cur->name, (xmlChar*) "");
xmlFreeNode(cur->parent);
cur->parent = NULL;
}
else
{
if (cur->children != NULL)
res = (xmlNodePtr)xmlNewProp(m_aNodePtr, cur->name, cur->children->content);
else
res = (xmlNodePtr)xmlNewProp(m_aNodePtr, cur->name, (xmlChar*) "");
}
}
else
{
res = xmlAddChild(m_aNodePtr, cur);
}
// libxml can do optimizations, when appending nodes.
// if res != cur, something was optimized and the newchild-wrapper
// should be updated
if (res && (cur != res)) {
pNewChild->invalidate(); // cur has been freed
}
// use custom ns cleanup instaead of
// xmlReconciliateNs(m_aNodePtr->doc, m_aNodePtr);
// because that will not remove unneeded ns decls
_nscleanup(res, m_aNodePtr);
pNode = GetOwnerDocument().GetCNode(res);
}
//XXX check for errors
// dispatch DOMNodeInserted event, target is the new node
// this node is the related node
// does bubble
if (pNode.is())
{
pNode->m_bUnlinked = false; // will be deleted by xmlFreeDoc
Reference< XDocumentEvent > docevent(getOwnerDocument(), UNO_QUERY);
Reference< XMutationEvent > event(docevent->createEvent(
OUString::createFromAscii("DOMNodeInserted")), UNO_QUERY);
event->initMutationEvent(OUString::createFromAscii("DOMNodeInserted")
, sal_True, sal_False,
this,
OUString(), OUString(), OUString(), (AttrChangeType)0 );
dispatchEvent(Reference< XEvent >(event, UNO_QUERY));
// dispatch subtree modified for this node
dispatchSubtreeModified();
}
return pNode.get();
}
/**
Returns a duplicate of this node, i.e., serves as a generic copy
constructor for nodes.
*/
Reference< XNode > CNode::cloneNode(sal_Bool bDeep)
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
::rtl::Reference<CNode> const pNode = GetOwnerDocument().GetCNode(
xmlCopyNode(m_aNodePtr, (bDeep) ? 1 : 0));
pNode->m_bUnlinked = true; // not linked yet
//XXX check for errors
return pNode.get();
}
/**
A NamedNodeMap containing the attributes of this node (if it is an Element)
or null otherwise.
*/
Reference< XNamedNodeMap > CNode::getAttributes()
throw (RuntimeException)
{
// return empty reference
// only element node may override this impl
return Reference< XNamedNodeMap>();
// get all children that are attributes
/* --> CElement
Reference< NamedNodeMap > aNodeMap(new AttributeNamedNodeMap(m_aNodePtr), UNO_QUERY);
return aNodeMap;
*/
}
/**
A NodeList that contains all children of this node.
*/
Reference< XNodeList > CNode::getChildNodes()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XNodeList > const xNodeList(new CChildList(this));
return xNodeList;
}
/**
The first child of this node.
*/
Reference< XNode > CNode::getFirstChild()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XNode > const xNode(
GetOwnerDocument().GetCNode(m_aNodePtr->children).get());
return xNode;
}
/**
The last child of this node.
*/
Reference< XNode > SAL_CALL CNode::getLastChild()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XNode > const xNode(
GetOwnerDocument().GetCNode(xmlGetLastChild(m_aNodePtr)).get());
return xNode;
}
/**
Returns the local part of the qualified name of this node.
*/
OUString SAL_CALL CNode::getLocalName()
throw (RuntimeException)
{
OUString aName;
/*
--> Element / Attribute
if(m_aNodePtr != NULL && (m_aNodeType == NodeType::ATTRIBUTE_NODE
|| m_aNodeType == NodeType::ELEMENT_NODE))
{
aName = OUString(m_aNodePtr->name, RTL_TEXTENCODING_UTF8);
}
//XXX error checking
*/
return aName;
}
/**
The namespace URI of this node, or null if it is unspecified.
*/
OUString SAL_CALL CNode::getNamespaceURI()
throw (RuntimeException)
{
OUString aURI;
if (m_aNodePtr != NULL &&
(m_aNodePtr->type == XML_ELEMENT_NODE || m_aNodePtr->type == XML_ATTRIBUTE_NODE) &&
m_aNodePtr->ns != NULL)
{
const xmlChar* xHref = m_aNodePtr->ns->href;
aURI = OUString((sal_Char*)xHref, strlen((char*)xHref), RTL_TEXTENCODING_UTF8);
}
return aURI;
}
/**
The node immediately following this node.
*/
Reference< XNode > SAL_CALL CNode::getNextSibling()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XNode > const xNode(
GetOwnerDocument().GetCNode(m_aNodePtr->next).get());
return xNode;
}
/**
The name of this node, depending on its type; see the table above.
*/
OUString SAL_CALL CNode::getNodeName()
throw (RuntimeException)
{
/*
Interface nodeName nodeValue attributes
--------------------------------------------------------------------------------------
Attr name of attribute value of attribute null
CDATASection "#cdata-section" content of the CDATA Section null
Comment "#comment" content of the comment null
Document "#document" null null
DocumentFragment "#document-fragment" null null
DocumentType document type name null null
Element tag name null NamedNodeMap
Entity entity name null null
EntityReference name of entity null null
referenced
Notation notation name null null
Processing\ target entire content excluding null
Instruction the target
Text "#text" content of the text node null
*/
OUString aName;
return aName;
}
/**
A code representing the type of the underlying object, as defined above.
*/
NodeType SAL_CALL CNode::getNodeType()
throw (RuntimeException)
{
return m_aNodeType;
}
/**
The value of this node, depending on its type; see the table above.
*/
OUString SAL_CALL CNode::getNodeValue()
throw (RuntimeException)
{
OUString aValue;
return aValue;
}
/**
The Document object associated with this node.
*/
Reference< XDocument > SAL_CALL CNode::getOwnerDocument()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XDocument > const xDoc(& GetOwnerDocument());
return xDoc;
}
/**
The parent of this node.
*/
Reference< XNode > SAL_CALL CNode::getParentNode()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XNode > const xNode(
GetOwnerDocument().GetCNode(m_aNodePtr->parent).get());
return xNode;
}
/**
The namespace prefix of this node, or null if it is unspecified.
*/
OUString SAL_CALL CNode::getPrefix()
throw (RuntimeException)
{
OUString aPrefix;
if (m_aNodePtr != NULL &&
(m_aNodePtr->type == XML_ELEMENT_NODE || m_aNodePtr->type == XML_ATTRIBUTE_NODE) &&
m_aNodePtr->ns != NULL)
{
const xmlChar* xPrefix = m_aNodePtr->ns->prefix;
if( xPrefix != NULL )
aPrefix = OUString((sal_Char*)xPrefix, strlen((char*)xPrefix), RTL_TEXTENCODING_UTF8);
}
return aPrefix;
}
/**
The node immediately preceding this node.
*/
Reference< XNode > SAL_CALL CNode::getPreviousSibling()
throw (RuntimeException)
{
if (0 == m_aNodePtr) {
return 0;
}
Reference< XNode > const xNode(
GetOwnerDocument().GetCNode(m_aNodePtr->prev).get());
return xNode;
}
/**
Returns whether this node (if it is an element) has any attributes.
*/
sal_Bool SAL_CALL CNode::hasAttributes()
throw (RuntimeException)
{
return (m_aNodePtr != NULL && m_aNodePtr->properties != NULL);
}
/**
Returns whether this node has any children.
*/
sal_Bool SAL_CALL CNode::hasChildNodes()
throw (RuntimeException)
{
return (m_aNodePtr != NULL && m_aNodePtr->children != NULL);
}
/**
Inserts the node newChild before the existing child node refChild.
*/
Reference< XNode > SAL_CALL CNode::insertBefore(
const Reference< XNode >& newChild, const Reference< XNode >& refChild)
throw (RuntimeException, DOMException)
{
if (newChild->getOwnerDocument() != getOwnerDocument()) {
DOMException e;
e.Code = DOMExceptionType_WRONG_DOCUMENT_ERR;
throw e;
}
if (refChild->getParentNode() != Reference< XNode >(this)) {
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
CNode *const pNewNode(CNode::GetImplementation(newChild));
CNode *const pRefNode(CNode::GetImplementation(refChild));
if (!pNewNode || !pRefNode) { throw RuntimeException(); }
xmlNodePtr const pNewChild(pNewNode->GetNodePtr());
xmlNodePtr const pRefChild(pRefNode->GetNodePtr());
xmlNodePtr cur = m_aNodePtr->children;
//search cild before which to insert
while (cur != NULL)
{
if (cur == pRefChild) {
// insert before
pNewChild->next = cur;
pNewChild->prev = cur->prev;
cur->prev = pNewChild;
if( pNewChild->prev != NULL)
pNewChild->prev->next = pNewChild;
pNewNode->m_bUnlinked = false; // will be deleted by xmlFreeDoc
}
cur = cur->next;
}
return refChild;
}
/**
Tests whether the DOM implementation implements a specific feature and
that feature is supported by this node.
*/
sal_Bool SAL_CALL CNode::isSupported(const OUString& /*feature*/, const OUString& /*ver*/)
throw (RuntimeException)
{
// XXX
return sal_False;
}
/**
Puts all Text nodes in the full depth of the sub-tree underneath this
Node, including attribute nodes, into a "normal" form where only structure
(e.g., elements, comments, processing instructions, CDATA sections, and
entity references) separates Text nodes, i.e., there are neither adjacent
Text nodes nor empty Text nodes.
*/
void SAL_CALL CNode::normalize()
throw (RuntimeException)
{
//XXX combine adjacent text nodes and remove empty ones
}
/**
Removes the child node indicated by oldChild from the list of children,
and returns it.
*/
Reference< XNode > SAL_CALL CNode::removeChild(const Reference< XNode >& oldChild)
throw (RuntimeException, DOMException)
{
if (!oldChild.is()) {
throw RuntimeException();
}
if (oldChild->getParentNode() != Reference< XNode >(this)) {
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
Reference<XNode> xReturn( oldChild );
::rtl::Reference<CNode> const pOld(CNode::GetImplementation(oldChild));
xmlNodePtr const old = pOld->GetNodePtr();
pOld->m_bUnlinked = true;
if( old->type == XML_ATTRIBUTE_NODE )
{
xmlAttrPtr pAttr = (xmlAttrPtr) old;
xmlRemoveProp( pAttr );
pOld->invalidate(); // freed by xmlRemoveProp
xReturn.clear();
}
else
{
xmlUnlinkNode(old);
}
/*DOMNodeRemoved
* Fired when a node is being removed from its parent node.
* This event is dispatched before the node is removed from the tree.
* The target of this event is the node being removed.
* Bubbles: Yes
* Cancelable: No
* Context Info: relatedNode holds the parent node
*/
if (oldChild.is())
{
Reference< XDocumentEvent > docevent(getOwnerDocument(), UNO_QUERY);
Reference< XMutationEvent > event(docevent->createEvent(
OUString::createFromAscii("DOMNodeRemoved")), UNO_QUERY);
event->initMutationEvent(OUString::createFromAscii("DOMNodeRemoved"), sal_True,
sal_False,
this,
OUString(), OUString(), OUString(), (AttrChangeType)0 );
dispatchEvent(Reference< XEvent >(event, UNO_QUERY));
// subtree modofied for this node
dispatchSubtreeModified();
}
return xReturn;
}
/**
Replaces the child node oldChild with newChild in the list of children,
and returns the oldChild node.
*/
Reference< XNode > SAL_CALL CNode::replaceChild(
Reference< XNode > const& xNewChild,
Reference< XNode > const& xOldChild)
throw (RuntimeException, DOMException)
{
if (!xOldChild.is()) {
throw RuntimeException();
}
// XXX check node types
if (xOldChild->getParentNode() != Reference< XNode >(this)) {
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
/*
Reference< XNode > aNode = removeChild(oldChild);
appendChild(newChild);
*/
::rtl::Reference<CNode> const pOldNode(
CNode::GetImplementation(xOldChild));
::rtl::Reference<CNode> const pNewNode(
CNode::GetImplementation(xNewChild));
xmlNodePtr const pOld = pOldNode->GetNodePtr();
xmlNodePtr const pNew = pNewNode->GetNodePtr();
if( pOld->type == XML_ATTRIBUTE_NODE )
{
// can only replace attribute with attribute
if ( pOld->type != pNew->type )
{
DOMException e;
e.Code = DOMExceptionType_HIERARCHY_REQUEST_ERR;
throw e;
}
xmlAttrPtr pAttr = (xmlAttrPtr)pOld;
xmlRemoveProp( pAttr );
pOldNode->invalidate(); // freed by xmlRemoveProp
appendChild(xNewChild);
}
else
{
xmlNodePtr cur = m_aNodePtr->children;
//find old node in child list
while (cur != NULL)
{
if(cur == pOld)
{
// exchange nodes
pNew->prev = pOld->prev;
if (pNew->prev != NULL)
pNew->prev->next = pNew;
pNew->next = pOld->next;
if (pNew->next != NULL)
pNew->next->prev = pNew;
pNew->parent = pOld->parent;
if(pNew->parent->children == pOld)
pNew->parent->children = pNew;
if(pNew->parent->last == pOld)
pNew->parent->last = pNew;
pOld->next = NULL;
pOld->prev = NULL;
pOld->parent = NULL;
pOldNode->m_bUnlinked = true;
pNewNode->m_bUnlinked = false; // will be deleted by xmlFreeDoc
}
cur = cur->next;
}
}
dispatchSubtreeModified();
return xOldChild;
}
void CNode::dispatchSubtreeModified()
{
// dispatch DOMSubtreeModified
// target is _this_ node
Reference< XDocumentEvent > docevent(getOwnerDocument(), UNO_QUERY);
Reference< XMutationEvent > event(docevent->createEvent(
OUString::createFromAscii("DOMSubtreeModified")), UNO_QUERY);
event->initMutationEvent(OUString::createFromAscii("DOMSubtreeModified"), sal_True,
sal_False, Reference< XNode >(),
OUString(), OUString(), OUString(), (AttrChangeType)0 );
dispatchEvent(Reference< XEvent >(event, UNO_QUERY));
}
/**
The value of this node, depending on its type; see the table above.
*/
void SAL_CALL CNode::setNodeValue(const OUString& /*nodeValue*/)
throw (RuntimeException, DOMException)
{
// use specific node implememntation
// if we end up down here, something went wrong
DOMException e;
e.Code = DOMExceptionType_NO_MODIFICATION_ALLOWED_ERR;
throw e;
}
/**
The namespace prefix of this node, or null if it is unspecified.
*/
void SAL_CALL CNode::setPrefix(const OUString& prefix)
throw (RuntimeException, DOMException)
{
OString o1 = OUStringToOString(prefix, RTL_TEXTENCODING_UTF8);
xmlChar *pBuf = (xmlChar*)o1.getStr();
// XXX copy buf?
// XXX free old string? (leak?)
if (m_aNodePtr != NULL && m_aNodePtr->ns != NULL)
{
m_aNodePtr->ns->prefix = pBuf;
}
}
// --- XEventTarget
void SAL_CALL CNode::addEventListener(const OUString& eventType,
const Reference< com::sun::star::xml::dom::events::XEventListener >& listener,
sal_Bool useCapture)
throw (RuntimeException)
{
CDocument & rDocument(GetOwnerDocument());
events::CEventDispatcher & rDispatcher(rDocument.GetEventDispatcher());
rDispatcher.addListener(m_aNodePtr, eventType, listener, useCapture);
}
void SAL_CALL CNode::removeEventListener(const OUString& eventType,
const Reference< com::sun::star::xml::dom::events::XEventListener >& listener,
sal_Bool useCapture)
throw (RuntimeException)
{
CDocument & rDocument(GetOwnerDocument());
events::CEventDispatcher & rDispatcher(rDocument.GetEventDispatcher());
rDispatcher.removeListener(m_aNodePtr, eventType, listener, useCapture);
}
sal_Bool SAL_CALL CNode::dispatchEvent(const Reference< XEvent >& evt)
throw(RuntimeException, EventException)
{
CDocument & rDocument(GetOwnerDocument());
events::CEventDispatcher & rDispatcher(rDocument.GetEventDispatcher());
rDispatcher.dispatchEvent(rDocument, m_aNodePtr, this, evt);
return sal_True;
}
2009-10-09 03:51:29 -05:00
::sal_Int64 SAL_CALL
CNode::getSomething(Sequence< ::sal_Int8 > const& rId)
2009-10-09 03:51:29 -05:00
throw (RuntimeException)
{
if ((rId.getLength() == 16) &&
(0 == rtl_compareMemory(UnoTunnelId::get().getConstArray(),
rId.getConstArray(), 16)))
{
return ::sal::static_int_cast< sal_Int64 >(
reinterpret_cast< sal_IntPtr >(this) );
}
return 0;
2009-10-09 03:51:29 -05:00
}
}