sw/qa/extras/ooxmlexport/data/fdo81341.docx |binary sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx | 17 +++++++++++++++++ sw/source/core/fields/docufld.cxx | 4 +++- sw/source/filter/ww8/ww8atr.cxx | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-)
New commits: commit b38b124b64b7a1f6529799552f6e89360edd8280 Author: Pallavi Jadhav <pallavi.jad...@synerzip.com> Date: Thu Jul 31 10:48:59 2014 +0530 fdo#81341 : DOCX: EditTime is not geting preserved after RT Issue : - LO was not able to Import EditTime field in "HH:MM:SS" format. - LO was Importing it as "HH:MM" format. - In getTime() third parameter is passed as "false" which is bSec. Because of which LO was not able to Import EditTime in seconds. Implementation : - Added code to check value of Seconds > 0. - Added code at Export side to write "EDITTIME" field. - Added Unit test case at Export side. Because of which LO was not able to Import EditTime in seconds. Reviewed on: https://gerrit.libreoffice.org/10655 Change-Id: Ic740dc30d79be594dec9a0a05e407a7cb1a5941e diff --git a/sw/qa/extras/ooxmlexport/data/fdo81341.docx b/sw/qa/extras/ooxmlexport/data/fdo81341.docx new file mode 100644 index 0000000..3c243c0 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo81341.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx index 0df24fb..36ae02b 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx @@ -565,6 +565,23 @@ DECLARE_OOXMLEXPORT_TEST(testFdo81492, "fdo81492.docx") assertXPathContent(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[5]/w:instrText", "ADDIN EN.CITE.DATA"); } +DECLARE_OOXMLEXPORT_TEST(testEditTime, "fdo81341.docx") +{ + /* Issue was LO was not able to Import and Export EditTime in seconds format. + * It was supporting Time in "HH:MM" format. But if DOCX conatins Time in seconds, + * then LO was not able to display time in "HH:MM:SS" format. + * While exporting LO was writing plian text instead of field entry. + */ + if (xmlDocPtr pXmlDoc = parseExport("word/document.xml")) + { + //Ensure that EditTime is written inside w:fldChar in "HH:MM:SS" format. + assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[1]/w:fldChar", "fldCharType", "begin"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[3]/w:fldChar", "fldCharType", "separate"); + assertXPathContent(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:t", "00:00:05"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:fldChar", "fldCharType", "end"); + } +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index d03730a..c18cb0f 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -898,8 +898,10 @@ OUString SwDocInfoFieldType::Expand( sal_uInt16 nSub, sal_uInt32 nFormat, { lcl_GetLocalDataWrapper( nLang, &pAppLocalData, &pLocalData ); sal_Int32 dur = xDocProps->getEditingDuration(); + // If Seconds > 0 then bSec should be TRUE otherwise Seconds + // information will be lost if file has EditTime in Seconds format. aStr = pLocalData->getTime( Time(dur/3600, (dur%3600)/60, dur%60), - false, false); + (dur%60 > 0 ? true : false), false); } else { diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index e831bf7..78fe92e 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -2822,6 +2822,8 @@ void AttributeOutputBase::TextField( const SwFmtFld& rField ) if( DI_SUB_AUTHOR != (nSubType & DI_SUB_MASK ) && GetExport().GetNumberFmt( *pFld, sStr )) eFld = ww::eSAVEDATE; + else + eFld = ww::eEDITTIME; break; case DI_CUSTOM: eFld = ww::eDOCPROPERTY; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits