Commit graph

28 commits

Author SHA1 Message Date
Kohei Yoshida
aa00f229cb fdo#36771: Treat filter by "filter" and filter by "page" separate.
The new datapilot cache implementation mixed these two up.  I guess
it's best to have two separate flags for these.
2011-05-03 01:28:30 -04:00
Kohei Yoshida
60f355127f Centrally manage cached grid data for data pilot tables.
This prevents cached data from getting re-generated everytime ScDPObject
gets copied, which happens quite often.  Without this, the performance
of datapilot would really really suffer.
2011-04-28 15:35:54 -04:00
Kohei Yoshida
effc42d64e Check for existance of cache before creating a new one.
Sometimes a cache is passed onto the cache table at construction
time, in which case the cache is already there by the time
CreateCacheTable() is called.  We need to check that.
2011-03-01 00:44:42 -05:00
Kohei Yoshida
dddc5972da Renamed ScDPTableDataCache to simply ScDPCache.
There were so many classes with 'DPTable' in them it was confusing.
2011-03-01 00:24:37 -05:00
Kohei Yoshida
f84427bfdd Finally get the refresh to work properly. 2011-03-01 00:02:01 -05:00
Kohei Yoshida
e7db4c4fdc Data cache is now stored in the cashe table object for now.
With this commit, data caches are no longer stored outside the cache
table and managed by their ID's.  Each cache table stores and manages
its own data "cache", but then calling it a cache is a mis-nomer.
2011-02-28 21:27:41 -05:00
Kohei Yoshida
c51037f84d A little code cleanup. 2011-02-28 20:04:40 -05:00
Kohei Yoshida
d444d877a1 Make sure nobody modifies the table cache outside of ScDPCacheTable.
Use const to ensure that nobody modifies the content of the table
cache outside of ScDPCacheTable.
2011-02-28 18:14:22 -05:00
Fridrich Štrba
eb1d9d3cda port repository calc to boost unordered containers 2011-02-06 00:59:10 +01:00
serval
e4db7f536d callcatcher + 1 RTL_CONSTASCII_USTRINGPARAM 2010-12-20 11:50:25 +00:00
Kohei Yoshida
8a5114fa5e More datapilt-related cleanups.
New code should *never* use BOOL, TRUE, FALSE.  Also the indentation
mistakes are pretty frequent.
2010-11-12 16:34:27 -05:00
Kohei Yoshida
85cb2e9044 A bit of cleanup of the data pilot code.
Removed unnecessary // this is done by <who> on <date> type of comments.
Plus renamed some method names to be consistent with its neighboring
method naming conventions.

