MiniProjectTargetSelector: Natural sorting of entries

Change-Id: Ibad929d1423d964204b4b236e1cc4df7e0614889
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Alexander Pershin
2023-05-20 01:25:41 +03:00
parent 3dcdbe9069
commit db1d12f69a

View File

@@ -32,6 +32,7 @@
#include <coreplugin/modemanager.h> #include <coreplugin/modemanager.h>
#include <QAction> #include <QAction>
#include <QCollator>
#include <QGuiApplication> #include <QGuiApplication>
#include <QItemDelegate> #include <QItemDelegate>
#include <QKeyEvent> #include <QKeyEvent>
@@ -141,8 +142,15 @@ private:
static bool compareItems(const TreeItem *ti1, const TreeItem *ti2) static bool compareItems(const TreeItem *ti1, const TreeItem *ti2)
{ {
const int result = caseFriendlyCompare(static_cast<const GenericItem *>(ti1)->rawDisplayName(), static const QCollator collator = [] {
static_cast<const GenericItem *>(ti2)->rawDisplayName()); QCollator collator;
collator.setNumericMode(true);
collator.setCaseSensitivity(Qt::CaseInsensitive);
return collator;
}();
const int result = collator.compare(static_cast<const GenericItem *>(ti1)->rawDisplayName(),
static_cast<const GenericItem *>(ti2)->rawDisplayName());
if (result != 0) if (result != 0)
return result < 0; return result < 0;
return ti1 < ti2; return ti1 < ti2;