diff options
-rw-r--r-- | src/definition.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/definition.cpp b/src/definition.cpp index bd97f6d..0bd216b 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -1644,13 +1644,21 @@ void Definition::mergeRefItems(Definition *d) m_impl->xrefListItems->setAutoDelete(TRUE); } QListIterator<ListItemInfo> slii(*xrefList); + QListIterator<ListItemInfo> mlii(*m_impl->xrefListItems); ListItemInfo *lii; + ListItemInfo *mii; for (slii.toFirst();(lii=slii.current());++slii) { - if (_getXRefListId(lii->type)==-1) + bool found = false; + for (mlii.toFirst();(mii=mlii.current());++mlii) { - m_impl->xrefListItems->append(new ListItemInfo(*lii)); + if ((qstrcmp(lii->type,mii->type)==0) && (lii->itemId == mii->itemId)) + { + found = true; + break; + } } + if (!found) m_impl->xrefListItems->append(new ListItemInfo(*lii)); } } } |