And some indentation hiccups.
2010-11-12 15:29:10 -05:00
Caolán McNamara
ad3292e2b3 add modelines to .hxx files as well 2010-10-28 15:47:29 +01:00
Vladimir Glazunov
2fbd5327d5 CWS-TOOLING: integrate CWS datapilotperf 2010-03-23 14:25:33 +01:00
Vladimir Glazunov
22e99ad710 CWS-TOOLING: integrate CWS changefileheader2 2010-02-17 10:32:35 +01:00
Jens-Heiner Rechtien
4573ccfffd changefileheader2: #i109125#: change source file copyright notice from Sun Microsystems to Oracle; remove CVS style keywords (RCSfile, Revision) 2010-02-12 15:01:35 +01:00
Niklas Nebel
7f40d36d4a datapilotperf: manual migration of changes by Wang Xu Ming from svn to hg 2010-02-03 17:59:00 +01:00
Kohei Yoshida
f3236d872b rebased to DEV300_m57. 2009-09-10 09:31:32 -04:00
Kohei Yoshida
f371fca09d #i102750# initial refactoring in an effort to support external references in DSUM, DGET etc. Not finished yet. 2009-09-09 10:57:16 -04:00
Vladimir Glazounov
546fcd1cb9 CWS-TOOLING: integrate CWS koheicoderemoval02
2009-07-24 Kohei Yoshida Resurrected one method that was now used after the rebase.  Now the entire sc module
builds.
2009-07-24 Kohei Yoshida Rebased to DEV300_m53.
2009-07-23 Kohei Yoshida resolved conflict during merge to DEV300_m52.
2009-05-09 Kohei Yoshida #i95953# partially applied Caolan's patch.
2009-05-09 Kohei Yoshida #i101326# Removed old pivot implementation code that was already disabled.
2009-05-09 Kohei Yoshida More unused methods commented out.
2009-05-09 Kohei Yoshida More unused methods commented out.
2009-05-08 Kohei Yoshida Removed more unused methods, mostly related to binfilter methods.
2009-05-08 Kohei Yoshida #i95953# the first round of unused method removal, based solely on Caolan's
list.  All removed methods were double-checked manually to make sure they are
really unused, followed by a build test with debug on.
2009-08-25 13:53:16 +00:00
Oliver Bolte
2f373570c5 CWS-TOOLING: integrate CWS koheiformula02
2009-02-19 13:18:02 +0100 iha  r268276 : #i99400# Missing value plotting broken
2009-02-11 03:39:50 +0100 kohei  r267579 : forgot to add an in-line comment.
2009-02-11 00:26:03 +0100 kohei  r267578 : Handle also the single cell references when exporting chart ranges.
2009-02-10 19:50:37 +0100 kohei  r267576 : removed a compiler warning.
2009-02-10 06:48:55 +0100 kohei  r267536 : got xls export filter to correctly write external references in charts.  
However, Excel doesn't entirely like my chart output if the chart contains 
external references.  The data are all there, but it refuses to draw it.
It works fine with charts with internal references.
2009-02-10 03:33:13 +0100 kohei  r267533 : correctly import external references used in chart objects, by using a token 
array instead of a range list to represent the data ranges.
2009-02-04 15:22:30 +0100 kohei  r267387 : return aRet instead of the sRangeRepresentation, just to be consistent with the
rest of the code there.  Both strings are empty so this is just for aesthetic 
reasons.
2009-02-04 15:07:49 +0100 kohei  r267384 : #i98872# allow export of empty data range, in order to allow saving of documents
with an empty chart.
2009-02-03 19:20:38 +0100 kohei  r267340 : #i98801# added a special case handler for parsing range address syntax used by 
the older version of OOo.  In the old syntax, the sheet name was dropped for 
the 2nd reference of a range if the 1st and 2nd references are on the same 
sheet.  In the new syntax this is not the case.
Also fixed unintential display of the sheet name for the end range address of a
single-sheet range.
2009-01-28 20:46:11 +0100 kohei  r267085 : call GetIndex() and GetString() only when the token is external ref, to avoid 
triggering assertions in a non-pro build.
2009-01-28 19:30:58 +0100 kohei  r267080 : When listeners are being destroyed, don't bother unregistering them with the 
external ref manager if the document itself is being destroyed.
2009-01-28 18:56:52 +0100 kohei  r267079 : fixed a heap corruption.  The Table instance stores instances of FormulaToken 
type, not of ScAddress type.
2009-01-26 18:59:14 +0100 kohei  r266945 : removed another warning on win32 build.
2009-01-26 18:50:56 +0100 kohei  r266943 : removed warnings on windows build.
2009-01-26 17:16:09 +0100 kohei  r266939 : added const to a returned reference value that is never used to modify its value.
2009-01-26 16:49:33 +0100 kohei  r266937 : Assume that the document instance is not null, or else don't copy any data at all.
2009-01-26 16:19:50 +0100 kohei  r266935 : create a clone of ScChart2DataSeqeunce without calling its copy constructor, 
since explicit definition of copy constructor would cause a serious compiler 
warning that's too ugly to fix.
2009-01-26 05:26:58 +0100 kohei  r266894 : removed unused variable and changed function signature.
2009-01-26 05:02:58 +0100 kohei  r266893 : removed unused variables to remove compiler warnings.
2009-01-25 18:07:31 +0100 kohei  r266890 : fixed indentation inconsistencies in ctor initializers.
2009-01-25 18:01:41 +0100 kohei  r266889 : * removed a compiler warning.
* tab -> whitespace conversion in some code.
2009-01-25 03:57:37 +0100 kohei  r266888 : removed a mis-leading comment.
2009-01-25 02:37:45 +0100 kohei  r266887 : * moved the ref token join method from chart2uno local to ScRefTokenHelper.
* a little code cleanup.
2009-01-24 09:29:26 +0100 kohei  r266865 : Don't re-link external files if their link has been broken once.
2009-01-24 09:16:28 +0100 kohei  r266864 : a typo in an in-line comment.
2009-01-24 09:14:29 +0100 kohei  r266863 : Treat non-cached cells as empty cells only when the source document is not 
reachable.
2009-01-24 07:23:44 +0100 kohei  r266862 : Don't purge the external ref cache when the link is broken.
2009-01-24 03:25:46 +0100 kohei  r266861 : When a cell outside the cached range is queried, we should return an emtpy cell
token instead of NULL, to be consistent with the old behavior.
2009-01-24 02:34:38 +0100 kohei  r266860 : Remove corresponding listeners when an external doc link is broken.
2009-01-23 23:18:44 +0100 kohei  r266856 : more work on handling external ref update listeners.
2009-01-23 18:10:09 +0100 kohei  r266846 : Handle loading of chart objects when their external link is updated.
2009-01-23 06:57:34 +0100 kohei  r266765 : more work on ref-tokenizing ScChartListener.
2009-01-22 22:57:52 +0100 kohei  r266760 : More work on moving ref token helper code to reftokenhelper & ref-tokenizing 
ScChartListener.
2009-01-22 21:52:38 +0100 kohei  r266758 : moved the code that converts XML range string into Calc's internal range string
from chart2uno to rangeutl & compile the range string to generate ref tokens
upon ods import.
2009-01-22 18:56:14 +0100 kohei  r266749 : fixed a build breakage.
2009-01-22 18:53:43 +0100 kohei  r266748 : Initial work toward using ref tokens in ScChartListener class.  I'll start 
moving some of local ref token handling functions from chart2uno.cxx to 
ScRefTokenHelper class to make them available in other places.
2009-01-22 17:38:20 +0100 kohei  r266746 : Add a big, fat warning against mixed use of ScSharedTokenRef and ScTokenRef.
2009-01-22 08:33:28 +0100 kohei  r266711 : #i98338# fixed slicing of external ref token classes by adding their own Clone() method.
2009-01-22 05:02:25 +0100 kohei  r266710 : Applied the same fix that npower/oj applied to fix a crasher (from #i98317#).
2009-01-21 23:02:42 +0100 kohei  r266705 : fix build breakages as a result of rebase to m39.  Mostly due to the new formula
 module and its associated changes esp. wrt token classes.
2009-01-21 19:14:40 +0100 kohei  r266699 : CWS-TOOLING: rebase CWS koheiformula02 to trunk@266428 (milestone: DEV300:m39)
2009-01-21 17:55:10 +0100 kohei  r266698 : moved the shared ScToken typedef to token.hxx, and use it instead of 
ScChart2TokenRef, since I need this typedef in the odf importer.  In the future
this can also replace the similar typedef in ScExternalRefManager.
2009-01-21 06:54:04 +0100 kohei  r266627 : Added external ref listener framework so that objects listening to external ref changes can get notified
when the link is updated.
The work is not done yet.
2009-01-20 23:07:38 +0100 kohei  r266626 : When exporting a range to ODF, we don't want to prepend a sheet name with '$' even for an external sheet.
2009-01-20 23:06:40 +0100 kohei  r266625 : 1) code cleanup to remove compiler warnings.
2) fixed convertRangesToXML to convert ref tokens into correct ODF range format.
2009-01-20 19:40:45 +0100 kohei  r266620 : extracted the code that fills cache from external ref into its own method.
2009-01-20 18:26:47 +0100 kohei  r266616 : added javadoc parameter descriptions.
2009-01-20 18:01:17 +0100 kohei  r266615 : disable ScChart2EmptyDataSequence entirely since that class doesn't appear to be used any more.
2009-01-20 17:42:59 +0100 kohei  r266608 : fixed a crash when the data source range is empty at time of chart creation.
2009-01-20 17:13:34 +0100 kohei  r266601 : a simple locale variable rename.
2009-01-20 16:57:04 +0100 kohei  r266598 : #i97563# applied my patch, to fix incorrect export attempts of color values as a number formatter key, and change the condition of 
one assertion to prevent it from being triggered incorrectly in non-pro build.
2009-01-17 07:41:01 +0100 kohei  r266458 : a little code cleanup.
2009-01-17 07:30:48 +0100 kohei  r266457 : removed a method that it no longer used.
2009-01-17 07:29:15 +0100 kohei  r266456 : fixed a crash when no external data is available for a given range.
2009-01-17 07:14:50 +0100 kohei  r266455 : Even more work on range list to ref token migration.  The chart now retains
external data after editing of chart.
2009-01-16 18:54:35 +0100 kohei  r266453 : More work on replacing flat ranges and addresses with ref tokens.
2009-01-16 17:07:51 +0100 kohei  r266438 : extracted a large code block into its own local method.
2009-01-16 15:22:57 +0100 kohei  r266423 : Initial work toward replacing the chart positioner and its related code in 
order to use reference tokens instead of range list.  The basis of that code
is the old ScChartPositioner and ScChartPositionMap duplicated to avoid breaking
any existing legacy code that might still use it.  It appears to be used by the
StarOffice 1.0 filter only.
Still not working with the external references.
2009-01-15 05:33:39 +0100 kohei  r266334 : renamed chackRanges() to overlaps() to make it more descriptive of what it does.
2009-01-13 23:25:50 +0100 kohei  r266260 : Moved the token-to-string conversion code up so that other parts of the code can use it.
2009-01-13 22:14:35 +0100 kohei  r266256 : generateLabels() now uses reference token list.
2009-01-13 18:42:23 +0100 kohei  r266246 : Finally, build data array for external data sources.  This will now allow the
data to be displayed in the diagram.
2009-01-13 16:34:03 +0100 kohei  r266235 : We now need to verify range representation by compiling it instead of parsing it.
2009-01-13 15:41:48 +0100 kohei  r266230 : cosmetic function name change & added javadoc comment for it.
2009-01-13 06:32:06 +0100 kohei  r266194 : Fixed a typo.
2009-01-13 06:04:23 +0100 kohei  r266193 : Generate data source range string by compiling reference tokens.  This way
we can also display external reference addresses correctly.
2009-01-13 05:55:44 +0100 kohei  r266192 : moved compileRangeRepresentation from being a class member method to a local function.
2009-01-13 05:41:53 +0100 kohei  r266191 : nuked one unused method & tab -> whitespace conversion.
2009-01-13 05:35:10 +0100 kohei  r266190 : A little code cleanup & consolidated all range-joining code
into a single function object class.
2009-01-13 03:58:51 +0100 kohei  r266189 : removed the unused method.
2009-01-13 03:53:01 +0100 kohei  r266188 : This time I (hopefully) fixed the range consolidation problem for real.  I forgot to join 
the missing upper-left corner cell with the existing range list.  Also, I needed to join
ranges recursively instead of just doing it once.
2009-01-13 02:15:48 +0100 kohei  r266187 : fixed the "add corner if missing" thing.
2009-01-12 23:36:19 +0100 kohei  r266185 : More work on range list -> ref tokens.
2009-01-12 23:12:28 +0100 kohei  r266184 : More work on switching to reference tokens from range list.  Still in progress.
2009-01-10 08:15:39 +0100 kohei  r266125 : More code change for switching to reference tokens, especially in ScChart2DataProvider.
Created another addUpperLeftCornerIfMissing method that can take a list of reference tokens
instead of range list.
2009-01-09 19:22:33 +0100 kohei  r266110 : entirely removed the range list data member from ScChart2DataSequence class.  From now on
we will use a list of tokens to track data source ranges.
Now, if I haven't introduced any bugs in the process, normal charts with no external 
references should work as before.  But I still need to get the external refs to 
work.
2009-01-09 19:11:45 +0100 kohei  r266108 : Convert ranges to token list before instantiating ScChart2DataSequence.
2009-01-09 18:27:13 +0100 kohei  r266107 : Extracted a common code block into its own method.
2009-01-09 18:18:36 +0100 kohei  r266106 : More progress on chart2uno implementation change.  Still more to do.
2009-01-09 06:24:36 +0100 kohei  r266043 : another place to swap the use of range list with token list.
2009-01-09 06:18:57 +0100 kohei  r266042 : Started re-working the chart2uno implementation, to use a list of ScToken
instances instead of ScRangeList, to keep track of data source ranges.
This way, the chart2uno code can tell whether the ranges are external or
internal, and act accordingly.
I'm not finished with it yet.  Some things are still not working.
2009-01-08 19:28:51 +0100 kohei  r266034 : yet another place to hardcode CONV_OOO for cell range address parsing.
2009-01-08 19:19:21 +0100 kohei  r266033 : transferred the BuildArray() method from the koheichart01 cws and its associated changes.  
I need to be changing code around this area, and I don't want to redo my changes once 
koheichart01 gets integrated for 3.2.
2009-01-08 18:07:08 +0100 kohei  r266030 : Have convertRangeFromXML convert external ranges into the appropriate OOO A1 format.
I also added a helper method to append a table name because this is useful in a lot of
other places.
2009-01-07 06:57:52 +0100 kohei  r265944 : These places also need a hard-coded CONV_OOO address convention, for Excel chart import and export to function properly.
2009-01-06 16:41:07 +0100 kohei  r265932 : removed unused variable.
2009-01-06 16:30:36 +0100 kohei  r265931 : removed unused ScDPCacheTable::GroupFilter::setMatchIfFound() method and its
associated member variable (per Caolan's callcatcher output).  I added that 
method to allow reverse matching in some code but later retracted that logic.
I guess I forgot to remove the method itself afterwards...
2009-01-06 06:39:51 +0100 kohei  r265891 : #i97735# Always write cell and cell range addresses using the OOo A1 (CONV_OOO) address convention
when exporting to ODF, regardless of current address convention.  Same for reading from ODF documents.
2009-01-06 05:46:40 +0100 kohei  r265890 : #i94696# Use the current address convention in the chart wizard dialog.
2009-03-03 15:05:33 +00:00
Vladimir Glazounov
024f0de540 CWS-TOOLING: integrate CWS kohei02
2009-01-13 16:54:47 +0100 kohei  r266237 : added dpshttab.obj to the list of EXCEPTIONFILES, to remove warning on Solaris.
2009-01-07 03:18:32 +0100 kohei  r265942 : Repeat values only on column, row, and page fields even for drill-down data.  Don't repeat values
on data fields.
2009-01-06 22:23:48 +0100 kohei  r265941 : Don't repeat if empty on data fields.  The "Identify category" option is not supposed to affect
data fields.
2009-01-05 17:42:52 +0100 kohei  r265884 : CWS-TOOLING: rebase CWS kohei02 to trunk@265758 (milestone: DEV300:m38)
2008-12-12 06:10:18 +0100 kohei  r265385 : instantiate string data only when it's visible.
2008-12-12 05:48:20 +0100 kohei  r265384 : when displaying the page field list box, only show visible page field members.
2008-12-11 22:41:11 +0100 kohei  r265375 : #i96689# added a list of German translations for CELL.
2008-12-11 22:24:41 +0100 kohei  r265373 : restored the old keyword file before it got stripped off.
2008-12-11 22:17:05 +0100 kohei  r265371 : #i96591# Honor the hidden members data in page fields.
2008-12-11 21:51:36 +0100 kohei  r265370 : #i96326# fixed pivot cache import that previously failed to import when
the field count is zero.  But when the postponed flag is on, the count 
may be sometimes zero even when the field contains data.
2008-12-11 21:44:44 +0100 kohei  r265369 : #i96171# fix for broken 'Identify Categories' option for grouped fields.
2009-01-19 16:17:46 +00:00
Rüdiger Timm
64274b38f6 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/</&lt;/g) so
	  that we don't generate invalid XML.  In particular, the header/footer
	  contains a "formatting code" which contains '&', which must be
	  escaped within the generated XML.
