summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp b/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp
index af9da8f..8153fed 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp
@@ -77,6 +77,8 @@ void DbListModel::setSortMode(const QString& sortMode)
this->sortMode = SortMode::LikeDbTree;
else if (sortMode == "Alphabetical")
this->sortMode = SortMode::Alphabetical;
+ else if (sortMode == "AlphabeticalCaseInsensitive")
+ this->sortMode = SortMode::AlphabeticalCaseInsensitive;
else
this->sortMode = SortMode::ConnectionOrder;
@@ -91,6 +93,8 @@ QString DbListModel::getSortModeString() const
return "LikeDbTree";
case DbListModel::SortMode::Alphabetical:
return "Alphabetical";
+ case DbListModel::SortMode::AlphabeticalCaseInsensitive:
+ return "AlphabeticalCaseInsensitive";
case DbListModel::SortMode::ConnectionOrder:
break;
}
@@ -119,6 +123,12 @@ void DbListModel::sort()
qSort(dbList.begin(), dbList.end(), comparer);
break;
}
+ case DbListModel::SortMode::AlphabeticalCaseInsensitive:
+ {
+ AlphaComparer comparer(Qt::CaseInsensitive);
+ qSort(dbList.begin(), dbList.end(), comparer);
+ break;
+ }
case DbListModel::SortMode::ConnectionOrder:
break;
}
@@ -183,7 +193,12 @@ bool DbListModel::DbTreeComparer::operator()(Db* db1, Db* db2)
return dbTreeOrder.indexOf(db1->getName()) < dbTreeOrder.indexOf(db2->getName());
}
+DbListModel::AlphaComparer::AlphaComparer(Qt::CaseSensitivity cs) :
+ cs(cs)
+{
+}
+
bool DbListModel::AlphaComparer::operator()(Db* db1, Db* db2)
{
- return db1->getName().compare(db2->getName()) < 0;
+ return db1->getName().compare(db2->getName(), cs) < 0;
}