summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx')
-rw-r--r--lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx b/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
index b64ad72721a4..14aaea9515df 100644
--- a/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
+++ b/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
@@ -80,6 +80,24 @@ void XFContentContainer::Add(const OUString& text)
Add(xTC.get());
}
+bool XFContentContainer::HierarchyContains(const XFContent *pContent) const
+{
+ if (pContent == this)
+ return true;
+
+ for (int i = 0, nCount = GetCount(); i < nCount; i++)
+ {
+ rtl::Reference<XFContent> xContent = GetContent(i);
+ if (xContent.get() == pContent)
+ return true;
+ const XFContentContainer *pChildCont = dynamic_cast<const XFContentContainer*>(xContent.get());
+ if (pChildCont && pChildCont->HierarchyContains(pContent))
+ return true;
+ }
+
+ return false;
+}
+
int XFContentContainer::GetCount() const
{
return m_aContents.size();