diff options
-rw-r--r-- | Swift/QtUI/Roster/QtTreeWidgetItem.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Swift/QtUI/Roster/QtTreeWidgetItem.cpp b/Swift/QtUI/Roster/QtTreeWidgetItem.cpp index 487dbb6..b237929 100644 --- a/Swift/QtUI/Roster/QtTreeWidgetItem.cpp +++ b/Swift/QtUI/Roster/QtTreeWidgetItem.cpp @@ -121,9 +121,12 @@ void QtTreeWidgetItem::removeChild(QtTreeWidgetItem* child) { } void bubbleSort(QList<QtTreeWidgetItem*>& list) { - for (int i = 0; i < list.size(); i++) { + bool done = true; + for (int i = 0; i < list.size() - 1 && !done; i++) { + done = true; for (int j = i + 1; j < list.size(); j++) { if (*(list[j]) < *(list[j - 1])) { + done = false; QtTreeWidgetItem* lower = list[j]; list[j] = list[j - 1]; list[j - 1] = lower; @@ -135,7 +138,7 @@ void bubbleSort(QList<QtTreeWidgetItem*>& list) { void QtTreeWidgetItem::handleChanged(QtTreeWidgetItem* child) { /*We don't use the much faster qStableSort because it causes changed(child) and all sorts of nasty recursion*/ //qStableSort(children_.begin(), children_.end(), itemLessThan); - //bubbleSort(children_); + bubbleSort(children_); shownChildren_.clear(); for (int i = 0; i < children_.size(); i++) { if (children_[i]->isShown()) { |