This commit replaces qSort with std::sort to fix warnings from compiling with
Qt 5.14.1. Below is one of the warnings:
error: ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<lyx::ColorCode>::iterator; LessT$
an = bool (*)(lyx::ColorCode, lyx::ColorCode)]’ is deprecated: Use std::sort [-Werror=deprecated-declarations]
qSort() has been deprecated since Qt 5.2. Quoting from the ChangeLog [1]:
With STL no longer being optional for building and using Qt, a number of
parts of QtAlgorithms no longer make sense, and have therefore been
deprecated. Replacements are available in the STL, and generally have
much better performance
There are some cases that require more than just a trivial substitution, but
our code does not appear to use any of those cases.
For some discussion on the differences in speed of std::sort() and
qSort(), see the following:
https://phabricator.kde.org/D10857
These are just warnings now, but will likely be errors with Qt 6:
https://bugreports.qt.io/browse/QTBUG-73048
I tested that LyX can still be built against Qt 4.8.7 with this commit.
This commit follows
24926b2e, which also fixes some deprecation warnings.
[1]
https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.2.0/?h=v5.2.0
// the background can be uncolored while the frame cannot
color_codes_ = colors();
- qSort(color_codes_.begin(), color_codes_.end(), ColorSorter);
+ sort(color_codes_.begin(), color_codes_.end(), ColorSorter);
fillComboColor(backgroundColorCO, true);
fillComboColor(frameColorCO, false);
bar = barData();
strike = strikeData();
color = colorData();
- qSort(color.begin(), color.end(), ColorSorter);
+ sort(color.begin(), color.end(), ColorSorter);
language = languageData();
language.prepend(LanguagePair(qt_("Default"), "reset"));
localizedTemplates.insert(qt_(i1->second.guiName), toqstr(i1->second.lyxName));
// Sort alphabetically by (localized) GUI name
QStringList keys = localizedTemplates.keys();
- qSort(keys.begin(), keys.end(), SortLocaleAware);
+ sort(keys.begin(), keys.end(), SortLocaleAware);
for (QString & key : keys) {
QString const value = localizedTemplates[key];
externalCO->addItem(key, value);
continue;
lcolors_.push_back(lc);
}
- qSort(lcolors_.begin(), lcolors_.end(), ColorSorter);
+ sort(lcolors_.begin(), lcolors_.end(), ColorSorter);
vector<ColorCode>::const_iterator cit = lcolors_.begin();
vector<ColorCode>::const_iterator const end = lcolors_.end();
for (; cit != end; ++cit) {
}
}
// sort categories case-intensively
- qSort(refsCategories.begin(), refsCategories.end(),
- caseInsensitiveLessThan /*defined above*/);
+ sort(refsCategories.begin(), refsCategories.end(),
+ caseInsensitiveLessThan /*defined above*/);
if (noprefix)
refsCategories.insert(0, qt_("<No prefix>"));
sortingCO->itemData(sortingCO->currentIndex()).toString()
: QString();
if (sort == "nocase")
- qSort(refsStrings.begin(), refsStrings.end(),
- caseInsensitiveLessThan /*defined above*/);
+ std::sort(refsStrings.begin(), refsStrings.end(),
+ caseInsensitiveLessThan /*defined above*/);
else if (sort == "case")
- qSort(refsStrings.begin(), refsStrings.end());
+ std::sort(refsStrings.begin(), refsStrings.end());
if (groupCB->isChecked()) {
QList<QTreeWidgetItem *> refsCats;