summaryrefslogtreecommitdiffstats
path: root/src/definition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/definition.cpp')
-rw-r--r--src/definition.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/definition.cpp b/src/definition.cpp
index 46d66a9..3f1ff1b 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -620,6 +620,28 @@ void Definition::setRefItems(const QList<ListItemInfo> *sli)
}
}
+void Definition::mergeRefItems(Definition *d)
+{
+ if (d->specialListItems())
+ {
+ // deep copy the list
+ if (m_specialListItems==0)
+ {
+ m_specialListItems=new QList<ListItemInfo>;
+ m_specialListItems->setAutoDelete(TRUE);
+ }
+ QListIterator<ListItemInfo> slii(*d->specialListItems());
+ ListItemInfo *lii;
+ for (slii.toFirst();(lii=slii.current());++slii)
+ {
+ if (getSpecialListId(lii->type)==-1)
+ {
+ m_specialListItems->append(new ListItemInfo(*lii));
+ }
+ }
+ }
+}
+
int Definition::getSpecialListId(const char *listName) const
{
if (m_specialListItems)