summaryrefslogtreecommitdiff
path: root/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
diff options
context:
space:
mode:
authorSascha Ballach <sab@openoffice.org>2001-06-07 09:07:37 +0000
committerSascha Ballach <sab@openoffice.org>2001-06-07 09:07:37 +0000
commite906f9454c02d2acee456473d43de862e3a1a404 (patch)
tree60d756f80b7533426bea490f9a1dad8e7fc90239 /sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
parent22222e6f4b4f8c670036750b4e8cfe303cdad366 (diff)
#87900#; overwrite default header and footer if necassary with empty text
Diffstat (limited to 'sc/source/filter/xml/XMLTableHeaderFooterContext.cxx')
-rw-r--r--sc/source/filter/xml/XMLTableHeaderFooterContext.cxx29
1 files changed, 23 insertions, 6 deletions
diff --git a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
index aaa209b8a568..47e507b47e9c 100644
--- a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
+++ b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: XMLTableHeaderFooterContext.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: sab $ $Date: 2001-02-28 08:19:33 $
+ * last change: $Author: sab $ $Date: 2001-06-07 10:07:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -105,7 +105,10 @@ XMLTableHeaderFooterContext::XMLTableHeaderFooterContext( SvXMLImport& rImport,
sContentLeft( OUString::createFromAscii( bFooter ? SC_UNO_PAGE_LEFTFTRCONT : SC_UNO_PAGE_LEFTHDRCONT ) ),
bInsertContent( sal_True ),
bLeft( bLft ),
- bDisplay( sal_True )
+ bDisplay( sal_True ),
+ bContainsLeft(sal_False),
+ bContainsRight(sal_False),
+ bContainsCenter(sal_False)
{
sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
for( sal_Int16 i=0; i < nAttrCount; i++ )
@@ -199,11 +202,11 @@ SvXMLImportContext *XMLTableHeaderFooterContext::CreateChildContext(
if( xHeaderFooterContent.is() )
{
uno::Reference < text::XText > xText = xHeaderFooterContent->getCenterText();
- rtl::OUString sEmpty;
xText->setString(sEmpty);
xTextCursor = xText->createTextCursor();
xOldTextCursor = GetImport().GetTextImport()->GetCursor();
GetImport().GetTextImport()->SetCursor( xTextCursor );
+ bContainsCenter = sal_True;
}
}
pContext =
@@ -220,14 +223,22 @@ SvXMLImportContext *XMLTableHeaderFooterContext::CreateChildContext(
{
uno::Reference < text::XText > xText;
if (rLocalName.compareToAscii( sXML_region_left ) == 0)
+ {
xText = xHeaderFooterContent->getLeftText();
+ bContainsLeft = sal_True;
+ }
else if (rLocalName.compareToAscii( sXML_region_center ) == 0)
+ {
xText = xHeaderFooterContent->getCenterText();
+ bContainsCenter = sal_True;
+ }
else if (rLocalName.compareToAscii( sXML_region_right ) == 0)
+ {
xText = xHeaderFooterContent->getRightText();
+ bContainsRight = sal_True;
+ }
if (xText.is())
{
- rtl::OUString sEmpty;
xText->setString(sEmpty);
pContext = new XMLHeaderFooterRegionContext( GetImport(), nPrefix, rLocalName, xAttrList, xText->createTextCursor() );
}
@@ -247,7 +258,6 @@ void XMLTableHeaderFooterContext::EndElement()
//GetImport().GetTextImport()->GetCursor()->gotoEnd(sal_False);
if( GetImport().GetTextImport()->GetCursor()->goLeft( 1, sal_True ) )
{
- OUString sEmpty;
GetImport().GetTextImport()->GetText()->insertString(
GetImport().GetTextImport()->GetCursorAsRange(), sEmpty,
sal_True );
@@ -258,6 +268,13 @@ void XMLTableHeaderFooterContext::EndElement()
GetImport().GetTextImport()->SetCursor(xOldTextCursor);
if (xHeaderFooterContent.is())
{
+ if (!bContainsLeft)
+ xHeaderFooterContent->getLeftText()->setString(sEmpty);
+ if (!bContainsCenter)
+ xHeaderFooterContent->getCenterText()->setString(sEmpty);
+ if (!bContainsRight)
+ xHeaderFooterContent->getRightText()->setString(sEmpty);
+
Any aAny;
aAny <<= xHeaderFooterContent;
xPropSet->setPropertyValue( sCont, aAny );