ooo-build r12794 - in branches/ooo-build-2-4-1: . patches/src680
- From: pmladek svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r12794 - in branches/ooo-build-2-4-1: . patches/src680
- Date: Wed, 4 Jun 2008 14:18:04 +0000 (UTC)
Author: pmladek
Date: Wed Jun 4 14:18:04 2008
New Revision: 12794
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12794&view=rev
Log:
2008-06-04 Florian Reuter <freuter novell com>
* patches/dev300/xmloff_dis26300_conformance.diff: Better
conformance to DIS26300 (ODF). See #n396280.
It needs more testing. Thus enabled only for openSUSE >= 10.2 (for the
Build Service) and GO-OO builds.
Added:
branches/ooo-build-2-4-1/patches/src680/xmloff_dis26300_conformance.diff
Modified:
branches/ooo-build-2-4-1/ChangeLog
branches/ooo-build-2-4-1/patches/src680/apply
Modified: branches/ooo-build-2-4-1/patches/src680/apply
==============================================================================
--- branches/ooo-build-2-4-1/patches/src680/apply (original)
+++ branches/ooo-build-2-4-1/patches/src680/apply Wed Jun 4 14:18:04 2008
@@ -49,10 +49,10 @@
SUSE-9.3 : NovellBase
SUSE-10.0 : NovellBase
SUSE-10.1 : NovellBase, BerkeleyDB43
-SUSE-10.2 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts
-SUSE-10.3 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts
-SUSE-11.0 : NovellBase, BerkeleyDB43, Gcc43, EMFPlus, TransparentPrinting, PptExport, LinkWarningDlg, CairoFonts
-SUSE : NovellBase, BerkeleyDB43, Gcc43, EMFPlus, TransparentPrinting, PptExport, LinkWarningDlg, CairoFonts
+SUSE-10.2 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, DIS26300
+SUSE-10.3 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, DIS26300
+SUSE-11.0 : NovellBase, BerkeleyDB43, Gcc43, EMFPlus, TransparentPrinting, PptExport, LinkWarningDlg, CairoFonts, DIS26300
+SUSE : NovellBase, BerkeleyDB43, Gcc43, EMFPlus, TransparentPrinting, PptExport, LinkWarningDlg, CairoFonts, DIS26300
SUSE-reduced:NovellBase,BerkeleyDB43, ReducedDefaults
# Debian
DebianBase : LinuxCommon, DebianBaseOnly, Lockdown, GCCSTL, CalcSolver, BerkeleyDB43, Split, PostgreSQL
@@ -110,7 +110,7 @@
NovellWin32: NovellLikeWin32
NovellWin32ISO: NovellLikeWin32
# go-oo.org Win32
-GoOoWin32: NovellLikeWin32
+GoOoWin32: NovellLikeWin32, DIS26300
# Mac OS X
MacOSX : MacOSXCommon, CalcSolver, MacOSXOnly
# Pardus
@@ -119,7 +119,7 @@
# Solaris
Solaris: NovellBase
# Universal Upstream-like packages
-GoOoLinux: NovellBase, Glib2
+GoOoLinux: NovellBase, Glib2, DIS26300
# OxygenOffice Professional
OxygenOfficeLinuxCommon : Common, EMFPlus, LayoutDialogs, FontConfigTemporaryHacks, \
FedoraFixes, LinuxOnly, SystemBits, \
@@ -2413,6 +2413,13 @@
# don't do dns lookup on startup
lockfile-dont-do-dns-lookup.diff, n#389257, jholesov
+
+[ DIS26300 ]
+# better conformance to DIS26300 (ODF)
+# it is in separate section because needs more testing
+xmloff_dis26300_conformance.diff, n#396280, flr
+
+
[ LinkWarningDlg ]
linkwarn-dlg-in-apps.diff, n#348149, thorsten
linkwarn-sfx2-disable-cb-persistency.diff, n#348149, thorsten
Added: branches/ooo-build-2-4-1/patches/src680/xmloff_dis26300_conformance.diff
==============================================================================
--- (empty file)
+++ branches/ooo-build-2-4-1/patches/src680/xmloff_dis26300_conformance.diff Wed Jun 4 14:18:04 2008
@@ -0,0 +1,337 @@
+diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
+index f382d48..e3061fa 100644
+--- sw/source/filter/xml/xmltbli.cxx
++++ sw/source/filter/xml/xmltbli.cxx
+@@ -2867,7 +2867,7 @@ const SwStartNode *SwXMLTableContext::InsertTableSection(
+ bFirstSection = sal_False;
+ OUString sStyleName( RTL_CONSTASCII_USTRINGPARAM("Standard") );
+ GetImport().GetTextImport()->SetStyleAndAttrs( GetImport(),
+- GetImport().GetTextImport()->GetCursor(), sStyleName, sal_True );
++ GetImport().GetTextImport()->GetCursor(), sStyleName, rtl::OUString(), sal_True );
+ }
+ else
+ {
+diff --git a/xmloff/inc/xmloff/txtimp.hxx b/xmloff/inc/xmloff/txtimp.hxx
+index 97e8b6b..e5576fc 100644
+--- xmloff/inc/xmloff/txtimp.hxx
++++ xmloff/inc/xmloff/txtimp.hxx
+@@ -641,6 +641,7 @@ public:
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::text::XTextCursor >& rCursor,
+ const ::rtl::OUString& rStyleName,
++ const ::rtl::OUString& rClassNames,
+ sal_Bool bPara,
+ sal_Bool bOutlineLevelAttrFound = sal_False,
+ sal_Int8 nOutlineLevel = -1,
+diff --git a/xmloff/inc/xmloff/xmlimp.hxx b/xmloff/inc/xmloff/xmlimp.hxx
+index 99507e7..83e4461 100644
+--- xmloff/inc/xmloff/xmlimp.hxx
++++ xmloff/inc/xmloff/xmlimp.hxx
+@@ -270,6 +270,12 @@ public:
+ static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw();
+ static SvXMLImport* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > ) throw();
+
++
++ SvXMLImportContext *getTopContext();
++ SvXMLImportContext *createUnknownContext( USHORT nPrefix,
++ const ::rtl::OUString& rLocalName,
++ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
++
+ // ::com::sun::star::xml::sax::XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
+diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx
+index fe927eb..fb15e70 100644
+--- xmloff/inc/xmloff/xmltoken.hxx
++++ xmloff/inc/xmloff/xmltoken.hxx
+@@ -1400,6 +1400,7 @@ namespace xmloff { namespace token {
+ XML_PRINTABLE,
+ XML_PRINTED_BY,
+ XML_PROCEEDINGS,
++ XML_PROCESS_CONTENT,
+ XML_PRODUCT,
+ XML_PROJECTION,
+ XML_PROPERTIES,
+@@ -1689,6 +1690,7 @@ namespace xmloff { namespace token {
+ XML_STRUCTURE_PROTECTED,
+ XML_STYLE,
+ XML_STYLE_NAME,
++ XML_CLASS_NAMES,
+ XML_STYLES,
+ XML_STYLESHEET,
+ XML_SUB_TABLE,
+diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx
+index 910f12b..e4714d5 100644
+--- xmloff/source/core/xmlimp.cxx
++++ xmloff/source/core/xmlimp.cxx
+@@ -780,6 +780,42 @@ void SAL_CALL SvXMLImport::startElement( const OUString& rName,
+ mpContexts->Insert( pContext, nCount );
+ }
+
++SvXMLImportContext *SvXMLImport::getTopContext() {
++ USHORT nCount = mpContexts->Count();
++ if (nCount>0) {
++ SvXMLImportContext *pContext = (*mpContexts)[nCount-1];
++ return pContext;
++ } else {
++ return NULL;
++ }
++}
++
++SvXMLImportContext *SvXMLImport::createUnknownContext( USHORT nPrefix,
++ const ::rtl::OUString& rLocalName,
++ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList )
++{
++ bool bProcessContent=true;
++ sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
++ for(sal_Int16 a=0; a < nAttrCount; a++)
++ {
++ const OUString& rAttrName = xAttrList->getNameByIndex(a);
++ OUString aLocalName;
++ sal_uInt16 _nPrefix = GetNamespaceMap().GetKeyByAttrName(rAttrName, &aLocalName);
++ const OUString aValue( xAttrList->getValueByIndex(a) );
++ if (_nPrefix==XML_NAMESPACE_OFFICE && IsXMLToken( aLocalName, XML_PROCESS_CONTENT ) ) {
++ bProcessContent=!aValue.equalsIgnoreAsciiCaseAscii("false");
++ }
++ }
++ SvXMLImportContext *ret=NULL;
++ if (bProcessContent) {
++ ret=getTopContext();
++ }
++ if (ret==NULL) {
++ ret=new SvXMLImportContext( *this, nPrefix, rLocalName );
++ }
++ return ret;
++}
++
+ void SAL_CALL SvXMLImport::endElement( const OUString&
+ #ifndef PRODUCT
+ rName
+diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
+index 0817e86..8e55b5f 100644
+--- xmloff/source/core/xmltoken.cxx
++++ xmloff/source/core/xmltoken.cxx
+@@ -1408,6 +1408,7 @@ namespace xmloff { namespace token {
+ TOKEN( "printable", XML_PRINTABLE ),
+ TOKEN( "printed-by", XML_PRINTED_BY ),
+ TOKEN( "proceedings", XML_PROCEEDINGS ),
++ TOKEN( "process-content", XML_PROCESS_CONTENT ),
+ TOKEN( "product", XML_PRODUCT ),
+ TOKEN( "projection", XML_PROJECTION ),
+ TOKEN( "properties", XML_PROPERTIES ),
+@@ -1697,6 +1698,7 @@ namespace xmloff { namespace token {
+ TOKEN( "structure-protected", XML_STRUCTURE_PROTECTED ),
+ TOKEN( "style", XML_STYLE ),
+ TOKEN( "style-name", XML_STYLE_NAME ),
++ TOKEN( "class-names", XML_CLASS_NAMES ),
+ TOKEN( "styles", XML_STYLES ),
+ TOKEN( "stylesheet", XML_STYLESHEET ),
+ TOKEN( "sub-table", XML_SUB_TABLE ),
+diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx
+index d6d3880..ed22434 100644
+--- xmloff/source/draw/shapeimport.cxx
++++ xmloff/source/draw/shapeimport.cxx
+@@ -876,8 +876,8 @@ SvXMLShapeContext* XMLShapeImportHelper::CreateGroupChildContext(
+ // break;
+ // }
+ // add other shapes here...
+- default:
+- return new SvXMLShapeContext( rImport, p_nPrefix, rLocalName, bTemporaryShape );
++ default:
++ return NULL; // no shape context...
+ }
+
+ // now parse the attribute list and call the child context for each unknown attribute
+diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
+index 69d52a9..58c9e57 100644
+--- xmloff/source/text/txtimp.cxx
++++ xmloff/source/text/txtimp.cxx
+@@ -443,6 +443,8 @@ static __FAR_DATA SvXMLTokenMapEntry aTextPAttrTokenMap[] =
+ { XML_NAMESPACE_TEXT, XML_IS_LIST_HEADER,XML_TOK_TEXT_P_IS_LIST_HEADER },
+ { XML_NAMESPACE_TEXT, XML_RESTART_NUMBERING,XML_TOK_TEXT_P_RESTART_NUMBERING },
+ { XML_NAMESPACE_TEXT, XML_START_VALUE,XML_TOK_TEXT_P_START_VALUE },
++
++ { XML_NAMESPACE_TEXT, XML_CLASS_NAMES, XML_TOK_TEXT_P_CLASS_NAMES },
+ XML_TOKEN_MAP_END
+ };
+
+@@ -992,6 +994,7 @@ OUString XMLTextImportHelper::SetStyleAndAttrs(
+ SvXMLImport& rImport,
+ const Reference < XTextCursor >& rCursor,
+ const OUString& rStyleName,
++ const OUString& rClassNames,
+ sal_Bool bPara,
+ sal_Bool bOutlineLevelAttrFound,
+ sal_Int8 nOutlineLevel,
+@@ -1174,8 +1177,11 @@ OUString XMLTextImportHelper::SetStyleAndAttrs(
+ }
+
+ // hard paragraph properties
+- if( pStyle )
+- {
++ sal_Int32 nTokenIndex = 0;
++ rtl::OUString aToken;
++ do {
++#if 1
++ if (pStyle) {
+ pStyle->FillPropertySet( xPropSet );
+ if( bPara && pStyle->HasMasterPageName() &&
+ xPropSetInfo->hasPropertyByName( sPageDescName ) )
+@@ -1237,7 +1243,19 @@ OUString XMLTextImportHelper::SetStyleAndAttrs(
+ }
+ }
+ }
+- }
++ }
++ aToken = rClassNames.getToken( 0, ' ', nTokenIndex );
++ if (aToken.getLength() && xAutoStyles.Is() )
++ {
++ pStyle = PTR_CAST( XMLTextStyleContext,
++ ((SvXMLStylesContext *)&xAutoStyles)->
++ FindStyleChildContext( nFamily, aToken, sal_True ) );
++ } else {
++ pStyle=NULL;
++ aToken=rtl::OUString();
++ }
++#endif
++ } while (pStyle!=NULL || aToken.getLength()>0);
+
+ // outline level; set after list style has been set
+ // --> OD 2005-08-25 #i53198#
+@@ -1973,8 +1991,9 @@ SvXMLImportContext *XMLTextImportHelper::CreateTextChildContext(
+ }
+ }
+
+-// if( !pContext )
+-// pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
++ if (pContext==NULL) {
++ pContext=rImport.createUnknownContext(nPrefix, rLocalName, xAttrList);
++ }
+
+ // handle open redlines
+ if ( (XML_TOK_TEXT_CHANGE != nToken) &&
+diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx
+index 91d27e6..237cc3e 100644
+--- xmloff/source/text/txtparai.cxx
++++ xmloff/source/text/txtparai.cxx
+@@ -1529,23 +1529,22 @@ SvXMLImportContext *XMLImpSpanContext_Impl::CreateChildContext(
+ SvXMLShapeContext* pShapeContext = rImport.GetShapeImport()->CreateGroupChildContext(
+ rImport, nPrefix, rLocalName, xAttrList, xShapes );
+ pContext = pShapeContext;
+- // OD 2004-04-20 #i26791# - keep shape in a text frame hint to
+- // adjust its anchor position, if its at-character anchored
+- Reference < XTextRange > xAnchorPos =
+- rImport.GetTextImport()->GetCursor()->getStart();
+- rHints.Insert( new XMLDrawHint_Impl( pShapeContext, xAnchorPos ),
+- rHints.Count() );
++ if (pContext) {
++ // OD 2004-04-20 #i26791# - keep shape in a text frame hint to
++ // adjust its anchor position, if its at-character anchored
++ Reference < XTextRange > xAnchorPos =
++ rImport.GetTextImport()->GetCursor()->getStart();
++ rHints.Insert( new XMLDrawHint_Impl( pShapeContext, xAnchorPos ),
++ rHints.Count() );
++ }
+ }
+ if( !pContext )
+ {
+- // ignore unknown content
+- pContext =
+- new SvXMLImportContext( rImport, nPrefix, rLocalName );
++ pContext=rImport.createUnknownContext(nPrefix, rLocalName, xAttrList);
+ }
+ // Behind fields, shapes and any unknown content blanks aren't ignored
+ rIgnoreLeadingSpace = sal_False;
+ }
+-
+ return pContext;
+ }
+
+@@ -1602,7 +1601,7 @@ XMLParaContext::XMLParaContext(
+ const SvXMLTokenMap& rTokenMap =
+ GetImport().GetTextImport()->GetTextPAttrTokenMap();
+
+- OUString aCondStyleName, sClassNames;
++ OUString sStyleName, aCondStyleName, sClassNames;
+
+ sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+ for( sal_Int16 i=0; i < nAttrCount; i++ )
+@@ -1668,18 +1667,24 @@ XMLParaContext::XMLParaContext(
+ break;
+ }
+ }
+-
++ m_sClassNames = sClassNames;
+ if( aCondStyleName.getLength() )
+- sStyleName = aCondStyleName;
+- else if( sClassNames.getLength() )
+- {
+- sal_Int32 nDummy = 0;
+- sStyleName = sClassNames.getToken( 0, ' ', nDummy );
++ m_sStyleName = aCondStyleName;
++ else {
++ m_sStyleName = sStyleName;
++ }
++ if (m_sStyleName.getLength()==0 && sClassNames.getLength()>0) {
++ // so when we only have class names make sure the first styles
++ // of the class names is the style name
++ sal_Int32 nDummy = 0;
++ m_sStyleName = m_sClassNames.getToken( 0, ' ', nDummy );
++ m_sClassNames = m_sClassNames.copy(m_sStyleName.getLength()+1);
+ }
+ }
+
+ XMLParaContext::~XMLParaContext()
+ {
++ rtl::OUString sStyleName = m_sStyleName;
+ UniReference < XMLTextImportHelper > xTxtImport(
+ GetImport().GetTextImport());
+ Reference < XTextRange > xCrsrRange( xTxtImport->GetCursorAsRange() );
+@@ -1718,6 +1723,7 @@ XMLParaContext::~XMLParaContext()
+ // because of side effects of method <SetStyleAndAttrs(..)>
+ xTxtImport->SetStyleAndAttrs( GetImport(), xAttrCursor,
+ sCellParaStyleName,
++ OUString(),
+ sal_True,
+ sal_False, -1, // suppress outline handling
+ sal_False ); // suppress list attributes handling
+@@ -1732,6 +1738,7 @@ XMLParaContext::~XMLParaContext()
+ // --> OD 2007-07-25 #i73509# - add paramter <mbOutlineLevelAttrFound>
+ sStyleName = xTxtImport->SetStyleAndAttrs( GetImport(), xAttrCursor,
+ sStyleName,
++ m_sClassNames,
+ sal_True,
+ mbOutlineLevelAttrFound,
+ bHeading ? nOutlineLevel : -1 );
+@@ -1794,7 +1801,7 @@ XMLParaContext::~XMLParaContext()
+ ((XMLStyleHint_Impl *)pHint)->GetStyleName();
+ if( rStyleName.getLength() )
+ xTxtImport->SetStyleAndAttrs( GetImport(),
+- xAttrCursor, rStyleName,
++ xAttrCursor, rStyleName, OUString(),
+ sal_False );
+ }
+ break;
+@@ -1965,7 +1972,7 @@ SvXMLImportContext *XMLParaContext::CreateChildContext(
+ void XMLParaContext::Characters( const OUString& rChars )
+ {
+ OUString sChars =
+- GetImport().GetTextImport()->ConvertStarFonts( rChars, sStyleName,
++ GetImport().GetTextImport()->ConvertStarFonts( rChars, m_sStyleName,
+ nStarFontsConvFlags,
+ sal_True, GetImport() );
+ GetImport().GetTextImport()->InsertString( sChars, bIgnoreLeadingSpace );
+diff --git a/xmloff/source/text/txtparai.hxx b/xmloff/source/text/txtparai.hxx
+index bfbfc08..db44166 100644
+--- xmloff/source/text/txtparai.hxx
++++ xmloff/source/text/txtparai.hxx
+@@ -58,7 +58,8 @@ class XMLParaContext : public SvXMLImportContext
+ {
+ ::com::sun::star::uno::Reference <
+ ::com::sun::star::text::XTextRange > xStart; // xub_StrLen nStart;
+- ::rtl::OUString sStyleName;
++ ::rtl::OUString m_sStyleName;
++ ::rtl::OUString m_sClassNames;
+ ::rtl::OUString sId;
+ sal_Int8 nOutlineLevel;
+ XMLHints_Impl *pHints;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]