2008-11-18 21:16:47 +0100 kendy  r263906 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dimensions.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
	  Implement /worksheet/dimensions.
2008-11-18 21:16:21 +0100 kendy  r263905 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/dataValidations/dataValidation[formula1, formula2].
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sc/source/filter/excel/xecontent.cxx,
	  sc/source/filter/inc/xecontent.hxx: Implement
	  /worksheet/dataValidations,
	  /worksheet/dataValidations/dataValidation, //formula1, //formula2.
	* sc/source/filter/inc/xestream.hxx,
	  sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(),
	  XclXmlUtils::ToOString(ScRangeList),
	  XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*).
2008-11-18 21:15:58 +0100 kendy  r263904 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/conditionalFormatting.
Note that Excel will NOT currently open files containing this element, as the
XML is incomplete: the XSD requires at least one nested
/worksheet/conditionalFormatting/cfRule element, which we're not yet
generating.  We do properly generate //conditionalFormatting/@sqref.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sc/source/filter/excel/xecontent.cxx,
	  sc/source/filter/inc/xecontent.hxx: Generate
	  /worksheet/conditionalFormatting.
2008-11-18 21:15:31 +0100 kendy  r263903 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/cols/col; unstub /worksheet/sheetData.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as
	  //col needs to come _before_ //sheetData, and emitting //sheetData
	  here makes that impossible (and keeps Excel from loading our files).
	* sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx:
	  Implement /worksheet/cols (XclExpColinfoBuffer),
	  /worksheet/cols/col (XclExpColinfo), and stub out
	  /worksheet/sheetData in the correct position to appease Excel.
2008-11-18 21:15:06 +0100 kendy  r263902 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx:
	  Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() --
	  the former to call the latter, and the latter to generate
	  /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk.
2008-11-18 21:14:44 +0100 kendy  r263901 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:14:19 +0100 kendy  r263900 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/calcPr support.  Cleanup.
Previously, /workbook/calcPr was generated by filling a temporary
XclExpXmlCalculationProperties instance, and generating the //calcPr element
at the ~end of generation.  This was not ideal, as it involved more code (the
class to hold the intermediate values, etc.), and it could potentially place
the //calcPr element into the wrong position (the XSD requires that it be
before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous
approach would have placed it after ~everything).
	* sc/source/filter/excel/excdoc.cxx: Follow the pattern of
	  //workbookProtection and insert the //calcPr BIFF records into the
	  appropriate position based on file type.  One minor quirk: the
	  records move from the per-SHEET array into the workbook array.
	* sc/source/filter/excel/xestream.cxx,
	  sc/source/filter/inc/xestream.hxx: Remove unnecessary code.
	* sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes
	  instead of filling an intermediate object.
2008-11-18 21:13:56 +0100 kendy  r263899 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Enable /workbook/workbookProtection.
/workbook/workbookProtection was previously disabled as emitting it would
cause Excel to generate an error message.  The problem has been resolved:
/workbook/workbookProtection *must* be before /workbook/bookviews (which in
turn must be before /workbook/sheets), and this wasn't previously the case.
Placing the element into the proper location makes Excel happy.
	* sc/source/filter/excel/excdoc.cxx: Place the
	  workbookProtection-related BIFF records into the correct position to
	  appease the Excel gods.
	* sc/source/filter/excel/excrecds.cxx,
	  sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various
	  /workbook/workbookProtection attributes.
2008-11-18 21:13:29 +0100 kendy  r263898 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement /workbook/bookviews/workbookView.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements.
	* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
	  sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx,
	  sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in
	  one of two different locations, depending on output format.  Add a
	  new XclOutput enumeration to contain the output format (we do NOT
	  want to reuse XclBiff for this purpose, as otherwise XML output is a
	  superset of BIFF8, and we don't want to update every existing check
	  for BIFF8 to check for both BIFF8 and XML), and check for this flag
	  so that the WINDOW1 record is created in the appropriate place.
	* sc/source/filter/excel/xestream.cxx,
	  sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change
	  constructor to take a `const XclExpRoot&`, as
	  XclExpWindow::SaveXml() requires this information.
	* sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx:
	  XclExpWindow1::SaveXml() generates the //workbookView element.
	* sc/source/filter/xcl97/xcl97rec.cxx: Cleanup.
2008-11-18 21:13:04 +0100 kendy  r263897 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Remove SIGILL from ExcBundlesheet8::SaveXml().
	* sc/source/filter/excel/xestream.cxx: Add some asserts.
	* sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL
	  when passed as a "..." argument to a function.  Doh!
2008-11-18 21:12:42 +0100 kendy  r263896 : #i96320# xlsx export
From: Fridrich Strba <fstrba@novell.com>
disambiguate
2008-11-18 21:12:17 +0100 kendy  r263895 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
/workbook/workbookProtection, mostly cancelled during rebase.
This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out --
as Excel barfs when this element + attributes are emitted.
Funnier, even <workbookProtection/> causes Excel to barf, so until all the
semantics are worked out it all needs to be uncommented out.
What is useful here is the mapping from BIFF record -> OOXML attribute.
	* sc/source/filter/excel/excdoc.cxx,
	  sc/source/filter/excel/excrecds.cxx,
	  sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx,
	  sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate
	  the /workbook/workbookProtection element & attributes.
2008-11-18 21:11:55 +0100 kendy  r263894 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/workbookPr implementation.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sc/source/filter/excel/excdoc.cxx: Add records to start/end the
	  <workbookPr/> element; cleanup & document TODOs.
	* sc/source/filter/inc/excrecds.hxx,
	  sc/source/filter/excel/excrecds.cxx: Declare & Implement
	  Xcl1904::SaveXml().
	* sc/source/filter/inc/xerecord.hxx,
	  sc/source/filter/excel/xerecord.cxx: Declare and implement
	  XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord,
	  both used to single-style XML elements instead of the "full"
	  start/end XML created by XclExpXmlStartElementRecord and
	  XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(),
	  which generates some <workbookPr/> attributes.
	* sc/source/filter/inc/xestream.hxx,
	  sc/source/filter/excel/xestream.cxx: Declare & implement
	  XclExpXmlStream::WriteCurrentStreamAttributes().
2008-11-18 21:11:30 +0100 kendy  r263893 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement (more-) proper /workbook/sheets support.  Refactor.
Instead of hacking around "limitations" in NameBuffer to generate
/workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the
/workbook/sheets/sheet elements.  This also allows us to emit the
//sheet/@state attribute, which is private to ExcBundlesheet8.
In order to generate the /workbook/sheets elements,
XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around
the ExcBundlesheet8 record entries, so that the existing record-based
infrastructure could automagically generate the structural XML tags.  These
records do nothing for existing BIFF output.
Finally, XclExpXmlStream::GetWorkbook() has been replaced with
XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were
added.  This is hoped to permit nesting of streams, and is currently being
used to generate the xl/worksheets/sheetN.xml files (to no effect, as not
enough records are generate XML for the results to be visible).
	* sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer
	  changes, as we no longer use pTabNames to generate //sheets/; add
	  records to emit the <sheets/> element; place the sheet stream on top
	  of the XclExpXmlStream stack.
	* sc/source/filter/inc/excrecds.hxx,
	  sc/source/filter/excel/excrecds.cxx: Save the tab that
	  ExcBundlesheetBase was constructed for -- needed for <sheet/>
	  generation within ExcBundlesheet8.
	* sc/source/filter/excel/xecontent.cxx,
	  sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx:
	  s#GetWorkbook#GetCurrentStream#g; don't emit empty collections.
	* sc/source/filter/inc/xerecord.hxx,
	  sc/source/filter/excel/xerecord.cxx: Declare and Implement
	  XclExpXmlElementRecord, XclExpXmlStartElementRecord,
	  XclExpXmlEndElementRecord.
	* sc/source/filter/inc/xestream.hxx,
	  sc/source/filter/excel/xestream.cxx: Add stream stack methods;
	  remove warning about unused parameter.
	* sc/source/filter/inc/xcl97rec.hxx,
	  sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml()
	  and generate /workbook/sheets/sheet elements from it.
2008-11-18 21:11:08 +0100 kendy  r263892 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Add Calc OOXML TODO list.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Added.  I'm going through ECMA-376 Part 4 Section 3 in a
	  breadth-first fashion (i.e. top-down), and implementing each element
	  as I'm able.  I'm not always able to immediately implement an
	  element (frequently because I can't find the equivalent binary
	  export code) within a short period of time, so any such elements are
	  recorded here for later passes.
	  Just because an element isn't here doesn't mean it's been fully
	  implemented; any elements with associated code will have OOXTODO
	  comments specifying what's missing/needed for that particular code.
2008-11-18 21:10:36 +0100 kendy  r263891 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial /workbook/pivotCaches/pivotCache implementation.
	* sc/source/filter/excel/xepivot.cxx,
	  sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml()
	  methods so that PivotCaches are saved into xl/workbook.xml.
2008-11-18 21:10:09 +0100 kendy  r263890 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <definedName/> implementation.
	* sc/source/filter/excel/xename.cxx: Generate <definedName/>.
	* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool).
	* sc/source/filter/inc/xename.hxx: Declare
	  XclExpNameManager::SaveXml() so we can emit <definedName/> elements.
	* sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool).
2008-11-18 21:09:47 +0100 kendy  r263889 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes.
	* sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr
	  generation implementation.
	* sc/source/filter/excel/xecontent.cxx: Provide the count and
	  uniqueCount attributes for the <sst/> element.
	* sc/source/filter/inc/xestream.hxx,
	  sc/source/filter/excel/xestream.cxx: Provide/implement a
	  XclExpXmlStream::GetWorkbookCalculationProperties() method which
	  keeps track of data used by excdoc.cxx for <calcPr/> generation.
	* sc/source/filter/inc/xcl97rec.hxx,
	  sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select
	  types to cache the information needed to write <calcPr/>.
2008-11-18 21:09:22 +0100 kendy  r263888 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Simplify addRelation/openOutputStream use within sc.
	* sc/source/filter/excel/excdoc.cxx,
	  sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to
	  create sub-streams.
	* sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream();
	  use CreateOutputStream() to create xl/workbook.xml.
	* sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods
	  which merge addRelation() w/ openOutputStreamWithSerializer().
2008-11-18 21:08:59 +0100 kendy  r263887 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Allow Excel to open an empty spreadsheet.
	* sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the
	  relations file so that correct relative paths are present within the
	  .rels file; Use the correct content type when creating sheetN.xml;
	  Insert a <sheetData/> element into the worksheet.xml files; insert
	  the sheetN.xml relational data into the correct .rels file.
	* sc/source/filter/excel/xestream.cxx: Use the correct content type
	  when creating xl/workbook.xml.
2008-11-18 21:08:28 +0100 kendy  r263886 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
More Excel export cleanup.
	* sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...)
	  so that the added relation is (hopefully) inserted into the
	  appropriate xl/_rels/workbook.xml.rels file; extra tracing.
	* sc/source/filter/excel/xecontent.cxx: Cleanup/simplification.
	* sc/source/filter/excel/xestream.cxx,
	  sc/source/filter/inc/xestream.hxx: Add more ToOString() and
	  ToOUString() helper methods.
2008-11-18 21:08:06 +0100 kendy  r263885 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Current work-in-progress for minimal Excel support.
	* sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to
	  write xl/worksheets/sheetN.xml or the workbook.xml <sheets/>
	  elements, depending on whether we're the header or not.  Implement
	  ExcDocument::WriteXml() to stub out xl/workbook.xml.
	* sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of
	  strings to speed up XML creation.
	* sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String()
	  helpers to simplify XML writing; open the xl/workbook.xml file so
	  that it can be written to from multiple locations.
	* sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold
	  various To*String() helpers; add XclExpXmlStream::GetWorkbook().
2008-11-18 21:07:41 +0100 kendy  r263884 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Generate a correct shared string table.
	* sc/source/filter/excel/xecontent.cxx: Write proper shared string
	  table entries.
	* sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we
	  can easily use XmlFilterBase::openOutputStreamWithSerializer().
2008-11-18 21:07:18 +0100 kendy  r263883 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Write an actual ZIP package for .xlsx output, including a (stubbed) shared
 string table.
    * sc/prj/build.lst: We now depend on oox to build.
    * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx:
      XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP
      package files.  This allows increased code sharing.
    * sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction.
    * sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance
      over pMedStrm (this makes ZipStorage very angry); don't call
      lcl_ExportExcelBiff(), as we want to preserve our generated file.
    * sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared
      string table (incomplete, as I need to find an easier/more elegant way
      of inserting strings into the XML, but it'll need updating anyway  to
      use the FastSaxSerializer).
    * sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well.
