if self.sortOrder == Qt.AscendingOrder: lo = 0 hi = self.ui.resultsList.topLevelItemCount() if hi != 0 and not self.ui.resultsList.topLevelItem(0).__lt__(result): hi = 0 while (True): mid = (hi + lo)/2 if mid == lo: break if self.ui.resultsList.topLevelItem(mid).__lt__(result): lo = mid else: hi = mid self.ui.resultsList.insertTopLevelItem(hi, result) else: cnt = self.ui.resultsList.topLevelItemCount() lo = 0 hi = cnt if hi != 0 and not self.ui.resultsList.topLevelItem(cnt - 1).__lt__(result): hi = 0 while True: mid = (hi + lo)/2 if mid == lo: break if self.ui.resultsList.topLevelItem(cnt - 1 - mid).__lt__(result): lo = mid else: hi = mid self.ui.resultsList.insertTopLevelItem(cnt - hi, result)