From d64b5cc1c3d232ba42479fe0a3c186ecabd25144 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Mon, 8 Apr 2013 17:40:32 -0400 Subject: [PATCH] fdo#62116: Be sure to convert relative URLs into absolute ones. Just to preserve the old (and correct) behavior. Change-Id: I229e0b80097f6d70ff3023072b52576815010b15 --- editeng/inc/editeng/editobj.hxx | 2 ++ editeng/source/editeng/editobj.cxx | 40 ++++++++++++++++++++++++ editeng/source/editeng/editobj2.hxx | 2 ++ sc/qa/unit/data/ods/rich-text-cells.ods | Bin 17572 -> 18264 bytes sc/qa/unit/subsequent_filters-test.cxx | 10 ++++++ sc/source/filter/xml/xmlcelli.cxx | 3 +- 6 files changed, 56 insertions(+), 1 deletion(-) diff --git a/editeng/inc/editeng/editobj.hxx b/editeng/inc/editeng/editobj.hxx index 93a590c0a784..16bc0be626e5 100644 --- a/editeng/inc/editeng/editobj.hxx +++ b/editeng/inc/editeng/editobj.hxx @@ -39,6 +39,7 @@ DBG_NAMEEX( EE_EditTextObject ) class SfxItemPool; class SfxStyleSheetPool; class SvxFieldItem; +class SvxFieldData; namespace editeng { @@ -99,6 +100,7 @@ public: bool IsFieldObject() const; const SvxFieldItem* GetField() const; + const SvxFieldData* GetFieldData(size_t nPara, size_t nPos, sal_Int32 nType) const; bool HasField( sal_Int32 nType = com::sun::star::text::textfield::Type::UNSPECIFIED ) const; const SfxItemSet& GetParaAttribs(size_t nPara) const; diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx index 0433ea5aa195..823139622d44 100644 --- a/editeng/source/editeng/editobj.cxx +++ b/editeng/source/editeng/editobj.cxx @@ -256,6 +256,11 @@ const SvxFieldItem* EditTextObject::GetField() const return mpImpl->GetField(); } +const SvxFieldData* EditTextObject::GetFieldData(size_t nPara, size_t nPos, sal_Int32 nType) const +{ + return mpImpl->GetFieldData(nPara, nPos, nType); +} + bool EditTextObject::HasField( sal_Int32 nType ) const { return mpImpl->HasField(nType); @@ -703,6 +708,41 @@ const SvxFieldItem* EditTextObjectImpl::GetField() const return 0; } +const SvxFieldData* EditTextObjectImpl::GetFieldData(size_t nPara, size_t nPos, sal_Int32 nType) const +{ + if (nPara >= aContents.size()) + return NULL; + + const ContentInfo& rC = aContents[nPara]; + if (nPos >= rC.aAttribs.size()) + // URL position is out-of-bound. + return NULL; + + ContentInfo::XEditAttributesType::const_iterator it = rC.aAttribs.begin(), itEnd = rC.aAttribs.end(); + size_t nCurPos = 0; + for (; it != itEnd; ++it) + { + const XEditAttribute& rAttr = *it; + if (rAttr.GetItem()->Which() != EE_FEATURE_FIELD) + // Skip attributes that are not fields. + continue; + + const SvxFieldItem* pField = static_cast(rAttr.GetItem()); + const SvxFieldData* pFldData = pField->GetField(); + if (nType != text::textfield::Type::UNSPECIFIED && nType != pFldData->GetClassId()) + // Field type doesn't match. Skip it. UNSPECIFIED matches all field types. + continue; + + if (nCurPos == nPos) + // Found it! + return pFldData; + + ++nCurPos; + } + + return NULL; // field not found. +} + bool EditTextObjectImpl::HasField( sal_Int32 nType ) const { size_t nParagraphs = aContents.size(); diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx index 5c5905023887..c1aa77ffc58d 100644 --- a/editeng/source/editeng/editobj2.hxx +++ b/editeng/source/editeng/editobj2.hxx @@ -221,6 +221,8 @@ public: bool IsFieldObject() const; const SvxFieldItem* GetField() const; + const SvxFieldData* GetFieldData(size_t nPara, size_t nPos, sal_Int32 nType) const; + bool HasField( sal_Int32 nType = com::sun::star::text::textfield::Type::UNSPECIFIED ) const; const SfxItemSet& GetParaAttribs(size_t nPara) const; diff --git a/sc/qa/unit/data/ods/rich-text-cells.ods b/sc/qa/unit/data/ods/rich-text-cells.ods index a869b0be873aceb6c51aeecdb597a48a59ed8ee8..da3a1edcada3224ea35b560214756eb253292097 100644 GIT binary patch literal 18264 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 literal 17572 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

