2000-09-18 16:07:07 +00:00
/*************************************************************************
*
2008-04-10 21:11:23 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
2000-09-18 16:07:07 +00:00
*
2010-02-12 15:01:35 +01:00
* Copyright 2000 , 2010 Oracle and / or its affiliates .
2000-09-18 16:07:07 +00:00
*
2008-04-10 21:11:23 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2000-09-18 16:07:07 +00:00
*
2008-04-10 21:11:23 +00:00
* This file is part of OpenOffice . org .
2000-09-18 16:07:07 +00:00
*
2008-04-10 21:11:23 +00:00
* 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 .
2000-09-18 16:07:07 +00:00
*
2008-04-10 21:11:23 +00:00
* 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 ) .
2000-09-18 16:07:07 +00:00
*
2008-04-10 21:11:23 +00:00
* 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 .
2000-09-18 16:07:07 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-07-21 12:37:27 +00:00
// MARKER(update_precomp.py): autogen include statement, do not remove
# include "precompiled_sc.hxx"
2000-09-18 16:07:07 +00:00
// System - Includes -----------------------------------------------------
# include "scitems.hxx"
2010-01-08 18:32:51 +01:00
# include <editeng/eeitem.hxx>
# include <editeng/svxenum.hxx>
2010-10-05 11:19:10 -04:00
# include <editeng/justifyitem.hxx>
2002-07-17 16:28:09 +00:00
# include <svx/algitem.hxx>
2004-10-04 19:14:39 +00:00
# include <sot/clsids.hxx>
2009-10-06 07:38:24 +02:00
# include <unotools/securityoptions.hxx>
2000-09-18 16:07:07 +00:00
# include <tools/stream.hxx>
# include <tools/string.hxx>
2000-10-05 16:13:03 +00:00
# include <tools/urlobj.hxx>
2000-10-26 18:07:53 +00:00
# include <vcl/msgbox.hxx>
2000-09-18 16:07:07 +00:00
# include <vcl/virdev.hxx>
2000-10-26 18:07:53 +00:00
# include <vcl/waitobj.hxx>
# include <svtools/ctrltool.hxx>
# include <svtools/sfxecode.hxx>
2009-10-16 00:05:16 +02:00
# include <svl/zforlist.hxx>
2010-05-19 14:28:33 +02:00
# include <svl/PasswordHelper.hxx>
2000-10-26 18:07:53 +00:00
# include <sfx2/app.hxx>
2000-09-18 16:07:07 +00:00
# include <sfx2/bindings.hxx>
# include <sfx2/dinfdlg.hxx>
2000-10-26 18:07:53 +00:00
# include <sfx2/docfile.hxx>
# include <sfx2/docfilt.hxx>
2003-09-19 07:23:05 +00:00
# include <sfx2/fcontnr.hxx>
2000-10-26 18:07:53 +00:00
# include <sfx2/evntconf.hxx>
# include <sfx2/sfx.hrc>
2004-10-04 19:14:39 +00:00
# include <sfx2/objface.hxx>
2009-12-10 23:06:35 +01:00
# include <svl/srchitem.hxx>
2009-10-06 07:38:24 +02:00
# include <unotools/fltrcfg.hxx>
2009-10-16 00:05:16 +02:00
# include <svl/documentlockfile.hxx>
# include <svl/sharecontrolfile.hxx>
2000-09-18 16:07:07 +00:00
# include <unotools/charclass.hxx>
2001-10-15 10:29:21 +00:00
# include <vcl/virdev.hxx>
2004-08-31 11:29:54 +00:00
# include "chgtrack.hxx"
2008-03-07 11:19:13 +00:00
# include "chgviset.hxx"
2002-09-25 08:59:01 +00:00
# include <sfx2/request.hxx>
2010-10-13 12:58:52 -04:00
# include <com/sun/star/awt/Key.hpp>
# include <com/sun/star/awt/KeyModifier.hpp>
2010-06-04 20:08:33 +02:00
# include <com/sun/star/container/XContentEnumerationAccess.hpp>
2002-09-25 08:59:01 +00:00
# include <com/sun/star/document/UpdateDocMode.hpp>
2010-07-12 11:17:00 +02:00
# include <com/sun/star/script/vba/VBAEventId.hpp>
# include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
2010-06-04 20:08:33 +02:00
# include <com/sun/star/sheet/XSpreadsheetView.hpp>
# include <com/sun/star/task/XJob.hpp>
2010-10-13 12:58:52 -04:00
# include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp>
# include <com/sun/star/ui/XAcceleratorConfiguration.hpp>
2010-07-06 19:34:53 +02:00
# include <basic/sbstar.hxx>
# include <basic/basmgr.hxx>
2010-07-27 11:53:35 +02:00
# include <vbahelper/vbaaccesshelper.hxx>
2004-05-10 14:58:42 +00:00
2010-10-01 14:26:50 +13:00
# include "scabstdlg.hxx"
2000-09-18 16:07:07 +00:00
# include <sot/formats.hxx>
# define SOT_FORMATSTR_ID_STARCALC_30 SOT_FORMATSTR_ID_STARCALC
// INCLUDE ---------------------------------------------------------------
2000-10-26 18:07:53 +00:00
# include "cell.hxx"
2000-09-18 16:07:07 +00:00
# include "global.hxx"
# include "filter.hxx"
# include "scmod.hxx"
# include "tabvwsh.hxx"
# include "docfunc.hxx"
# include "imoptdlg.hxx"
# include "impex.hxx"
# include "scresid.hxx"
# include "sc.hrc"
# include "globstr.hrc"
# include "scerrors.hxx"
# include "brdcst.hxx"
# include "stlpool.hxx"
# include "autostyl.hxx"
# include "attrib.hxx"
# include "asciiopt.hxx"
# include "waitoff.hxx"
# include "docpool.hxx" // LoadCompleted
# include "progress.hxx"
# include "pntlock.hxx"
# include "collect.hxx"
# include "docuno.hxx"
# include "appoptio.hxx"
# include "detdata.hxx"
2000-10-26 18:07:53 +00:00
# include "printfun.hxx"
2000-09-18 16:07:07 +00:00
# include "dociter.hxx"
# include "cellform.hxx"
# include "chartlis.hxx"
# include "hints.hxx"
# include "xmlwrap.hxx"
2001-01-30 15:52:33 +00:00
# include "drwlayer.hxx"
2001-04-21 19:31:39 +00:00
# include "refreshtimer.hxx"
2001-04-23 08:44:43 +00:00
# include "dbcolect.hxx"
2001-05-10 16:31:17 +00:00
# include "scextopt.hxx"
2004-03-08 10:53:55 +00:00
# include "compiler.hxx"
2003-09-19 07:23:05 +00:00
# include "cfgids.hxx"
2004-08-11 08:07:57 +00:00
# include "warnpassword.hxx"
2008-02-05 14:45:03 +00:00
# include "optsolver.hxx"
2009-09-07 15:38:19 +00:00
# include "sheetdata.hxx"
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
# include "tabprotection.hxx"
2010-10-01 22:30:59 -04:00
# include "docparam.hxx"
2000-09-18 16:07:07 +00:00
# include "docsh.hxx"
2006-11-22 09:45:18 +00:00
# include "docshimp.hxx"
2010-10-01 22:30:59 -04:00
# include "sizedev.hxx"
2001-07-27 12:20:07 +00:00
# include <rtl/logfile.hxx>
2008-03-07 11:19:13 +00:00
# include <comphelper/processfactory.hxx>
2010-07-06 19:34:53 +02:00
# include "uiitems.hxx"
# include "cellsuno.hxx"
2010-10-01 22:30:59 -04:00
# include <vector>
# include <boost/shared_ptr.hpp>
2004-10-04 19:14:39 +00:00
using namespace com : : sun : : star ;
2010-10-13 12:58:52 -04:00
using : : com : : sun : : star : : uno : : Reference ;
using : : com : : sun : : star : : uno : : UNO_QUERY ;
using : : com : : sun : : star : : lang : : XMultiServiceFactory ;
2009-07-27 11:41:15 -04:00
using : : rtl : : OUString ;
using : : rtl : : OUStringBuffer ;
2010-10-01 22:30:59 -04:00
using : : boost : : shared_ptr ;
using : : std : : vector ;
2004-10-04 19:14:39 +00:00
2010-10-13 12:58:52 -04:00
# include <stdio.h>
# include <string>
# include <sys/time.h>
namespace {
class StackPrinter
{
public :
explicit StackPrinter ( const char * msg ) :
msMsg ( msg )
{
fprintf ( stdout , " %s: --begin \n " , msMsg . c_str ( ) ) ;
mfStartTime = getTime ( ) ;
}
~ StackPrinter ( )
{
double fEndTime = getTime ( ) ;
fprintf ( stdout , " %s: --end (duration: %g sec) \n " , msMsg . c_str ( ) , ( fEndTime - mfStartTime ) ) ;
}
void printTime ( int line ) const
{
double fEndTime = getTime ( ) ;
fprintf ( stdout , " %s: --(%d) (duration: %g sec) \n " , msMsg . c_str ( ) , line , ( fEndTime - mfStartTime ) ) ;
}
private :
double getTime ( ) const
{
timeval tv ;
gettimeofday ( & tv , NULL ) ;
return tv . tv_sec + tv . tv_usec / 1000000.0 ;
}
: : std : : string msMsg ;
double mfStartTime ;
} ;
}
2000-09-18 16:07:07 +00:00
// STATIC DATA -----------------------------------------------------------
// Stream-Namen im Storage
const sal_Char __FAR_DATA ScDocShell : : pStarCalcDoc [ ] = STRING_SCSTREAM ; // "StarCalcDocument"
const sal_Char __FAR_DATA ScDocShell : : pStyleName [ ] = " SfxStyleSheets " ;
// Filter-Namen (wie in sclib.cxx)
static const sal_Char __FAR_DATA pFilterSc50 [ ] = " StarCalc 5.0 " ;
//static const sal_Char __FAR_DATA pFilterSc50Temp[] = "StarCalc 5.0 Vorlage/Template";
static const sal_Char __FAR_DATA pFilterSc40 [ ] = " StarCalc 4.0 " ;
//static const sal_Char __FAR_DATA pFilterSc40Temp[] = "StarCalc 4.0 Vorlage/Template";
static const sal_Char __FAR_DATA pFilterSc30 [ ] = " StarCalc 3.0 " ;
//static const sal_Char __FAR_DATA pFilterSc30Temp[] = "StarCalc 3.0 Vorlage/Template";
static const sal_Char __FAR_DATA pFilterSc10 [ ] = " StarCalc 1.0 " ;
static const sal_Char __FAR_DATA pFilterXML [ ] = " StarOffice XML (Calc) " ;
static const sal_Char __FAR_DATA pFilterAscii [ ] = " Text - txt - csv (StarCalc) " ;
static const sal_Char __FAR_DATA pFilterLotus [ ] = " Lotus " ;
2006-01-27 14:51:57 +00:00
static const sal_Char __FAR_DATA pFilterQPro6 [ ] = " Quattro Pro 6.0 " ;
2000-09-18 16:07:07 +00:00
static const sal_Char __FAR_DATA pFilterExcel4 [ ] = " MS Excel 4.0 " ;
static const sal_Char __FAR_DATA pFilterEx4Temp [ ] = " MS Excel 4.0 Vorlage/Template " ;
static const sal_Char __FAR_DATA pFilterExcel5 [ ] = " MS Excel 5.0/95 " ;
static const sal_Char __FAR_DATA pFilterEx5Temp [ ] = " MS Excel 5.0/95 Vorlage/Template " ;
static const sal_Char __FAR_DATA pFilterExcel95 [ ] = " MS Excel 95 " ;
static const sal_Char __FAR_DATA pFilterEx95Temp [ ] = " MS Excel 95 Vorlage/Template " ;
static const sal_Char __FAR_DATA pFilterExcel97 [ ] = " MS Excel 97 " ;
static const sal_Char __FAR_DATA pFilterEx97Temp [ ] = " MS Excel 97 Vorlage/Template " ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
static const sal_Char __FAR_DATA pFilterEx07Xml [ ] = " MS Excel 2007 XML " ;
2000-09-18 16:07:07 +00:00
static const sal_Char __FAR_DATA pFilterDBase [ ] = " dBase " ;
static const sal_Char __FAR_DATA pFilterDif [ ] = " DIF " ;
static const sal_Char __FAR_DATA pFilterSylk [ ] = " SYLK " ;
static const sal_Char __FAR_DATA pFilterHtml [ ] = " HTML (StarCalc) " ;
2001-05-10 13:11:39 +00:00
static const sal_Char __FAR_DATA pFilterHtmlWebQ [ ] = " calc_HTML_WebQuery " ;
2000-09-18 16:07:07 +00:00
static const sal_Char __FAR_DATA pFilterRtf [ ] = " Rich Text Format (StarCalc) " ;
//----------------------------------------------------------------------
# define ScDocShell
# include "scslots.hxx"
SFX_IMPL_INTERFACE ( ScDocShell , SfxObjectShell , ScResId ( SCSTR_DOCSHELL ) )
2004-02-03 19:29:30 +00:00
{
SFX_CHILDWINDOW_REGISTRATION ( SID_HYPERLINK_INSERT ) ;
}
2000-09-18 16:07:07 +00:00
// GlobalName der aktuellen Version:
2004-10-04 19:14:39 +00:00
SFX_IMPL_OBJECTFACTORY ( ScDocShell , SvGlobalName ( SO3_SC_CLASSID ) , SFXOBJECTSHELL_STD_NORMAL , " scalc " )
2000-09-18 16:07:07 +00:00
TYPEINIT1 ( ScDocShell , SfxObjectShell ) ; // SfxInPlaceObject: kein Type-Info ?
//------------------------------------------------------------------
void __EXPORT ScDocShell : : FillClass ( SvGlobalName * pClassName ,
2005-12-14 14:09:34 +00:00
sal_uInt32 * pFormat ,
2007-02-27 12:06:59 +00:00
String * /* pAppName */ ,
2000-09-18 16:07:07 +00:00
String * pFullTypeName ,
String * pShortTypeName ,
2008-12-12 12:52:51 +00:00
sal_Int32 nFileFormat ,
sal_Bool bTemplate /* = sal_False */ ) const
2000-09-18 16:07:07 +00:00
{
2004-10-04 19:14:39 +00:00
if ( nFileFormat = = SOFFICE_FILEFORMAT_60 )
2000-09-18 16:07:07 +00:00
{
2004-01-28 12:28:27 +00:00
* pClassName = SvGlobalName ( SO3_SC_CLASSID_60 ) ;
* pFormat = SOT_FORMATSTR_ID_STARCALC_60 ;
2000-09-18 16:07:07 +00:00
* pFullTypeName = String ( ScResId ( SCSTR_LONG_SCDOC_NAME ) ) ;
* pShortTypeName = String ( ScResId ( SCSTR_SHORT_SCDOC_NAME ) ) ;
}
2004-07-13 06:49:46 +00:00
else if ( nFileFormat = = SOFFICE_FILEFORMAT_8 )
{
* pClassName = SvGlobalName ( SO3_SC_CLASSID_60 ) ;
2008-12-12 12:52:51 +00:00
* pFormat = bTemplate ? SOT_FORMATSTR_ID_STARCALC_8_TEMPLATE : SOT_FORMATSTR_ID_STARCALC_8 ;
2004-07-13 06:49:46 +00:00
* pFullTypeName = String ( RTL_CONSTASCII_USTRINGPARAM ( " calc8 " ) ) ;
* pShortTypeName = String ( ScResId ( SCSTR_SHORT_SCDOC_NAME ) ) ;
}
2000-09-18 16:07:07 +00:00
else
2008-01-29 14:41:14 +00:00
{
2000-09-18 16:07:07 +00:00
DBG_ERROR ( " wat fuer ne Version? " ) ;
2008-01-29 14:41:14 +00:00
}
2000-09-18 16:07:07 +00:00
}
//------------------------------------------------------------------
void ScDocShell : : DoEnterHandler ( )
{
ScTabViewShell * pViewSh = ScTabViewShell : : GetActiveViewShell ( ) ;
if ( pViewSh )
if ( pViewSh - > GetViewData ( ) - > GetDocShell ( ) = = this )
SC_MOD ( ) - > InputEnterHandler ( ) ;
}
//------------------------------------------------------------------
2004-06-04 10:23:23 +00:00
SCTAB ScDocShell : : GetSaveTab ( )
2000-09-18 16:07:07 +00:00
{
2004-06-04 10:23:23 +00:00
SCTAB nTab = 0 ;
2000-09-18 16:07:07 +00:00
ScTabViewShell * pSh = GetBestViewShell ( ) ;
if ( pSh )
{
const ScMarkData & rMark = pSh - > GetViewData ( ) - > GetMarkData ( ) ;
for ( nTab = 0 ; nTab < = MAXTAB ; nTab + + ) // erste markierte Tabelle
if ( rMark . GetTableSelect ( nTab ) )
break ;
}
return nTab ;
}
2004-08-31 11:29:54 +00:00
sal_uInt16 ScDocShell : : GetHiddenInformationState ( sal_uInt16 nStates )
{
// get global state like HIDDENINFORMATION_DOCUMENTVERSIONS
sal_uInt16 nState = SfxObjectShell : : GetHiddenInformationState ( nStates ) ;
if ( nStates & HIDDENINFORMATION_RECORDEDCHANGES )
{
if ( aDocument . GetChangeTrack ( ) & & aDocument . GetChangeTrack ( ) - > GetFirst ( ) )
nState | = HIDDENINFORMATION_RECORDEDCHANGES ;
}
if ( nStates & HIDDENINFORMATION_NOTES )
{
SCTAB nTableCount = aDocument . GetTableCount ( ) ;
SCTAB nTable = 0 ;
sal_Bool bFound ( sal_False ) ;
while ( nTable < nTableCount & & ! bFound )
{
ScCellIterator aCellIter ( & aDocument , 0 , 0 , nTable , MAXCOL , MAXROW , nTable ) ;
2009-03-02 14:19:13 +00:00
for ( ScBaseCell * pCell = aCellIter . GetFirst ( ) ; pCell & & ! bFound ; pCell = aCellIter . GetNext ( ) )
if ( pCell - > HasNote ( ) )
2004-08-31 11:29:54 +00:00
bFound = sal_True ;
nTable + + ;
}
if ( bFound )
nState | = HIDDENINFORMATION_NOTES ;
}
return nState ;
}
2003-06-04 11:36:58 +00:00
void ScDocShell : : BeforeXMLLoading ( )
2001-02-09 19:04:16 +00:00
{
2005-03-23 12:04:31 +00:00
aDocument . DisableIdle ( TRUE ) ;
2001-02-09 19:04:16 +00:00
// prevent unnecessary broadcasts and updates
2003-06-04 11:36:58 +00:00
DBG_ASSERT ( pModificator = = NULL , " The Modificator should not exist " ) ;
pModificator = new ScDocShellModificator ( * this ) ;
2001-02-09 19:04:16 +00:00
aDocument . SetImportingXML ( TRUE ) ;
2009-06-04 20:36:53 +00:00
aDocument . EnableExecuteLink ( false ) ; // #i101304# to be safe, prevent nested loading from external references
2008-01-10 12:15:39 +00:00
aDocument . EnableUndo ( FALSE ) ;
2001-02-16 14:24:11 +00:00
// prevent unnecessary broadcasts and "half way listeners"
aDocument . SetInsertingFromOtherDoc ( TRUE ) ;
2001-02-09 19:04:16 +00:00
2003-04-17 12:23:04 +00:00
if ( GetCreateMode ( ) ! = SFX_CREATE_MODE_ORGANIZER )
2001-05-18 16:06:29 +00:00
ScColumn : : bDoubleAlloc = sal_True ;
2003-06-04 11:36:58 +00:00
}
2002-09-25 08:59:01 +00:00
2003-06-04 11:36:58 +00:00
void ScDocShell : : AfterXMLLoading ( sal_Bool bRet )
{
if ( GetCreateMode ( ) ! = SFX_CREATE_MODE_ORGANIZER )
{
2001-03-29 09:49:18 +00:00
UpdateLinks ( ) ;
// don't prevent establishing of listeners anymore
aDocument . SetInsertingFromOtherDoc ( FALSE ) ;
if ( bRet )
{
ScChartListenerCollection * pChartListener = aDocument . GetChartListenerCollection ( ) ;
if ( pChartListener )
pChartListener - > UpdateDirtyCharts ( ) ;
2001-12-12 17:32:12 +00:00
// #95582#; set the table names of linked tables to the new path
2004-06-04 10:23:23 +00:00
SCTAB nTabCount = aDocument . GetTableCount ( ) ;
for ( SCTAB i = 0 ; i < nTabCount ; + + i )
2001-12-12 17:32:12 +00:00
{
if ( aDocument . IsLinked ( i ) )
{
String aName ;
aDocument . GetName ( i , aName ) ;
String aLinkTabName = aDocument . GetLinkTab ( i ) ;
2002-07-17 16:28:09 +00:00
xub_StrLen nLinkTabNameLength = aLinkTabName . Len ( ) ;
xub_StrLen nNameLength = aName . Len ( ) ;
2001-12-12 17:32:12 +00:00
if ( nLinkTabNameLength < nNameLength )
{
// remove the quottes on begin and end of the docname and restore the escaped quotes
const sal_Unicode * pNameBuffer = aName . GetBuffer ( ) ;
if ( * pNameBuffer = = ' \' ' & & // all docnames have to have a ' character on the first pos
ScGlobal : : UnicodeStrChr ( pNameBuffer , SC_COMPILER_FILE_TAB_SEP ) )
{
rtl : : OUStringBuffer aDocURLBuffer ;
BOOL bQuote = TRUE ; // Dokumentenname ist immer quoted
+ + pNameBuffer ;
while ( bQuote & & * pNameBuffer )
{
if ( * pNameBuffer = = ' \' ' & & * ( pNameBuffer - 1 ) ! = ' \\ ' )
bQuote = FALSE ;
else if ( ! ( * pNameBuffer = = ' \\ ' & & * ( pNameBuffer + 1 ) = = ' \' ' ) )
aDocURLBuffer . append ( * pNameBuffer ) ; // falls escaped Quote: nur Quote in den Namen
+ + pNameBuffer ;
}
if ( * pNameBuffer = = SC_COMPILER_FILE_TAB_SEP ) // after the last quote of the docname should be the # char
{
2002-07-17 16:28:09 +00:00
xub_StrLen nIndex = nNameLength - nLinkTabNameLength ;
2001-12-12 17:32:12 +00:00
INetURLObject aINetURLObject ( aDocURLBuffer . makeStringAndClear ( ) ) ;
if ( aName . Equals ( aLinkTabName , nIndex , nLinkTabNameLength ) & &
( aName . GetChar ( nIndex - 1 ) = = ' # ' ) & & // before the table name should be the # char
! aINetURLObject . HasError ( ) ) // the docname should be a valid URL
{
aName = ScGlobal : : GetDocTabName ( aDocument . GetLinkDoc ( i ) , aDocument . GetLinkTab ( i ) ) ;
aDocument . RenameTab ( i , aName , TRUE , TRUE ) ;
}
// else; nothing has to happen, because it is a user given name
}
// else; nothing has to happen, because it is a user given name
}
// else; nothing has to happen, because it is a user given name
}
// else; nothing has to happen, because it is a user given name
}
}
2010-06-07 19:26:06 +02:00
// #i94570# DataPilot table names have to be unique, or the tables can't be accessed by API.
// If no name (or an invalid name, skipped in ScXMLDataPilotTableContext::EndElement) was set, create a new name.
ScDPCollection * pDPCollection = aDocument . GetDPCollection ( ) ;
if ( pDPCollection )
{
USHORT nDPCount = pDPCollection - > GetCount ( ) ;
for ( USHORT nDP = 0 ; nDP < nDPCount ; nDP + + )
{
ScDPObject * pDPObj = ( * pDPCollection ) [ nDP ] ;
if ( ! pDPObj - > GetName ( ) . Len ( ) )
pDPObj - > SetName ( pDPCollection - > CreateNewName ( ) ) ;
}
}
2001-03-29 09:49:18 +00:00
}
2001-05-18 16:06:29 +00:00
ScColumn : : bDoubleAlloc = sal_False ;
2001-03-29 09:49:18 +00:00
}
else
aDocument . SetInsertingFromOtherDoc ( FALSE ) ;
2010-07-27 11:53:35 +02:00
2001-02-09 19:04:16 +00:00
aDocument . SetImportingXML ( FALSE ) ;
2009-06-04 20:36:53 +00:00
aDocument . EnableExecuteLink ( true ) ;
2008-01-10 12:15:39 +00:00
aDocument . EnableUndo ( TRUE ) ;
2004-06-28 11:41:49 +00:00
bIsEmpty = FALSE ;
2001-02-09 19:04:16 +00:00
2003-06-04 11:36:58 +00:00
if ( pModificator )
{
delete pModificator ;
pModificator = NULL ;
}
else
2008-01-29 14:41:14 +00:00
{
2003-06-04 11:36:58 +00:00
DBG_ERROR ( " The Modificator should exist " ) ;
2008-01-29 14:41:14 +00:00
}
2005-03-23 12:04:31 +00:00
aDocument . DisableIdle ( FALSE ) ;
2003-06-04 11:36:58 +00:00
}
2010-09-15 12:28:47 +02:00
namespace {
class LoadMediumGuard
{
public :
explicit LoadMediumGuard ( ScDocument * pDoc ) :
mpDoc ( pDoc )
{
mpDoc - > SetLoadingMedium ( true ) ;
}
~ LoadMediumGuard ( )
{
mpDoc - > SetLoadingMedium ( false ) ;
}
private :
ScDocument * mpDoc ;
} ;
}
2007-02-27 12:06:59 +00:00
BOOL ScDocShell : : LoadXML ( SfxMedium * pLoadMedium , const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : embed : : XStorage > & xStor )
2003-06-04 11:36:58 +00:00
{
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " sb99857 " , " ScDocShell::LoadXML " ) ;
// MacroCallMode is no longer needed, state is kept in SfxObjectShell now
// no Seek(0) here - always loading from storage, GetInStream must not be called
BeforeXMLLoading ( ) ;
2006-03-27 08:36:04 +00:00
// #i62677# BeforeXMLLoading is also called from ScXMLImport::startDocument when invoked
// from an external component. The XMLFromWrapper flag is only set here, when called
// through ScDocShell.
aDocument . SetXMLFromWrapper ( TRUE ) ;
2007-02-27 12:06:59 +00:00
ScXMLImportWrapper aImport ( aDocument , pLoadMedium , xStor ) ;
2003-06-04 11:36:58 +00:00
sal_Bool bRet ( sal_False ) ;
2004-10-04 19:14:39 +00:00
ErrCode nError = ERRCODE_NONE ;
2003-06-04 11:36:58 +00:00
if ( GetCreateMode ( ) ! = SFX_CREATE_MODE_ORGANIZER )
2004-10-04 19:14:39 +00:00
bRet = aImport . Import ( sal_False , nError ) ;
2003-06-04 11:36:58 +00:00
else
2004-10-04 19:14:39 +00:00
bRet = aImport . Import ( sal_True , nError ) ;
if ( nError )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
pLoadMedium - > SetError ( nError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2003-06-04 11:36:58 +00:00
2006-03-27 08:36:04 +00:00
aDocument . SetXMLFromWrapper ( FALSE ) ;
2003-06-04 11:36:58 +00:00
AfterXMLLoading ( bRet ) ;
2001-02-09 19:04:16 +00:00
//! row heights...
return bRet ;
}
2007-02-27 12:06:59 +00:00
BOOL ScDocShell : : SaveXML ( SfxMedium * pSaveMedium , const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : embed : : XStorage > & xStor )
2001-02-09 19:04:16 +00:00
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " sb99857 " , " ScDocShell::SaveXML " ) ;
2001-07-27 12:20:07 +00:00
2005-03-23 12:04:31 +00:00
aDocument . DisableIdle ( TRUE ) ;
2007-02-27 12:06:59 +00:00
ScXMLImportWrapper aImport ( aDocument , pSaveMedium , xStor ) ;
2001-03-29 09:49:18 +00:00
sal_Bool bRet ( sal_False ) ;
2003-04-17 12:23:04 +00:00
if ( GetCreateMode ( ) ! = SFX_CREATE_MODE_ORGANIZER )
2001-03-29 09:49:18 +00:00
bRet = aImport . Export ( sal_False ) ;
else
bRet = aImport . Export ( sal_True ) ;
2005-03-23 12:04:31 +00:00
aDocument . DisableIdle ( FALSE ) ;
2001-02-09 19:04:16 +00:00
return bRet ;
}
2005-01-11 12:20:20 +00:00
BOOL __EXPORT ScDocShell : : Load ( SfxMedium & rMedium )
2000-09-18 16:07:07 +00:00
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::Load " ) ;
2010-09-15 12:28:47 +02:00
LoadMediumGuard aLoadGuard ( & aDocument ) ;
2001-04-21 19:31:39 +00:00
ScRefreshTimerProtector ( aDocument . GetRefreshTimerControlAddress ( ) ) ;
2000-11-26 12:55:25 +00:00
// only the latin script language is loaded
// -> initialize the others from options (before loading)
2010-06-04 18:59:28 +02:00
InitOptions ( true ) ;
2000-11-26 12:55:25 +00:00
2000-09-18 16:07:07 +00:00
GetUndoManager ( ) - > Clear ( ) ;
2005-01-11 12:20:20 +00:00
BOOL bRet = SfxObjectShell : : Load ( rMedium ) ;
2000-09-18 16:07:07 +00:00
if ( bRet )
2001-02-09 19:04:16 +00:00
{
2002-11-12 07:43:47 +00:00
if ( GetMedium ( ) )
{
2005-01-11 12:20:20 +00:00
SFX_ITEMSET_ARG ( rMedium . GetItemSet ( ) , pUpdateDocItem , SfxUInt16Item , SID_UPDATEDOCMODE , sal_False ) ;
2002-11-12 07:43:47 +00:00
nCanUpdate = pUpdateDocItem ? pUpdateDocItem - > GetValue ( ) : com : : sun : : star : : document : : UpdateDocMode : : NO_UPDATE ;
}
2001-02-09 19:04:16 +00:00
{
// prepare a valid document for XML filter
// (for ConvertFrom, InitNew is called before)
aDocument . MakeTable ( 0 ) ;
aDocument . GetStyleSheetPool ( ) - > CreateStandardStyles ( ) ;
aDocument . UpdStlShtPtrsFrmNms ( ) ;
2005-01-11 12:20:20 +00:00
bRet = LoadXML ( & rMedium , NULL ) ;
2001-02-09 19:04:16 +00:00
}
}
2000-09-18 16:07:07 +00:00
2005-01-11 12:20:20 +00:00
if ( ! bRet & & ! rMedium . GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
rMedium . SetError ( SVSTREAM_FILEFORMAT_ERROR , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
2005-01-11 12:20:20 +00:00
if ( rMedium . GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( rMedium . GetError ( ) , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2001-06-26 17:52:37 +00:00
2000-09-18 16:07:07 +00:00
InitItems ( ) ;
CalcOutputFactor ( ) ;
// #73762# invalidate eventually temporary table areas
if ( bRet )
aDocument . InvalidateTableArea ( ) ;
bIsEmpty = FALSE ;
FinishedLoading ( SFX_LOADED_MAINDOCUMENT | SFX_LOADED_IMAGES ) ;
return bRet ;
}
2007-02-27 12:06:59 +00:00
void __EXPORT ScDocShell : : Notify ( SfxBroadcaster & , const SfxHint & rHint )
2000-09-18 16:07:07 +00:00
{
2010-07-12 11:17:00 +02:00
uno : : Reference < script : : vba : : XVBAEventProcessor > xVbaEvents = aDocument . GetVbaEventProcessor ( ) ;
2010-07-06 19:34:53 +02:00
if ( xVbaEvents . is ( ) ) try
{
2010-07-12 11:17:00 +02:00
using namespace : : com : : sun : : star : : script : : vba : : VBAEventId ;
2010-07-06 19:34:53 +02:00
if ( rHint . ISA ( ScTablesHint ) )
{
const ScTablesHint & rScHint = static_cast < const ScTablesHint & > ( rHint ) ;
if ( rScHint . GetId ( ) = = SC_TAB_INSERTED )
{
uno : : Sequence < uno : : Any > aArgs ( 1 ) ;
aArgs [ 0 ] < < = rScHint . GetTab1 ( ) ;
xVbaEvents - > processVbaEvent ( WORKBOOK_NEWSHEET , aArgs ) ;
}
}
else if ( rHint . ISA ( SfxEventHint ) )
{
ULONG nEventId = static_cast < const SfxEventHint & > ( rHint ) . GetEventId ( ) ;
switch ( nEventId )
{
case SFX_EVENT_ACTIVATEDOC :
{
uno : : Sequence < uno : : Any > aArgs ;
xVbaEvents - > processVbaEvent ( WORKBOOK_ACTIVATE , aArgs ) ;
}
break ;
case SFX_EVENT_DEACTIVATEDOC :
{
uno : : Sequence < uno : : Any > aArgs ;
xVbaEvents - > processVbaEvent ( WORKBOOK_DEACTIVATE , aArgs ) ;
}
break ;
case SFX_EVENT_OPENDOC :
{
uno : : Sequence < uno : : Any > aArgs ;
xVbaEvents - > processVbaEvent ( WORKBOOK_OPEN , aArgs ) ;
}
break ;
case SFX_EVENT_SAVEDOCDONE :
case SFX_EVENT_SAVEASDOCDONE :
case SFX_EVENT_SAVETODOCDONE :
{
uno : : Sequence < uno : : Any > aArgs ( 1 ) ;
aArgs [ 0 ] < < = true ;
xVbaEvents - > processVbaEvent ( WORKBOOK_AFTERSAVE , aArgs ) ;
}
break ;
case SFX_EVENT_SAVEASDOCFAILED :
case SFX_EVENT_SAVEDOCFAILED :
case SFX_EVENT_SAVETODOCFAILED :
{
uno : : Sequence < uno : : Any > aArgs ( 1 ) ;
aArgs [ 0 ] < < = false ;
xVbaEvents - > processVbaEvent ( WORKBOOK_AFTERSAVE , aArgs ) ;
}
break ;
}
}
}
catch ( uno : : Exception & )
{
}
2000-09-18 16:07:07 +00:00
if ( rHint . ISA ( SfxSimpleHint ) ) // ohne Parameter
{
ULONG nSlot = ( ( const SfxSimpleHint & ) rHint ) . GetId ( ) ;
switch ( nSlot )
{
case SFX_HINT_TITLECHANGED :
aDocument . SetName ( SfxShell : : GetName ( ) ) ;
// RegisterNewTargetNames gibts nicht mehr
SFX_APP ( ) - > Broadcast ( SfxSimpleHint ( SC_HINT_DOCNAME_CHANGED ) ) ; // Navigator
break ;
}
}
else if ( rHint . ISA ( SfxStyleSheetHint ) ) // Vorlagen geaendert
NotifyStyle ( ( const SfxStyleSheetHint & ) rHint ) ;
else if ( rHint . ISA ( ScAutoStyleHint ) )
{
//! direct call for AutoStyles
// this is called synchronously from ScInterpreter::ScStyle,
// modifying the document must be asynchronous
// (handled by AddInitial)
ScAutoStyleHint & rStlHint = ( ScAutoStyleHint & ) rHint ;
ScRange aRange = rStlHint . GetRange ( ) ;
String aName1 = rStlHint . GetStyle1 ( ) ;
String aName2 = rStlHint . GetStyle2 ( ) ;
UINT32 nTimeout = rStlHint . GetTimeout ( ) ;
if ( ! pAutoStyleList )
pAutoStyleList = new ScAutoStyleList ( this ) ;
pAutoStyleList - > AddInitial ( aRange , aName1 , nTimeout , aName2 ) ;
}
2008-03-07 11:19:13 +00:00
else if ( rHint . ISA ( SfxEventHint ) )
{
ULONG nEventId = ( ( SfxEventHint & ) rHint ) . GetEventId ( ) ;
switch ( nEventId )
{
case SFX_EVENT_LOADFINISHED :
{
2008-11-19 13:34:57 +00:00
// the readonly documents should not be opened in shared mode
if ( HasSharedXMLFlagSet ( ) & & ! SC_MOD ( ) - > IsInSharedDocLoading ( ) & & ! IsReadOnly ( ) )
2008-03-07 11:19:13 +00:00
{
2008-11-19 13:34:57 +00:00
if ( SwitchToShared ( sal_True , sal_False ) )
{
ScViewData * pViewData = GetViewData ( ) ;
ScTabView * pTabView = ( pViewData ? dynamic_cast < ScTabView * > ( pViewData - > GetView ( ) ) : NULL ) ;
if ( pTabView )
{
pTabView - > UpdateLayerLocks ( ) ;
}
}
else
2008-04-15 13:12:23 +00:00
{
2008-11-19 13:34:57 +00:00
// switching to shared mode has failed, the document should be opened readonly
// TODO/LATER: And error message should be shown here probably
SetReadOnlyUI ( sal_True ) ;
2008-04-15 13:12:23 +00:00
}
2008-03-07 11:19:13 +00:00
}
2010-07-27 11:53:35 +02:00
// VBA specific initialization
if ( aDocument . IsInVBAMode ( ) ) try
{
uno : : Reference < frame : : XModel > xModel ( GetModel ( ) , uno : : UNO_SET_THROW ) ;
2010-07-30 17:28:42 +02:00
// create VBAGlobals object if not yet done (this also creates the "ThisExcelDoc" symbol)
2010-07-27 11:53:35 +02:00
uno : : Reference < lang : : XMultiServiceFactory > xFactory ( xModel , uno : : UNO_QUERY_THROW ) ;
xFactory - > createInstance ( : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " ooo.vba.VBAGlobals " ) ) ) ;
// create the VBA document event processor
uno : : Sequence < uno : : Any > aArgs ( 1 ) ;
aArgs [ 0 ] < < = xModel ;
2010-07-28 19:28:49 +02:00
xVbaEvents . set ( ooo : : vba : : createVBAUnoAPIServiceWithArgs ( this , " com.sun.star.script.vba.VBASpreadsheetEventProcessor " , aArgs ) , uno : : UNO_QUERY ) ;
2010-07-27 11:53:35 +02:00
aDocument . SetVbaEventProcessor ( xVbaEvents ) ;
}
catch ( uno : : Exception & )
{
}
2008-03-07 11:19:13 +00:00
}
break ;
case SFX_EVENT_VIEWCREATED :
{
2008-04-15 13:12:23 +00:00
if ( IsDocShared ( ) & & ! SC_MOD ( ) - > IsInSharedDocLoading ( ) )
2008-03-07 11:19:13 +00:00
{
ScAppOptions aAppOptions = SC_MOD ( ) - > GetAppOptions ( ) ;
if ( aAppOptions . GetShowSharedDocumentWarning ( ) )
{
WarningBox aBox ( GetActiveDialogParent ( ) , WinBits ( WB_OK ) ,
ScGlobal : : GetRscString ( STR_SHARED_DOC_WARNING ) ) ;
aBox . SetDefaultCheckBoxText ( ) ;
aBox . Execute ( ) ;
BOOL bChecked = aBox . GetCheckBoxState ( ) ;
if ( bChecked )
{
aAppOptions . SetShowSharedDocumentWarning ( ! bChecked ) ;
SC_MOD ( ) - > SetAppOptions ( aAppOptions ) ;
}
}
}
2010-06-04 20:08:33 +02:00
try
{
uno : : Reference < uno : : XComponentContext > xContext ;
uno : : Reference < lang : : XMultiServiceFactory > xServiceManager = : : comphelper : : getProcessServiceFactory ( ) ;
uno : : Reference < beans : : XPropertySet > xProp ( xServiceManager , uno : : UNO_QUERY_THROW ) ;
xProp - > getPropertyValue ( : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " DefaultContext " ) ) ) > > = xContext ;
if ( xContext . is ( ) )
{
uno : : Reference < container : : XContentEnumerationAccess > xEnumAccess ( xServiceManager , uno : : UNO_QUERY_THROW ) ;
uno : : Reference < container : : XEnumeration > xEnum = xEnumAccess - > createContentEnumeration (
: : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " com.sun.star.sheet.SpreadsheetDocumentJob " ) ) ) ;
if ( xEnum . is ( ) )
{
while ( xEnum - > hasMoreElements ( ) )
{
uno : : Any aAny = xEnum - > nextElement ( ) ;
uno : : Reference < lang : : XSingleComponentFactory > xFactory ;
aAny > > = xFactory ;
if ( xFactory . is ( ) )
{
uno : : Reference < task : : XJob > xJob ( xFactory - > createInstanceWithContext ( xContext ) , uno : : UNO_QUERY_THROW ) ;
uno : : Sequence < beans : : NamedValue > aArgsForJob ( 1 ) ;
ScViewData * pViewData = GetViewData ( ) ;
SfxViewShell * pViewShell = ( pViewData ? pViewData - > GetViewShell ( ) : NULL ) ;
SfxViewFrame * pViewFrame = ( pViewShell ? pViewShell - > GetViewFrame ( ) : NULL ) ;
SfxFrame * pFrame = ( pViewFrame ? & pViewFrame - > GetFrame ( ) : NULL ) ;
uno : : Reference < frame : : XController > xController = ( pFrame ? pFrame - > GetController ( ) : 0 ) ;
uno : : Reference < sheet : : XSpreadsheetView > xSpreadsheetView ( xController , uno : : UNO_QUERY_THROW ) ;
aArgsForJob [ 0 ] = beans : : NamedValue ( : : rtl : : OUString : : createFromAscii ( " SpreadsheetView " ) ,
uno : : makeAny ( xSpreadsheetView ) ) ;
xJob - > execute ( aArgsForJob ) ;
}
}
}
}
}
catch ( uno : : Exception & )
{
}
2008-03-07 11:19:13 +00:00
}
break ;
case SFX_EVENT_SAVEDOC :
{
if ( IsDocShared ( ) & & ! SC_MOD ( ) - > IsInSharedDocSaving ( ) )
{
2008-11-19 13:34:57 +00:00
bool bSuccess = false ;
2008-03-07 11:19:13 +00:00
bool bRetry = true ;
while ( bRetry )
{
bRetry = false ;
2008-04-15 13:12:23 +00:00
uno : : Reference < frame : : XModel > xModel ;
2008-03-07 11:19:13 +00:00
try
{
// load shared file
2008-04-15 13:12:23 +00:00
xModel . set ( LoadSharedDocument ( ) , uno : : UNO_QUERY_THROW ) ;
uno : : Reference < util : : XCloseable > xCloseable ( xModel , uno : : UNO_QUERY_THROW ) ;
2008-03-07 11:19:13 +00:00
// check if shared flag is set in shared file
bool bShared = false ;
2008-04-15 13:12:23 +00:00
ScModelObj * pDocObj = ScModelObj : : getImplementation ( xModel ) ;
ScDocShell * pSharedDocShell = ( pDocObj ? dynamic_cast < ScDocShell * > ( pDocObj - > GetObjectShell ( ) ) : NULL ) ;
if ( pSharedDocShell )
2008-03-07 11:19:13 +00:00
{
2008-04-15 13:12:23 +00:00
bShared = pSharedDocShell - > HasSharedXMLFlagSet ( ) ;
2008-03-07 11:19:13 +00:00
}
2008-07-02 09:03:47 +00:00
// #i87870# check if shared status was disabled and enabled again
bool bOwnEntry = false ;
2008-11-19 13:34:57 +00:00
bool bEntriesNotAccessible = false ;
2008-07-02 09:03:47 +00:00
try
{
: : svt : : ShareControlFile aControlFile ( GetSharedFileURL ( ) ) ;
bOwnEntry = aControlFile . HasOwnEntry ( ) ;
}
catch ( uno : : Exception & )
{
2008-11-19 13:34:57 +00:00
bEntriesNotAccessible = true ;
2008-07-02 09:03:47 +00:00
}
if ( bShared & & bOwnEntry )
2008-03-07 11:19:13 +00:00
{
2008-04-15 13:12:23 +00:00
uno : : Reference < frame : : XStorable > xStorable ( xModel , uno : : UNO_QUERY_THROW ) ;
2008-03-07 11:19:13 +00:00
if ( xStorable - > isReadonly ( ) )
{
xCloseable - > close ( sal_True ) ;
2008-04-15 13:12:23 +00:00
2008-03-07 11:19:13 +00:00
String aUserName ( ScGlobal : : GetRscString ( STR_UNKNOWN_USER ) ) ;
2008-11-19 13:34:57 +00:00
bool bNoLockAccess = false ;
2008-04-15 13:12:23 +00:00
try
{
: : svt : : DocumentLockFile aLockFile ( GetSharedFileURL ( ) ) ;
uno : : Sequence < : : rtl : : OUString > aData = aLockFile . GetLockData ( ) ;
if ( aData . getLength ( ) > LOCKFILE_SYSUSERNAME_ID )
{
if ( aData [ LOCKFILE_OOOUSERNAME_ID ] . getLength ( ) > 0 )
{
aUserName = aData [ LOCKFILE_OOOUSERNAME_ID ] ;
}
else if ( aData [ LOCKFILE_SYSUSERNAME_ID ] . getLength ( ) > 0 )
{
aUserName = aData [ LOCKFILE_SYSUSERNAME_ID ] ;
}
}
}
catch ( uno : : Exception & )
{
2008-11-19 13:34:57 +00:00
bNoLockAccess = true ;
2008-04-15 13:12:23 +00:00
}
2008-11-19 13:34:57 +00:00
if ( bNoLockAccess )
2008-03-07 11:19:13 +00:00
{
2008-11-19 13:34:57 +00:00
// TODO/LATER: in future an error regarding impossibility to open file for writing could be shown
ErrorHandler : : HandleError ( ERRCODE_IO_GENERAL ) ;
}
else
{
String aMessage ( ScGlobal : : GetRscString ( STR_FILE_LOCKED_SAVE_LATER ) ) ;
aMessage . SearchAndReplaceAscii ( " %1 " , aUserName ) ;
WarningBox aBox ( GetActiveDialogParent ( ) , WinBits ( WB_RETRY_CANCEL | WB_DEF_RETRY ) , aMessage ) ;
if ( aBox . Execute ( ) = = RET_RETRY )
{
bRetry = true ;
}
2008-03-07 11:19:13 +00:00
}
}
else
{
// merge changes from shared file into temp file
bool bSaveToShared = false ;
2008-04-15 13:12:23 +00:00
if ( pSharedDocShell )
2008-03-07 11:19:13 +00:00
{
2008-04-15 13:12:23 +00:00
bSaveToShared = MergeSharedDocument ( pSharedDocShell ) ;
2008-03-07 11:19:13 +00:00
}
// close shared file
xCloseable - > close ( sal_True ) ;
// TODO: keep file lock on shared file
// store to shared file
if ( bSaveToShared )
{
bool bChangedViewSettings = false ;
ScChangeViewSettings * pChangeViewSet = aDocument . GetChangeViewSettings ( ) ;
if ( pChangeViewSet & & pChangeViewSet - > ShowChanges ( ) )
{
pChangeViewSet - > SetShowChanges ( FALSE ) ;
pChangeViewSet - > SetShowAccepted ( FALSE ) ;
aDocument . SetChangeViewSettings ( * pChangeViewSet ) ;
bChangedViewSettings = true ;
}
uno : : Reference < frame : : XStorable > xStor ( GetModel ( ) , uno : : UNO_QUERY_THROW ) ;
2008-07-08 08:43:20 +00:00
// TODO/LATER: More entries from the MediaDescriptor might be interesting for the merge
2008-03-07 11:19:13 +00:00
uno : : Sequence < beans : : PropertyValue > aValues ( 1 ) ;
aValues [ 0 ] . Name = : : rtl : : OUString : : createFromAscii ( " FilterName " ) ;
aValues [ 0 ] . Value < < = : : rtl : : OUString ( GetMedium ( ) - > GetFilter ( ) - > GetFilterName ( ) ) ;
2008-07-08 08:43:20 +00:00
SFX_ITEMSET_ARG ( GetMedium ( ) - > GetItemSet ( ) , pPasswordItem , SfxStringItem , SID_PASSWORD , sal_False ) ;
if ( pPasswordItem & & pPasswordItem - > GetValue ( ) . Len ( ) )
{
aValues . realloc ( 2 ) ;
aValues [ 1 ] . Name = : : rtl : : OUString : : createFromAscii ( " Password " ) ;
aValues [ 1 ] . Value < < = : : rtl : : OUString ( pPasswordItem - > GetValue ( ) ) ;
}
2008-03-07 11:19:13 +00:00
SC_MOD ( ) - > SetInSharedDocSaving ( true ) ;
2008-04-15 13:12:23 +00:00
xStor - > storeToURL ( GetSharedFileURL ( ) , aValues ) ;
2008-03-07 11:19:13 +00:00
SC_MOD ( ) - > SetInSharedDocSaving ( false ) ;
if ( bChangedViewSettings )
{
pChangeViewSet - > SetShowChanges ( TRUE ) ;
pChangeViewSet - > SetShowAccepted ( TRUE ) ;
aDocument . SetChangeViewSettings ( * pChangeViewSet ) ;
}
}
2008-11-19 13:34:57 +00:00
bSuccess = true ;
2008-03-07 11:19:13 +00:00
GetUndoManager ( ) - > Clear ( ) ;
}
}
else
{
xCloseable - > close ( sal_True ) ;
2008-11-19 13:34:57 +00:00
if ( bEntriesNotAccessible )
2008-03-07 11:19:13 +00:00
{
2008-11-19 13:34:57 +00:00
// TODO/LATER: in future an error regarding impossibility to write to share control file could be shown
ErrorHandler : : HandleError ( ERRCODE_IO_GENERAL ) ;
}
else
{
WarningBox aBox ( GetActiveDialogParent ( ) , WinBits ( WB_OK ) ,
ScGlobal : : GetRscString ( STR_DOC_NOLONGERSHARED ) ) ;
aBox . Execute ( ) ;
SfxBindings * pBindings = GetViewBindings ( ) ;
if ( pBindings )
{
pBindings - > ExecuteSynchron ( SID_SAVEASDOC ) ;
}
2008-03-07 11:19:13 +00:00
}
}
}
catch ( uno : : Exception & )
{
DBG_ERROR ( " SFX_EVENT_SAVEDOC: caught exception \n " ) ;
SC_MOD ( ) - > SetInSharedDocSaving ( false ) ;
try
{
2008-04-15 13:12:23 +00:00
uno : : Reference < util : : XCloseable > xClose ( xModel , uno : : UNO_QUERY_THROW ) ;
2008-03-07 11:19:13 +00:00
xClose - > close ( sal_True ) ;
}
catch ( uno : : Exception & )
{
}
}
}
2008-11-19 13:34:57 +00:00
if ( ! bSuccess )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( ERRCODE_IO_ABORT , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ; // this error code will produce no error message, but will break the further saving process
2008-03-07 11:19:13 +00:00
}
2010-04-13 15:25:33 +02:00
if ( pSheetSaveData )
pSheetSaveData - > SetInSupportedSave ( true ) ;
2008-03-07 11:19:13 +00:00
}
break ;
2010-04-13 15:25:33 +02:00
case SFX_EVENT_SAVEASDOC :
case SFX_EVENT_SAVETODOC :
// #i108978# If no event is sent before saving, there will also be no "...DONE" event,
// and SAVE/SAVEAS can't be distinguished from SAVETO. So stream copying is only enabled
// if there is a SAVE/SAVEAS/SAVETO event first.
if ( pSheetSaveData )
pSheetSaveData - > SetInSupportedSave ( true ) ;
break ;
2008-03-07 11:19:13 +00:00
case SFX_EVENT_SAVEDOCDONE :
{
if ( IsDocShared ( ) & & ! SC_MOD ( ) - > IsInSharedDocSaving ( ) )
{
}
2009-09-07 15:38:19 +00:00
UseSheetSaveEntries ( ) ; // use positions from saved file for next saving
2010-04-13 15:25:33 +02:00
if ( pSheetSaveData )
pSheetSaveData - > SetInSupportedSave ( false ) ;
2008-03-07 11:19:13 +00:00
}
break ;
2009-09-07 15:38:19 +00:00
case SFX_EVENT_SAVEASDOCDONE :
// new positions are used after "save" and "save as", but not "save to"
UseSheetSaveEntries ( ) ; // use positions from saved file for next saving
2010-04-13 15:25:33 +02:00
if ( pSheetSaveData )
pSheetSaveData - > SetInSupportedSave ( false ) ;
break ;
case SFX_EVENT_SAVETODOCDONE :
// only reset the flag, don't use the new positions
if ( pSheetSaveData )
pSheetSaveData - > SetInSupportedSave ( false ) ;
2009-09-07 15:38:19 +00:00
break ;
2008-03-07 11:19:13 +00:00
default :
{
}
break ;
}
}
2000-09-18 16:07:07 +00:00
}
// Inhalte fuer Organizer laden
2005-01-11 12:20:20 +00:00
BOOL __EXPORT ScDocShell : : LoadFrom ( SfxMedium & rMedium )
2000-09-18 16:07:07 +00:00
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::LoadFrom " ) ;
2010-09-15 12:28:47 +02:00
LoadMediumGuard aLoadGuard ( & aDocument ) ;
2001-04-21 19:31:39 +00:00
ScRefreshTimerProtector ( aDocument . GetRefreshTimerControlAddress ( ) ) ;
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
2000-09-18 16:07:07 +00:00
BOOL bRet = FALSE ;
2001-03-27 15:49:00 +00:00
2002-11-12 07:43:47 +00:00
if ( GetMedium ( ) )
{
2005-01-11 12:20:20 +00:00
SFX_ITEMSET_ARG ( rMedium . GetItemSet ( ) , pUpdateDocItem , SfxUInt16Item , SID_UPDATEDOCMODE , sal_False ) ;
2002-11-12 07:43:47 +00:00
nCanUpdate = pUpdateDocItem ? pUpdateDocItem - > GetValue ( ) : com : : sun : : star : : document : : UpdateDocMode : : NO_UPDATE ;
}
2004-10-04 19:14:39 +00:00
// until loading/saving only the styles in XML is implemented,
// load the whole file
2005-01-11 12:20:20 +00:00
bRet = LoadXML ( & rMedium , NULL ) ;
2004-10-04 19:14:39 +00:00
InitItems ( ) ;
2000-09-18 16:07:07 +00:00
2005-01-11 12:20:20 +00:00
SfxObjectShell : : LoadFrom ( rMedium ) ;
2000-09-18 16:07:07 +00:00
return bRet ;
}
2009-07-27 11:41:15 -04:00
static void lcl_parseHtmlFilterOption ( const OUString & rOption , LanguageType & rLang , bool & rDateConvert )
{
OUStringBuffer aBuf ;
OUString aTokens [ 2 ] ;
sal_Int32 n = rOption . getLength ( ) ;
const sal_Unicode * p = rOption . getStr ( ) ;
sal_Int32 nTokenId = 0 ;
for ( sal_Int32 i = 0 ; i < n ; + + i )
{
const sal_Unicode c = p [ i ] ;
if ( c = = sal_Unicode ( ' ' ) )
{
if ( aBuf . getLength ( ) )
aTokens [ nTokenId + + ] = aBuf . makeStringAndClear ( ) ;
}
else
aBuf . append ( c ) ;
if ( nTokenId > = 2 )
break ;
}
if ( aBuf . getLength ( ) )
aTokens [ nTokenId ] = aBuf . makeStringAndClear ( ) ;
rLang = static_cast < LanguageType > ( aTokens [ 0 ] . toInt32 ( ) ) ;
rDateConvert = static_cast < bool > ( aTokens [ 1 ] . toInt32 ( ) ) ;
}
2000-09-18 16:07:07 +00:00
BOOL __EXPORT ScDocShell : : ConvertFrom ( SfxMedium & rMedium )
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::ConvertFrom " ) ;
2001-07-27 18:19:54 +00:00
2010-06-23 13:38:34 +02:00
LoadMediumGuard aLoadGuard ( & aDocument ) ;
2000-09-18 16:07:07 +00:00
BOOL bRet = FALSE ; // FALSE heisst Benutzerabbruch !!
// bei Fehler: Fehler am Stream setzen!!
2001-04-21 19:31:39 +00:00
ScRefreshTimerProtector ( aDocument . GetRefreshTimerControlAddress ( ) ) ;
2000-09-18 16:07:07 +00:00
GetUndoManager ( ) - > Clear ( ) ;
// ob nach dem Import optimale Spaltenbreiten gesetzt werden sollen
BOOL bSetColWidths = FALSE ;
BOOL bSetSimpleTextColWidths = FALSE ;
2010-10-01 22:30:59 -04:00
ScColWidthParam aColWidthParam [ MAXCOLCOUNT ] ;
2000-09-18 16:07:07 +00:00
ScRange aColWidthRange ;
// ob nach dem Import optimale Zeilenhoehen gesetzt werden sollen
BOOL bSetRowHeights = FALSE ;
2010-10-01 22:30:59 -04:00
vector < ScDocRowHeightUpdater : : TabRanges > aRecalcRowRangesArray ;
2000-09-18 16:07:07 +00:00
aConvFilterName . Erase ( ) ; //@ #BugId 54198
// Alle Filter brauchen die komplette Datei am Stueck (nicht asynchron),
// darum vorher per CreateFileStream dafuer sorgen, dass die komplette
// Datei uebertragen wird.
rMedium . GetPhysicalName ( ) ; //! CreateFileStream direkt rufen, wenn verfuegbar
2002-11-12 07:43:47 +00:00
SFX_ITEMSET_ARG ( rMedium . GetItemSet ( ) , pUpdateDocItem , SfxUInt16Item , SID_UPDATEDOCMODE , sal_False ) ;
nCanUpdate = pUpdateDocItem ? pUpdateDocItem - > GetValue ( ) : com : : sun : : star : : document : : UpdateDocMode : : NO_UPDATE ;
2000-09-18 16:07:07 +00:00
const SfxFilter * pFilter = rMedium . GetFilter ( ) ;
if ( pFilter )
{
String aFltName = pFilter - > GetFilterName ( ) ;
aConvFilterName = aFltName ; //@ #BugId 54198
BOOL bCalc3 = ( aFltName . EqualsAscii ( pFilterSc30 ) ) ;
BOOL bCalc4 = ( aFltName . EqualsAscii ( pFilterSc40 ) ) ;
if ( ! bCalc3 & & ! bCalc4 )
aDocument . SetInsertingFromOtherDoc ( TRUE ) ;
2004-10-04 19:14:39 +00:00
if ( aFltName . EqualsAscii ( pFilterXML ) )
2001-02-09 19:04:16 +00:00
bRet = LoadXML ( & rMedium , NULL ) ;
2000-09-18 16:07:07 +00:00
else if ( aFltName . EqualsAscii ( pFilterSc10 ) )
{
SvStream * pStream = rMedium . GetInStream ( ) ;
if ( pStream )
{
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
FltError eError = ScFormatFilter : : Get ( ) . ScImportStarCalc10 ( * pStream , & aDocument ) ;
2000-09-18 16:07:07 +00:00
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
else
bRet = TRUE ;
}
}
else if ( aFltName . EqualsAscii ( pFilterLotus ) )
{
2004-11-26 12:52:13 +00:00
String sItStr ;
SfxItemSet * pSet = rMedium . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
2000-09-18 16:07:07 +00:00
{
2004-11-26 12:52:13 +00:00
sItStr = ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ;
}
2000-09-18 16:07:07 +00:00
2004-11-26 12:52:13 +00:00
if ( sItStr . Len ( ) = = 0 )
{
// default for lotus import (from API without options):
// IBM_437 encoding
sItStr = ScGlobal : : GetCharsetString ( RTL_TEXTENCODING_IBM_437 ) ;
}
2002-05-29 12:36:53 +00:00
2004-11-26 12:52:13 +00:00
ScColumn : : bDoubleAlloc = TRUE ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
FltError eError = ScFormatFilter : : Get ( ) . ScImportLotus123 ( rMedium , & aDocument ,
2004-11-26 12:52:13 +00:00
ScGlobal : : GetCharsetValue ( sItStr ) ) ;
ScColumn : : bDoubleAlloc = FALSE ;
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
2004-11-26 12:52:13 +00:00
if ( ( eError & ERRCODE_WARNING_MASK ) = = ERRCODE_WARNING_MASK )
2002-05-29 12:36:53 +00:00
bRet = TRUE ;
2000-09-18 16:07:07 +00:00
}
2004-11-26 12:52:13 +00:00
else
bRet = TRUE ;
bSetColWidths = TRUE ;
bSetRowHeights = TRUE ;
2000-09-18 16:07:07 +00:00
}
else if ( aFltName . EqualsAscii ( pFilterExcel4 ) | | aFltName . EqualsAscii ( pFilterExcel5 ) | |
aFltName . EqualsAscii ( pFilterExcel95 ) | | aFltName . EqualsAscii ( pFilterExcel97 ) | |
aFltName . EqualsAscii ( pFilterEx4Temp ) | | aFltName . EqualsAscii ( pFilterEx5Temp ) | |
aFltName . EqualsAscii ( pFilterEx95Temp ) | | aFltName . EqualsAscii ( pFilterEx97Temp ) )
{
EXCIMPFORMAT eFormat = EIF_AUTO ;
if ( aFltName . EqualsAscii ( pFilterExcel4 ) | | aFltName . EqualsAscii ( pFilterEx4Temp ) )
eFormat = EIF_BIFF_LE4 ;
else if ( aFltName . EqualsAscii ( pFilterExcel5 ) | | aFltName . EqualsAscii ( pFilterExcel95 ) | |
aFltName . EqualsAscii ( pFilterEx5Temp ) | | aFltName . EqualsAscii ( pFilterEx95Temp ) )
eFormat = EIF_BIFF5 ;
else if ( aFltName . EqualsAscii ( pFilterExcel97 ) | | aFltName . EqualsAscii ( pFilterEx97Temp ) )
eFormat = EIF_BIFF8 ;
MakeDrawLayer ( ) ; //! im Filter
2001-10-23 13:51:33 +00:00
CalcOutputFactor ( ) ; // #93255# prepare update of row height
2000-09-18 16:07:07 +00:00
ScColumn : : bDoubleAlloc = TRUE ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
FltError eError = ScFormatFilter : : Get ( ) . ScImportExcel ( rMedium , & aDocument , eFormat ) ;
2000-09-18 16:07:07 +00:00
ScColumn : : bDoubleAlloc = FALSE ;
aDocument . UpdateFontCharSet ( ) ;
if ( aDocument . IsChartListenerCollectionNeedsUpdate ( ) )
aDocument . UpdateChartListenerCollection ( ) ; //! fuer alle Importe?
// #75299# all graphics objects must have names
aDocument . EnsureGraphicNames ( ) ;
if ( eError = = SCWARN_IMPORT_RANGE_OVERFLOW )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
bRet = TRUE ;
}
else if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
else
bRet = TRUE ;
2001-10-23 13:51:33 +00:00
// #93255# update of row height done inside of Excel filter to speed up chart import
// bSetRowHeights = TRUE; // #75357# optimal row heights must be updated
2000-09-18 16:07:07 +00:00
}
else if ( aFltName . EqualsAscii ( pFilterAscii ) )
{
SfxItemSet * pSet = rMedium . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
ScAsciiOptions aOptions ;
BOOL bOptInit = FALSE ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
aOptions . ReadFromString ( ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ) ;
bOptInit = TRUE ;
}
if ( ! bOptInit )
{
2002-05-29 12:36:53 +00:00
// default for ascii import (from API without options):
// ISO8859-1/MS_1252 encoding, comma, double quotes
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
aOptions . SetCharSet ( RTL_TEXTENCODING_MS_1252 ) ;
aOptions . SetFieldSeps ( ( sal_Unicode ) ' , ' ) ;
aOptions . SetTextSep ( ( sal_Unicode ) ' " ' ) ;
}
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
FltError eError = eERR_OK ;
BOOL bOverflow = FALSE ;
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
if ( ! rMedium . IsStorage ( ) )
{
ScImportExport aImpEx ( & aDocument ) ;
aImpEx . SetExtOptions ( aOptions ) ;
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
SvStream * pInStream = rMedium . GetInStream ( ) ;
if ( pInStream )
{
pInStream - > SetStreamCharSet ( aOptions . GetCharSet ( ) ) ;
pInStream - > Seek ( 0 ) ;
2005-01-11 12:20:20 +00:00
bRet = aImpEx . ImportStream ( * pInStream , rMedium . GetBaseURL ( ) ) ;
2002-05-29 12:36:53 +00:00
eError = bRet ? eERR_OK : SCERR_IMPORT_CONNECT ;
aDocument . StartAllListeners ( ) ;
aDocument . SetDirty ( ) ;
bOverflow = aImpEx . IsOverflow ( ) ;
2000-09-18 16:07:07 +00:00
}
else
2008-01-29 14:41:14 +00:00
{
2000-09-18 16:07:07 +00:00
DBG_ERROR ( " No Stream " ) ;
2008-01-29 14:41:14 +00:00
}
2000-09-18 16:07:07 +00:00
}
2002-05-29 12:36:53 +00:00
if ( eError ! = eERR_OK )
2000-09-18 16:07:07 +00:00
{
2002-05-29 12:36:53 +00:00
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2002-05-29 12:36:53 +00:00
}
else if ( bOverflow )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( SCWARN_IMPORT_RANGE_OVERFLOW , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
2002-05-29 12:36:53 +00:00
bSetColWidths = TRUE ;
bSetSimpleTextColWidths = TRUE ;
2000-09-18 16:07:07 +00:00
}
else if ( aFltName . EqualsAscii ( pFilterDBase ) )
{
String sItStr ;
SfxItemSet * pSet = rMedium . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
sItStr = ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ;
}
2002-05-29 12:36:53 +00:00
2000-09-18 16:07:07 +00:00
if ( sItStr . Len ( ) = = 0 )
{
2002-05-29 12:36:53 +00:00
// default for dBase import (from API without options):
// IBM_850 encoding
2000-10-26 18:07:53 +00:00
2002-05-29 12:36:53 +00:00
sItStr = ScGlobal : : GetCharsetString ( RTL_TEXTENCODING_IBM_850 ) ;
}
2000-10-26 18:07:53 +00:00
2010-10-01 22:30:59 -04:00
ScDocRowHeightUpdater : : TabRanges aRecalcRanges ( 0 ) ;
2002-05-29 12:36:53 +00:00
ULONG eError = DBaseImport ( rMedium . GetPhysicalName ( ) ,
2010-10-01 22:30:59 -04:00
ScGlobal : : GetCharsetValue ( sItStr ) , aColWidthParam , * aRecalcRanges . mpRanges ) ;
aRecalcRowRangesArray . push_back ( aRecalcRanges ) ;
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2002-05-29 12:36:53 +00:00
bRet = ( eError = = SCWARN_IMPORT_RANGE_OVERFLOW ) ;
2000-09-18 16:07:07 +00:00
}
else
2002-05-29 12:36:53 +00:00
bRet = TRUE ;
2000-10-26 18:07:53 +00:00
2000-09-18 16:07:07 +00:00
aColWidthRange . aStart . SetRow ( 1 ) ; // Spaltenheader nicht
bSetColWidths = TRUE ;
bSetSimpleTextColWidths = TRUE ;
}
else if ( aFltName . EqualsAscii ( pFilterDif ) )
{
SvStream * pStream = rMedium . GetInStream ( ) ;
if ( pStream )
{
FltError eError ;
String sItStr ;
SfxItemSet * pSet = rMedium . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
sItStr = ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ;
}
if ( sItStr . Len ( ) = = 0 )
{
2002-05-29 12:36:53 +00:00
// default for DIF import (from API without options):
// ISO8859-1/MS_1252 encoding
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
sItStr = ScGlobal : : GetCharsetString ( RTL_TEXTENCODING_MS_1252 ) ;
2000-09-18 16:07:07 +00:00
}
2002-05-29 12:36:53 +00:00
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
eError = ScFormatFilter : : Get ( ) . ScImportDif ( * pStream , & aDocument , ScAddress ( 0 , 0 , 0 ) ,
2002-05-29 12:36:53 +00:00
ScGlobal : : GetCharsetValue ( sItStr ) ) ;
if ( eError ! = eERR_OK )
2000-09-18 16:07:07 +00:00
{
2002-05-29 12:36:53 +00:00
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
if ( ( eError & ERRCODE_WARNING_MASK ) = = ERRCODE_WARNING_MASK )
2000-09-18 16:07:07 +00:00
bRet = TRUE ;
}
2002-05-29 12:36:53 +00:00
else
bRet = TRUE ;
2000-09-18 16:07:07 +00:00
}
bSetColWidths = TRUE ;
bSetSimpleTextColWidths = TRUE ;
2009-05-18 15:28:50 +00:00
bSetRowHeights = TRUE ;
2000-09-18 16:07:07 +00:00
}
else if ( aFltName . EqualsAscii ( pFilterSylk ) )
{
FltError eError = SCERR_IMPORT_UNKNOWN ;
if ( ! rMedium . IsStorage ( ) )
{
ScImportExport aImpEx ( & aDocument ) ;
SvStream * pInStream = rMedium . GetInStream ( ) ;
if ( pInStream )
{
pInStream - > Seek ( 0 ) ;
2005-01-11 12:20:20 +00:00
bRet = aImpEx . ImportStream ( * pInStream , rMedium . GetBaseURL ( ) , SOT_FORMATSTR_ID_SYLK ) ;
2000-09-18 16:07:07 +00:00
eError = bRet ? eERR_OK : SCERR_IMPORT_UNKNOWN ;
aDocument . StartAllListeners ( ) ;
aDocument . SetDirty ( ) ;
}
else
2008-01-29 14:41:14 +00:00
{
2000-09-18 16:07:07 +00:00
DBG_ERROR ( " No Stream " ) ;
2008-01-29 14:41:14 +00:00
}
2000-09-18 16:07:07 +00:00
}
if ( eError ! = eERR_OK & & ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
bSetColWidths = TRUE ;
bSetSimpleTextColWidths = TRUE ;
2009-05-18 15:28:50 +00:00
bSetRowHeights = TRUE ;
2000-09-18 16:07:07 +00:00
}
2006-01-27 14:51:57 +00:00
else if ( aFltName . EqualsAscii ( pFilterQPro6 ) )
{
ScColumn : : bDoubleAlloc = TRUE ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
FltError eError = ScFormatFilter : : Get ( ) . ScImportQuattroPro ( rMedium , & aDocument ) ;
2006-01-27 14:51:57 +00:00
ScColumn : : bDoubleAlloc = FALSE ;
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2006-01-27 14:51:57 +00:00
if ( ( eError & ERRCODE_WARNING_MASK ) = = ERRCODE_WARNING_MASK )
bRet = TRUE ;
}
else
bRet = TRUE ;
// TODO: Filter should set column widths. Not doing it here, it may
// result in very narrow or wide columns, depending on content.
// Setting row heights makes cells with font size attribution or
// wrapping enabled look nicer..
bSetRowHeights = TRUE ;
}
2000-09-18 16:07:07 +00:00
else if ( aFltName . EqualsAscii ( pFilterRtf ) )
{
FltError eError = SCERR_IMPORT_UNKNOWN ;
if ( ! rMedium . IsStorage ( ) )
{
SvStream * pInStream = rMedium . GetInStream ( ) ;
if ( pInStream )
{
pInStream - > Seek ( 0 ) ;
ScRange aRange ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
eError = ScFormatFilter : : Get ( ) . ScImportRTF ( * pInStream , rMedium . GetBaseURL ( ) , & aDocument , aRange ) ;
2000-09-18 16:07:07 +00:00
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
if ( ( eError & ERRCODE_WARNING_MASK ) = = ERRCODE_WARNING_MASK )
bRet = TRUE ;
}
else
bRet = TRUE ;
aDocument . StartAllListeners ( ) ;
aDocument . SetDirty ( ) ;
bSetColWidths = TRUE ;
bSetRowHeights = TRUE ;
}
else
2008-01-29 14:41:14 +00:00
{
2000-09-18 16:07:07 +00:00
DBG_ERROR ( " No Stream " ) ;
2008-01-29 14:41:14 +00:00
}
2000-09-18 16:07:07 +00:00
}
if ( eError ! = eERR_OK & & ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
2001-04-05 09:52:34 +00:00
else if ( aFltName . EqualsAscii ( pFilterHtml ) | | aFltName . EqualsAscii ( pFilterHtmlWebQ ) )
2000-09-18 16:07:07 +00:00
{
FltError eError = SCERR_IMPORT_UNKNOWN ;
2001-04-05 09:52:34 +00:00
BOOL bWebQuery = aFltName . EqualsAscii ( pFilterHtmlWebQ ) ;
2000-09-18 16:07:07 +00:00
if ( ! rMedium . IsStorage ( ) )
{
SvStream * pInStream = rMedium . GetInStream ( ) ;
if ( pInStream )
{
2009-07-27 11:41:15 -04:00
LanguageType eLang = LANGUAGE_SYSTEM ;
bool bDateConvert = false ;
SfxItemSet * pSet = rMedium . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
String aFilterOption = ( static_cast < const SfxStringItem * > ( pItem ) ) - > GetValue ( ) ;
lcl_parseHtmlFilterOption ( aFilterOption , eLang , bDateConvert ) ;
}
2000-09-18 16:07:07 +00:00
pInStream - > Seek ( 0 ) ;
ScRange aRange ;
// HTML macht eigenes ColWidth/RowHeight
CalcOutputFactor ( ) ;
2009-07-27 11:41:15 -04:00
SvNumberFormatter aNumFormatter ( aDocument . GetServiceManager ( ) , eLang ) ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
eError = ScFormatFilter : : Get ( ) . ScImportHTML ( * pInStream , rMedium . GetBaseURL ( ) , & aDocument , aRange ,
2009-07-27 11:41:15 -04:00
GetOutputFactor ( ) , ! bWebQuery , & aNumFormatter , bDateConvert ) ;
2000-09-18 16:07:07 +00:00
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
if ( ( eError & ERRCODE_WARNING_MASK ) = = ERRCODE_WARNING_MASK )
bRet = TRUE ;
}
else
bRet = TRUE ;
aDocument . StartAllListeners ( ) ;
aDocument . SetDirty ( ) ;
}
else
2008-01-29 14:41:14 +00:00
{
2000-09-18 16:07:07 +00:00
DBG_ERROR ( " No Stream " ) ;
2008-01-29 14:41:14 +00:00
}
2000-09-18 16:07:07 +00:00
}
if ( eError ! = eERR_OK & & ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
else
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( SCERR_IMPORT_NI , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
if ( ! bCalc3 )
aDocument . SetInsertingFromOtherDoc ( FALSE ) ;
}
else
2008-01-29 14:41:14 +00:00
{
2000-09-18 16:07:07 +00:00
DBG_ERROR ( " Kein Filter bei ConvertFrom " ) ;
2008-01-29 14:41:14 +00:00
}
2000-09-18 16:07:07 +00:00
InitItems ( ) ;
CalcOutputFactor ( ) ;
if ( bRet & & ( bSetColWidths | | bSetRowHeights ) )
{ // Spaltenbreiten/Zeilenhoehen anpassen, Basis 100% Zoom
Fraction aZoom ( 1 , 1 ) ;
double nPPTX = ScGlobal : : nScreenPPTX * ( double ) aZoom
/ GetOutputFactor ( ) ; // Faktor ist Drucker zu Bildschirm
double nPPTY = ScGlobal : : nScreenPPTY * ( double ) aZoom ;
VirtualDevice aVirtDev ;
// all sheets (for Excel import)
2004-06-04 10:23:23 +00:00
SCTAB nTabCount = aDocument . GetTableCount ( ) ;
for ( SCTAB nTab = 0 ; nTab < nTabCount ; nTab + + )
2000-09-18 16:07:07 +00:00
{
2004-06-04 10:23:23 +00:00
SCCOL nEndCol ;
SCROW nEndRow ;
2000-09-18 16:07:07 +00:00
aDocument . GetCellArea ( nTab , nEndCol , nEndRow ) ;
aColWidthRange . aEnd . SetCol ( nEndCol ) ;
aColWidthRange . aEnd . SetRow ( nEndRow ) ;
ScMarkData aMark ;
aMark . SetMarkArea ( aColWidthRange ) ;
aMark . MarkToMulti ( ) ;
// Reihenfolge erst Breite dann Hoehe ist wichtig (vergl. hund.rtf)
if ( bSetColWidths )
{
2004-06-04 10:23:23 +00:00
for ( SCCOL nCol = 0 ; nCol < = nEndCol ; nCol + + )
2000-09-18 16:07:07 +00:00
{
2010-10-01 22:30:59 -04:00
if ( ! bSetSimpleTextColWidths )
aColWidthParam [ nCol ] . mbSimpleText = false ;
2000-09-18 16:07:07 +00:00
USHORT nWidth = aDocument . GetOptimalColWidth (
nCol , nTab , & aVirtDev , nPPTX , nPPTY , aZoom , aZoom , FALSE , & aMark ,
2010-10-01 22:30:59 -04:00
& aColWidthParam [ nCol ] ) ;
2000-09-18 16:07:07 +00:00
aDocument . SetColWidth ( nCol , nTab ,
nWidth + ( USHORT ) ScGlobal : : nLastColWidthExtra ) ;
}
}
2001-05-11 16:11:53 +00:00
// if ( bSetRowHeights )
// {
// // nExtra must be 0
// aDocument.SetOptimalHeight( 0, nEndRow, nTab, 0, &aVirtDev,
// nPPTX, nPPTY, aZoom, aZoom, FALSE );
// }
2000-09-18 16:07:07 +00:00
}
2010-10-01 22:30:59 -04:00
if ( bSetRowHeights )
{
// Update all rows in all tables.
ScSizeDeviceProvider aProv ( this ) ;
ScDocRowHeightUpdater aUpdater ( aDocument , aProv . GetDevice ( ) , aProv . GetPPTX ( ) , aProv . GetPPTY ( ) , NULL ) ;
aUpdater . update ( ) ;
}
else if ( ! aRecalcRowRangesArray . empty ( ) )
{
// Update only specified row ranges for better performance.
ScSizeDeviceProvider aProv ( this ) ;
ScDocRowHeightUpdater aUpdater ( aDocument , aProv . GetDevice ( ) , aProv . GetPPTX ( ) , aProv . GetPPTY ( ) , & aRecalcRowRangesArray ) ;
aUpdater . update ( ) ;
}
2000-09-18 16:07:07 +00:00
}
FinishedLoading ( SFX_LOADED_MAINDOCUMENT | SFX_LOADED_IMAGES ) ;
2010-10-01 22:30:59 -04:00
2000-09-18 16:07:07 +00:00
// #73762# invalidate eventually temporary table areas
if ( bRet )
aDocument . InvalidateTableArea ( ) ;
bIsEmpty = FALSE ;
return bRet ;
}
2009-04-02 15:00:15 +00:00
ScDocShell : : PrepareSaveGuard : : PrepareSaveGuard ( ScDocShell & rDocShell )
: mrDocShell ( rDocShell )
{
// DoEnterHandler not here (because of AutoSave), is in ExecuteSave.
ScChartListenerCollection * pCharts = mrDocShell . aDocument . GetChartListenerCollection ( ) ;
if ( pCharts )
pCharts - > UpdateDirtyCharts ( ) ; // Charts to be updated.
mrDocShell . aDocument . StopTemporaryChartLock ( ) ;
if ( mrDocShell . pAutoStyleList )
mrDocShell . pAutoStyleList - > ExecuteAllNow ( ) ; // Execute template timeouts now.
if ( mrDocShell . aDocument . HasExternalRefManager ( ) )
{
ScExternalRefManager * pRefMgr = mrDocShell . aDocument . GetExternalRefManager ( ) ;
if ( pRefMgr & & pRefMgr - > hasExternalData ( ) )
{
pRefMgr - > setAllCacheTableReferencedStati ( false ) ;
mrDocShell . aDocument . MarkUsedExternalReferences ( ) ; // Mark tables of external references to be written.
}
}
if ( mrDocShell . GetCreateMode ( ) = = SFX_CREATE_MODE_STANDARD )
mrDocShell . SfxObjectShell : : SetVisArea ( Rectangle ( ) ) ; // "Normally" worked on => no VisArea.
}
ScDocShell : : PrepareSaveGuard : : ~ PrepareSaveGuard ( )
{
if ( mrDocShell . aDocument . HasExternalRefManager ( ) )
{
ScExternalRefManager * pRefMgr = mrDocShell . aDocument . GetExternalRefManager ( ) ;
if ( pRefMgr & & pRefMgr - > hasExternalData ( ) )
{
// Prevent accidental data loss due to lack of knowledge.
pRefMgr - > setAllCacheTableReferencedStati ( true ) ;
}
}
}
2000-09-18 16:07:07 +00:00
BOOL __EXPORT ScDocShell : : Save ( )
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::Save " ) ;
2001-07-27 18:19:54 +00:00
2001-04-21 19:31:39 +00:00
ScRefreshTimerProtector ( aDocument . GetRefreshTimerControlAddress ( ) ) ;
2009-04-02 15:00:15 +00:00
PrepareSaveGuard aPrepareGuard ( * this ) ;
2000-09-18 16:07:07 +00:00
// wait cursor is handled with progress bar
2004-10-04 19:14:39 +00:00
BOOL bRet = SfxObjectShell : : Save ( ) ;
2000-09-18 16:07:07 +00:00
if ( bRet )
2005-01-11 12:20:20 +00:00
bRet = SaveXML ( GetMedium ( ) , NULL ) ;
2000-09-18 16:07:07 +00:00
return bRet ;
}
2005-01-11 12:20:20 +00:00
BOOL __EXPORT ScDocShell : : SaveAs ( SfxMedium & rMedium )
2000-09-18 16:07:07 +00:00
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::SaveAs " ) ;
2001-07-27 18:19:54 +00:00
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
# if ENABLE_SHEET_PROTECTION
ScTabViewShell * pViewShell = GetBestViewShell ( ) ;
2010-09-28 11:45:33 -04:00
bool bNeedsRehash = ScPassHashHelper : : needsPassHashRegen ( aDocument , PASSHASH_SHA1 ) ;
if ( bNeedsRehash )
// legacy xls hash double-hashed by SHA1 is also supported.
bNeedsRehash = ScPassHashHelper : : needsPassHashRegen ( aDocument , PASSHASH_XL , PASSHASH_SHA1 ) ;
if ( pViewShell & & bNeedsRehash )
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
{
2010-09-28 11:45:33 -04:00
if ( ! pViewShell - > ExecuteRetypePassDlg ( PASSHASH_SHA1 ) )
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
// password re-type cancelled. Don't save the document.
return false ;
}
# endif
2001-04-21 19:31:39 +00:00
ScRefreshTimerProtector ( aDocument . GetRefreshTimerControlAddress ( ) ) ;
2009-04-02 15:00:15 +00:00
PrepareSaveGuard aPrepareGuard ( * this ) ;
2000-09-18 16:07:07 +00:00
// wait cursor is handled with progress bar
2005-01-11 12:20:20 +00:00
BOOL bRet = SfxObjectShell : : SaveAs ( rMedium ) ;
2000-09-18 16:07:07 +00:00
if ( bRet )
2005-01-11 12:20:20 +00:00
bRet = SaveXML ( & rMedium , NULL ) ;
2000-09-18 16:07:07 +00:00
return bRet ;
}
BOOL __EXPORT ScDocShell : : IsInformationLost ( )
{
/*
const SfxFilter * pFilt = GetMedium ( ) - > GetFilter ( ) ;
BOOL bRet = pFilt & & pFilt - > IsAlienFormat ( ) & & bNoInformLost ;
if ( bNoInformLost ) // nur einmal!!
bNoInformLost = FALSE ;
return bRet ;
*/
//!!! bei Gelegenheit ein korrekte eigene Behandlung einbauen
return SfxObjectShell : : IsInformationLost ( ) ;
}
2002-07-17 16:28:09 +00:00
// Xcl-like column width measured in characters of standard font.
xub_StrLen lcl_ScDocShell_GetColWidthInChars ( USHORT nWidth )
{
// double fColScale = 1.0;
double f = nWidth ;
f * = 1328.0 / 25.0 ;
f + = 90.0 ;
f * = 1.0 / 23.0 ;
// f /= fColScale * 256.0;
f / = 256.0 ;
return xub_StrLen ( f ) ;
}
void lcl_ScDocShell_GetFixedWidthString ( String & rStr , const ScDocument & rDoc ,
2004-06-04 10:23:23 +00:00
SCTAB nTab , SCCOL nCol , BOOL bValue , SvxCellHorJustify eHorJust )
2002-07-17 16:28:09 +00:00
{
xub_StrLen nLen = lcl_ScDocShell_GetColWidthInChars (
rDoc . GetColWidth ( nCol , nTab ) ) ;
if ( nLen < rStr . Len ( ) )
{
if ( bValue )
rStr . AssignAscii ( " ### " ) ;
rStr . Erase ( nLen ) ;
}
if ( nLen > rStr . Len ( ) )
{
if ( bValue & & eHorJust = = SVX_HOR_JUSTIFY_STANDARD )
eHorJust = SVX_HOR_JUSTIFY_RIGHT ;
switch ( eHorJust )
{
case SVX_HOR_JUSTIFY_RIGHT :
{
String aTmp ;
aTmp . Fill ( nLen - rStr . Len ( ) ) ;
rStr . Insert ( aTmp , 0 ) ;
}
break ;
case SVX_HOR_JUSTIFY_CENTER :
{
xub_StrLen nLen2 = ( nLen - rStr . Len ( ) ) / 2 ;
String aTmp ;
aTmp . Fill ( nLen2 ) ;
rStr . Insert ( aTmp , 0 ) ;
rStr . Expand ( nLen ) ;
}
break ;
default :
rStr . Expand ( nLen ) ;
}
}
}
void lcl_ScDocShell_WriteEmptyFixedWidthString ( SvStream & rStream ,
2004-06-04 10:23:23 +00:00
const ScDocument & rDoc , SCTAB nTab , SCCOL nCol )
2002-07-17 16:28:09 +00:00
{
String aString ;
lcl_ScDocShell_GetFixedWidthString ( aString , rDoc , nTab , nCol , FALSE ,
SVX_HOR_JUSTIFY_STANDARD ) ;
rStream . WriteUnicodeOrByteText ( aString ) ;
}
void ScDocShell : : AsciiSave ( SvStream & rStream , const ScImportOptions & rAsciiOpt )
2000-09-18 16:07:07 +00:00
{
2002-07-17 16:28:09 +00:00
sal_Unicode cDelim = rAsciiOpt . nFieldSepCode ;
sal_Unicode cStrDelim = rAsciiOpt . nTextSepCode ;
CharSet eCharSet = rAsciiOpt . eCharSet ;
BOOL bFixedWidth = rAsciiOpt . bFixedWidth ;
2006-03-22 11:10:46 +00:00
BOOL bSaveAsShown = rAsciiOpt . bSaveAsShown ;
2002-07-17 16:28:09 +00:00
2000-12-22 00:29:17 +00:00
CharSet eOldCharSet = rStream . GetStreamCharSet ( ) ;
rStream . SetStreamCharSet ( eCharSet ) ;
USHORT nOldNumberFormatInt = rStream . GetNumberFormatInt ( ) ;
2002-11-25 17:12:53 +00:00
ByteString aStrDelimEncoded ; // only used if not Unicode
UniString aStrDelimDecoded ; // only used if context encoding
2003-03-26 17:07:02 +00:00
BOOL bContextOrNotAsciiEncoding ;
2000-12-22 00:29:17 +00:00
if ( eCharSet = = RTL_TEXTENCODING_UNICODE )
2002-11-25 17:12:53 +00:00
{
2000-12-22 00:29:17 +00:00
rStream . StartWritingUnicodeText ( ) ;
2003-03-26 17:07:02 +00:00
bContextOrNotAsciiEncoding = FALSE ;
2002-11-25 17:12:53 +00:00
}
else
{
aStrDelimEncoded = ByteString ( cStrDelim , eCharSet ) ;
rtl_TextEncodingInfo aInfo ;
aInfo . StructSize = sizeof ( aInfo ) ;
if ( rtl_getTextEncodingInfo ( eCharSet , & aInfo ) )
{
2003-03-26 17:07:02 +00:00
bContextOrNotAsciiEncoding =
( ( ( aInfo . Flags & RTL_TEXTENCODING_INFO_CONTEXT ) ! = 0 ) | |
( ( aInfo . Flags & RTL_TEXTENCODING_INFO_ASCII ) = = 0 ) ) ;
if ( bContextOrNotAsciiEncoding )
2002-11-25 17:12:53 +00:00
aStrDelimDecoded = String ( aStrDelimEncoded , eCharSet ) ;
}
else
2003-03-26 17:07:02 +00:00
bContextOrNotAsciiEncoding = FALSE ;
2002-11-25 17:12:53 +00:00
}
2000-09-18 16:07:07 +00:00
2004-06-04 10:23:23 +00:00
SCCOL nStartCol = 0 ;
SCROW nStartRow = 0 ;
SCTAB nTab = GetSaveTab ( ) ;
SCCOL nEndCol ;
SCROW nEndRow ;
2000-09-18 16:07:07 +00:00
aDocument . GetCellArea ( nTab , nEndCol , nEndRow ) ;
ScProgress aProgress ( this , ScGlobal : : GetRscString ( STR_SAVE_DOC ) , nEndRow ) ;
String aString ;
ScTabViewShell * pViewSh = PTR_CAST ( ScTabViewShell , SfxViewShell : : Current ( ) ) ;
const ScViewOptions & rOpt = ( pViewSh )
? pViewSh - > GetViewData ( ) - > GetOptions ( )
: aDocument . GetViewOptions ( ) ;
BOOL bShowFormulas = rOpt . GetOption ( VOPT_FORMULAS ) ;
BOOL bTabProtect = aDocument . IsTabProtected ( nTab ) ;
2004-06-04 10:23:23 +00:00
SCCOL nCol ;
SCROW nRow ;
SCCOL nNextCol = nStartCol ;
SCROW nNextRow = nStartRow ;
SCCOL nEmptyCol ;
SCROW nEmptyRow ;
2000-09-18 16:07:07 +00:00
SvNumberFormatter & rFormatter = * aDocument . GetFormatTable ( ) ;
ScHorizontalCellIterator aIter ( & aDocument , nTab , nStartCol , nStartRow ,
nEndCol , nEndRow ) ;
ScBaseCell * pCell ;
2007-02-27 12:06:59 +00:00
while ( ( pCell = aIter . GetNext ( nCol , nRow ) ) ! = NULL )
2000-09-18 16:07:07 +00:00
{
2000-12-22 00:29:17 +00:00
BOOL bProgress = FALSE ; // only upon line change
2000-09-18 16:07:07 +00:00
if ( nNextRow < nRow )
2000-12-22 00:29:17 +00:00
{ // empty rows or/and empty columns up to end of row
2000-09-18 16:07:07 +00:00
bProgress = TRUE ;
2002-07-17 16:28:09 +00:00
for ( nEmptyCol = nNextCol ; nEmptyCol < nEndCol ; nEmptyCol + + )
{ // remaining columns of last row
if ( bFixedWidth )
lcl_ScDocShell_WriteEmptyFixedWidthString ( rStream ,
aDocument , nTab , nEmptyCol ) ;
else if ( cDelim ! = 0 )
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2002-07-17 16:28:09 +00:00
}
2000-12-22 00:29:17 +00:00
endlub ( rStream ) ;
2000-09-18 16:07:07 +00:00
nNextRow + + ;
for ( nEmptyRow = nNextRow ; nEmptyRow < nRow ; nEmptyRow + + )
2000-12-22 00:29:17 +00:00
{ // completely empty rows
2002-07-17 16:28:09 +00:00
for ( nEmptyCol = nStartCol ; nEmptyCol < nEndCol ; nEmptyCol + + )
{
if ( bFixedWidth )
lcl_ScDocShell_WriteEmptyFixedWidthString ( rStream ,
aDocument , nTab , nEmptyCol ) ;
else if ( cDelim ! = 0 )
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2002-07-17 16:28:09 +00:00
}
2000-12-22 00:29:17 +00:00
endlub ( rStream ) ;
2000-09-18 16:07:07 +00:00
}
2002-07-17 16:28:09 +00:00
for ( nEmptyCol = nStartCol ; nEmptyCol < nCol ; nEmptyCol + + )
{ // empty columns at beginning of row
if ( bFixedWidth )
lcl_ScDocShell_WriteEmptyFixedWidthString ( rStream ,
aDocument , nTab , nEmptyCol ) ;
else if ( cDelim ! = 0 )
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2002-07-17 16:28:09 +00:00
}
2000-09-18 16:07:07 +00:00
nNextRow = nRow ;
}
else if ( nNextCol < nCol )
2000-12-22 00:29:17 +00:00
{ // empty columns in same row
2002-07-17 16:28:09 +00:00
for ( nEmptyCol = nNextCol ; nEmptyCol < nCol ; nEmptyCol + + )
{ // columns in between
if ( bFixedWidth )
lcl_ScDocShell_WriteEmptyFixedWidthString ( rStream ,
aDocument , nTab , nEmptyCol ) ;
else if ( cDelim ! = 0 )
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2002-07-17 16:28:09 +00:00
}
2000-09-18 16:07:07 +00:00
}
if ( nCol = = nEndCol )
{
bProgress = TRUE ;
nNextCol = nStartCol ;
nNextRow = nRow + 1 ;
}
else
nNextCol = nCol + 1 ;
CellType eType = pCell - > GetCellType ( ) ;
if ( bTabProtect )
{
const ScProtectionAttr * pProtAttr =
( const ScProtectionAttr * ) aDocument . GetAttr (
2002-07-17 16:28:09 +00:00
nCol , nRow , nTab , ATTR_PROTECTION ) ;
2000-09-18 16:07:07 +00:00
if ( pProtAttr - > GetHideCell ( ) | |
2002-07-17 16:28:09 +00:00
( eType = = CELLTYPE_FORMULA & & bShowFormulas & &
pProtAttr - > GetHideFormula ( ) ) )
2000-12-22 00:29:17 +00:00
eType = CELLTYPE_NONE ; // hide
2000-09-18 16:07:07 +00:00
}
BOOL bString ;
switch ( eType )
{
case CELLTYPE_NOTE :
case CELLTYPE_NONE :
aString . Erase ( ) ;
bString = FALSE ;
2002-07-17 16:28:09 +00:00
break ;
2000-09-18 16:07:07 +00:00
case CELLTYPE_FORMULA :
{
2002-07-17 16:28:09 +00:00
USHORT nErrCode ;
if ( bShowFormulas )
{
( ( ScFormulaCell * ) pCell ) - > GetFormula ( aString ) ;
bString = TRUE ;
}
2007-02-27 12:06:59 +00:00
else if ( ( nErrCode = ( ( ScFormulaCell * ) pCell ) - > GetErrCode ( ) ) ! = 0 )
2002-07-17 16:28:09 +00:00
{
aString = ScGlobal : : GetErrorString ( nErrCode ) ;
bString = TRUE ;
}
else if ( ( ( ScFormulaCell * ) pCell ) - > IsValue ( ) )
{
2005-12-14 14:09:34 +00:00
sal_uInt32 nFormat ;
2002-07-17 16:28:09 +00:00
aDocument . GetNumberFormat ( nCol , nRow , nTab , nFormat ) ;
2006-03-22 11:10:46 +00:00
if ( bFixedWidth | | bSaveAsShown )
2002-07-17 16:28:09 +00:00
{
Color * pDummy ;
ScCellFormat : : GetString ( pCell , nFormat , aString , & pDummy , rFormatter ) ;
2006-03-22 11:10:46 +00:00
bString = bSaveAsShown & & rFormatter . IsTextFormat ( nFormat ) ;
2002-07-17 16:28:09 +00:00
}
else
2006-03-22 11:10:46 +00:00
{
2002-07-17 16:28:09 +00:00
ScCellFormat : : GetInputString ( pCell , nFormat , aString , rFormatter ) ;
2006-03-22 11:10:46 +00:00
bString = FALSE ;
}
2002-07-17 16:28:09 +00:00
}
else
{
2006-03-22 11:10:46 +00:00
if ( bSaveAsShown )
{
sal_uInt32 nFormat ;
aDocument . GetNumberFormat ( nCol , nRow , nTab , nFormat ) ;
Color * pDummy ;
ScCellFormat : : GetString ( pCell , nFormat , aString , & pDummy , rFormatter ) ;
}
else
( ( ScFormulaCell * ) pCell ) - > GetString ( aString ) ;
2002-07-17 16:28:09 +00:00
bString = TRUE ;
}
2000-09-18 16:07:07 +00:00
}
2002-07-17 16:28:09 +00:00
break ;
2000-09-18 16:07:07 +00:00
case CELLTYPE_STRING :
2006-03-22 11:10:46 +00:00
if ( bSaveAsShown )
{
sal_uInt32 nFormat ;
aDocument . GetNumberFormat ( nCol , nRow , nTab , nFormat ) ;
Color * pDummy ;
ScCellFormat : : GetString ( pCell , nFormat , aString , & pDummy , rFormatter ) ;
}
else
( ( ScStringCell * ) pCell ) - > GetString ( aString ) ;
2000-09-18 16:07:07 +00:00
bString = TRUE ;
2002-07-17 16:28:09 +00:00
break ;
2000-09-18 16:07:07 +00:00
case CELLTYPE_EDIT :
2004-10-11 11:29:23 +00:00
{
const EditTextObject * pObj ;
static_cast < const ScEditCell * > ( pCell ) - > GetData ( pObj ) ;
EditEngine & rEngine = aDocument . GetEditEngine ( ) ;
rEngine . SetText ( * pObj ) ;
aString = rEngine . GetText ( ) ; // including LF
bString = TRUE ;
}
2002-07-17 16:28:09 +00:00
break ;
2000-09-18 16:07:07 +00:00
case CELLTYPE_VALUE :
2002-07-17 16:28:09 +00:00
{
2005-12-14 14:09:34 +00:00
sal_uInt32 nFormat ;
2002-07-17 16:28:09 +00:00
aDocument . GetNumberFormat ( nCol , nRow , nTab , nFormat ) ;
2006-03-22 11:10:46 +00:00
if ( bFixedWidth | | bSaveAsShown )
2002-07-17 16:28:09 +00:00
{
Color * pDummy ;
ScCellFormat : : GetString ( pCell , nFormat , aString , & pDummy , rFormatter ) ;
2006-03-22 11:10:46 +00:00
bString = bSaveAsShown & & rFormatter . IsTextFormat ( nFormat ) ;
2002-07-17 16:28:09 +00:00
}
else
2006-03-22 11:10:46 +00:00
{
2002-07-17 16:28:09 +00:00
ScCellFormat : : GetInputString ( pCell , nFormat , aString , rFormatter ) ;
2006-03-22 11:10:46 +00:00
bString = FALSE ;
}
2002-07-17 16:28:09 +00:00
}
break ;
2000-09-18 16:07:07 +00:00
default :
DBG_ERROR ( " ScDocShell::AsciiSave: unknown CellType " ) ;
aString . Erase ( ) ;
bString = FALSE ;
}
2002-07-17 16:28:09 +00:00
if ( bFixedWidth )
{
SvxCellHorJustify eHorJust = ( SvxCellHorJustify )
( ( const SvxHorJustifyItem * ) aDocument . GetAttr ( nCol , nRow ,
nTab , ATTR_HOR_JUSTIFY ) ) - > GetValue ( ) ;
lcl_ScDocShell_GetFixedWidthString ( aString , aDocument , nTab , nCol ,
! bString , eHorJust ) ;
2002-11-25 17:12:53 +00:00
rStream . WriteUnicodeOrByteText ( aString ) ;
2002-07-17 16:28:09 +00:00
}
2004-10-11 11:29:23 +00:00
else
2002-11-25 17:12:53 +00:00
{
2006-03-22 11:10:46 +00:00
if ( ! bString & & cStrDelim ! = 0 & & aString . Len ( ) > 0 )
{
sal_Unicode c = aString . GetChar ( 0 ) ;
bString = ( c = = cStrDelim | | c = = ' ' | |
aString . GetChar ( aString . Len ( ) - 1 ) = = ' ' | |
aString . Search ( cStrDelim ) ! = STRING_NOTFOUND ) ;
if ( ! bString & & cDelim ! = 0 )
bString = ( aString . Search ( cDelim ) ! = STRING_NOTFOUND ) ;
}
2004-10-11 11:29:23 +00:00
if ( bString )
2002-11-25 17:12:53 +00:00
{
2004-10-11 11:29:23 +00:00
if ( cStrDelim ! = 0 ) //@ BugId 55355
2002-11-25 17:12:53 +00:00
{
2004-10-11 11:29:23 +00:00
if ( eCharSet = = RTL_TEXTENCODING_UNICODE )
2002-11-25 17:12:53 +00:00
{
2004-10-11 11:29:23 +00:00
xub_StrLen nPos = aString . Search ( cStrDelim ) ;
2002-11-25 17:12:53 +00:00
while ( nPos ! = STRING_NOTFOUND )
{
2004-10-11 11:29:23 +00:00
aString . Insert ( cStrDelim , nPos ) ;
nPos = aString . Search ( cStrDelim , nPos + 2 ) ;
2002-11-25 17:12:53 +00:00
}
rStream . WriteUniOrByteChar ( cStrDelim , eCharSet ) ;
2004-10-11 11:29:23 +00:00
rStream . WriteUnicodeText ( aString ) ;
2002-11-25 17:12:53 +00:00
rStream . WriteUniOrByteChar ( cStrDelim , eCharSet ) ;
}
else
{
2004-10-11 11:29:23 +00:00
// #105549# This is nasty. The Unicode to byte encoding
// may convert typographical quotation marks to ASCII
// quotation marks, which may interfer with the delimiter,
// so we have to escape delimiters after the string has
// been encoded. Since this may happen also with UTF-8
// encoded typographical quotation marks if such was
// specified as a delimiter we have to check for the full
// encoded delimiter string, not just one character.
// Now for RTL_TEXTENCODING_ISO_2022_... and similar brain
// dead encodings where one code point (and especially a
// low ASCII value) may represent different characters, we
// have to convert forth and back and forth again. Same for
// UTF-7 since it is a context sensitive encoding too.
if ( bContextOrNotAsciiEncoding )
2002-11-25 17:12:53 +00:00
{
2004-10-11 11:29:23 +00:00
// to byte encoding
ByteString aStrEnc ( aString , eCharSet ) ;
// back to Unicode
UniString aStrDec ( aStrEnc , eCharSet ) ;
// search on re-decoded string
xub_StrLen nPos = aStrDec . Search ( aStrDelimDecoded ) ;
while ( nPos ! = STRING_NOTFOUND )
{
aStrDec . Insert ( aStrDelimDecoded , nPos ) ;
nPos = aStrDec . Search ( aStrDelimDecoded ,
nPos + 1 + aStrDelimDecoded . Len ( ) ) ;
}
// write byte re-encoded
rStream . WriteUniOrByteChar ( cStrDelim , eCharSet ) ;
rStream . WriteUnicodeOrByteText ( aStrDec , eCharSet ) ;
rStream . WriteUniOrByteChar ( cStrDelim , eCharSet ) ;
}
else
{
ByteString aStrEnc ( aString , eCharSet ) ;
// search on encoded string
xub_StrLen nPos = aStrEnc . Search ( aStrDelimEncoded ) ;
while ( nPos ! = STRING_NOTFOUND )
{
aStrEnc . Insert ( aStrDelimEncoded , nPos ) ;
nPos = aStrEnc . Search ( aStrDelimEncoded ,
nPos + 1 + aStrDelimEncoded . Len ( ) ) ;
}
// write byte encoded
rStream . Write ( aStrDelimEncoded . GetBuffer ( ) ,
aStrDelimEncoded . Len ( ) ) ;
rStream . Write ( aStrEnc . GetBuffer ( ) , aStrEnc . Len ( ) ) ;
rStream . Write ( aStrDelimEncoded . GetBuffer ( ) ,
aStrDelimEncoded . Len ( ) ) ;
2002-11-25 17:12:53 +00:00
}
}
}
2004-10-11 11:29:23 +00:00
else
rStream . WriteUnicodeOrByteText ( aString ) ;
2002-11-25 17:12:53 +00:00
}
else
rStream . WriteUnicodeOrByteText ( aString ) ;
}
2000-09-18 16:07:07 +00:00
if ( nCol < nEndCol )
{
if ( cDelim ! = 0 ) //@ BugId 55355
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2000-09-18 16:07:07 +00:00
}
else
2000-12-22 00:29:17 +00:00
endlub ( rStream ) ;
2000-09-18 16:07:07 +00:00
if ( bProgress )
aProgress . SetStateOnPercent ( nRow ) ;
}
2000-12-22 00:29:17 +00:00
// write out empty if requested
2000-09-18 16:07:07 +00:00
if ( nNextRow < = nEndRow )
{
2002-07-17 16:28:09 +00:00
for ( nEmptyCol = nNextCol ; nEmptyCol < nEndCol ; nEmptyCol + + )
{ // remaining empty columns of last row
if ( bFixedWidth )
lcl_ScDocShell_WriteEmptyFixedWidthString ( rStream ,
aDocument , nTab , nEmptyCol ) ;
else if ( cDelim ! = 0 )
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2002-07-17 16:28:09 +00:00
}
2000-12-22 00:29:17 +00:00
endlub ( rStream ) ;
2000-09-18 16:07:07 +00:00
nNextRow + + ;
}
for ( nEmptyRow = nNextRow ; nEmptyRow < = nEndRow ; nEmptyRow + + )
2000-12-22 00:29:17 +00:00
{ // entire empty rows
2002-07-17 16:28:09 +00:00
for ( nEmptyCol = nStartCol ; nEmptyCol < nEndCol ; nEmptyCol + + )
{
if ( bFixedWidth )
lcl_ScDocShell_WriteEmptyFixedWidthString ( rStream ,
aDocument , nTab , nEmptyCol ) ;
else if ( cDelim ! = 0 )
2000-12-22 00:29:17 +00:00
rStream . WriteUniOrByteChar ( cDelim ) ;
2002-07-17 16:28:09 +00:00
}
2000-12-22 00:29:17 +00:00
endlub ( rStream ) ;
2000-09-18 16:07:07 +00:00
}
2000-12-22 00:29:17 +00:00
rStream . SetStreamCharSet ( eOldCharSet ) ;
rStream . SetNumberFormatInt ( nOldNumberFormatInt ) ;
2000-09-18 16:07:07 +00:00
}
BOOL __EXPORT ScDocShell : : ConvertTo ( SfxMedium & rMed )
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::ConvertTo " ) ;
2001-07-27 18:19:54 +00:00
2001-04-21 19:31:39 +00:00
ScRefreshTimerProtector ( aDocument . GetRefreshTimerControlAddress ( ) ) ;
2003-03-26 17:07:02 +00:00
// #i6500# don't call DoEnterHandler here (doesn't work with AutoSave),
// it's already in ExecuteSave (as for Save and SaveAs)
2000-09-18 16:07:07 +00:00
if ( pAutoStyleList )
pAutoStyleList - > ExecuteAllNow ( ) ; // Vorlagen-Timeouts jetzt ausfuehren
2003-04-17 12:23:04 +00:00
if ( GetCreateMode ( ) = = SFX_CREATE_MODE_STANDARD )
2004-10-04 19:14:39 +00:00
SfxObjectShell : : SetVisArea ( Rectangle ( ) ) ; // normal bearbeitet -> keine VisArea
2000-09-18 16:07:07 +00:00
DBG_ASSERT ( rMed . GetFilter ( ) , " Filter == 0 " ) ;
BOOL bRet = FALSE ;
String aFltName = rMed . GetFilter ( ) - > GetFilterName ( ) ;
/*
if ( aFltName . EqualsAscii ( pFilterLotus ) )
{
SvStream * pStream = rMed . GetOutStream ( ) ;
if ( pStream )
{
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
FltError eError = ScFormatFilter : : Get ( ) . ScExportLotus123 ( * pStream , & aDocument , ExpWK1 ,
2000-09-18 16:07:07 +00:00
CHARSET_IBMPC_437 ) ;
bRet = eError = = eERR_OK ;
}
}
else
*/
2004-10-04 19:14:39 +00:00
if ( aFltName . EqualsAscii ( pFilterXML ) )
2000-09-18 16:07:07 +00:00
{
2004-10-04 19:14:39 +00:00
//TODO/LATER: this shouldn't happen!
DBG_ERROR ( " XML filter in ConvertFrom?! " ) ;
2001-02-09 19:04:16 +00:00
bRet = SaveXML ( & rMed , NULL ) ;
2000-09-18 16:07:07 +00:00
}
else if ( aFltName . EqualsAscii ( pFilterExcel5 ) | | aFltName . EqualsAscii ( pFilterExcel95 ) | |
aFltName . EqualsAscii ( pFilterExcel97 ) | | aFltName . EqualsAscii ( pFilterEx5Temp ) | |
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
aFltName . EqualsAscii ( pFilterEx95Temp ) | | aFltName . EqualsAscii ( pFilterEx97Temp ) | |
aFltName . EqualsAscii ( pFilterEx07Xml ) )
2000-09-18 16:07:07 +00:00
{
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
2001-05-10 16:31:17 +00:00
2005-02-21 12:50:23 +00:00
bool bDoSave = true ;
if ( ScTabViewShell * pViewShell = GetBestViewShell ( ) )
2001-05-10 16:31:17 +00:00
{
2001-06-08 13:55:10 +00:00
ScExtDocOptions * pExtDocOpt = aDocument . GetExtDocOptions ( ) ;
if ( ! pExtDocOpt )
2005-02-21 12:50:23 +00:00
aDocument . SetExtDocOptions ( pExtDocOpt = new ScExtDocOptions ) ;
2001-05-10 16:31:17 +00:00
pViewShell - > GetViewData ( ) - > WriteExtOptions ( * pExtDocOpt ) ;
2004-08-11 08:07:57 +00:00
2009-09-18 12:31:43 +00:00
/* #115980# #i104990# If the imported document contains a medium
password , determine if we can save it , otherwise ask the users
whether they want to save without it . */
2010-04-08 12:17:20 +02:00
if ( ( rMed . GetFilter ( ) - > GetFilterFlags ( ) & SFX_FILTER_ENCRYPTION ) = = 0 )
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
{
2009-09-18 12:31:43 +00:00
SfxItemSet * pItemSet = rMed . GetItemSet ( ) ;
const SfxPoolItem * pItem = 0 ;
if ( pItemSet & & pItemSet - > GetItemState ( SID_PASSWORD , sal_True , & pItem ) = = SFX_ITEM_SET )
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
{
2009-09-18 12:31:43 +00:00
bDoSave = ScWarnPassword : : WarningOnPassword ( rMed ) ;
// #i42858# remove password from medium (warn only one time)
if ( bDoSave )
pItemSet - > ClearItem ( SID_PASSWORD ) ;
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
}
2005-03-29 12:48:40 +00:00
}
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
2009-09-18 12:31:43 +00:00
# if ENABLE_SHEET_PROTECTION
if ( bDoSave )
{
bool bNeedRetypePassDlg = ScPassHashHelper : : needsPassHashRegen ( aDocument , PASSHASH_XL ) ;
bDoSave = ! bNeedRetypePassDlg | | pViewShell - > ExecuteRetypePassDlg ( PASSHASH_XL ) ;
}
CWS-TOOLING: integrate CWS scsheetprotection02
2009-06-18 16:48:14 +0200 kohei r273124 : #i102906# Fix a crasher when loading an xls document with unsupported
encrytpion.
2009-06-15 14:02:00 +0200 dr r272982 : #i10000# compiler warnings
2009-04-13 23:06:21 +0200 kohei r270740 : Renamed SetData() to SetDataFromDocument(), in order to resolve name clash
with the method of the same name in class Window. This caused a compiler
warning on Solaris Intel.
2009-04-13 04:09:59 +0200 kohei r270729 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@270723 (milestone: DEV300:m46)
2009-02-23 16:13:45 +0100 kohei r268361 : added tabprotection.obj to the exception file list. Apparently the older
versions of boost::shared_ptr rely on C++ exceptions for its implementation.
2009-02-18 19:59:05 +0100 kohei r268253 : Switched to using ::boost::shared_ptr to wrap a pimpl class, because using
::std::auto_ptr in this header breaks the build on win32. The MSVC
implementation of ::std::auto_ptr has some weird quirks...
2009-02-17 21:47:13 +0100 kohei r268192 : fixed linkage issue due to library split.
2009-02-17 04:50:34 +0100 kohei r267842 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@267171 (milestone: DEV300:m41)
2009-02-17 02:36:10 +0100 kohei r267841 : reverted the last commit, to re-surrect the removed src files.
2009-02-03 22:02:34 +0100 kohei r267342 : removed the src files to prevent them from being entered into the translation
process. The dialogs that need the strings are not yet enabled in the code,
so their removal will not cause any harm.
2009-01-14 12:24:29 +0100 dr r266280 : #i10000# wntmsci12 compiler warnings #4
2009-01-14 09:35:46 +0100 dr r266267 : #i10000# wntmsci12 compiler warnings #3
2009-01-13 15:42:07 +0100 dr r266231 : #i10000# wntmsci12 compiler warnings #2
2009-01-13 13:18:28 +0100 dr r266216 : #i10000# wntmsci12 compiler warnings
2009-01-07 03:59:11 +0100 kohei r265943 : remove the fscking compiler warnings.
2009-01-06 15:55:32 +0100 kohei r265925 : removed compiler warnings that caused the buildbot build to fail....
2009-01-05 23:24:59 +0100 kohei r265888 : Undoing my own local build fix to work around the libmoz... issue.
2008-12-30 21:39:58 +0100 kohei r265833 : Duh! Sheet protection was supposed to be disabled. :-/
2008-12-23 20:25:55 +0100 kohei r265792 : recovered the code block that was accidentally removed during cws rebase.
2008-12-23 19:03:19 +0100 kohei r265791 : fixed breakage in ods export filter due to rebase to m38.
2008-12-23 16:41:49 +0100 kohei r265787 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@265758 (milestone: DEV300:m38)
2008-12-23 05:37:47 +0100 kohei r265768 : deliberately forget document and sheet passwords when importing from or
exporting to excel, to emulate the current behavior.
2008-12-23 05:12:59 +0100 kohei r265767 : removed commented-out unused method ScDocument::SetAutoFilterFlags().
2008-12-23 05:05:19 +0100 kohei r265766 : removed one duplicate method and made associated changes with the removal,
and a little more code cleanup.
2008-12-23 04:24:58 +0100 kohei r265765 : a typo in in-line comment
2008-12-23 04:23:08 +0100 kohei r265764 : remove fprintf statement that blatantly prints out document encryption
password to stdout. not a good practice.
2008-12-23 04:14:21 +0100 kohei r265763 : we actually don't want to clear all options, because if we do, then
we would no longer be able to select any cells on a protected sheet.
2008-12-23 04:07:10 +0100 kohei r265762 : * minor code cleanup (indentation inconsistencies & use of tab)
* fixed unprotecting a sheet with password to make it work again.
2008-12-23 03:22:50 +0100 kohei r265761 : reverted all the new functionalities to the existing ones, while keeping the new code in
as much as I could.
2008-12-22 23:11:08 +0100 kohei r265760 : in xls export filter, renamed two unknown records into records of known name.
2008-12-22 22:34:50 +0100 kohei r265759 : temporarily disable password capability on file export for MS Excel 97.
2008-12-22 17:01:21 +0100 kohei r265754 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264807 (milestone: DEV300:m37)
2008-11-26 03:12:58 +0100 kohei r264335 : recovered a method that was actually used.
2008-11-25 21:51:10 +0100 kohei r264334 : CWS-TOOLING: rebase CWS scsheetprotection02 to trunk@264325 (milestone: DEV300:m36)
2008-10-08 19:57:35 +0200 kohei r262094 : changed description string to make it less technical.
2008-10-01 05:56:58 +0200 kohei r261986 : migrated from the cvs-based cws.
2008-10-01 05:55:19 +0200 kohei r261985 : migrated from the cvs-based cws.
2008-10-01 05:55:00 +0200 kohei r261984 : migrated from the cvs-based cws.
2009-07-01 08:58:41 +00:00
# endif
2001-05-10 16:31:17 +00:00
}
2005-02-21 12:50:23 +00:00
if ( bDoSave )
2004-08-11 08:07:57 +00:00
{
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
ExportFormatExcel eFormat = ExpBiff5 ;
if ( aFltName . EqualsAscii ( pFilterExcel97 ) | | aFltName . EqualsAscii ( pFilterEx97Temp ) )
eFormat = ExpBiff8 ;
if ( aFltName . EqualsAscii ( pFilterEx07Xml ) )
eFormat = Exp2007Xml ;
FltError eError = ScFormatFilter : : Get ( ) . ScExportExcel5 ( rMed , & aDocument , eFormat , RTL_TEXTENCODING_MS_1252 ) ;
2000-09-18 16:07:07 +00:00
2005-02-21 12:50:23 +00:00
if ( eError & & ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
2005-02-21 12:50:23 +00:00
// don't return false for warnings
bRet = ( ( eError & ERRCODE_WARNING_MASK ) = = ERRCODE_WARNING_MASK ) | | ( eError = = eERR_OK ) ;
}
2000-09-18 16:07:07 +00:00
else
2005-02-21 12:50:23 +00:00
{
// export aborted, i.e. "Save without password" warning
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( ERRCODE_ABORT , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2004-08-11 08:07:57 +00:00
}
2000-09-18 16:07:07 +00:00
}
else if ( aFltName . EqualsAscii ( pFilterAscii ) )
{
SvStream * pStream = rMed . GetOutStream ( ) ;
if ( pStream )
{
String sItStr ;
SfxItemSet * pSet = rMed . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
sItStr = ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ;
}
2002-05-29 12:36:53 +00:00
if ( sItStr . Len ( ) = = 0 )
2000-09-18 16:07:07 +00:00
{
2002-05-29 12:36:53 +00:00
// default for ascii export (from API without options):
// ISO8859-1/MS_1252 encoding, comma, double quotes
ScImportOptions aDefOptions ( ' , ' , ' " ' , RTL_TEXTENCODING_MS_1252 ) ;
sItStr = aDefOptions . BuildString ( ) ;
2000-09-18 16:07:07 +00:00
}
2002-05-29 12:36:53 +00:00
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
2002-05-29 12:36:53 +00:00
ScImportOptions aOptions ( sItStr ) ;
2002-07-17 16:28:09 +00:00
AsciiSave ( * pStream , aOptions ) ;
2002-05-29 12:36:53 +00:00
bRet = TRUE ;
if ( aDocument . GetTableCount ( ) > 1 )
if ( ! rMed . GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
rMed . SetError ( SCWARN_EXPORT_ASCII , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
}
else if ( aFltName . EqualsAscii ( pFilterDBase ) )
{
String sCharSet ;
SfxItemSet * pSet = rMed . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
sCharSet = ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ;
}
2002-05-29 12:36:53 +00:00
2000-09-18 16:07:07 +00:00
if ( sCharSet . Len ( ) = = 0 )
{
2002-05-29 12:36:53 +00:00
// default for dBase export (from API without options):
// IBM_850 encoding
2000-09-18 16:07:07 +00:00
2002-05-29 12:36:53 +00:00
sCharSet = ScGlobal : : GetCharsetString ( RTL_TEXTENCODING_IBM_850 ) ;
2000-09-18 16:07:07 +00:00
}
2002-05-29 12:36:53 +00:00
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
2000-09-18 16:07:07 +00:00
// HACK damit Sba geoffnetes TempFile ueberschreiben kann
2002-05-29 12:36:53 +00:00
rMed . CloseOutStream ( ) ;
BOOL bHasMemo = FALSE ;
2000-10-26 18:07:53 +00:00
2002-05-29 12:36:53 +00:00
ULONG eError = DBaseExport ( rMed . GetPhysicalName ( ) ,
ScGlobal : : GetCharsetValue ( sCharSet ) , bHasMemo ) ;
2000-10-26 18:07:53 +00:00
2002-05-29 12:36:53 +00:00
if ( eError ! = eERR_OK & & ( eError & ERRCODE_WARNING_MASK ) )
{
//! if ( !rMed.GetError() )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
//! rMed.SetError( eError, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ) );
2002-05-29 12:36:53 +00:00
eError = eERR_OK ;
}
//! else if ( aDocument.GetTableCount() > 1 && !rMed.GetError() )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
//! rMed.SetError( SCWARN_EXPORT_ASCII, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ) );
2000-11-03 18:27:07 +00:00
2002-05-29 12:36:53 +00:00
INetURLObject aTmpFile ( rMed . GetPhysicalName ( ) , INET_PROT_FILE ) ;
if ( bHasMemo )
aTmpFile . setExtension ( String : : CreateFromAscii ( RTL_CONSTASCII_STRINGPARAM ( " dbt " ) ) ) ;
if ( eError ! = eERR_OK )
{
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( eError , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2002-05-29 12:36:53 +00:00
if ( bHasMemo & & IsDocument ( aTmpFile ) )
KillFile ( aTmpFile ) ;
}
else
{
bRet = TRUE ;
2000-09-18 16:07:07 +00:00
if ( bHasMemo )
{
2002-05-29 12:36:53 +00:00
SfxStringItem * pNameItem =
( SfxStringItem * ) rMed . GetItemSet ( ) - > GetItem ( SID_FILE_NAME ) ;
INetURLObject aDbtFile ( pNameItem - > GetValue ( ) , INET_PROT_FILE ) ;
aDbtFile . setExtension ( String : : CreateFromAscii ( RTL_CONSTASCII_STRINGPARAM ( " dbt " ) ) ) ;
if ( IsDocument ( aDbtFile ) & & ! KillFile ( aDbtFile ) )
bRet = FALSE ;
if ( bRet & & ! MoveFile ( aTmpFile , aDbtFile ) )
bRet = FALSE ;
if ( ! bRet )
2000-09-18 16:07:07 +00:00
{
2002-05-29 12:36:53 +00:00
KillFile ( aTmpFile ) ;
if ( ! GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( SCERR_EXPORT_DATA , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
}
}
}
else if ( aFltName . EqualsAscii ( pFilterDif ) )
{
SvStream * pStream = rMed . GetOutStream ( ) ;
if ( pStream )
{
String sItStr ;
SfxItemSet * pSet = rMed . GetItemSet ( ) ;
const SfxPoolItem * pItem ;
if ( pSet & & SFX_ITEM_SET = =
pSet - > GetItemState ( SID_FILE_FILTEROPTIONS , TRUE , & pItem ) )
{
sItStr = ( ( const SfxStringItem * ) pItem ) - > GetValue ( ) ;
}
2002-05-29 12:36:53 +00:00
2000-09-18 16:07:07 +00:00
if ( sItStr . Len ( ) = = 0 )
{
2002-05-29 12:36:53 +00:00
// default for DIF export (from API without options):
// ISO8859-1/MS_1252 encoding
sItStr = ScGlobal : : GetCharsetString ( RTL_TEXTENCODING_MS_1252 ) ;
2000-09-18 16:07:07 +00:00
}
2002-05-29 12:36:53 +00:00
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on
uninitialised value(s)" within XclFontData::SetApiEscapement(short), as
nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a
default value.
2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1.
2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots.
2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37)
2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later.
2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry.
2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records.
2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering.
This was originally done to increase code sharing between the BIFF & OOXML
export code, and was tested as being compatible between several
.xls-supporting apps, but it is now felt that the change in ordering will
complicate testing more than is desirable.
2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact.
2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export
filter (and later for VBA formula parsing).
3) use the English XL A1 grammar for OOXML export.
2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export
(and probably useful in the import as well). This will also be
used in VBA formulas as well.
2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS.
2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS.
2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings.
2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll.
2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes...
2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes...
2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes...
2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes...
2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement...
2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib.
2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc.
2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-)
2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows.
2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32.
2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows.
It should also save some good amount of symbols...
2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can
specify what visibility markup should it use.
2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident.
2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC).
2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ...
2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ...
2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here.
2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652#
2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla.
2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build.
2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library
2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate
module, and tweak the build to build that way.
Fix some existing instances of daft symbol naming around the place.
Move headers that are now internal into source/filter/inc
Saves ~1.4Mb on a normal calc, on Linux
2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export.
2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes...
2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god.
And cry.
Warnings fixed:
- Duplicate definition of CREATE_OUSTRING. This is caused because of the
use of oox within sc/source/filter/excel, and oox has it's own version of
CREATE_OUSTRING. Fix things by ensuring that the oox version is always
included first, thus allowing the ftools.hxx version to #undef it and
provide it's own version.
- Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||.
- One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense).
- Changing parameter names so that they don't hide member variables with the
same name.
2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into
fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>).
2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++
library. Undo this hybridization, reverting it to a normal UNO component, and
place the C++ classes into saxinstead.
Update project references to use $(SAXLIB) instead of $(FASTSAXLIB).
* oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and
use $(SAXLIB) instead.
* sax/prj/build.lst: Don't build sax\util, as sax\source\tools now
builds the sax library.
* sax/source/fastparser/exports.map: Remove; no longer needed.
* sax/source/fastparser/facreg.cxx: Change path for
fastserializer.hxx.
* sax/source/fastparser/fastattribs.cxx,
sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools.
* sax/source/fastparser/makefile.mk: Use appropriate UNO naming
convention; link against $(SAXLIB) (which now contains
FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now
built by tools); use component.map instead of export.map (removed).
* sax/source/tools/makefile.mk: Build sax library instead of building
a saxtools.lib file. The sax library now contains
FastAttributeList, FastSaxSerializer, and FastSerializerHelper.
* scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not
libfastsax.
2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning.
2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem
Actually, it should be built as evoab2, not evoab; it should be possible
to have both at the same time...
2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now.
2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to
be accessible from other shared libraries.
(Hopefully this'll work...)
* sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add
SAX_DLLPUBLIC to class declarations so that they'll be visible from
other shared libraries.
2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes.
* xestream.cxx: FilterBase now requires that an XModel be provided so
that FilterBase::filter() will actually _do_ anything useful, so
call FilterBase::setSourceDocument() so that it has one.
2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install
process as 2nd installation try fails).
Thanks to Radek Doulik <rodo@novell.com> for the patch.
2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux.
* connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a
proper type declaration (`:.connectivity::SharedResource'? wtf?!),
and use a type that actually exists.
/me suspects that this was a bad case of regex search & replace
without actually making sure things compiled...
* connectivity/source/drivers/evoab2/NStatement.cxx:
- #include <resource/common_res.hrc> so that the symbol
STR_QUERY_TOO_COMPLEX can be found.
- Use a variable that actually has the throwGenericSQLException()
method...
2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
getTableStyles() needs to be a member of XclExpXmlStream...
2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix runtime crash due to sending a non-POD type through a ... function.
* sc/source/filter/excel/xestyle.cxx: Stupid fix:
s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!).
2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix sc build problems...
* excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection,
XclExpProtection references (these don't exist here); remove
compiler warnings & errors (AddSdrPage prototype changed?!).
* excel/expop2.cxx: XclEscher constructor changed; deal.
* excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some
additional abstract members; implement them so we're a concrete
type.
2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Flush, Flush, Flush...
2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/numFmts/numFmt support.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/numFmts/numFmt.
2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/colors/indexedColors/rgbColor.
Also generates /worksheet//col/@style.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/colors/indexedColors/rgbColor.
* sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style.
2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct /worksheet//row/@s and /worksheet//row/@ht logic.
We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most
certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML
//row/@ht is a value in points, resulting in _huge_ row heights when opening
the document in Excel. Oops.
* sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht.
2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/cellXfs/xf/@xfId.
Now that I understand what this field is supposed to contain...
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate /styleSheet/cellXfs/xf/@xfId.
2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Document current state of style support.
2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Style Index Support, Take 3!
The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates
XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems
to persist for quite some time, and is later "corrected" to the correct style
index in XclExpXFBuffer::GetXFIndex().
This leads to all sorts of problems for me, though, as
XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and
it wasn't easy to get a "valid" nXFId value.
Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but
nXFIndex::index maps.
(nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while
nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order
that BIFF Excel export uses.)
Since the nXFId::nXFIndex map logic must work (it's required for BIFF
support), we can rely on this logic via a nXFIndex::xml-index map, allowing us
to export correct style indexes.
Now things Just Work (at least until I find another set of bugs...).
* sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify)
maCellIndexes and maStyleIndexes initialization, so that
XclExpRkCell can get proper style indexes.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Rewrite XclExpBlankCell and XclExpRkCell XML generation to more
closely mimic BIFF generation (thus allowing us to more sanely deal
with the XclExpMultiCellBase "chaining" semantics).
2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Correct font export within xl/styles.xml.
The problem is that BIFF export inserts a "blind" font to appease older
versions of Excel, but Excel/OOXML does not want the blind font. So instead
of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to
be wrong because the @fontId is counting a font that isn't present -- we
just don't use XclExpBlindFont with OOXML output.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Don't override+implement XclExpBlindFont::SaveXml(), and instead
don't add a XclExpBlindFont() record for OOXML export.
2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable export of blank cells.
Blank cells can contain formatting information (background color, borders,
etc.), and XclExpBlankCell was previously overlooked. :-(
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Export /worksheet//c elements for blank cells.
2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Start implementing /worksheet/cols/col/c/@s attribute.
This allows Style information to be set for cells. It currently works for
background color on cells with text; still needs work to support ~everything.
* sc/source/filter/excel/xetable.cxx: Generate the
/worksheet/cols/col/c/@s attribute so that it contains the Cell XF
which contains the appropriate formatting information.
2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix "Excel yells when importing a document that sets cell background color."
i.e. styles weren't quite right (shock!).
In this case, the issues were:
- I wasn't distinguishing between *Cell* XFs and *Style* XFs.
- //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't
generating //cellStyleXfs. Thus, if //cellStyle was present, Excel
yelled.
- "Indexes" were *completely* wrong. BIFF only has a single set of indexes
to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_
sets: //cellXfs and //cellStyleXfs, each of which are referenced "by
index" from other XML parts (and from _this_ XML part, via
//cellStyle/@xfId - above).
- We needed to export builtin styles.
So *now*, if you create an empty Calc document, set a cell background color,
save, and load into Excel, it will load without error.
You *still* won't see the proper cell background color in Excel, but at least
it loads w/o error (which wasn't previously true).
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see
above for the details).
2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Er, yeah.
2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove deliberate segfault-inducing code.
2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open a document that changes a cell background.
Note: it still doesn't *work* yet (as we don't set the cell's @s property so
Excel reads the appropriate style), but it does LOAD w/o error now. This is
progress.
* sc/source/filter/excel/xestyle.cxx: Lots 'o changes;
- Exclude the <bgColor/> and <fgColor/> children of //patternFill if
the colors aren't actually set.
- Don't export //xf/@xfId, as I'm not sure wtf this is supposed to
contain yet.
- Enhance the Border/Fill lists created last time so it behaves
properly: use custom predicates to check for equality (no idea
what the default operator== does; it's probably wrong); don't use
AddBorderAndFill() at all the "entry" points as this misses cells,
instead process all cells within XclExpXFBuffer::Finalize() and
add borders/fills there (thus ensuring we hit all cells);
Assert that the border/fill id values are valid.
- Add a default set of fills. Excel complains loudly if you're
missing these fills, so make sure they're always present.
- //borders/@count should contain the *Borders* count, not the Fills
count. Oops.
2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Continue style support.
Excel can now (again!) open Calc-generated spreadsheets.
Compared to other parts, this was a mess, mostly because (for the first time)
the XML format did NOT closely match the pre-existing binary format. It's
reasonably close, but some additional mapping is necessary. In particular, in
BIFF the XF records contain "inline" the border and fill information. In OOXML
this information is referred to "by-index"; consequently we need to create an
internal table of borders & fills so that we can then determine the by-index
value for borders and fills. :-(
Furthermore, my previous `font support` commit was broken: it removed
duplicate fonts. While this *sounds* like a good idea (look ma, smaller
files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is
an index into this font list (_with_ duplicate values). Removing the
duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which
causes Excel to complain (and no end of grief for me).
All told, this adds support for:
/styleSheet/borders, /styleSheet/borders/border,
/styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal,
/styleSheet/borders/border/left, /styleSheet/borders/border/right,
/styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf,
/styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection,
/styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill,
/styleSheet/fills/fill/patternFill/bgColor, and
/styleSheet/fills/fill/patternFill/fgColor.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Get xl/styles.xml into an actual Excel-loadable condition.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(Color).
2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /styleSheet/fonts/font.
This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset,
/styleSheet/fonts/font/color, /styleSheet/fonts/font/condense,
/styleSheet/fonts/font/extend, /styleSheet/fonts/font/family,
/styleSheet/fonts/font/i, /styleSheet/fonts/font/name,
/styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow,
/styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz,
/styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign.
Missing is: /styleSheet/fonts/font/scheme,
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take
a `sal_Int32 nFontId' parameter, which is the element to write to
contain the font name. This is necessary as the shared string table
wants to use XML_rFont for the font name, while //fonts/font wants
XML_name for the font name.
* sc/source/filter/excel/xestring.cxx: WriteFontData() change.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Generate </styleSheet> element (oops), and generate
/styleSheet/fonts/font/** for all unique fonts.
2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes().
Also adds XclExpXmlStream::WriteFontData(). The
WriteCurrentStreamAttributes() to WriteAttributes() change was done so that
method names would have a reasonable length, and adding
WriteCurrentStreamFontData() was looking like an ugly pattern continuation.
XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData
generation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestring.cxx:
s/WriteCurrentStreamAttributes/WriteAttributes/g, add
WriteFontData() ("moved" from xestring.cxx).
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes.
2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Begin style support.
* sc/source/filter/excel/excdoc.cxx: For OOXML output, create an
XclExpXmlStyleSheet instance instead of generating FONTLIST,
FORMATLIST, XFLIST, and PALETTE separately, as these need to be
written to a separate .zip part.
* sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx:
Begin generating the xl/styles.xml part.
2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
This generates the /xl/commentsN.xml files (N == sheet index number).
This is only a partial generation because Excel requires that a drawing
object be associated with the comment in order to display it. No drawing
object, and instead Excel displays a dialog warning that the comments could
not be displayed.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to
generate the appropriate commentsN.xml file, as the commentsN.xml
file needs to write information about *all* of the comments (author
information), so we can't just write out the XclExpNotes individually.
* sc/source/filter/xcl97/xcl97rec.cxx,
* sc/source/filter/excel/xecontent.cxx: Cope with
XclExpXmlStream::CreateOutputStream() changes.
* sc/source/filter/inc/xeescher.hxx,
sc/source/filter/excel/xeescher.cxx: Add and implement
XclExpComments, and add XML generation to XclExpNote.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclExpXmlStream::CreateOutputStream() to take full and relative
paths (instead of trying to cosntruct a full/relative path based on
the parameters). This was necessary because commentsN.xml needs to
insert a relative path of e.g. "../comments1.xml", which the
previous implementation would have made difficult. I think this
makes things clearer and less magical as well.
2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement most of the Shared String Table support.
Previously we generated /sst/si/t, which supports non-formatted text.
Now we support formatting within a cell -- AS LONG AS the formatting isn't
applied to the first character/token. (The first character/token requires
formal styles support, which is lacking; everything after character position 1
can be handled within the shared string table.)
Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color,
/sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline,
/sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow,
/sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u,
/sst/si/r/rPr/vertAlign, and /sst/si/r/t.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml()
to generate string values, instead of assuming everything is
unformatted /sst/si/t elements.
* sc/source/filter/inc/xestring.hxx,
sc/source/filter/excel/xestring.cxx: Add and implement
XclExpString::WriteXml(), which now handles formatted text runs.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Change
XclXmlUtils::ToOUString(ScfUInt16Vec) to
XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be
easily used for substrings; add asserts to
XclXmlUtils::To*String(XclExpString) to ensure that we're not
dealing with formatted text there (as formatted text needs to go
through XclExpString::WriteXml(), but these methods are often used
for attribute values which cannot have formatted text).
2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Update of TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* sc/source/filter/excel/xecontent.cxx: Generate "External" for the
hyperlink's TargetMode property, so that Excel will load the
generated spreadsheet without error.
2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
I think this was what was meant
2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open documents w/ all contents selected.
Previously, if you selected all cells (Ctrl+A) then saved, the
//selection/@sqref attribute would contain "A:IV", which Excel didn't like.
* sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL
value to hit ScRange::Format(), thus avoiding the "missing row
numbers" issue.
2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Mostly) Implement /worksheet/hyperlinks/hyperlink.
The only piece missing is error-free Excel import, and in order for Excel to
import a generated document error-free is for the sheetN.xml.rels document to
contain a /Relationships/Relationship/@TargetMode attribute, e.g.
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/>
I'm not sure how to add this functionality yet.
* sc/source/filter/excel/excdoc.cxx: Generate the
/worksheet/hyperlinks start and end elements, if appropriate.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate the
/worksheet/hyperlinks/hyperlink element
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOUString(XclExpString).
2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement AutoFilter support.
This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn,
/worksheet/autoFilter/filterColumn/top10,
/worksheet/autofilter/filterColumn/customFilters, and
/worksheet/autofilter/filterColumn/customFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*.
* sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter
adds a "defined name" with an empty string (!), so change
XclExpName::SaveXml() to skip entries with empty names.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement a
specialization for XclExpValueRecord<double>::SaveXml(). This is
necessary because Fridrich's change to XclExpValueRecord::SaveXml()
(to case maValue to sal_Int32) broke double exports (as it cast the
double to a sal_Int32, thus truncating the value). Since we don't
want to re-add the ambiguity warning, we need to specialize so that
`double' output uses the correct rtl::OString::valueOf() method.
2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix OOXML Calc export so that documents containing > 1 feature work.
While most previous features worked -- you could create a document using
the feature, save it, and open it in Excel w/o issue -- they worked in
isolation. So in trying to create a single test document to test as many
features as possible, things (expectedly) broke, so this fixes things up.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/excrecds.cxx: Reorder element output to
conform to the OOXML XSD (and allow Excel to read features.xlsx).
2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/autoFilter.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate the
/worksheet/autoFilter element.
2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate OUString::valueOf calls
2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
(Hopefully) Make Formula Export Locale-Independent.
Nice as Kohei's patch was, it relied on formula export being in the same
locale as the user's locale. So import into Excel would work for *me*
(en-US user), but fail for ~everyone else (i.e. not very useful).
This patch is a hack, but has the added benefit that it appears to work:
create an ScCompiler::OpCodeMapPtr that's specific to OOXML output,
and not cache the results. Not ideal, but enough to progress further...
* sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent
grammar value (forces ENGLISH, which is what Excel expects).
* sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1,
create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP.
* sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output.
2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix formula export to use ',' to separate parameters instead of ';'.
This is just Kohei's calc-formula-variable-separators-sc.diff patch, but
it works quite nicely for this. :-)
* sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow
characters other than ';' to be used as the parameter separator
within functions. We don't care so much about permitting people to
*enter* such formulas, but this also gives us the ability to
*export* such formulas using ',' instead of ';', which Excel
requires.
2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Finish initial support for /worksheet/sheetData/row/c.
Support for some attributes is missing (such as those storing formatting
information), but we now (almost completely) save cell values, errors,
boolean cells, and formulas.
The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)".
This needs to be exported as "SUM(A1,B1)" (note the comma).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Add formula support for /worksheet/sheetData/row/c. Remove
XclExpBlankCell::SaveXml(), as I can't think of anything it would
actually need to do.
2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement partial support for /worksheet/sheetData/row/c.
This is take 1 of string and value support (//c[@t='s' or @t='n']).
Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I
have no idea how to test bool and error output without formula support.
TESTING:
Numbers have two serialization paths:
- "RK" numbers, which go through XclExpRkCell.
- non-RK numbers, which go thorugh XclExpNumberCell.
RK numbers are integers or numbers evenly divisible by 100. All other
floating point values (e.g. Pi) are non-RK values.
Strings are, well, strings.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row/c for strings and numeric values,
and stub out support for the other //c types (formulas, errors,
boolean values, blank values...).
2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetData/row.
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Generate /worksheet/sheetData/row; generate <sheetData/> instead of
<sheetData></sheetData> if there are no rows.
2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
=?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView.
* sc/source/filter/excel/xeview.cxx: Generate attributes for
/worksheet/sheetViews/sheetView.
2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetPr/pageSetUpPr.
This also partially implements /worksheet/sheetPr, but most of it is TODO.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization
for XML output so we can output additional information.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and
/worksheet/sheetPtr/pageSetUpPr elements.
2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection.
When multiple cells are selected, //selection/@sqref needs to be space
separated ("A1 A3 B2") not comma-separated ("A1,A3,B2").
* sc/source/filter/excel/xestream.cxx: Use space as the separator
character between ScRanges.
2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/sheetViews/sheetView/selection.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclRangeList).
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Generate /workbook/sheetViews/sheetView/selection.
2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
*Actually* implement /worksheet/printOptions.
Previously I was emitting /worksheet/printOptions, but neglected to actually
emit any attributes for that element. Oops.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx:
Use the new 3-argument XclExpBoolRecord constructor to specify the
OOXML attribute to generate from SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to
the constructor (default is disabled) so that the caller can specify
which attribute to generate instead of having a horrible
special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a
very scalable solution; this is much better). This isn't perfect,
as XclExpBoolRecord::SaveXml() still has some special logic, but
it's better than it was...
2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/sheetViews/sheetView/pane.
Slightly more complicated than you'd think, as //pane needs to be after
//dimension but *before* //sheetData, and previously //dimension was being
generated as part of the //sheetData processing (thus making it difficult to
interrupt the generation for //sheetViews).
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx:
Add FillAsXmlTable(); aRecList now gets filled either as a BINARY
(FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle
eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was
straining my head, and OOXML record ordering is looking to be quite
different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that
//dimension is generated before //sheetViews.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord.
This is needed because I need an ScfRef<XclExpRecordBase> (to insert
the DIMENSION record into the correct location), but XclExpDimension
is located within another object and thus can't be heap-allocated
itself (at least not w/o changing how it works). Thus I instead
create an XclExpDelegatingRecord instance which points to the
XclExpDimension instance I care about w/o worrying about double
freeing or `delete`ing non-`new`d memory...
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::ToOString(XclAddress).
* sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx:
Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this
needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used
by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to
the already existing XclExpDimensions instance; change
XclExpCellTable::CreateRecord() to (a) make it non-const, and (b)
return the appropriate XclExpDimension instance for the
EXC_ID3_DIMENSIONS record type.
* sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx:
Implement /worksheet/sheetViews and
/worksheet/sheetViews/sheetView/pane, and partially implement
/worksheet/sheetViews/sheetView.
* sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the
/workbook/workbookProtection/@revisionsPassword attribute, as this
causes xmllint XSD Schema validation to fail.
2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet[pageMargins and pageSetup and printOptions].
Note: this change alters the ordering of records in (binary) .xls files as
well as .xlsx files. This change does not seem to cause any repercussions;
Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint.
(The records were reordered to simplify generation of OOXML, as otherwise we'd
either have a conditional mess or we'd have code duplication. This seems to
work, but can be worked around if deemed necessary.)
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate /worksheet/pageMargins, /worksheet/pageSetup, and
/worksheet/printOptions elements.
* sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml()
and ExlExpValueRecord<T>::SetAttribute() (needed to generate
attributes for some of the above elements).
2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/mergeCells/mergeCell.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/inc/xecontent.hxx,
sc/source/filter/excel/xecontent.cxx: Generate
/worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements.
2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/scenarios, //scenario, //inputCells.
"Minor" implementation difficulty (making this patch larger than would
normally be required): Scenarios implicitly add a new invisible worksheet
(as is noticable if you look at the Calc status bar after clicking
Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4").
This extra sheet foiled my (stupid) resource ID mapping which "just
happened" to work, allowing rId1::sheet1 mappings. The problem was that
it worked only by "luck" (and I'm not exporting too much), and it was
bound to break at some point...like now.
Consequently in addition to exporting //scenarios et. al, this also adds
additional infrastructure to deal with creating and storing Resource Ids,
in particular so that sheet's get valid resource Ids and Excel will still
deign to open our files w/o generating errors.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Change the ordering of
ExcEScenarioManager & FilterManager to follow the OOXML XSD;
ExcTable::WriteXml() no longer creates the sheet stream (this is
done by ExcBundlesheet8::SaveXml()), so lookup the correct stream
to use instead.
* sc/source/filter/excel/xepage.cxx: Flush comments.
* sc/source/filter/excel/xetable.cxx: Cleanup.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Change
ExcBundlesheet8::WriteXml() to open the appropriate sheet output
stream (so that we can get a valid ResourceId for this output stream
to use in //sheet[@r:id]); implement //scenarios, //scenario, and
//inputCells for scenario generation.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add
XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress),
XclXmlUtils::ToOString(ScRange),
XclXmlUtils::ToOString(XclExpString),
XclExpXmlStream::GetIdForPath(),
XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are
helper routines (code cleanup), while the XclExpXmlStream methods
are to permit "registration" of a Path to both a RelationshipId and
a FSHelperPtr for later output. This allows e.g.
ExcBundlesheet8::SaveXml() to open the output stream, and have
ExcTable::WriteXml() grab and use this output stream later.
Changed CreateOutputStream() to (optionally) return the ResourceId
as an output parameter.
2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx,
sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of
write() in places that require escaping.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape().
2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/headerFooter[oddHeader, oddFooter].
Excel distinguishes between left, right, and front page sets, while Calc
doesn't (at least, the .xls output doesn't make that distinction).
Consequently, we generate "all pages have these headers/footers" output.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the
//headerFooter element is inserted into the correct position to
allow Excel to open generated documents.
* sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx:
Generate the /worksheet/headerFooter,
/worksheet/headerFooter/oddHeader, and
/worksheet/headerFooter/evenHeader elements.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Extend the
XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord
types to accept a callback function which is invoked after starting
the element. This allows us to ~easily provide the
/worksheet/headerFooter attributes w/o creating new XclExpRecordBase
subclasses.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape()
functions which perform XML character escaping (e.g. s/</</g) so
that we don't generate invalid XML. In particular, the header/footer
contains a "formatting code" which contains '&', which must be
escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Implement
/worksheet/dataValidations,
/worksheet/dataValidations/dataValidation, //formula1, //formula2.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
XclXmlUtils::ToOString(ScRangeList),
XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating. We do properly generate //conditionalFormatting/@sqref.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/inc/xecontent.hxx: Generate
/worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
//col needs to come _before_ //sheetData, and emitting //sheetData
here makes that impossible (and keeps Excel from loading our files).
* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
Implement /worksheet/cols (XclExpColinfoBuffer),
/worksheet/cols/col (XclExpColinfo), and stub out
/worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
the former to call the latter, and the latter to generate
/worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support. Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation. This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
//workbookProtection and insert the //calcPr BIFF records into the
appropriate position based on file type. One minor quirk: the
records move from the per-SHEET array into the workbook array.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message. The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
* sc/source/filter/excel/excdoc.cxx: Place the
workbookProtection-related BIFF records into the correct position to
appease the Excel gods.
* sc/source/filter/excel/excrecds.cxx,
sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
/workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
one of two different locations, depending on output format. Add a
new XclOutput enumeration to contain the output format (we do NOT
want to reuse XclBiff for this purpose, as otherwise XML output is a
superset of BIFF8, and we don't want to update every existing check
for BIFF8 to check for both BIFF8 and XML), and check for this flag
so that the WINDOW1 record is created in the appropriate place.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
constructor to take a `const XclExpRoot&`, as
XclExpWindow::SaveXml() requires this information.
* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
XclExpWindow1::SaveXml() generates the //workbookView element.
* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
* sc/source/filter/excel/xestream.cxx: Add some asserts.
* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
when passed as a "..." argument to a function. Doh!
2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/excrecds.cxx,
sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
<workbookPr/> element; cleanup & document TODOs.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Declare & Implement
Xcl1904::SaveXml().
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and implement
XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
both used to single-style XML elements instead of the "full"
start/end XML created by XclExpXmlStartElementRecord and
XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
which generates some <workbookPr/> attributes.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Declare & implement
XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support. Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements. This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags. These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added. This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
changes, as we no longer use pTabNames to generate //sheets/; add
records to emit the <sheets/> element; place the sheet stream on top
of the XclExpXmlStream stack.
* sc/source/filter/inc/excrecds.hxx,
sc/source/filter/excel/excrecds.cxx: Save the tab that
ExcBundlesheetBase was constructed for -- needed for <sheet/>
generation within ExcBundlesheet8.
* sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
* sc/source/filter/inc/xerecord.hxx,
sc/source/filter/excel/xerecord.cxx: Declare and Implement
XclExpXmlElementRecord, XclExpXmlStartElementRecord,
XclExpXmlEndElementRecord.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Add stream stack methods;
remove warning about unused parameter.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
* sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a
breadth-first fashion (i.e. top-down), and implementing each element
as I'm able. I'm not always able to immediately implement an
element (frequently because I can't find the equivalent binary
export code) within a short period of time, so any such elements are
recorded here for later passes.
Just because an element isn't here doesn't mean it's been fully
implemented; any elements with associated code will have OOXTODO
comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
* sc/source/filter/excel/xepivot.cxx,
sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
* sc/source/filter/inc/xename.hxx: Declare
XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
generation implementation.
* sc/source/filter/excel/xecontent.cxx: Provide the count and
uniqueCount attributes for the <sst/> element.
* sc/source/filter/inc/xestream.hxx,
sc/source/filter/excel/xestream.cxx: Provide/implement a
XclExpXmlStream::GetWorkbookCalculationProperties() method which
keeps track of data used by excdoc.cxx for <calcPr/> generation.
* sc/source/filter/inc/xcl97rec.hxx,
sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
* sc/source/filter/excel/excdoc.cxx,
sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
create sub-streams.
* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
use CreateOutputStream() to create xl/workbook.xml.
* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
relations file so that correct relative paths are present within the
.rels file; Use the correct content type when creating sheetN.xml;
Insert a <sheetData/> element into the worksheet.xml files; insert
the sheetN.xml relational data into the correct .rels file.
* sc/source/filter/excel/xestream.cxx: Use the correct content type
when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
so that the added relation is (hopefully) inserted into the
appropriate xl/_rels/workbook.xml.rels file; extra tracing.
* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
* sc/source/filter/excel/xestream.cxx,
sc/source/filter/inc/xestream.hxx: Add more ToOString() and
ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
elements, depending on whether we're the header or not. Implement
ExcDocument::WriteXml() to stub out xl/workbook.xml.
* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
strings to speed up XML creation.
* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
helpers to simplify XML writing; open the xl/workbook.xml file so
that it can be written to from multiple locations.
* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
* sc/source/filter/excel/xecontent.cxx: Write proper shared string
table entries.
* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
string table.
* sc/prj/build.lst: We now depend on oox to build.
* sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
package files. This allows increased code sharing.
* sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
* sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
over pMedStrm (this makes ZipStorage very angry); don't call
lcl_ExportExcelBiff(), as we want to preserve our generated file.
* sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
string table (incomplete, as I need to find an easier/more elegant way
of inserting strings into the XML, but it'll need updating anyway to
use the FastSaxSerializer).
* sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine. It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
* oox/workben/ooxml-export-notes.txt: Flush.
* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
Add and implement the new ExportXml2007 type.
* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
sc/source/filter/excel/xecontent.cxx,
sc/source/filter/excel/xepivot.cxx,
sc/source/filter/excel/xerecord.cxx,
sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
XclExpSstImpl::SaveXml() to be invoked from the XML export context
and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
can specify Excel 2007 XML (Exp2007Xml) as a file format.
* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
Exp2007Xml is a supported format, and stub out Exp2007Xml support so
that BIFF8 output is currently generated.
* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
Remove 'Calc ' from the filter names (as none of the other filters
mentioned in sc/source/ui/docshell.cxx use that convention), and
remove 3RDPARTYFILTER from the filter's Flags property, as this flag
causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
ditto
* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
reverse extensions order so that xlsx is shown in Save dialog as
default
2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
[$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
* sax/source/fastparser/fshelper.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
when writing attribute values.
2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely. This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
and implement FastSerializerHelper::writeEscaped(), which escapes
any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
sax/source/fastparser/fastserializer.hxx,
sax/source/fastparser/fshelper.cxx: Add/implement
FastSerializerHelper::writeId(), which does the "usual"
sal_Int32->string conversion but manually, outside of any automatic
context. This is done so that
XclExpXmlStream::WriteCurrentStreamAttributes() can write element
attributes "piecemeal"/on-demand, without needing to store the
relevant information into a separate object to generate all the
attributes at once.
2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
* sax/source/fastparser/fshelper.cxx: Change the semantics of
startElement() and singleElement(), so that attributes with values
that are NULL are _skipped_, instead of ending all attributes. This
allows us to have "optional" attributes, in which the attribute
won't be generated if the value is null. This is needed so that the
//definedName/@localSheetId attribute is only emitted for non-global
sheet-specific names.
2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
useless string duplication --
Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
use in fshelper.cxx); cleanupl.
* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
string inside of elements.
* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
support xml namespaces
2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
new id can be queried by asking for property "RelId"
fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
updated pptx export filter
2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
fixed the constructor namespace
added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25 Radek Doulik <rodo@novell.com>
* oox/workben/ooxml-export-notes.txt: added odp export trace
* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
test code to create test storage and stream, also committing
changes here
* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
* oox/inc/oox/helper/zipstorage.*: as below
* oox/inc/oox/helper/storagebase.* (class StorageBase): let
export constructor use XStream instead of XOutputStream, change
member type as well
* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
below
* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
as below
* oox/inc/oox/core/filterbase.*: changed
implCreateStorage method to get XStream instead of XOutputStream
* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
XStream to media descriptor properties for OOXML export filter
* comphelper/source/misc/mediadescriptor.cxx
(PROP_STREAMFOROUTPUT): added StreamForOutput property
* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
OFOPXMLFormat
* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
implementation for export
* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
stream only on import
2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
prototype implementation
(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
ScFormatFilter : : Get ( ) . ScExportDif ( * pStream , & aDocument , ScAddress ( 0 , 0 , 0 ) ,
2002-05-29 12:36:53 +00:00
ScGlobal : : GetCharsetValue ( sItStr ) ) ;
bRet = TRUE ;
if ( aDocument . GetTableCount ( ) > 1 )
if ( ! rMed . GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
rMed . SetError ( SCWARN_EXPORT_ASCII , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
}
else if ( aFltName . EqualsAscii ( pFilterSylk ) )
{
SvStream * pStream = rMed . GetOutStream ( ) ;
if ( pStream )
{
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
2000-09-18 16:07:07 +00:00
2004-06-04 10:23:23 +00:00
SCCOL nEndCol ;
SCROW nEndRow ;
2000-09-18 16:07:07 +00:00
aDocument . GetCellArea ( 0 , nEndCol , nEndRow ) ;
ScRange aRange ( 0 , 0 , 0 , nEndCol , nEndRow , 0 ) ;
ScImportExport aImExport ( & aDocument , aRange ) ;
2001-05-22 12:03:32 +00:00
aImExport . SetFormulas ( TRUE ) ;
2005-01-11 12:20:20 +00:00
bRet = aImExport . ExportStream ( * pStream , rMed . GetBaseURL ( true ) , SOT_FORMATSTR_ID_SYLK ) ;
2000-09-18 16:07:07 +00:00
}
}
else if ( aFltName . EqualsAscii ( pFilterHtml ) )
{
SvStream * pStream = rMed . GetOutStream ( ) ;
if ( pStream )
{
2007-02-27 12:06:59 +00:00
WaitObject aWait ( GetActiveDialogParent ( ) ) ;
2000-09-18 16:07:07 +00:00
ScImportExport aImExport ( & aDocument ) ;
aImExport . SetStreamPath ( rMed . GetName ( ) ) ;
2005-01-11 12:20:20 +00:00
bRet = aImExport . ExportStream ( * pStream , rMed . GetBaseURL ( true ) , SOT_FORMATSTR_ID_HTML ) ;
2001-07-20 17:37:51 +00:00
if ( bRet & & aImExport . GetNonConvertibleChars ( ) . Len ( ) )
SetError ( * new StringErrorInfo (
SCWARN_EXPORT_NONCONVERTIBLE_CHARS ,
aImExport . GetNonConvertibleChars ( ) ,
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
ERRCODE_BUTTON_OK | ERRCODE_MSG_INFO ) , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
}
else
{
if ( GetError ( ) )
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
2009-06-16 16:15:54 +00:00
SetError ( SCERR_IMPORT_NI , : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( OSL_LOG_PREFIX ) ) ) ;
2000-09-18 16:07:07 +00:00
}
return bRet ;
}
2004-10-04 19:14:39 +00:00
BOOL __EXPORT ScDocShell : : SaveCompleted ( const uno : : Reference < embed : : XStorage > & xStor )
2000-09-18 16:07:07 +00:00
{
2004-10-04 19:14:39 +00:00
return SfxObjectShell : : SaveCompleted ( xStor ) ;
2000-09-18 16:07:07 +00:00
}
BOOL __EXPORT ScDocShell : : DoSaveCompleted ( SfxMedium * pNewStor )
{
BOOL bRet = SfxObjectShell : : DoSaveCompleted ( pNewStor ) ;
// SC_HINT_DOC_SAVED fuer Wechsel ReadOnly -> Read/Write
Broadcast ( SfxSimpleHint ( SC_HINT_DOC_SAVED ) ) ;
return bRet ;
}
2010-07-15 14:30:44 +02:00
sal_Bool ScDocShell : : QuerySlotExecutable ( USHORT nSlotId )
{
// #i112634# ask VBA event handlers whether to save or print the document
using namespace : : com : : sun : : star : : script : : vba ;
sal_Int32 nVbaEventId = VBAEventId : : NO_EVENT ;
uno : : Sequence < uno : : Any > aArgs ;
switch ( nSlotId )
{
case SID_SAVEDOC :
case SID_SAVEASDOC :
nVbaEventId = VBAEventId : : WORKBOOK_BEFORESAVE ;
aArgs . realloc ( 1 ) ;
aArgs [ 0 ] < < = ( nSlotId = = SID_SAVEASDOC ) ;
break ;
case SID_PRINTDOC :
case SID_PRINTDOCDIRECT :
nVbaEventId = VBAEventId : : WORKBOOK_BEFOREPRINT ;
break ;
}
sal_Bool bSlotExecutable = sal_True ;
if ( nVbaEventId ! = VBAEventId : : NO_EVENT ) try
{
uno : : Reference < XVBAEventProcessor > xEventProcessor ( aDocument . GetVbaEventProcessor ( ) , uno : : UNO_QUERY_THROW ) ;
xEventProcessor - > processVbaEvent ( nVbaEventId , aArgs ) ;
}
catch ( util : : VetoException & )
{
bSlotExecutable = sal_False ;
}
catch ( uno : : Exception & )
{
}
return bSlotExecutable ;
}
2000-09-18 16:07:07 +00:00
USHORT __EXPORT ScDocShell : : PrepareClose ( BOOL bUI , BOOL bForBrowsing )
{
if ( SC_MOD ( ) - > GetCurRefDlgId ( ) > 0 )
{
2009-11-30 12:56:04 +01:00
SfxViewFrame * pFrame = SfxViewFrame : : GetFirst ( this ) ;
2000-09-18 16:07:07 +00:00
if ( pFrame )
{
SfxViewShell * p = pFrame - > GetViewShell ( ) ;
ScTabViewShell * pViewSh = PTR_CAST ( ScTabViewShell , p ) ;
if ( pViewSh ! = NULL )
{
Window * pWin = pViewSh - > GetWindow ( ) ;
if ( pWin ! = NULL ) pWin - > GrabFocus ( ) ;
}
}
return FALSE ;
}
if ( aDocument . IsInLinkUpdate ( ) | | aDocument . IsInInterpreter ( ) )
{
ErrorMessage ( STR_CLOSE_ERROR_LINK ) ;
return FALSE ;
}
DoEnterHandler ( ) ;
2010-07-06 19:34:53 +02:00
// start 'Workbook_BeforeClose' VBA event handler for possible veto
if ( ! IsInPrepareClose ( ) )
{
try
{
2010-07-12 11:17:00 +02:00
uno : : Reference < script : : vba : : XVBAEventProcessor > xVbaEvents ( aDocument . GetVbaEventProcessor ( ) , uno : : UNO_SET_THROW ) ;
2010-07-06 19:34:53 +02:00
uno : : Sequence < uno : : Any > aArgs ;
2010-07-12 11:17:00 +02:00
xVbaEvents - > processVbaEvent ( script : : vba : : VBAEventId : : WORKBOOK_BEFORECLOSE , aArgs ) ;
2010-07-06 19:34:53 +02:00
}
catch ( util : : VetoException & )
{
// if event processor throws VetoException, macro has vetoed close
return sal_False ;
}
catch ( uno : : Exception & )
{
}
}
// end handler code
2000-09-18 16:07:07 +00:00
USHORT nRet = SfxObjectShell : : PrepareClose ( bUI , bForBrowsing ) ;
if ( nRet = = TRUE ) // TRUE = schliessen
aDocument . DisableIdle ( TRUE ) ; // nicht mehr drin rumpfuschen !!!
return nRet ;
}
void ScDocShell : : PrepareReload ( )
{
SfxObjectShell : : PrepareReload ( ) ; // tut nichts?
// Das Disconnect von DDE-Links kann Reschedule ausloesen.
// Wenn die DDE-Links erst im Dokument-dtor geloescht werden, kann beim Reload
// aus diesem Reschedule das DDE-Link-Update fuer das neue Dokument ausgeloest
// werden. Dabei verklemmt sicht dann irgendwas.
// -> Beim Reload die DDE-Links des alten Dokuments vorher disconnecten
aDocument . DisconnectDdeLinks ( ) ;
}
String ScDocShell : : GetOwnFilterName ( ) // static
{
return String : : CreateFromAscii ( pFilterSc50 ) ;
}
2009-07-27 11:41:15 -04:00
String ScDocShell : : GetHtmlFilterName ( )
{
return String : : CreateFromAscii ( pFilterHtml ) ;
}
2001-05-10 13:11:39 +00:00
String ScDocShell : : GetWebQueryFilterName ( ) // static
{
return String : : CreateFromAscii ( pFilterHtmlWebQ ) ;
}
2002-05-29 12:36:53 +00:00
String ScDocShell : : GetAsciiFilterName ( ) // static
{
return String : : CreateFromAscii ( pFilterAscii ) ;
}
String ScDocShell : : GetLotusFilterName ( ) // static
{
return String : : CreateFromAscii ( pFilterLotus ) ;
}
String ScDocShell : : GetDBaseFilterName ( ) // static
{
return String : : CreateFromAscii ( pFilterDBase ) ;
}
String ScDocShell : : GetDifFilterName ( ) // static
{
return String : : CreateFromAscii ( pFilterDif ) ;
}
2000-09-18 16:07:07 +00:00
BOOL ScDocShell : : HasAutomaticTableName ( const String & rFilter ) // static
{
// TRUE for those filters that keep the default table name
// (which is language specific)
return rFilter . EqualsAscii ( pFilterAscii )
| | rFilter . EqualsAscii ( pFilterLotus )
| | rFilter . EqualsAscii ( pFilterExcel4 )
| | rFilter . EqualsAscii ( pFilterEx4Temp )
| | rFilter . EqualsAscii ( pFilterDBase )
| | rFilter . EqualsAscii ( pFilterDif )
| | rFilter . EqualsAscii ( pFilterSylk )
| | rFilter . EqualsAscii ( pFilterHtml )
| | rFilter . EqualsAscii ( pFilterRtf ) ;
}
//==================================================================
# define __SCDOCSHELL_INIT \
aDocument ( SCDOCMODE_DOCUMENT , this ) , \
2007-02-27 12:06:59 +00:00
aDdeTextFmt ( String : : CreateFromAscii ( RTL_CONSTASCII_STRINGPARAM ( " TEXT " ) ) ) , \
nPrtToScreenFactor ( 1.0 ) , \
2006-11-22 09:45:18 +00:00
pImpl ( new DocShell_Impl ) , \
2000-09-18 16:07:07 +00:00
bHeaderOn ( TRUE ) , \
bFooterOn ( TRUE ) , \
2007-02-27 12:06:59 +00:00
bNoInformLost ( TRUE ) , \
2000-09-18 16:07:07 +00:00
bIsEmpty ( TRUE ) , \
bIsInUndo ( FALSE ) , \
2001-07-23 14:18:23 +00:00
bDocumentModifiedPending ( FALSE ) , \
2001-10-15 10:29:21 +00:00
nDocumentLock ( 0 ) , \
2002-09-25 08:59:01 +00:00
nCanUpdate ( com : : sun : : star : : document : : UpdateDocMode : : ACCORDING_TO_CONFIG ) , \
2002-12-02 07:34:27 +00:00
bUpdateEnabled ( TRUE ) , \
2004-07-23 09:52:08 +00:00
pOldAutoDBRange ( NULL ) , \
2007-02-27 12:06:59 +00:00
pDocHelper ( NULL ) , \
pAutoStyleList ( NULL ) , \
pPaintLockData ( NULL ) , \
pOldJobSetup ( NULL ) , \
2008-02-05 14:45:03 +00:00
pSolverSaveData ( NULL ) , \
2009-09-07 15:38:19 +00:00
pSheetSaveData ( NULL ) , \
2003-06-04 11:36:58 +00:00
pModificator ( NULL )
2000-09-18 16:07:07 +00:00
//------------------------------------------------------------------
ScDocShell : : ScDocShell ( const ScDocShell & rShell )
2007-02-27 12:06:59 +00:00
: SvRefBase ( ) ,
SotObject ( ) ,
SfxObjectShell ( rShell . GetCreateMode ( ) ) ,
SfxListener ( ) ,
2000-09-18 16:07:07 +00:00
__SCDOCSHELL_INIT
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::ScDocShell " ) ;
2001-07-27 18:19:54 +00:00
2000-09-18 16:07:07 +00:00
SetPool ( & SC_MOD ( ) - > GetPool ( ) ) ;
bIsInplace = rShell . bIsInplace ;
pDocFunc = new ScDocFunc ( * this ) ;
// SetBaseModel needs exception handling
ScModelObj : : CreateAndSet ( this ) ;
StartListening ( * this ) ;
SfxStyleSheetPool * pStlPool = aDocument . GetStyleSheetPool ( ) ;
if ( pStlPool )
StartListening ( * pStlPool ) ;
GetPageOnFromPageStyleSet ( NULL , 0 , bHeaderOn , bFooterOn ) ;
SetHelpId ( HID_SCSHELL_DOCSH ) ;
// InitItems und CalcOutputFactor werden jetzt nach bei Load/ConvertFrom/InitNew gerufen
}
//------------------------------------------------------------------
2010-01-06 21:34:53 +01:00
ScDocShell : : ScDocShell ( const sal_uInt64 i_nSfxCreationFlags )
: SfxObjectShell ( i_nSfxCreationFlags )
, __SCDOCSHELL_INIT
2000-09-18 16:07:07 +00:00
{
2001-08-01 06:32:37 +00:00
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog , " sc " , " nn93723 " , " ScDocShell::ScDocShell " ) ;
2001-07-27 18:19:54 +00:00
2000-09-18 16:07:07 +00:00
SetPool ( & SC_MOD ( ) - > GetPool ( ) ) ;
2010-01-06 21:34:53 +01:00
bIsInplace = ( GetCreateMode ( ) = = SFX_CREATE_MODE_EMBEDDED ) ;
2000-09-18 16:07:07 +00:00
// wird zurueckgesetzt, wenn nicht inplace
pDocFunc = new ScDocFunc ( * this ) ;
// SetBaseModel needs exception handling
ScModelObj : : CreateAndSet ( this ) ;
StartListening ( * this ) ;
SfxStyleSheetPool * pStlPool = aDocument . GetStyleSheetPool ( ) ;
if ( pStlPool )
StartListening ( * pStlPool ) ;
SetHelpId ( HID_SCSHELL_DOCSH ) ;
2001-04-23 08:44:43 +00:00
aDocument . GetDBCollection ( ) - > SetRefreshHandler (
LINK ( this , ScDocShell , RefreshDBDataHdl ) ) ;
2000-09-18 16:07:07 +00:00
// InitItems und CalcOutputFactor werden jetzt nach bei Load/ConvertFrom/InitNew gerufen
}
//------------------------------------------------------------------
__EXPORT ScDocShell : : ~ ScDocShell ( )
{
ResetDrawObjectShell ( ) ; // #55570# falls der Drawing-Layer noch versucht, darauf zuzugreifen
SfxStyleSheetPool * pStlPool = aDocument . GetStyleSheetPool ( ) ;
if ( pStlPool )
EndListening ( * pStlPool ) ;
EndListening ( * this ) ;
delete pAutoStyleList ;
SfxApplication * pSfxApp = SFX_APP ( ) ;
if ( pSfxApp - > GetDdeService ( ) ) // DDE vor Dokument loeschen
pSfxApp - > RemoveDdeTopic ( this ) ;
delete pDocFunc ;
2009-06-04 16:21:29 +00:00
delete aDocument . mpUndoManager ;
aDocument . mpUndoManager = 0 ;
2006-11-22 09:45:18 +00:00
delete pImpl ;
2000-09-18 16:07:07 +00:00
delete pPaintLockData ;
delete pOldJobSetup ; // gesetzt nur bei Fehler in StartJob()
2001-10-15 10:29:21 +00:00
2008-02-05 14:45:03 +00:00
delete pSolverSaveData ;
2009-09-07 15:38:19 +00:00
delete pSheetSaveData ;
2004-07-23 09:52:08 +00:00
delete pOldAutoDBRange ;
2003-06-04 11:36:58 +00:00
if ( pModificator )
{
DBG_ERROR ( " The Modificator should not exist " ) ;
delete pModificator ;
}
2000-09-18 16:07:07 +00:00
}
//------------------------------------------------------------------
SfxUndoManager * __EXPORT ScDocShell : : GetUndoManager ( )
{
2009-06-04 16:21:29 +00:00
return aDocument . GetUndoManager ( ) ;
2000-09-18 16:07:07 +00:00
}
void ScDocShell : : SetModified ( BOOL bModified )
{
2007-06-26 15:07:45 +00:00
if ( SfxObjectShell : : IsEnableSetModified ( ) )
{
SfxObjectShell : : SetModified ( bModified ) ;
Broadcast ( SfxSimpleHint ( SFX_HINT_DOCCHANGED ) ) ;
}
2000-09-18 16:07:07 +00:00
}
void ScDocShell : : SetDocumentModified ( BOOL bIsModified /* = TRUE */ )
{
// BroadcastUno muss auch mit pPaintLockData sofort passieren
//! auch bei SetDrawModified, wenn Drawing angebunden ist
//! dann eigener Hint???
if ( pPaintLockData & & bIsModified )
{
2008-07-02 10:45:22 +00:00
//! BCA_BRDCST_ALWAYS etc. also needed here?
aDocument . BroadcastUno ( SfxSimpleHint ( SFX_HINT_DATACHANGED ) ) ;
2000-09-18 16:07:07 +00:00
pPaintLockData - > SetModified ( ) ; // spaeter...
return ;
}
SetDrawModified ( bIsModified ) ;
if ( bIsModified )
{
if ( aDocument . IsAutoCalcShellDisabled ( ) )
SetDocumentModifiedPending ( TRUE ) ;
else
{
SetDocumentModifiedPending ( FALSE ) ;
2002-12-05 14:45:58 +00:00
aDocument . InvalidateStyleSheetUsage ( ) ;
2000-09-18 16:07:07 +00:00
aDocument . InvalidateTableArea ( ) ;
2003-03-26 17:07:02 +00:00
aDocument . InvalidateLastTableOpParams ( ) ;
2000-09-18 16:07:07 +00:00
aDocument . Broadcast ( SC_HINT_DATACHANGED , BCA_BRDCST_ALWAYS , NULL ) ;
if ( aDocument . IsForcedFormulaPending ( ) & & aDocument . GetAutoCalc ( ) )
aDocument . CalcFormulaTree ( TRUE ) ;
PostDataChanged ( ) ;
2002-11-04 14:49:33 +00:00
// Detective AutoUpdate:
// Update if formulas were modified (DetectiveDirty) or the list contains
// "Trace Error" entries (#75362# - Trace Error can look completely different
// after changes to non-formula cells).
2000-09-18 16:07:07 +00:00
2002-11-04 14:49:33 +00:00
ScDetOpList * pList = aDocument . GetDetOpList ( ) ;
if ( pList & & ( aDocument . IsDetectiveDirty ( ) | | pList - > HasAddError ( ) ) & &
pList - > Count ( ) & & ! IsInUndo ( ) & & SC_MOD ( ) - > GetAppOptions ( ) . GetDetectiveAuto ( ) )
2000-09-18 16:07:07 +00:00
{
2002-11-04 14:49:33 +00:00
GetDocFunc ( ) . DetectiveRefresh ( TRUE ) ; // TRUE = caused by automatic update
2000-09-18 16:07:07 +00:00
}
2002-11-04 14:49:33 +00:00
aDocument . SetDetectiveDirty ( FALSE ) ; // always reset, also if not refreshed
2000-09-18 16:07:07 +00:00
}
2008-07-02 10:45:22 +00:00
// #b6697848# notify UNO objects after BCA_BRDCST_ALWAYS etc.
aDocument . BroadcastUno ( SfxSimpleHint ( SFX_HINT_DATACHANGED ) ) ;
2000-09-18 16:07:07 +00:00
}
}
// SetDrawModified - ohne Formel-Update
// (Drawing muss auch beim normalen SetDocumentModified upgedated werden,
// z.B. bei Tabelle loeschen etc.)
void ScDocShell : : SetDrawModified ( BOOL bIsModified /* = TRUE */ )
{
BOOL bUpdate = ( bIsModified ! = IsModified ( ) ) ;
SetModified ( bIsModified ) ;
2009-10-19 11:45:37 +00:00
SfxBindings * pBindings = GetViewBindings ( ) ;
2000-09-18 16:07:07 +00:00
if ( bUpdate )
{
2000-09-22 17:57:10 +00:00
if ( pBindings )
{
pBindings - > Invalidate ( SID_SAVEDOC ) ;
pBindings - > Invalidate ( SID_DOC_MODIFIED ) ;
}
2000-09-18 16:07:07 +00:00
}
if ( bIsModified )
{
2009-10-19 11:45:37 +00:00
if ( pBindings )
{
// #i105960# Undo etc used to be volatile.
// They always have to be invalidated, including drawing layer or row height changes
// (but not while pPaintLockData is set).
pBindings - > Invalidate ( SID_UNDO ) ;
pBindings - > Invalidate ( SID_REDO ) ;
pBindings - > Invalidate ( SID_REPEAT ) ;
}
2000-09-18 16:07:07 +00:00
if ( aDocument . IsChartListenerCollectionNeedsUpdate ( ) )
{
aDocument . UpdateChartListenerCollection ( ) ;
SFX_APP ( ) - > Broadcast ( SfxSimpleHint ( SC_HINT_DRAW_CHANGED ) ) ; // Navigator
}
SC_MOD ( ) - > AnythingChanged ( ) ;
}
}
void ScDocShell : : SetInUndo ( BOOL bSet )
{
bIsInUndo = bSet ;
}
void ScDocShell : : GetDocStat ( ScDocStat & rDocStat )
{
SfxPrinter * pPrinter = GetPrinter ( ) ;
aDocument . GetDocStat ( rDocStat ) ;
rDocStat . nPageCount = 0 ;
if ( pPrinter )
2004-06-04 10:23:23 +00:00
for ( SCTAB i = 0 ; i < rDocStat . nTableCount ; i + + )
2007-02-27 12:06:59 +00:00
rDocStat . nPageCount = sal : : static_int_cast < USHORT > ( rDocStat . nPageCount +
( USHORT ) ScPrintFunc ( this , pPrinter , i ) . GetTotalPages ( ) ) ;
2000-09-18 16:07:07 +00:00
}
SfxDocumentInfoDialog * __EXPORT ScDocShell : : CreateDocumentInfoDialog (
Window * pParent , const SfxItemSet & rSet )
{
SfxDocumentInfoDialog * pDlg = new SfxDocumentInfoDialog ( pParent , rSet ) ;
ScDocShell * pDocSh = PTR_CAST ( ScDocShell , SfxObjectShell : : Current ( ) ) ;
//nur mit Statistik, wenn dieses Doc auch angezeigt wird, nicht
//aus dem Doc-Manager
if ( pDocSh = = this )
2004-05-10 14:58:42 +00:00
{
ScAbstractDialogFactory * pFact = ScAbstractDialogFactory : : Create ( ) ;
2010-10-01 14:26:50 +13:00
DBG_ASSERT ( pFact , " ScAbstractFactory create fail! " ) ;
2004-05-10 14:58:42 +00:00
: : CreateTabPage ScDocStatPageCreate = pFact - > GetTabPageCreatorFunc ( RID_SCPAGE_STAT ) ;
2010-10-01 14:26:50 +13:00
DBG_ASSERT ( ScDocStatPageCreate , " Tabpage create fail! " ) ;
2000-09-18 16:07:07 +00:00
pDlg - > AddTabPage ( 42 ,
2004-05-10 14:58:42 +00:00
ScGlobal : : GetRscString ( STR_DOC_STAT ) ,
ScDocStatPageCreate ,
NULL ) ;
}
2000-09-18 16:07:07 +00:00
return pDlg ;
}
2007-02-27 12:06:59 +00:00
Window * ScDocShell : : GetActiveDialogParent ( )
2000-09-18 16:07:07 +00:00
{
ScTabViewShell * pViewSh = ScTabViewShell : : GetActiveViewShell ( ) ;
if ( pViewSh )
return pViewSh - > GetDialogParent ( ) ;
else
return Application : : GetDefDialogParent ( ) ;
}
2008-02-05 14:45:03 +00:00
void ScDocShell : : SetSolverSaveData ( const ScOptSolverSave & rData )
{
delete pSolverSaveData ;
pSolverSaveData = new ScOptSolverSave ( rData ) ;
}
2000-09-18 16:07:07 +00:00
2009-09-07 15:38:19 +00:00
ScSheetSaveData * ScDocShell : : GetSheetSaveData ( )
{
if ( ! pSheetSaveData )
pSheetSaveData = new ScSheetSaveData ;
return pSheetSaveData ;
}
2010-10-13 12:58:52 -04:00
void ScDocShell : : ResetKeyBindings ( ScOptionsUtil : : KeyBindingType eType )
{
using namespace : : com : : sun : : star : : ui ;
StackPrinter __stack_printer__ ( " ScDocShell::ResetKeyBindings " ) ;
Reference < XMultiServiceFactory > xServiceManager = : : comphelper : : getProcessServiceFactory ( ) ;
if ( ! xServiceManager . is ( ) )
return ;
Reference < XModuleUIConfigurationManagerSupplier > xModuleCfgSupplier (
xServiceManager - > createInstance (
OUString : : createFromAscii ( " com.sun.star.ui.ModuleUIConfigurationManagerSupplier " ) ) , UNO_QUERY ) ;
if ( ! xModuleCfgSupplier . is ( ) )
return ;
// Grab the Calc configuration.
Reference < XUIConfigurationManager > xConfigMgr =
xModuleCfgSupplier - > getUIConfigurationManager (
OUString : : createFromAscii ( " com.sun.star.sheet.SpreadsheetDocument " ) ) ;
if ( ! xConfigMgr . is ( ) )
return ;
// shortcut manager
Reference < XAcceleratorConfiguration > xScAccel (
xConfigMgr - > getShortCutManager ( ) , UNO_QUERY ) ;
if ( ! xScAccel . is ( ) )
return ;
// Backsapce key
awt : : KeyEvent aBackEv ;
aBackEv . KeyCode = awt : : Key : : BACKSPACE ;
aBackEv . Modifiers = 0 ;
// Delete key
awt : : KeyEvent aDeleteEv ;
aDeleteEv . KeyCode = awt : : Key : : DELETE ;
aDeleteEv . Modifiers = 0 ;
// Ctrl-D
awt : : KeyEvent aCtrlD ;
aCtrlD . KeyCode = awt : : Key : : D ;
aCtrlD . Modifiers = awt : : KeyModifier : : MOD1 ;
switch ( eType )
{
case ScOptionsUtil : : KEY_DEFAULT :
fprintf ( stdout , " ScDocShell::ResetKeyBindings: default \n " ) ;
xScAccel - > setKeyEvent ( aDeleteEv , OUString : : createFromAscii ( " .uno:ClearContents " ) ) ;
xScAccel - > setKeyEvent ( aBackEv , OUString : : createFromAscii ( " .uno:Delete " ) ) ;
break ;
case ScOptionsUtil : : KEY_OOO_LEGACY :
fprintf ( stdout , " ScDocShell::ResetKeyBindings: ooo legacy \n " ) ;
xScAccel - > setKeyEvent ( aDeleteEv , OUString : : createFromAscii ( " .uno:Delete " ) ) ;
xScAccel - > setKeyEvent ( aBackEv , OUString : : createFromAscii ( " .uno:ClearContents " ) ) ;
break ;
default :
;
}
xScAccel - > store ( ) ;
fprintf ( stdout , " ScDocShell::ResetKeyBindings: stored \n " ) ;
}
2009-09-07 15:38:19 +00:00
void ScDocShell : : UseSheetSaveEntries ( )
{
if ( pSheetSaveData )
{
pSheetSaveData - > UseSaveEntries ( ) ; // use positions from saved file for next saving
bool bHasEntries = false ;
SCTAB nTabCount = aDocument . GetTableCount ( ) ;
SCTAB nTab ;
for ( nTab = 0 ; nTab < nTabCount ; + + nTab )
if ( pSheetSaveData - > HasStreamPos ( nTab ) )
bHasEntries = true ;
if ( ! bHasEntries )
{
// if no positions were set (for example, export to other format),
// reset all "valid" flags
for ( nTab = 0 ; nTab < nTabCount ; + + nTab )
if ( aDocument . IsStreamValid ( nTab ) )
aDocument . SetStreamValid ( nTab , FALSE ) ;
}
}
}
2000-09-18 16:07:07 +00:00
// --- ScDocShellModificator ------------------------------------------
2001-04-21 19:31:39 +00:00
ScDocShellModificator : : ScDocShellModificator ( ScDocShell & rDS )
:
rDocShell ( rDS ) ,
aProtector ( rDS . GetDocument ( ) - > GetRefreshTimerControlAddress ( ) )
2000-09-18 16:07:07 +00:00
{
ScDocument * pDoc = rDocShell . GetDocument ( ) ;
bAutoCalcShellDisabled = pDoc - > IsAutoCalcShellDisabled ( ) ;
bIdleDisabled = pDoc - > IsIdleDisabled ( ) ;
pDoc - > SetAutoCalcShellDisabled ( TRUE ) ;
pDoc - > DisableIdle ( TRUE ) ;
}
ScDocShellModificator : : ~ ScDocShellModificator ( )
{
ScDocument * pDoc = rDocShell . GetDocument ( ) ;
pDoc - > SetAutoCalcShellDisabled ( bAutoCalcShellDisabled ) ;
if ( ! bAutoCalcShellDisabled & & rDocShell . IsDocumentModifiedPending ( ) )
2001-04-21 19:31:39 +00:00
rDocShell . SetDocumentModified ( ) ; // last one shuts off the lights
2000-09-18 16:07:07 +00:00
pDoc - > DisableIdle ( bIdleDisabled ) ;
}
void ScDocShellModificator : : SetDocumentModified ( )
{
ScDocument * pDoc = rDocShell . GetDocument ( ) ;
if ( ! pDoc - > IsImportingXML ( ) )
{
// AutoCalcShellDisabled temporaer restaurieren
BOOL bDisabled = pDoc - > IsAutoCalcShellDisabled ( ) ;
pDoc - > SetAutoCalcShellDisabled ( bAutoCalcShellDisabled ) ;
rDocShell . SetDocumentModified ( ) ;
pDoc - > SetAutoCalcShellDisabled ( bDisabled ) ;
}
else
{
// uno broadcast is necessary for api to work
// -> must also be done during xml import
pDoc - > BroadcastUno ( SfxSimpleHint ( SFX_HINT_DATACHANGED ) ) ;
}
}
2009-11-16 13:48:33 +01:00
//<!--Added by PengYunQuan for Validity Cell Range Picker
sal_Bool ScDocShell : : AcceptStateUpdate ( ) const
{
if ( SfxObjectShell : : AcceptStateUpdate ( ) )
return sal_True ;
if ( SC_MOD ( ) - > Find1RefWindow ( SFX_APP ( ) - > GetTopWindow ( ) ) )
return sal_True ;
return sal_False ;
}
//-->Added by PengYunQuan for Validity Cell Range Picker
2010-05-19 14:28:33 +02:00
2010-05-25 11:45:06 +02:00
bool ScDocShell : : IsChangeRecording ( ) const
{
ScChangeTrack * pChangeTrack = aDocument . GetChangeTrack ( ) ;
return pChangeTrack ! = NULL ;
}
bool ScDocShell : : HasChangeRecordProtection ( ) const
{
bool bRes = false ;
ScChangeTrack * pChangeTrack = aDocument . GetChangeTrack ( ) ;
if ( pChangeTrack )
bRes = pChangeTrack - > IsProtected ( ) ;
return bRes ;
}
2010-05-19 14:28:33 +02:00
void ScDocShell : : SetChangeRecording ( bool bActivate )
{
2010-05-25 11:45:06 +02:00
bool bOldChangeRecording = IsChangeRecording ( ) ;
if ( bActivate )
2010-05-19 14:28:33 +02:00
{
2010-05-25 11:45:06 +02:00
aDocument . StartChangeTracking ( ) ;
ScChangeViewSettings aChangeViewSet ;
aChangeViewSet . SetShowChanges ( TRUE ) ;
aDocument . SetChangeViewSettings ( aChangeViewSet ) ;
}
else
{
aDocument . EndChangeTracking ( ) ;
PostPaintGridAll ( ) ;
}
if ( bOldChangeRecording ! = IsChangeRecording ( ) )
{
UpdateAcceptChangesDialog ( ) ;
// Slots invalidieren
SfxBindings * pBindings = GetViewBindings ( ) ;
if ( pBindings )
pBindings - > InvalidateAll ( FALSE ) ;
2010-05-19 14:28:33 +02:00
}
}
bool ScDocShell : : SetProtectionPassword ( const String & rNewPassword )
{
bool bRes = false ;
ScChangeTrack * pChangeTrack = aDocument . GetChangeTrack ( ) ;
if ( pChangeTrack )
{
2010-05-25 11:45:06 +02:00
sal_Bool bProtected = pChangeTrack - > IsProtected ( ) ;
2010-05-19 14:28:33 +02:00
if ( rNewPassword . Len ( ) )
{
// when password protection is applied change tracking must always be active
SetChangeRecording ( true ) ;
: : com : : sun : : star : : uno : : Sequence < sal_Int8 > aProtectionHash ;
SvPasswordHelper : : GetHashPassword ( aProtectionHash , rNewPassword ) ;
pChangeTrack - > SetProtection ( aProtectionHash ) ;
}
else
{
pChangeTrack - > SetProtection ( : : com : : sun : : star : : uno : : Sequence < sal_Int8 > ( ) ) ;
}
bRes = true ;
2010-05-25 11:45:06 +02:00
if ( bProtected ! = pChangeTrack - > IsProtected ( ) )
{
UpdateAcceptChangesDialog ( ) ;
SetDocumentModified ( ) ;
}
2010-05-19 14:28:33 +02:00
}
return bRes ;
}
bool ScDocShell : : GetProtectionHash ( /*out*/ : : com : : sun : : star : : uno : : Sequence < sal_Int8 > & rPasswordHash )
{
bool bRes = false ;
ScChangeTrack * pChangeTrack = aDocument . GetChangeTrack ( ) ;
if ( pChangeTrack & & pChangeTrack - > IsProtected ( ) )
{
rPasswordHash = pChangeTrack - > GetProtection ( ) ;
bRes = true ;
}
return bRes ;
}