diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-04-23 00:17:03 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-04-23 00:31:38 +0200 |
commit | 84217e299724b8ee80dff63cb561b4bae0f44835 (patch) | |
tree | d64c309181fa328d07234fe6baf08d56194e424e /sw/source | |
parent | 1d80c1cf22c1cb673da91b8aa59d770fc30dffdc (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
Diffstat (limited to 'sw/source')
-rw-r--r-- | sw/source/filter/xml/xmltbli.cxx | 18 | ||||
-rw-r--r-- | sw/source/filter/xml/xmltbli.hxx | 3 |
2 files changed, 17 insertions, 4 deletions
diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index ec43a0ce33c6..d30cccf8e3e6 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -587,8 +587,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); @@ -2881,12 +2884,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(), @@ -2941,6 +2946,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 7062dc487a0c..0ba3130843cd 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(); |