|;z73LF<+vATv1XOt*1`>j&8_@I^?pf@2RbXJ zc3Qk<>q>wf6UGn~FLU7tK`(A{PM&}JfPGiVEAzt_SHzTweE9fh=v%adHOdjxZ?)8S zoP)*T%^Z=-@@6vJa4)UOv}`{L`qBSc_&B|#(6HP66F55Wkh#PJV1G{J*~sTo_;K`gCg#H^#m^r3!|=d*jbe*&BeL~hiF*{IgA_eGFK0y#;l3F zS1K`{{-a87UiDD{!F=S3mh)0!PUQNMX%Cx;Or++Frgziy>-{nQCiW@8j~G?pdXuh4 zJQA5wmtSHQDe8aH%yyAeD6}=qKwRDwd5Ti($afy!2f;rK04)<;K_6hlXh9TAl>&k>Svvz7x>;L%VR2ZIS! zeBq$p=h$O1_;3z)SIue?WOo)A6Jg6yG2-Ri0X$)7%vs}%ez-hw9XxT(AFEEa9l8lr zT44F!=K0z`z2dizoDSBJ6SCv<7%p=S?=oeHYaq!#;aa>Bl{HA&R?{?omG3EK@My}c z)c3U$fvX0mojMeTL>=wNHNVn3cAtDZb(F$qCo^RA_v36|rd~bX*mos)#&BEeULN%Q z+IE>WY7}X0lU(9jlG8EENjH;~g7uZMS1ybFVaE8H=YT-#oLNDyBYRk=1@glfC!yO9 z(ddU&hb>VZ*wP~ZF5NVWP4v%%4{DOe)b__%gYU*x!^x}HaL8zkxBI&S`QD9b-)P1z ze~8iIE8HAzs-R2{jI%?IelfLX5b!6Oy|Byb%T0^QV z-1R{Ce%e1FT`ALd@Ka9|(O5tQ@#6}^MtQ?|stgl0)S$}IVH|?Cx2d47p8XGGqo=sG zZ%XuozP8+edwz)3kW+6AjUYGaW6W`iX z@|@H_;%$D^OL%AGnzHyf<*xOl zMj?#Yf>MyKPLFw&BejY$!=kd$Z)X{6c$6t?Of#5-{@9EbL zo6MmqO5(|sy_aF+5}x#2xfJ#3FZ0qJwV$e~ZiZs**4cdT9BDP^lLaTP;$vqHRv4R} zylaAMEKtY9!wzc$cQNkF-XaZGg<0dnHm|||IwURtk`bW$&A>1 zP3Lz~UYj0dI^U_IJ?iPRLtW6G5J8c6b&`lN@9_C^&?TknxVs#$Yb6hqHsR~I@YxXM zTT)sYGX87g%amD5oE29GCppM? zyz6inIEF0ha{4Iak#;VRa(>I}=-hSBjmys}JmmX+1We7?jGxLRK&p?&+{Hvu!eUFT ztZ9aZ#*mqT5Tue%p#WYM)0yyg5|QeYzAGv<*trfAAK|R{rtOmP#xV+oN0x0mhPFsj zS;lMI_KVE!JJN*fkhBBo7EUR1!y+gY5xmL@ik()Dd*T`YJTWKe>Dq zJ%7c{|5H6g9RGE3f5p=OUe61f{&Rf#8$CAv30wbrO)oh4&k_AMn*PMv|5Gj9f1~A3 z?EOF0^6)oW{>0+{(DM7dysY3ipngH)e-0MT|GLNj2Alu3%HK-=>MUQd_@5&bQ2Hk_ n|5v%cx`P*2`sV-__&1JKUK$GU${^4y;ENq-nN|^e`R)Gzx@TSj diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index ff09d2759fe1..d89d95d9de64 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -48,6 +48,7 @@ #include #include #include +#include "editeng/flditem.hxx" #include #include "validat.hxx" #include "formulacell.hxx" @@ -1757,6 +1758,15 @@ void ScFiltersTest::testRichTextContentODS() CPPUNIT_ASSERT_MESSAGE("Failed to retrieve edit text object.", pEditText); CPPUNIT_ASSERT_MESSAGE("Date field item not found.", pEditText->HasField(text::textfield::Type::DOCINFO_TITLE)); + // URL for a file in the same directory. It should be converted into an absolute URL on import. + aPos.IncRow(); + pEditText = pDoc->GetEditText(aPos); + CPPUNIT_ASSERT_MESSAGE("Failed to retrieve edit text object.", pEditText); + const SvxFieldData* pData = pEditText->GetFieldData(0, 0, text::textfield::Type::URL); + CPPUNIT_ASSERT_MESSAGE("Failed to get the URL data.", pData && pData->GetClassId() == text::textfield::Type::URL); + const SvxURLField* pURLData = static_cast(pData); + CPPUNIT_ASSERT_MESSAGE("URL is not absolute with respect to the file system.", pURLData->GetURL().startsWith("file:///")); + xDocSh->DoClose(); } diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx index 5f4acb9bc8fb..b97a2458cc6c 100644 --- a/sc/source/filter/xml/xmlcelli.cxx +++ b/sc/source/filter/xml/xmlcelli.cxx @@ -598,7 +598,8 @@ void ScXMLTableRowCellContext::PushParagraphFieldDocTitle(const OUString& rStyle void ScXMLTableRowCellContext::PushParagraphFieldURL( const OUString& rURL, const OUString& rRep, const OUString& rStyleName) { - PushParagraphField(new SvxURLField(rURL, rRep, SVXURLFORMAT_REPR), rStyleName); + OUString aAbsURL = GetScImport().GetAbsoluteReference(rURL); + PushParagraphField(new SvxURLField(aAbsURL, rRep, SVXURLFORMAT_REPR), rStyleName); } void ScXMLTableRowCellContext::PushParagraphEnd()