dev/null |binary include/xmloff/txtprmap.hxx | 2 sw/qa/extras/globalfilter/data/char_highlight.docx |binary sw/qa/extras/globalfilter/globalfilter.cxx | 99 +++++++++++++++++++++ sw/qa/extras/ooxmlexport/ooxmlexport3.cxx | 49 ---------- sw/qa/extras/rtfexport/data/fdo79599.rtf | 38 -------- sw/qa/extras/rtfexport/rtfexport.cxx | 9 - sw/qa/extras/rtfimport/data/fdo79599.rtf | 38 -------- sw/qa/extras/rtfimport/rtfimport.cxx | 56 ----------- sw/source/filter/ww8/rtfattributeoutput.cxx | 11 ++ sw/source/filter/ww8/rtfattributeoutput.hxx | 2 sw/source/filter/ww8/rtfexport.cxx | 2 sw/source/filter/ww8/ww8atr.cxx | 11 ++ sw/source/filter/ww8/ww8attributeoutput.hxx | 2 sw/source/filter/ww8/ww8par.cxx | 1 sw/source/filter/ww8/ww8par.hxx | 1 sw/source/filter/ww8/ww8par2.cxx | 3 sw/source/filter/ww8/ww8par6.cxx | 21 ---- writerfilter/source/dmapper/DomainMapper.cxx | 21 ++-- writerfilter/source/dmapper/DomainMapper.hxx | 2 xmloff/source/text/txtexppr.cxx | 13 ++ xmloff/source/text/txtprmap.cxx | 8 + 22 files changed, 161 insertions(+), 228 deletions(-)
New commits: commit 15e6af4f8703dc2e6ba59207799f1f43163aa954 Author: Zolnai Tamás <zolnaitamas2...@gmail.com> Date: Sat Feb 21 10:50:18 2015 +0100 Char highlight: ODT filters Export merges the two background attribute. Change-Id: I882321fbd5a7d24991fb01b8dc9d2cc0bd294051 diff --git a/include/xmloff/txtprmap.hxx b/include/xmloff/txtprmap.hxx index a08915f..2562abb 100644 --- a/include/xmloff/txtprmap.hxx +++ b/include/xmloff/txtprmap.hxx @@ -196,6 +196,8 @@ #define CTF_CHARBOTTOMBORDER (XML_TEXT_CTF_START + 167) #define CTF_RELWIDTHREL (XML_TEXT_CTF_START + 168) #define CTF_RELHEIGHTREL (XML_TEXT_CTF_START + 169) +#define CTF_CHAR_BACKGROUND (XML_TEXT_CTF_START + 170) +#define CTF_CHAR_HIGHLIGHT (XML_TEXT_CTF_START + 171) enum class TextPropMap { diff --git a/sw/qa/extras/globalfilter/data/char_highlight.docx b/sw/qa/extras/globalfilter/data/char_highlight.docx index 841fc3e..e601bac 100644 Binary files a/sw/qa/extras/globalfilter/data/char_highlight.docx and b/sw/qa/extras/globalfilter/data/char_highlight.docx differ diff --git a/sw/qa/extras/globalfilter/globalfilter.cxx b/sw/qa/extras/globalfilter/globalfilter.cxx index 8ea45e1..83aec2a 100644 --- a/sw/qa/extras/globalfilter/globalfilter.cxx +++ b/sw/qa/extras/globalfilter/globalfilter.cxx @@ -355,10 +355,10 @@ void Test::testGraphicShape() void Test::testCharHighlight() { // MS Word has two kind of character background called character shading and highlight - // No we support these two background colors both in import and export code + // MS filters handle these attributes separately, but ODF export merges them into one background attribute const char* aFilterNames[] = { -// "writer8", + "writer8", "Rich Text Format", "MS Word 97", "Office Open XML Text", @@ -412,20 +412,37 @@ void Test::testCharHighlight() case 15: nHighlightColor = 0x808080; break; //dark gray case 16: nHighlightColor = 0xC0C0C0; break; //light gray } - CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nHighlightColor, getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor")); + + if( strcmp(aFilterNames[nFilter], "writer8") == 0 ) + { + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nHighlightColor, getProperty<sal_Int32>(xRun,"CharBackColor")); + } + else // MS filters + { + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nHighlightColor, getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor")); + } } // Only highlight { - const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,17), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0xC0C0C0), getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharBackColor")); + const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,18), uno::UNO_QUERY); + if( strcmp(aFilterNames[nFilter], "writer8") == 0 ) + { + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0xff0000), getProperty<sal_Int32>(xRun,"CharBackColor")); + } + else + { + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0xff0000), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharBackColor")); + } } // Only background { - const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,18), uno::UNO_QUERY); + const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,19), uno::UNO_QUERY); CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0x0000ff), getProperty<sal_Int32>(xRun,"CharBackColor")); } diff --git a/xmloff/source/text/txtexppr.cxx b/xmloff/source/text/txtexppr.cxx index 7e3cfc4..2925aec 100644 --- a/xmloff/source/text/txtexppr.cxx +++ b/xmloff/source/text/txtexppr.cxx @@ -658,6 +658,10 @@ void XMLTextExportPropertySetMapper::ContextFilter( XMLPropertyState* pRepeatOffsetX = NULL; XMLPropertyState* pRepeatOffsetY = NULL; + // character background and highlight + XMLPropertyState* pCharBackground = NULL; + XMLPropertyState* pCharHighlight = NULL; + bool bNeedsAnchor = false; for( ::std::vector< XMLPropertyState >::iterator aIter = rProperties.begin(); @@ -816,6 +820,9 @@ void XMLTextExportPropertySetMapper::ContextFilter( propertyState->mnIndex = -1; } break; + + case CTF_CHAR_BACKGROUND: pCharBackground = propertyState; break; + case CTF_CHAR_HIGHLIGHT: pCharHighlight = propertyState; break; } } @@ -1118,6 +1125,12 @@ void XMLTextExportPropertySetMapper::ContextFilter( if( pClipState != NULL && pClip11State != NULL ) pClip11State->mnIndex = -1; + // When both background attributes are available export only the highlight + if( pCharHighlight && pCharBackground ) + { + pCharBackground->mnIndex = -1; + } + SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily, rProperties, rPropSet); } diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx index 3806625..19979c9 100644 --- a/xmloff/source/text/txtprmap.cxx +++ b/xmloff/source/text/txtprmap.cxx @@ -191,7 +191,7 @@ XMLPropertyMapEntry aXMLParaPropMap[] = // RES_CHRATR_NOLINEBREAK // TODO: not used? // RES_CHRATR_BACKGROUND - MT_E( "CharBackColor", FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ), + MT_E( "CharBackColor", FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, CTF_CHAR_BACKGROUND ), MT_E( "CharBackTransparent", FO, BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ), MT_E( "CharBackColor", FO, TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ), // RES_CHRATR_CJK_FONT @@ -291,6 +291,8 @@ XMLPropertyMapEntry aXMLParaPropMap[] = // RES_CHRATR_SHADOW MAP_EXT( "CharShadowFormat", XML_NAMESPACE_LO_EXT, XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ), MAP_EXT_I( "CharShadowFormat", XML_NAMESPACE_STYLE, XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ), + // RES_CHRATR_HIGHLIGHT + MT_E( "CharHighlight", FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY| MID_FLAG_NO_PROPERTY_IMPORT, CTF_CHAR_HIGHLIGHT ), // RES_TXTATR_INETFMT // TODO // RES_TXTATR_REFMARK @@ -531,7 +533,7 @@ XMLPropertyMapEntry aXMLTextPropMap[] = // RES_CHRATR_NOLINEBREAK // TODO: not used? // RES_CHRATR_BACKGROUND - MT_E( "CharBackColor", FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ), + MT_E( "CharBackColor", FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, CTF_CHAR_BACKGROUND ), MT_E( "CharBackTransparent", FO, BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ), { "CharShadingValue", sizeof("CharShadingValue")-1, XML_NAMESPACE_LO_EXT, XML_CHAR_SHADING_VALUE, XML_TYPE_NUMBER|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false }, MT_E( "CharBackColor", FO, TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ), @@ -634,6 +636,8 @@ XMLPropertyMapEntry aXMLTextPropMap[] = // RES_CHRATR_SHADOW MAP_EXT( "CharShadowFormat", XML_NAMESPACE_LO_EXT, XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ), MAP_EXT_I( "CharShadowFormat", XML_NAMESPACE_STYLE, XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ), + // RES_CHRATR_HIGHLIGHT + MT_E( "CharHighlight", FO, BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY|MID_FLAG_NO_PROPERTY_IMPORT, CTF_CHAR_HIGHLIGHT ), // RES_TXTATR_INETFMT MT_E( "HyperLinkURL", TEXT, XMLNS, XML_TYPE_STRING|MID_FLAG_NO_PROPERTY_IMPORT, CTF_HYPERLINK_URL ), // RES_TXTATR_REFMARK commit b4badb824658ef7a58063e4c7bd9cdd88362b999 Author: Zolnai Tamás <zolnaitamas2...@gmail.com> Date: Sat Feb 21 10:37:54 2015 +0100 Char highlight: DOC filters Change-Id: Ia609425f6753796091d4dfdfae8e621c062e0c15 diff --git a/sw/qa/extras/globalfilter/globalfilter.cxx b/sw/qa/extras/globalfilter/globalfilter.cxx index e3492d1..8ea45e1 100644 --- a/sw/qa/extras/globalfilter/globalfilter.cxx +++ b/sw/qa/extras/globalfilter/globalfilter.cxx @@ -360,7 +360,7 @@ void Test::testCharHighlight() const char* aFilterNames[] = { // "writer8", "Rich Text Format", -// "MS Word 97", + "MS Word 97", "Office Open XML Text", }; @@ -371,6 +371,8 @@ void Test::testCharHighlight() mxComponent = loadFromDesktop(getURLFromSrc("/sw/qa/extras/globalfilter/data/char_highlight.docx"), "com.sun.star.text.TextDocument"); + const OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter]; + // Export the document and import again for a check uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); @@ -410,22 +412,22 @@ void Test::testCharHighlight() case 15: nHighlightColor = 0x808080; break; //dark gray case 16: nHighlightColor = 0xC0C0C0; break; //light gray } - CPPUNIT_ASSERT_EQUAL(nHighlightColor, getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL(nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nHighlightColor, getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor")); } // Only highlight { const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,17), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0xC0C0C0), getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL(sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharBackColor")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0xC0C0C0), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharBackColor")); } // Only background { const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,18), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000ff), getProperty<sal_Int32>(xRun,"CharBackColor")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0x0000ff), getProperty<sal_Int32>(xRun,"CharBackColor")); } } } diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 9ef456e..baacf70 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -1281,6 +1281,17 @@ void WW8AttributeOutput::CharBorder( const SvxBorderLine* pAllBorder, const sal_ m_rWW8Export.Out_BorderLine( *m_rWW8Export.pO, pAllBorder, 0, NS_sprm::LN_CBrc80, NS_sprm::LN_CBrc, bShadow ); } +void WW8AttributeOutput::CharHighlight( const SvxBrushItem& rBrush ) +{ + if( m_rWW8Export.bWrtWW8 ) + { + sal_uInt8 nColor = m_rWW8Export.TransCol( rBrush.GetColor() ); + // sprmCHighlight + m_rWW8Export.InsUInt16( NS_sprm::LN_CHighlight ); + m_rWW8Export.pO->push_back( nColor ); + } +} + void WW8AttributeOutput::CharUnderline( const SvxUnderlineItem& rUnderline ) { if ( m_rWW8Export.bWrtWW8 ) diff --git a/sw/source/filter/ww8/ww8attributeoutput.hxx b/sw/source/filter/ww8/ww8attributeoutput.hxx index 8e7041b..c3df0a6 100644 --- a/sw/source/filter/ww8/ww8attributeoutput.hxx +++ b/sw/source/filter/ww8/ww8attributeoutput.hxx @@ -309,7 +309,7 @@ protected: virtual void CharBorder( const ::editeng::SvxBorderLine* pAllBorder, const sal_uInt16 nDist, const bool bShadow ) SAL_OVERRIDE; /// Sfx item RES_CHRATR_HIGHLIGHT - virtual void CharHighlight( const SvxBrushItem& ) SAL_OVERRIDE {}; + virtual void CharHighlight( const SvxBrushItem& ) SAL_OVERRIDE; /// Sfx item RES_TXTATR_INETFMT virtual void TextINetFormat( const SwFmtINetFmt& ) SAL_OVERRIDE; diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 29f2a9c..027e96a 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -3822,7 +3822,7 @@ void SwWW8ImplReader::Read_CharHighlight(sal_uInt16, const sal_uInt8* pData, sho { if( nLen <= 0 ) { - pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_BACKGROUND ); + pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_HIGHLIGHT ); } else { @@ -3832,7 +3832,7 @@ void SwWW8ImplReader::Read_CharHighlight(sal_uInt16, const sal_uInt8* pData, sho b = 0; // Auto -> Black Color aCol(GetCol(b)); - NewAttr( SvxBrushItem( aCol , RES_CHRATR_BACKGROUND )); + NewAttr( SvxBrushItem( aCol , RES_CHRATR_HIGHLIGHT )); } } commit d0c98cf213eef7042b38fbf22a92e6435793a414 Author: Zolnai Tamás <zolnaitamas2...@gmail.com> Date: Sun Feb 8 10:26:26 2015 +0100 WW8: bCharShdTxtCol is always false Change-Id: Ib62a4f5dcd7e41cd8c8e82f23efebb468e2e7c91 diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 58d1c79..6418f52 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -4202,7 +4202,6 @@ SwWW8ImplReader::SwWW8ImplReader(sal_uInt8 nVersionPara, SvStorage* pStorage, , bWasTabRowEnd(false) , bWasTabCellEnd(false) , bShdTxtCol(false) - , bCharShdTxtCol(false) , bAnl(false) , bHdFtFtnEdn(false) , bFtnEdn(false) diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx index af6301d..6b5d4e2 100644 --- a/sw/source/filter/ww8/ww8par.hxx +++ b/sw/source/filter/ww8/ww8par.hxx @@ -1315,7 +1315,6 @@ private: bool bWasTabCellEnd; // table: Cell End Mark bool bShdTxtCol; // Textfarbe indirekt gesetzt ( Hintergrund sw ) - bool bCharShdTxtCol; // Textfarbe indirekt gesetzt ( Zeichenhintergrund sw ) bool bAnl; // Nummerierung in Bearbeitung // Anl heisst Autonumber level diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx index c9f965c..376de19 100644 --- a/sw/source/filter/ww8/ww8par2.cxx +++ b/sw/source/filter/ww8/ww8par2.cxx @@ -3818,8 +3818,7 @@ void WW8RStyle::PostStyle(SwWW8StyInf &rSI, bool bOldNoImp) { // Reset attribute flags, because there are no style-ends. - pIo->bHasBorder = pIo->bShdTxtCol = pIo->bCharShdTxtCol - = pIo->bSpec = pIo->bObj = pIo->bSymbol = false; + pIo->bHasBorder = pIo->bShdTxtCol = pIo->bSpec = pIo->bObj = pIo->bSymbol = false; pIo->nCharFmt = -1; // If Style basiert auf Nichts oder Basis ignoriert diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 2d63bfa..29f2a9c 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -3791,12 +3791,6 @@ void SwWW8ImplReader::Read_CharShadow( sal_uInt16, const sal_uInt8* pData, shor if( nLen <= 0 ) { pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_BACKGROUND ); - if( bCharShdTxtCol ) - { - // Zeichenfarbe auch - pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_COLOR ); - bCharShdTxtCol = false; - } } else { @@ -3813,12 +3807,6 @@ void SwWW8ImplReader::Read_TxtBackColor(sal_uInt16, const sal_uInt8* pData, shor if( nLen <= 0 ) { pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_BACKGROUND ); - if( bCharShdTxtCol ) - { - // Zeichenfarbe auch - pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_COLOR ); - bCharShdTxtCol = false; - } } else { @@ -3835,11 +3823,6 @@ void SwWW8ImplReader::Read_CharHighlight(sal_uInt16, const sal_uInt8* pData, sho if( nLen <= 0 ) { pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_BACKGROUND ); - if( bCharShdTxtCol ) - { - pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_CHRATR_COLOR ); // Zeichenfarbe auch - bCharShdTxtCol = false; - } } else { commit b3877bcecbe1934eed467d6a6b321d1765a924d2 Author: Zolnai Tamás <zolnaitamas2...@gmail.com> Date: Sat Feb 21 10:32:45 2015 +0100 Char highlight: RTF filters Handle \highlightN and \chcbpatN separately. Change-Id: I20546bd4c26154e8b1168f87dcb4ab44a192ad83 diff --git a/sw/qa/extras/ooxmlexport/data/char_highlight.docx b/sw/qa/extras/globalfilter/data/char_highlight.docx similarity index 100% rename from sw/qa/extras/ooxmlexport/data/char_highlight.docx rename to sw/qa/extras/globalfilter/data/char_highlight.docx diff --git a/sw/qa/extras/globalfilter/globalfilter.cxx b/sw/qa/extras/globalfilter/globalfilter.cxx index ae87472..e3492d1 100644 --- a/sw/qa/extras/globalfilter/globalfilter.cxx +++ b/sw/qa/extras/globalfilter/globalfilter.cxx @@ -28,12 +28,14 @@ public: void testLinkedGraphicRT(); void testImageWithSpecialID(); void testGraphicShape(); + void testCharHighlight(); CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(testSwappedOutImageExport); CPPUNIT_TEST(testLinkedGraphicRT); CPPUNIT_TEST(testImageWithSpecialID); CPPUNIT_TEST(testGraphicShape); + CPPUNIT_TEST(testCharHighlight); CPPUNIT_TEST_SUITE_END(); }; @@ -350,6 +352,84 @@ void Test::testGraphicShape() } } +void Test::testCharHighlight() +{ + // MS Word has two kind of character background called character shading and highlight + // No we support these two background colors both in import and export code + + const char* aFilterNames[] = { +// "writer8", + "Rich Text Format", +// "MS Word 97", + "Office Open XML Text", + }; + + for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter ) + { + if (mxComponent.is()) + mxComponent->dispose(); + mxComponent = loadFromDesktop(getURLFromSrc("/sw/qa/extras/globalfilter/data/char_highlight.docx"), + "com.sun.star.text.TextDocument"); + + // Export the document and import again for a check + uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); + + utl::MediaDescriptor aMediaDescriptor; + aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]); + + utl::TempFile aTempFile; + aTempFile.EnableKillingFile(); + xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + uno::Reference< lang::XComponent > xComponent(xStorable, uno::UNO_QUERY); + xComponent->dispose(); + mxComponent = loadFromDesktop(aTempFile.GetURL(), "com.sun.star.text.TextDocument"); + + const uno::Reference< text::XTextRange > xPara = getParagraph(1); + // Both highlight and background + const sal_Int32 nBackColor(0x4F81BD); + for( int nRun = 1; nRun <= 16; ++nRun ) + { + const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,nRun), uno::UNO_QUERY); + sal_Int32 nHighlightColor = 0; + switch( nRun ) + { + case 1: nHighlightColor = 0x000000; break; //black + case 2: nHighlightColor = 0x0000ff; break; //blue + case 3: nHighlightColor = 0x00ffff; break; //cyan + case 4: nHighlightColor = 0x00ff00; break; //green + case 5: nHighlightColor = 0xff00ff; break; //magenta + case 6: nHighlightColor = 0xff0000; break; //red + case 7: nHighlightColor = 0xffff00; break; //yellow + case 8: nHighlightColor = 0xffffff; break; //white + case 9: nHighlightColor = 0x000080; break;//dark blue + case 10: nHighlightColor = 0x008080; break; //dark cyan + case 11: nHighlightColor = 0x008000; break; //dark green + case 12: nHighlightColor = 0x800080; break; //dark magenta + case 13: nHighlightColor = 0x800000; break; //dark red + case 14: nHighlightColor = 0x808000; break; //dark yellow + case 15: nHighlightColor = 0x808080; break; //dark gray + case 16: nHighlightColor = 0xC0C0C0; break; //light gray + } + CPPUNIT_ASSERT_EQUAL(nHighlightColor, getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL(nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor")); + } + + // Only highlight + { + const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,17), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0xC0C0C0), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL(sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharBackColor")); + } + + // Only background + { + const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,18), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000ff), getProperty<sal_Int32>(xRun,"CharBackColor")); + } + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx index 0036db9..19c079e 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx @@ -469,55 +469,6 @@ DECLARE_OOXMLEXPORT_TEST(testSmartart, "smartart.docx") CPPUNIT_ASSERT_EQUAL(OUString("RenderedShapes"), nValue); // Rendered bitmap has the proper name } - -DECLARE_OOXMLEXPORT_TEST(testCharHighlight, "char_highlight.docx") -{ - const uno::Reference< text::XTextRange > xPara = getParagraph(1); - // Both highlight and background - const sal_Int32 nBackColor(0x4F81BD); - for( int nRun = 1; nRun <= 16; ++nRun ) - { - const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,nRun), uno::UNO_QUERY); - sal_Int32 nHighlightColor = 0; - switch( nRun ) - { - case 1: nHighlightColor = 0x000000; break; //black - case 2: nHighlightColor = 0x0000ff; break; //blue - case 3: nHighlightColor = 0x00ffff; break; //cyan - case 4: nHighlightColor = 0x00ff00; break; //green - case 5: nHighlightColor = 0xff00ff; break; //magenta - case 6: nHighlightColor = 0xff0000; break; //red - case 7: nHighlightColor = 0xffff00; break; //yellow - case 8: nHighlightColor = 0xffffff; break; //white - case 9: nHighlightColor = 0x000080; break;//dark blue - case 10: nHighlightColor = 0x008080; break; //dark cyan - case 11: nHighlightColor = 0x008000; break; //dark green - case 12: nHighlightColor = 0x800080; break; //dark magenta - case 13: nHighlightColor = 0x800000; break; //dark red - case 14: nHighlightColor = 0x808000; break; //dark yellow - case 15: nHighlightColor = 0x808080; break; //dark gray - case 16: nHighlightColor = 0xC0C0C0; break; //light gray - } - CPPUNIT_ASSERT_EQUAL(nHighlightColor, getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL(nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor")); - } - - // Only highlight - { - const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,17), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0xC0C0C0), getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL(sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharBackColor")); - } - - // Only background - { - const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,18), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_Int32(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight")); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000ff), getProperty<sal_Int32>(xRun,"CharBackColor")); - } -} - - DECLARE_OOXMLEXPORT_TEST(testFontNameIsEmpty, "font-name-is-empty.docx") { // Check no empty font name is exported diff --git a/sw/qa/extras/rtfexport/data/fdo79599.rtf b/sw/qa/extras/rtfexport/data/fdo79599.rtf deleted file mode 100644 index f908709..0000000 --- a/sw/qa/extras/rtfexport/data/fdo79599.rtf +++ /dev/null @@ -1,38 +0,0 @@ -{\rtf1\deff0 -{\fonttbl -{\f000 Courier New;} -} -{\colortbl; -\red0\green0\blue0; -\red255\green255\blue0; -\red0\green255\blue0; -\red0\green255\blue255; -\red255\green0\blue255; -\red0\green0\blue255; -\red255\green0\blue0; -\red0\green0\blue128; -\red0\green128\blue128; -\red0\green128\blue0; -\red128\green0\blue128; -\red128\green0\blue0; -\red128\green128\blue0; -\red128\green128\blue128; -\red192\green192\blue192; -} -\highlight0 Should be ignored\par -\highlight2 #FFFF00 = Yellow\par -\highlight3 #00FF00 = Green\par -\highlight4 #00FFFF = Cyan\par -\highlight5 #FF00FF = Magenta\par -\highlight6 #0000FF = Blue\par -\highlight7 #FF0000 = Red\par -\highlight8 #000080 = Dark blue\par -\highlight9 #008080 = Dark cyan\par -\highlight10 #008000 = Dark green\par -\highlight11 #800080 = Dark magenta\par -\highlight12 #800000 = Dark red\par -\highlight13 #808000 = Dark yellow\par -\highlight14 #808080 = Dark gray\par -\highlight15 #C0C0C0 = Light gray\par -\highlight1 #000000 = Black\par -} diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index f056208..d14d951 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -670,15 +670,6 @@ DECLARE_RTFEXPORT_TEST(testFdo77600, "fdo77600.rtf") CPPUNIT_ASSERT_EQUAL(OUString("Arial"), getProperty<OUString>(getRun(getParagraph(1), 3), "CharFontName")); } -DECLARE_RTFEXPORT_TEST(testFdo79599, "fdo79599.rtf") -{ - // test for \highlightNN, document has full \colortbl (produced in MS Word 2003 or 2007) - - // test \highlight11 = dark magenta - uno::Reference<beans::XPropertySet> xRun(getRun(getParagraph(11),1), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x800080), getProperty<sal_uInt32>(xRun, "CharBackColor")); -} - DECLARE_RTFEXPORT_TEST(testFdo80167, "fdo80167.rtf") { // Problem was that after export, the page break was missing, so this was 1. diff --git a/sw/qa/extras/rtfimport/data/fdo79599.rtf b/sw/qa/extras/rtfimport/data/fdo79599.rtf deleted file mode 100644 index f908709..0000000 --- a/sw/qa/extras/rtfimport/data/fdo79599.rtf +++ /dev/null @@ -1,38 +0,0 @@ -{\rtf1\deff0 -{\fonttbl -{\f000 Courier New;} -} -{\colortbl; -\red0\green0\blue0; -\red255\green255\blue0; -\red0\green255\blue0; -\red0\green255\blue255; -\red255\green0\blue255; -\red0\green0\blue255; -\red255\green0\blue0; -\red0\green0\blue128; -\red0\green128\blue128; -\red0\green128\blue0; -\red128\green0\blue128; -\red128\green0\blue0; -\red128\green128\blue0; -\red128\green128\blue128; -\red192\green192\blue192; -} -\highlight0 Should be ignored\par -\highlight2 #FFFF00 = Yellow\par -\highlight3 #00FF00 = Green\par -\highlight4 #00FFFF = Cyan\par -\highlight5 #FF00FF = Magenta\par -\highlight6 #0000FF = Blue\par -\highlight7 #FF0000 = Red\par -\highlight8 #000080 = Dark blue\par -\highlight9 #008080 = Dark cyan\par -\highlight10 #008000 = Dark green\par -\highlight11 #800080 = Dark magenta\par -\highlight12 #800000 = Dark red\par -\highlight13 #808000 = Dark yellow\par -\highlight14 #808080 = Dark gray\par -\highlight15 #C0C0C0 = Light gray\par -\highlight1 #000000 = Black\par -} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 90ef8d3..71e5095 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -604,59 +604,6 @@ DECLARE_RTFIMPORT_TEST(testFdo50539, "fdo50539.rtf") CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), getProperty<sal_Int32>(getRun(getParagraph(1), 1), "CharBackColor")); } -DECLARE_RTFIMPORT_TEST(testFdo79599, "fdo79599.rtf") -{ - // test for \highlightNN, document has full \colortbl (produced in MS Word 2003 or 2007) - - // ignore \highlight0 - CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), getProperty<sal_Int32>(getRun(getParagraph(1), 1), "CharBackColor")); - - // test \highlight2 = yellow - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFFFF00), getProperty<sal_uInt32>(getRun(getParagraph(2), 1), "CharBackColor")); - - // test \highlight3 = green - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x00FF00), getProperty<sal_uInt32>(getRun(getParagraph(3), 1), "CharBackColor")); - - // test \highlight4 = cyan - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x00FFFF), getProperty<sal_uInt32>(getRun(getParagraph(4), 1), "CharBackColor")); - - // test \highlight5 = magenta - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFF00FF), getProperty<sal_uInt32>(getRun(getParagraph(5), 1), "CharBackColor")); - - // test \highlight6 = blue - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0000FF), getProperty<sal_uInt32>(getRun(getParagraph(6), 1), "CharBackColor")); - - // test \highlight7 = red - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFF0000), getProperty<sal_uInt32>(getRun(getParagraph(7), 1), "CharBackColor")); - - // test \highlight8 = dark blue - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x000080), getProperty<sal_uInt32>(getRun(getParagraph(8), 1), "CharBackColor")); - - // test \highlight9 = dark cyan - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x008080), getProperty<sal_uInt32>(getRun(getParagraph(9), 1), "CharBackColor")); - - // test \highlight10 = dark green - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x008000), getProperty<sal_uInt32>(getRun(getParagraph(10), 1), "CharBackColor")); - - // test \highlight11 = dark magenta - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x800080), getProperty<sal_uInt32>(getRun(getParagraph(11), 1), "CharBackColor")); - - // test \highlight12 = dark red - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x800000), getProperty<sal_uInt32>(getRun(getParagraph(12), 1), "CharBackColor")); - - // test \highlight13 = dark yellow - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x808000), getProperty<sal_uInt32>(getRun(getParagraph(13), 1), "CharBackColor")); - - // test \highlight14 = dark gray - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x808080), getProperty<sal_uInt32>(getRun(getParagraph(14), 1), "CharBackColor")); - - // test \highlight15 = light gray - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xC0C0C0), getProperty<sal_uInt32>(getRun(getParagraph(15), 1), "CharBackColor")); - - // test \highlight1 = black - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x000000), getProperty<sal_uInt32>(getRun(getParagraph(16), 1), "CharBackColor")); -} - DECLARE_RTFIMPORT_TEST(testFdo50665, "fdo50665.rtf") { // Access the second run, which is a textfield @@ -1211,8 +1158,7 @@ DECLARE_RTFIMPORT_TEST(testFdo61909, "fdo61909.rtf") uno::Reference<text::XTextRange> xTextRange = getRun(getParagraph(1), 1); // Was the Writer default font. CPPUNIT_ASSERT_EQUAL(OUString("Courier New"), getProperty<OUString>(xTextRange, "CharFontName")); - // It is white (0xFFFFFF) in document - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFFFFFF), getProperty<sal_uInt32>(xTextRange, "CharBackColor")); + CPPUNIT_ASSERT_EQUAL(COL_AUTO, getProperty<sal_uInt32>(xTextRange, "CharBackColor")); } DECLARE_RTFIMPORT_TEST(testFdo62288, "fdo62288.rtf") diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx index d65c450..256eb46 100644 --- a/sw/source/filter/ww8/rtfattributeoutput.cxx +++ b/sw/source/filter/ww8/rtfattributeoutput.cxx @@ -2302,7 +2302,7 @@ void RtfAttributeOutput::CharBackground(const SvxBrushItem& rBrush) { if (!rBrush.GetColor().GetTransparency()) { - m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HIGHLIGHT); + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CHCBPAT); m_aStyles.append((sal_Int32)m_rExport.GetColor(rBrush.GetColor())); } } @@ -2467,6 +2467,15 @@ void RtfAttributeOutput::CharBorder(const SvxBorderLine* pAllBorder, const sal_u m_aStyles.append(OutBorderLine(m_rExport, pAllBorder, OOO_STRING_SVTOOLS_RTF_CHBRDR, nDist, bShadow ? SVX_SHADOW_BOTTOMRIGHT : SVX_SHADOW_NONE)); } +void RtfAttributeOutput::CharHighlight(const SvxBrushItem& rBrush) +{ + if (!rBrush.GetColor().GetTransparency()) + { + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HIGHLIGHT); + m_aStyles.append((sal_Int32)m_rExport.GetColor(rBrush.GetColor())); + } +} + void RtfAttributeOutput::TextINetFormat(const SwFmtINetFmt& rURL) { if (!rURL.GetValue().isEmpty()) diff --git a/sw/source/filter/ww8/rtfattributeoutput.hxx b/sw/source/filter/ww8/rtfattributeoutput.hxx index a056849..b63ab3c 100644 --- a/sw/source/filter/ww8/rtfattributeoutput.hxx +++ b/sw/source/filter/ww8/rtfattributeoutput.hxx @@ -328,7 +328,7 @@ protected: virtual void CharBorder(const ::editeng::SvxBorderLine* pAllBorder, const sal_uInt16 nDist, const bool bShadow) SAL_OVERRIDE; /// Sfx item RES_CHRATR_HIGHLIGHT - virtual void CharHighlight(const SvxBrushItem&) SAL_OVERRIDE {}; + virtual void CharHighlight(const SvxBrushItem&) SAL_OVERRIDE; /// Sfx item RES_TXTATR_INETFMT virtual void TextINetFormat(const SwFmtINetFmt&) SAL_OVERRIDE; diff --git a/sw/source/filter/ww8/rtfexport.cxx b/sw/source/filter/ww8/rtfexport.cxx index a8b991b..8b1ae6d 100644 --- a/sw/source/filter/ww8/rtfexport.cxx +++ b/sw/source/filter/ww8/rtfexport.cxx @@ -976,7 +976,7 @@ void RtfExport::OutColorTable() // background color static const sal_uInt16 aBrushIds[] = { - RES_BACKGROUND, RES_CHRATR_BACKGROUND, 0 + RES_BACKGROUND, RES_CHRATR_BACKGROUND, RES_CHRATR_HIGHLIGHT, 0 }; for (const sal_uInt16* pIds = aBrushIds; *pIds; ++pIds) diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 6ac1ef2..588b24c 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -102,7 +102,7 @@ LoggedProperties(dmapper_logger, "DomainMapper"), LoggedTable(dmapper_logger, "DomainMapper"), LoggedStream(dmapper_logger, "DomainMapper"), m_pImpl( new DomainMapper_Impl( *this, xContext, xModel, eDocumentType, xInsertTextRange, !rMediaDesc.getUnpackedValueOrDefault("InsertMode", false))), - mnBackgroundColor(0), mbIsHighlightSet(false), mbIsSplitPara(false) + mbIsSplitPara(false) { // #i24363# tab stops relative to indent m_pImpl->SetDocumentSettingsProperty( @@ -1412,13 +1412,18 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext ) break; case NS_ooxml::LN_EG_RPrBase_highlight: { - sal_Int32 nColor = 0; - if( (mbIsHighlightSet = getColorFromId(nIntValue, nColor)) ) - rContext->Insert(PROP_CHAR_HIGHLIGHT, uno::makeAny( nColor )); - else if (mnBackgroundColor) - rContext->Insert(PROP_CHAR_BACK_COLOR, uno::makeAny( mnBackgroundColor )); - else - rContext->Insert(PROP_CHAR_BACK_COLOR, uno::makeAny( nIntValue )); + // OOXML import uses an ID + if( IsOOXMLImport() ) + { + sal_Int32 nColor = 0; + if( getColorFromId(nIntValue, nColor) ) + rContext->Insert(PROP_CHAR_HIGHLIGHT, uno::makeAny( nColor )); + } + // RTF import uses the actual color value + else if( IsRTFImport() ) + { + rContext->Insert(PROP_CHAR_HIGHLIGHT, uno::makeAny( nIntValue )); + } } break; case NS_ooxml::LN_EG_RPrBase_em: diff --git a/writerfilter/source/dmapper/DomainMapper.hxx b/writerfilter/source/dmapper/DomainMapper.hxx index 2c20658..08c295b 100644 --- a/writerfilter/source/dmapper/DomainMapper.hxx +++ b/writerfilter/source/dmapper/DomainMapper.hxx @@ -170,8 +170,6 @@ private: OUString getBracketStringFromEnum(const sal_Int32 nIntValue, const bool bIsPrefix = true); com::sun::star::style::TabAlign getTabAlignFromValue(const sal_Int32 nIntValue); sal_Unicode getFillCharFromValue(const sal_Int32 nIntValue); - sal_Int32 mnBackgroundColor; - bool mbIsHighlightSet; bool mbIsSplitPara; boost::scoped_ptr< GraphicZOrderHelper > zOrderHelper; }; commit 7e1739ca5d973a3534304afadb21edbcd1cc5fef Author: Zolnai Tamás <zolnaitamas2...@gmail.com> Date: Sat Feb 21 10:14:26 2015 +0100 Char highlight: enable DOCX import Change-Id: Ifde33d53198306eac845db6c269d337fa051f6ab diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx index b5e3ff4..0036db9 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx @@ -469,7 +469,7 @@ DECLARE_OOXMLEXPORT_TEST(testSmartart, "smartart.docx") CPPUNIT_ASSERT_EQUAL(OUString("RenderedShapes"), nValue); // Rendered bitmap has the proper name } -/* + DECLARE_OOXMLEXPORT_TEST(testCharHighlight, "char_highlight.docx") { const uno::Reference< text::XTextRange > xPara = getParagraph(1); @@ -516,7 +516,7 @@ DECLARE_OOXMLEXPORT_TEST(testCharHighlight, "char_highlight.docx") CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000ff), getProperty<sal_Int32>(xRun,"CharBackColor")); } } -*/ + DECLARE_OOXMLEXPORT_TEST(testFontNameIsEmpty, "font-name-is-empty.docx") { diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 4e2bf14..6ac1ef2 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1414,7 +1414,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext ) { sal_Int32 nColor = 0; if( (mbIsHighlightSet = getColorFromId(nIntValue, nColor)) ) - rContext->Insert(PROP_CHAR_BACK_COLOR, uno::makeAny( nColor )); + rContext->Insert(PROP_CHAR_HIGHLIGHT, uno::makeAny( nColor )); else if (mnBackgroundColor) rContext->Insert(PROP_CHAR_BACK_COLOR, uno::makeAny( mnBackgroundColor )); else
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits