summaryrefslogtreecommitdiffstats
path: root/editeng
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2013-01-08 01:20:22 -0500
committerKohei Yoshida <kohei.yoshida@gmail.com>2013-01-08 09:21:11 -0500
commit94874973769fee81f8ab35b2aeb0dc22812a2b48 (patch)
treefe49d0ed7b71b76fcef49bf6d1dffac920a4c3b9 /editeng
parentn#793998 testcase (diff)
downloadcore-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.hxx1
-rw-r--r--editeng/source/editeng/editobj.cxx21
-rw-r--r--editeng/source/editeng/editobj2.hxx1
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);