2008-11-18 21:06:54 +0100 kendy  r263882 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Trace output for the shared string table.
This is step forward as we're hooking into the new XclExpRecordBase::SaveXml()
to invoke the string table SaveXml() routine.  It's still largely
proof-of-concept, but we can actually invoke the appropriate code now.
	* oox/workben/ooxml-export-notes.txt: Flush.
	* sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx:
	  Add and implement the new ExportXml2007 type.
	* sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx,
	  sc/source/filter/excel/xecontent.cxx,
	  sc/source/filter/excel/xepivot.cxx,
	  sc/source/filter/excel/xerecord.cxx,
	  sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx,
	  sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx,
	  sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx,
	  sc/source/filter/inc/xestring.hxx: Implement enough glue to allow
	  XclExpSstImpl::SaveXml() to be invoked from the XML export context
	  and print useful information to the screen.
2008-11-18 21:06:28 +0100 kendy  r263881 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Implement support for writing .xlsx files.
The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written
instead of generating an error message.
	* sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we
		can specify Excel 2007 XML (Exp2007Xml) as a file format.
	* sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that
		Exp2007Xml is a supported format, and stub out Exp2007Xml support so
		that BIFF8 output is currently generated.
	* sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007
		XML" filter and the new ScExportExcel5() semantics.
2008-11-18 21:06:03 +0100 kendy  r263880 : #i96320# xlsx export
From: Jonathan Pryor <jpryor@novell.com>
Make the filter names consistent with other filters used in sc/.../docsh.cxx.
	* filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu,
	  filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu,
	  filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu,
	  filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu,
	  filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu,
	  filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu,
	  filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu,
	  filter/source/config/fragments/types/MS_Excel_2007_XML.xcu,
	  filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu:
	  Remove 'Calc ' from the filter names (as none of the other filters
	  mentioned in sc/source/ui/docshell.cxx use that convention), and
	  remove 3RDPARTYFILTER from the filter's Flags property, as this flag
	  causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the
	  existing Calc->Export logic is all within ConvertTo().
2008-11-18 21:05:41 +0100 kendy  r263879 : #i96320# xlsx export
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export (xlsx)
	* filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu:
	ditto
	* filter/source/config/fragments/types/MS_Excel_2007_XML.xcu:
	reverse extensions order so that xlsx is shown in Save dialog as
	default
2008-11-18 20:53:43 +0100 kendy  r263877 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx.
And also just do forward declaration of TableStyle instead of including the
header - it includes too much in that case.
2008-11-18 20:53:21 +0100 kendy  r263876 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Fix build break.
	* source/ppt/pptimport.cxx: getServiceFactory() was renamed to
	  getGlobalFactory().
2008-11-18 20:52:49 +0100 kendy  r263875 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add some namespaces so that sax builds again.
2008-11-18 20:52:27 +0100 kendy  r263874 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Cleanup in sax (wrt. escaping attribute values).
FastSaxSerializer::writeFastAttributeList() didn't properly escape
attribute values, which broke number format export if the number format
included e.g. '"' (double quote), e.g.:
    [$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;""
which shows numbers with a currency type, negative numbers in red, and 0
values as the empty string.
	* sc/source/filter/excel/ooxml-export-TODO.txt: Flush.
	* sax/source/fastparser/fshelper.cxx,
	  sax/source/fastparser/fastserializer.hxx,
	  sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's
	  lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml()
	  when writing attribute values.
2008-11-18 20:51:59 +0100 kendy  r263873 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Make a bit more obvious what's happenning with AttributeLists.
2008-11-18 20:51:37 +0100 kendy  r263872 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
a from-scratch-build reveals some missed changes in include files :(
2008-11-18 20:51:11 +0100 kendy  r263871 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
deliver the header too
2008-11-18 20:50:48 +0100 kendy  r263870 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
public visibility of FastAttributeList class + some more convenience functions in fshelper
2008-11-18 20:50:26 +0100 kendy  r263869 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add /Relationships/Relationship/@TargetMode support.
This also fixes Calc hyperlink export, allowing Excel to properly read
documents containing a hyperlink.
	* oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx:
	  Add a rTargetMode parameter to XmlFilterBase::addRelation().
2008-11-18 20:50:04 +0100 kendy  r263868 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
add string.h
2008-11-18 20:49:42 +0100 kendy  r263867 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Explicitely default construct maMarkStack [to be safe ;-)].
2008-11-18 20:49:13 +0100 kendy  r263866 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Rename writeMarked() to mergeTopMarks() and improve the implementation.
Just writing the top mark is not enough; in more complex scenarios it would
destroy the order completely.  This way we have better control over what's
happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as
necessary directly in the start/end tags.
2008-11-18 20:48:51 +0100 kendy  r263865 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Add mark() and writeMarked() methods.
These are to be able to change the order of the data being written.
If you need to write eg.
  p, r, rPr, [something], /rPr, t, [text], /r, /p,
but get it in order
  p, r, t, [text], /t, rPr, [something], /rPr, /r, /p,
simply do
  p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr,
  writeMarked(), writeMarked(), /r, /p
and you are done.
2008-11-18 20:48:24 +0100 kendy  r263864 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Move XML character escape logic into FastSerializerHelper.
	* sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add
	  and implement FastSerializerHelper::writeEscaped(), which escapes
	  any XML characters within the string before writing.
2008-11-18 20:48:02 +0100 kendy  r263863 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Introduce writeId().
	* sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx,
	  sax/source/fastparser/fastserializer.hxx,
	  sax/source/fastparser/fshelper.cxx: Add/implement
	  FastSerializerHelper::writeId(), which does the "usual"
	  sal_Int32->string conversion but manually, outside of any automatic
	  context.  This is done so that
	  XclExpXmlStream::WriteCurrentStreamAttributes() can write element
	  attributes "piecemeal"/on-demand, without needing to store the
	  relevant information into a separate object to generate all the
	  attributes at once.
2008-11-18 20:47:36 +0100 kendy  r263862 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Change the semantics of startElement() and singleElement().
	* sax/source/fastparser/fshelper.cxx: Change the semantics of
	  startElement() and singleElement(), so that attributes with values
	  that are NULL are _skipped_, instead of ending all attributes.  This
	  allows us to have "optional" attributes, in which the attribute
	  won't be generated if the value is null.  This is needed so that the
	  //definedName/@localSheetId attribute is only emitted for non-global
	  sheet-specific names.
2008-11-18 20:47:14 +0100 kendy  r263861 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-)
2008-11-18 20:46:51 +0100 kendy  r263860 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
How to install the stuff.
2008-11-18 20:46:29 +0100 kendy  r263859 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
Change 'core::addRelation' to 'static addRelation_impl'.
To be better readable, and no symbol for that.
2008-11-18 20:46:04 +0100 kendy  r263858 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
generate document wide unique Id's
2008-11-18 20:45:40 +0100 kendy  r263857 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added standalone="yes" to xml document beginning
 removed unneccessary ::rtl:: prefix in one case
