summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-04-23 00:17:03 +0200
committerMiklos Vajna <vmiklos@suse.cz>2013-04-23 14:46:11 +0000
commit00a8e4604802cecfb87d62a5edc9ef314400ebb4 (patch)
treee3401b4fd1993b24148b45056f2b7a2f37f8f9da
parent0e550f8950feea1eb2e142e38de1b6e953c0fe8c (diff)
fdo#62147: sw: ODF import: apply styles in cells with string-value
Apply the table-cell-style to paragraphs inside the table cell for cells with value-type="string" and office:string-value attribute. This should complete commit 1b5839f49c07beb6fbde6c7370a5636d22f9ab77. Change-Id: Ief34de1e7c5087906ea597ce3ca96e020f6eebe6 (cherry picked from commit 84217e299724b8ee80dff63cb561b4bae0f44835) Reviewed-on: https://gerrit.libreoffice.org/3575 Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Tested-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r--sw/source/filter/xml/xmltbli.cxx18
-rw-r--r--sw/source/filter/xml/xmltbli.hxx3
2 files changed, 17 insertions, 4 deletions
diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index 9ffba48ae736..6cd2cdcde522 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -589,8 +589,11 @@ SwXMLTableCellContext_Impl::~SwXMLTableCellContext_Impl()
inline void SwXMLTableCellContext_Impl::_InsertContent()
{
+ SwStartNode const*const pStartNode( GetTable()->InsertTableSection(0,
+ (m_bHasStringValue && m_bValueTypeIsString &&
+ !aStyleName.isEmpty()) ? & aStyleName : 0) );
GetTable()->InsertCell( aStyleName, nRowSpan, nColSpan,
- GetTable()->InsertTableSection(),
+ pStartNode,
mXmlId,
NULL, bProtect, &sFormula, bHasValue, fValue,
(m_bHasStringValue && m_bValueTypeIsString) ? &m_StringValue : 0);
@@ -2883,12 +2886,14 @@ void SwXMLTableContext::MakeTable( SwTableBox *pBox, sal_Int32 nW )
}
const SwStartNode *SwXMLTableContext::InsertTableSection(
- const SwStartNode *pPrevSttNd )
+ const SwStartNode *const pPrevSttNd,
+ OUString const*const pStringValueStyleName)
{
// The topmost table is the only table that maintains the two members
// pBox1 and bFirstSection.
if( xParentTable.Is() )
- return ((SwXMLTableContext *)&xParentTable)->InsertTableSection( pPrevSttNd );
+ return static_cast<SwXMLTableContext *>(&xParentTable)
+ ->InsertTableSection(pPrevSttNd, pStringValueStyleName);
const SwStartNode *pStNd;
Reference<XUnoTunnel> xCrsrTunnel( GetImport().GetTextImport()->GetCursor(),
@@ -2943,6 +2948,13 @@ const SwStartNode *SwXMLTableContext::InsertTableSection(
}
}
+ if (pStringValueStyleName)
+ { // fdo#62147: apply style to paragraph on string-value cell
+ GetImport().GetTextImport()->SetStyleAndAttrs( GetImport(),
+ GetImport().GetTextImport()->GetCursor(), *pStringValueStyleName,
+ true, false, -1, false); // parameters same as sCellParaStyleName
+ }
+
return pStNd;
}
diff --git a/sw/source/filter/xml/xmltbli.hxx b/sw/source/filter/xml/xmltbli.hxx
index e9854ccb64d3..cfd886bf7895 100644
--- a/sw/source/filter/xml/xmltbli.hxx
+++ b/sw/source/filter/xml/xmltbli.hxx
@@ -186,7 +186,8 @@ public:
void InsertRepRows( sal_uInt32 nCount );
const SwXMLTableCell_Impl *GetCell( sal_uInt32 nRow, sal_uInt32 nCol ) const;
SwXMLTableCell_Impl *GetCell( sal_uInt32 nRow, sal_uInt32 nCol );
- const SwStartNode *InsertTableSection( const SwStartNode *pPrevSttNd=0 );
+ const SwStartNode *InsertTableSection(const SwStartNode *pPrevSttNd = 0,
+ OUString const* pStringValueStyleName = 0);
virtual void EndElement();