[Libreoffice-commits] core.git: sw/source

Michael Stahl mstahl at redhat.com
Mon Apr 22 15:34:57 PDT 2013


 sw/source/filter/xml/xmltbli.cxx |   18 +++++++++++++++---
 sw/source/filter/xml/xmltbli.hxx |    3 ++-
 2 files changed, 17 insertions(+), 4 deletions(-)

New commits:
commit 84217e299724b8ee80dff63cb561b4bae0f44835
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Apr 23 00:17:03 2013 +0200

    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

diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index ec43a0c..d30cccf 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 7062dc4..0ba3130 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();
 


More information about the Libreoffice-commits mailing list