#include "UmlItem.h" #include "UmlCom.h" UmlItem::~UmlItem() { } void UmlItem::sort() { UmlCom::trace("target not allowed, must be a package, any view or a use case"); } int UmlItem::orderWeight() { return 0; } void UmlItem::sortChildren() { const QVector & qv = children(); if (!qv.isEmpty()) { unsigned sz = qv.size(); VectorOfUmlItem v; unsigned u; // copy v.resize(sz); for (u = 0; u != sz; u += 1) v.insert(u, qv[u]); // sort in memory v.sort(); // update browser UmlItem * previous = 0; for (u = 0; u != sz; u += 1) { v[u]->moveAfter(previous); previous = v[u]; } } } int VectorOfUmlItem::compareItems(QCollection::Item d1, QCollection::Item d2) { UmlItem * e1 = (UmlItem *) d1; UmlItem * e2 = (UmlItem *) d2; int w1 = e1->orderWeight(); int w2 = e2->orderWeight(); if (w1 != w2) return w1 - w2; else if (e1->name() > (const char *) e2->name()) return 1; else if (e1->name() < (const char *) e2->name()) return -1; else return 0; }