2008-11-18 20:45:18 +0100 kendy  r263856 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added FSHelperPtr here as well
2008-11-18 20:44:56 +0100 kendy  r263855 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages
2008-11-18 20:44:34 +0100 kendy  r263854 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Implement getOutputStream(), some cleanup.
	* sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that
	  excdoc.cxx can easily use the addRelation(XOutputStream, ...) method.
	* sax/source/fastparser/fastserializer.cxx: Code refactor to remove
	  useless string duplication --
	  Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad.
	* sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for
	  use in fshelper.cxx); cleanupl.
	* sax/source/fastparser/fshelper.cxx: Implement getOutputStream().
2008-11-18 20:44:12 +0100 kendy  r263853 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Add write() methods to write inside elements.
	* sax/inc/sax/fshelper.hxx: Add write() methods to write content to the
	  string inside of elements.
	* sax/source/fastparser/fshelper.cxx: Implement write() methods.
2008-11-18 20:43:50 +0100 kendy  r263852 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
making singleUnknownElement and singleFastElement be a uno method
2008-11-18 20:43:27 +0100 kendy  r263851 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added NS versions of fast methods
2008-11-18 20:43:05 +0100 kendy  r263850 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
support namespaces in attribute names as well
2008-11-18 20:42:44 +0100 kendy  r263849 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath
2008-11-18 20:42:21 +0100 kendy  r263848 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind)
2008-11-18 20:41:55 +0100 kendy  r263847 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fix attributes list and its reference creation so that the instance can be freed in Reference::release
2008-11-18 20:41:33 +0100 kendy  r263846 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export tokens
 added xmlns to tokens
2008-11-18 20:41:08 +0100 kendy  r263845 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
instantiate token handler
 support xml namespaces
2008-11-18 20:40:45 +0100 kendy  r263844 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr
2008-11-18 20:40:23 +0100 kendy  r263843 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
    * oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:40:01 +0100 kendy  r263842 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
beefing up the fshelper
2008-11-18 20:39:40 +0100 kendy  r263841 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export ChartConverterClass - it is now needed in XmlFilterBase
2008-11-18 20:39:17 +0100 kendy  r263840 : #i96316# OPC for export filters
From: Jan Holesovsky <kendy@suse.cz>
fastsax.uno.so was renamed to libfastsaxlx.so
2008-11-18 20:38:54 +0100 kendy  r263839 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to do some useful stuff with the serializer
2008-11-18 20:38:26 +0100 kendy  r263838 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
use relation id names similar to ms office
2008-11-18 20:38:03 +0100 kendy  r263837 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
fixed typo in namespace url
2008-11-18 20:37:38 +0100 kendy  r263836 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams
2008-11-18 20:37:15 +0100 kendy  r263835 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
let writable stream handle relation id's
 new id can be queried by asking for property "RelId"
 fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :(
2008-11-18 20:36:48 +0100 kendy  r263834 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to avoid char* -> OUString and back conversions
2008-11-18 20:36:26 +0100 kendy  r263833 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added commit methods to StorageBase and FilterBase to make things easier
2008-11-18 20:35:58 +0100 kendy  r263832 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml]
 updated pptx export filter
2008-11-18 20:35:36 +0100 kendy  r263831 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some casts to make compiler happy
2008-11-18 20:35:13 +0100 kendy  r263830 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
trying to make the fast serializer a bit less bloated
2008-11-18 20:34:51 +0100 kendy  r263829 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
do not get out of bounds of sequence
 do not overwrite the id tag
2008-11-18 20:34:29 +0100 kendy  r263828 : #i96316# OPC for export filters
From: Jonathan Pryor <jpryor@novell.com>
Notes for trace output for the shared string table.
	* oox/workben/ooxml-export-notes.txt: Flush.
2008-11-18 20:34:07 +0100 kendy  r263827 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added ifdefs to fshelper.hxx to avoid problems when including more than once
 fixed the constructor namespace
 added export.map and made FastSerializerHelper class global
2008-11-18 20:33:44 +0100 kendy  r263826 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
defined OOXLIB and FASTSAXLIB variables to be used in makefiles
2008-11-18 20:33:18 +0100 kendy  r263825 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added constructor and added fshelper.obj to the makefile.mk
2008-11-18 20:32:56 +0100 kendy  r263824 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
added fast serializer helper files (not implemented yet)
 make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so)
 deliver the fast serializer header
2008-11-18 20:32:34 +0100 kendy  r263823 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
add fast serializer to the uno component
2008-11-18 20:32:12 +0100 kendy  r263822 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
moved uno service and implementation names to headers
2008-11-18 20:31:46 +0100 kendy  r263821 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation
2008-11-18 20:31:19 +0100 kendy  r263820 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
export storage base class,
 remove old proof code from xml filter base
