From 5d9314f134ddd3dc4c853e398ac90ba247fb2e4f Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Mon, 13 Jun 2016 18:42:42 -0400 Subject: Imported Upstream version 3.1.0 --- SQLiteStudio3/coreSQLiteStudio/common/utils.cpp | 43 +++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'SQLiteStudio3/coreSQLiteStudio/common/utils.cpp') diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp index f2b3d1c..6cf1892 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp @@ -11,6 +11,8 @@ #include #include #include +#include +#include #ifdef Q_OS_LINUX #include @@ -214,12 +216,12 @@ qint64 Range::length() const return to - from + 1; } -QString generateUniqueName(const QString &baseName, const QStringList &existingNames) +QString generateUniqueName(const QString& baseName, const QStringList& existingNames, Qt::CaseSensitivity cs) { QString name = baseName; int i = 0; - while (existingNames.contains(name)) - name = baseName+QString::number(i++); + while (existingNames.contains(name, cs)) + name = baseName + QString::number(i++); return name; } @@ -887,3 +889,38 @@ QString decryptRsa(const QString& input, const QString& modulus, const QString& std::string result = RSA::Decrypt(inputStdStr, key); return QString::fromStdString(result); } + +QStringList concat(const QList& list) +{ + QStringList result; + for (const QStringList& item : list) + result.append(item); + + return result; +} + +QString doubleToString(double val) +{ + return QString::number(val, 'g', 16); +} + +void sortWithReferenceList(QList& listToSort, const QList& referenceList, Qt::CaseSensitivity cs) +{ + qSort(listToSort.begin(), listToSort.end(), [referenceList, cs](const QString& s1, const QString& s2) -> bool + { + int idx1 = indexOf(referenceList, s1, cs); + int idx2 = indexOf(referenceList, s2, cs); + if (idx1 == -1 || idx2 == -1) + { + if (idx1 == -1 && idx2 == -1) + return false; + + return (idx1 == -1); + } + + if (idx1 == idx2) + return false; + + return (idx1 > idx2); + }); +} -- cgit v1.2.3