diff options
author | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-01-08 01:20:22 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-01-08 09:21:11 -0500 |
commit | 94874973769fee81f8ab35b2aeb0dc22812a2b48 (patch) | |
tree | fe49d0ed7b71b76fcef49bf6d1dffac920a4c3b9 /editeng | |
parent | n#793998 testcase (diff) | |
download | core-94874973769fee81f8ab35b2aeb0dc22812a2b48.tar.gz core-94874973769fee81f8ab35b2aeb0dc22812a2b48.zip |
Add new ods import test for rich-text cell contents.
Change-Id: I23eb8d53b8a2c48514900a5ab07ed7ec71d3ef99
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/inc/editeng/editobj.hxx | 1 | ||||
-rw-r--r-- | editeng/source/editeng/editobj.cxx | 21 | ||||
-rw-r--r-- | editeng/source/editeng/editobj2.hxx | 1 |
3 files changed, 23 insertions, 0 deletions
diff --git a/editeng/inc/editeng/editobj.hxx b/editeng/inc/editeng/editobj.hxx index 2730b46b166f..8e97b637d838 100644 --- a/editeng/inc/editeng/editobj.hxx +++ b/editeng/inc/editeng/editobj.hxx @@ -102,6 +102,7 @@ public: virtual sal_Bool IsFieldObject() const; virtual const SvxFieldItem* GetField() const; virtual sal_Bool HasField( TypeId aType = NULL ) const; + virtual bool HasField( sal_Int32 nType ) const = 0; virtual SfxItemSet GetParaAttribs(size_t nPara) const; virtual void SetParaAttribs(size_t nPara, const SfxItemSet& rAttribs); diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx index 275aa77c5a47..56effb9686d7 100644 --- a/editeng/source/editeng/editobj.cxx +++ b/editeng/source/editeng/editobj.cxx @@ -878,6 +878,27 @@ sal_Bool BinTextObject::HasField( TypeId aType ) const return false; } +bool BinTextObject::HasField( sal_Int32 nType ) const +{ + size_t nParagraphs = aContents.size(); + for (size_t nPara = 0; nPara < nParagraphs; ++nPara) + { + const ContentInfo& rC = aContents[nPara]; + size_t nAttrs = rC.aAttribs.size(); + for (size_t nAttr = 0; nAttr < nAttrs; ++nAttr) + { + const XEditAttribute& rAttr = rC.aAttribs[nAttr]; + if (rAttr.GetItem()->Which() != EE_FEATURE_FIELD) + continue; + + const SvxFieldData* pFldData = static_cast<const SvxFieldItem*>(rAttr.GetItem())->GetField(); + if (pFldData && pFldData->GetClassId() == nType) + return true; + } + } + return false; +} + SfxItemSet BinTextObject::GetParaAttribs(size_t nPara) const { const ContentInfo& rC = aContents[nPara]; diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx index 4b89ade1a510..52821c0ef822 100644 --- a/editeng/source/editeng/editobj2.hxx +++ b/editeng/source/editeng/editobj2.hxx @@ -233,6 +233,7 @@ public: virtual sal_Bool IsFieldObject() const; virtual const SvxFieldItem* GetField() const; virtual sal_Bool HasField( TypeId Type = NULL ) const; + virtual bool HasField( sal_Int32 nType ) const; virtual SfxItemSet GetParaAttribs(size_t nPara) const; virtual void SetParaAttribs(size_t nPara, const SfxItemSet& rAttribs); |