2008-11-18 20:30:57 +0100 kendy  r263819 : #i96316# OPC for export filters
From: Radek Doulik <rodo@novell.com>
exported filter base and zipstorage to be used in other module's filters
2008-11-18 20:30:35 +0100 kendy  r263818 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
make the FastSerializer as UNO service
2008-11-18 20:30:13 +0100 kendy  r263817 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
write out the attributes too
2008-11-18 20:29:51 +0100 kendy  r263816 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
some more changes to the fastserializer
Originally this also duplicated the offapi changes in unoxml; but the unoxml
files were removed recently ;-)
2008-11-18 20:29:24 +0100 kendy  r263815 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
move the fastserializer from oox module to sax module
2008-11-18 20:29:01 +0100 kendy  r263814 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones
2008-11-18 20:28:38 +0100 kendy  r263813 : #i96316# OPC for export filters
From: Fridrich Strba <fstrba@novell.com>
refactor the serializer
2008-11-18 20:28:16 +0100 kendy  r263812 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
stuffing the serializer a bit more
2008-11-18 20:25:31 +0100 kendy  r263811 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
More explicit pointers to the export code.
2008-11-18 20:25:04 +0100 kendy  r263810 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding and removing files up and down
2008-11-18 20:24:42 +0100 kendy  r263809 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adding fastserializer dummy inplementation
2008-11-18 20:24:19 +0100 kendy  r263808 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Escher pointers.
2008-11-18 20:23:56 +0100 kendy  r263807 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
removing the unnecessary FastSerializer service
2008-11-18 20:23:34 +0100 kendy  r263806 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
XStream instead of XOutputStream for OOXML export filter.
2008-04-25  Radek Doulik  <rodo@novell.com>
	* oox/workben/ooxml-export-notes.txt: added odp export trace
	* oox/source/core/xmlfilterbase.cxx (implCreateStorage): added
	test code to create test storage and stream, also committing
	changes here
	* oox/inc/oox/helper/olestorage.* (class OleStorage): as below
	* oox/inc/oox/helper/zipstorage.*: as below
	* oox/inc/oox/helper/storagebase.* (class StorageBase): let
	export constructor use XStream instead of XOutputStream, change
	member type as well
	* oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as
	below
	* oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase):
	as below
	* oox/inc/oox/core/filterbase.*: changed
	implCreateStorage method to get XStream instead of XOutputStream
	* sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput
	XStream to media descriptor properties for OOXML export filter
	* comphelper/source/misc/mediadescriptor.cxx
	(PROP_STREAMFOROUTPUT): added StreamForOutput property
	* oox/source/helper/zipstorage.cxx (ZipStorage): open storage with
	OFOPXMLFormat
	* oox/source/helper/zipstorage.cxx (implOpenSubStorage): added
	implementation for export
	* oox/source/core/filterbase.cxx (setMediaDescriptor): add input
	stream only on import
2008-11-18 20:23:07 +0100 kendy  r263805 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer Service
2008-11-18 20:22:45 +0100 kendy  r263804 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
add FastSerializer service
2008-11-18 20:22:23 +0100 kendy  r263803 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
adapting the makefile.mk to build the XFastSerializer
2008-11-18 20:22:02 +0100 kendy  r263802 : #i95759# docx/xlsx/pptx export filters
From: Fridrich Strba <fstrba@novell.com>
Adding the XFastSerializer interface
2008-11-18 20:21:39 +0100 kendy  r263801 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Added pointers to export code of binary filters.
2008-11-18 20:21:13 +0100 kendy  r263800 : #i95759# docx/xlsx/pptx export filters
From: Jan Holesovsky <kendy@suse.cz>
Implementation notes: affected modules.
[Started the implementation notes by asking Fridrich ;-)]
2008-11-18 20:20:51 +0100 kendy  r263799 : #i95759# docx/xlsx/pptx export filters
From: Radek Doulik <rodo@novell.com>
Initial work on ooxml export
	* oox/source/helper/zipstorage.cxx (implOpenOutputStream): added
	prototype implementation
	(ZipStorage): this constructor needs to be implemented (on output stream)
2009-01-06 12:16:56 +00:00
Release Engineers
4eafb5984f #i10000# get rid of warnings 2008-12-02 15:24:32 +00:00
Release Engineers
5beec3891e CWS-TOOLING: integrate CWS koheidatapilot02
2008-11-24 15:34:25 +0100 kohei  r264231 : modified ScViewData::IsMultiMarked() to treat simple-filtered areas as simple-marked areas,
for backword compatibility.  Simple-filtered areas are not multi-marked areas.
2008-11-07 20:38:51 +0100 kohei  r263485 : more unused methods in the header without definitions.
2008-11-07 20:26:25 +0100 kohei  r263484 : removed more unused methods.
2008-11-07 19:40:39 +0100 kohei  r263481 : removed unused methods based on Caolan's callcatcher output on m35.
2008-11-06 19:32:22 +0100 kohei  r263405 : CWS-TOOLING: rebase CWS koheidatapilot02 to trunk@263288 (milestone: DEV300:m35)
2008-10-06 15:18:57 +0200 kohei  r262062 : #i94619# allow XDataPilotTable interface to be queried again.  Patch submitted by
Noel Power.
2008-10-01 21:49:39 +0200 kohei  r262020 : #i90402# don't insert drill-down sheet when the document is in read-only mode.
2008-10-01 03:03:19 +0200 kohei  r261982 : #i93918# exclude hidden items and items that are excluded due to
ranks (i.e. top X items).
#i93998# reduce memory consumption of datapilot cache tables by 
pooling cache table cell data & use null pointers to represent 
empty cells.
2008-09-30 23:35:14 +0200 kohei  r261981 : #i92378# keep the layout dialog open when the destination range is not empty
and the user has decided to cancel data pilot creation.
2008-09-30 23:14:55 +0200 kohei  r261980 : #i94281# fixed a regression where the data pilot layout dialog fails to
appear on a filtered cell range.
2008-11-27 15:23:33 +00:00
Kurt Zenker
3ddef25743 INTEGRATION: CWS pflin11 (1.3.104); FILE MERGED
2008/08/06 01:52:42 pflin 1.3.104.1: fix for i90022
2008-08-15 13:17:18 +00:00
Kurt Zenker
991a9bebc5 #i10000# warnings fixed 2008-05-22 14:13:29 +00:00
Kurt Zenker
d6e54b1f88 INTEGRATION: CWS koheidatapilot01 (1.1.2); FILE ADDED
2008/05/20 12:50:23 kz 1.1.2.11: updated license header
2008/04/25 00:19:03 kohei 1.1.2.10: added more comments.
2008/04/25 00:02:15 kohei 1.1.2.9: removed unused code.
2008/04/24 23:26:38 kohei 1.1.2.8: * fixed a regression on page field filtering by the empty string value.
* fixed an incorrect drill-down table with number groups (i88531).
* moved the shared string storage out of ScDPCacheTable to make it more generic.
2008/04/20 02:46:57 kohei 1.1.2.7: ScDPItemData is a struct not a class.
2008/04/17 13:10:39 kohei 1.1.2.6: Used ScDPItemData to store cell values to allow numerical comparison where appropriate.  Also fixed the regression involving drill-down on group names.
2008/04/15 23:02:02 kohei 1.1.2.5: allow numerical comparison of field labels when the row data is numerical.
2008/04/15 15:32:05 kohei 1.1.2.4: get the "Identify categories" option to really work.  The previous commit didn't quite do the right thing.
2008/04/15 03:41:12 kohei 1.1.2.3: get the "Identify categories" option to work.
2008/04/15 00:01:04 kohei 1.1.2.2: get the "Ignore empty rows" option to work.
2007/10/29 17:44:39 kohei 1.1.2.1: initial checkin
2008-05-20 12:04:34 +00:00