diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-06-16 13:21:38 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-06-16 14:47:07 +0200 |
commit | ae85b56a9a18657a57fd5033faff34e7ee4ff2f8 (patch) | |
tree | d62b2af7172b2119637a540ab448e6171aca5af3 | |
parent | 01bc38ac11fe791474fdffd763534851308d86ab (diff) |
Import/export RTF_REVISIONS
File -> Properties -> Security -> Record Changes on the UI.
Change-Id: I96d321f407abd33e15a4a133e6723d48efa5bc53
-rw-r--r-- | sw/qa/extras/rtfexport/data/record-changes.rtf | 3 | ||||
-rw-r--r-- | sw/qa/extras/rtfexport/rtfexport.cxx | 8 | ||||
-rw-r--r-- | sw/source/filter/ww8/rtfexport.cxx | 3 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 3 |
4 files changed, 17 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfexport/data/record-changes.rtf b/sw/qa/extras/rtfexport/data/record-changes.rtf new file mode 100644 index 000000000000..c970891a1bfd --- /dev/null +++ b/sw/qa/extras/rtfexport/data/record-changes.rtf @@ -0,0 +1,3 @@ +{\rtf1\revisions +hello +\par } diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index 0605b82cb18d..7de0a4bdf68a 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -61,12 +61,13 @@ public: void testMnor(); void testI120928(); void testBookmark(); void testHyperlink(); void testTextFrameBorders(); void testTextframeGradient(); + void testRecordChanges(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) CPPUNIT_TEST(run); #endif CPPUNIT_TEST_SUITE_END(); @@ -114,12 +115,13 @@ void Test::run() {"mnor.rtf", &Test::testMnor}, {"i120928.rtf", &Test::testI120928}, {"bookmark.rtf", &Test::testBookmark}, {"hyperlink.rtf", &Test::testHyperlink}, {"textframe-borders.rtf", &Test::testTextFrameBorders}, {"textframe-gradient.rtf", &Test::testTextframeGradient}, + {"record-changes.rtf", &Test::testRecordChanges}, }; // Don't test the first import of these, for some reason those tests fail const char* aBlacklist[] = { "math-eqarray.rtf", "math-escaping.rtf", "math-lim.rtf", @@ -581,11 +583,17 @@ void Test::testTextframeGradient() aGradient = getProperty<awt::Gradient>(xFrame, "FillGradient"); CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), aGradient.StartColor); CPPUNIT_ASSERT_EQUAL(sal_Int32(0x666666), aGradient.EndColor); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_AXIAL, aGradient.Style); } +void Test::testRecordChanges() +{ + // \revisions wasn't imported/exported. + CPPUNIT_ASSERT_EQUAL(true, getProperty<bool>(mxComponent, "RecordChanges")); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/ww8/rtfexport.cxx b/sw/source/filter/ww8/rtfexport.cxx index c98b78020505..a766e348b8ee 100644 --- a/sw/source/filter/ww8/rtfexport.cxx +++ b/sw/source/filter/ww8/rtfexport.cxx @@ -512,12 +512,15 @@ void RtfExport::ExportDocument_Impl() ViewShell *pViewShell(pDoc->GetCurrentViewShell()); if (pViewShell && pViewShell->GetViewOptions()->GetZoomType() == SVX_ZOOM_PERCENT) { Strm() << OOO_STRING_SVTOOLS_RTF_VIEWSCALE; OutULong(pViewShell->GetViewOptions()->GetZoom()); } + // Record changes? + if (nsRedlineMode_t::REDLINE_ON & mnRedlineMode) + Strm() << OOO_STRING_SVTOOLS_RTF_REVISIONS; // Page description WritePageDescTable(); // Enable form protection by default if needed, as there is no switch to // enable it on a per-section basis. OTOH don't always enable it as it // breaks moving of drawings - so write it only in case there is really a diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index a2bf11e53b00..8bd05dc5d2b8 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2652,12 +2652,15 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) case RTF_NOWRAP: m_aStates.top().aFrame.setSprm(NS_sprm::LN_PWr, NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_notBeside); break; case RTF_MNOR: m_bMathNor = true; break; + case RTF_REVISIONS: + m_aSettingsTableSprms.set(NS_ooxml::LN_CT_Settings_trackRevisions, RTFValue::Pointer_t(new RTFValue(1))); + break; default: { SAL_INFO("writerfilter", "TODO handle flag '" << lcl_RtfToString(nKeyword) << "'"); aSkip.setParsed(false); } break; |