forked from qt-creator/qt-creator
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:
@@ -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;
|
||||||
|
Reference in New Issue
Block a user