]> git.lyx.org Git - features.git/commitdiff
Fix deprecation warnings from use of qSort()
authorScott Kostyshak <skostysh@lyx.org>
Thu, 5 Mar 2020 16:35:49 +0000 (11:35 -0500)
committerScott Kostyshak <skostysh@lyx.org>
Thu, 5 Mar 2020 17:44:39 +0000 (12:44 -0500)
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

src/frontends/qt/GuiBox.cpp
src/frontends/qt/GuiCharacter.cpp
src/frontends/qt/GuiExternal.cpp
src/frontends/qt/GuiPrefs.cpp
src/frontends/qt/GuiRef.cpp

index 6a991b5df5063e4fc6a61827c70397038ed76466..67a1b0c52b1d6e86a54e3ee6316ac4ace039bd89 100644 (file)
@@ -155,7 +155,7 @@ GuiBox::GuiBox(QWidget * parent) : InsetParamsWidget(parent)
 
        // 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);
 
index 59b7ca3f0e50074d3d79fd11b3452fcec5c91947..f06119a11ca55c41e74487d28b6b92433e77bc0e 100644 (file)
@@ -237,7 +237,7 @@ GuiCharacter::GuiCharacter(GuiView & lv)
        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"));
index 7be6be0954a69e49f330522003ee9bf7b00fc34d..d850c2d8a5b8d9f1e4a3029086ca9b49be1740a1 100644 (file)
@@ -206,7 +206,7 @@ GuiExternal::GuiExternal(GuiView & lv)
                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);
index 7d269bc10419bc1872db0fec4fc3922e6ca5a6e9..6b00357446e64aeee90d75ce5534dcf34744a8ef 100644 (file)
@@ -1089,7 +1089,7 @@ PrefColors::PrefColors(GuiPreferences * form)
                        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) {
index 6f3a34258e4527da55441ef36063167d035115b3..7e98e4864ad9efac30ad02fbc35f47bd49141bce 100644 (file)
@@ -490,8 +490,8 @@ void GuiRef::redoRefs()
                }
        }
        // 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>"));
 
@@ -499,10 +499,10 @@ void GuiRef::redoRefs()
                                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;