aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:07:47 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:07:47 -0500
commit558b1e35fd0777ac97763c1b28056ac984e583e7 (patch)
tree1eb2557119a117ea76535c89cd14a49e510b96bf /SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
parentc22eb635c11fd45f9c30f911d70e1d79111a49ce (diff)
parent1fdc150116cad39aae5c5da407c3312b47a59e3a (diff)
Update upstream source from tag 'upstream/3.3.3+dfsg1'
Update to upstream version '3.3.3+dfsg1' with Debian dir 9a301fff4922aed2fec0c04c7d011947168c42f1
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/common/utils.cpp')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/common/utils.cpp76
1 files changed, 71 insertions, 5 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
index fd40355..0b95a85 100644
--- a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
@@ -2,6 +2,7 @@
#include "common/global.h"
#include "dbobjecttype.h"
#include "rsa/RSA.h"
+#include "common/compatibility.h"
#include <QTextCodec>
#include <QString>
#include <QSet>
@@ -12,7 +13,9 @@
#include <QRegularExpression>
#include <QDir>
#include <QByteArray>
+#include <QBitArray>
#include <QDataStream>
+#include <QRandomGenerator>
#ifdef Q_OS_LINUX
#include <sys/utsname.h>
@@ -68,7 +71,7 @@ QChar charAt(const QString& str, int pos)
int rand(int min, int max)
{
- return qrand() % (max-min) + min;
+ return QRandomGenerator::system()->generate() % (max-min) + min;
}
QString randStr(int length, bool numChars, bool whiteSpaces)
@@ -414,7 +417,7 @@ QString shortest(const QStringList& strList)
QString longestCommonPart(const QStringList& strList)
{
if (strList.size() == 0)
- return QString::null;
+ return QString();
QString common;
QString first = strList.first();
@@ -626,8 +629,8 @@ QStringList textCodecNames()
for (const QByteArray& codec : codecs)
nameSet << QString::fromLatin1(codec.constData());
- names = nameSet.toList();
- qSort(names);
+ names = nameSet.values();
+ sSort(names);
return names;
}
@@ -975,7 +978,7 @@ QString doubleToString(const QVariant& val)
void sortWithReferenceList(QList<QString>& listToSort, const QList<QString>& referenceList, Qt::CaseSensitivity cs)
{
- qSort(listToSort.begin(), listToSort.end(), [referenceList, cs](const QString& s1, const QString& s2) -> bool
+ sSort(listToSort, [referenceList, cs](const QString& s1, const QString& s2) -> bool
{
int idx1 = indexOf(referenceList, s1, cs);
int idx2 = indexOf(referenceList, s2, cs);
@@ -1031,3 +1034,66 @@ QString readFileContents(const QString& path, QString* err)
return contents;
}
+
+
+uint qHash(const QVariant& var)
+{
+ if (!var.isValid() || var.isNull())
+ return -1;
+
+ switch (var.type())
+ {
+ case QVariant::Int:
+ return qHash(var.toInt());
+ case QVariant::UInt:
+ return qHash(var.toUInt());
+ case QVariant::Bool:
+ return qHash(var.toUInt());
+ case QVariant::Double:
+ return qHash(var.toUInt());
+ case QVariant::LongLong:
+ return qHash(var.toLongLong());
+ case QVariant::ULongLong:
+ return qHash(var.toULongLong());
+ case QVariant::String:
+ return qHash(var.toString());
+ case QVariant::Char:
+ return qHash(var.toChar());
+ case QVariant::StringList:
+ return qHash(var.toString());
+ case QVariant::ByteArray:
+ return qHash(var.toByteArray());
+ case QVariant::Date:
+ case QVariant::Time:
+ case QVariant::DateTime:
+ case QVariant::Url:
+ case QVariant::Locale:
+ case QVariant::RegExp:
+ return qHash(var.toString());
+ case QVariant::Hash:
+ return qHash(var.toHash());
+ case QVariant::Map:
+ return qHash(var.toMap());
+ case QVariant::List:
+ return qHash(var.toList());
+ case QVariant::BitArray:
+ return qHash(var.toBitArray());
+ case QVariant::Size:
+ case QVariant::SizeF:
+ case QVariant::Rect:
+ case QVariant::LineF:
+ case QVariant::Line:
+ case QVariant::RectF:
+ case QVariant::Point:
+ case QVariant::PointF:
+ // not supported yet
+ break;
+ case QVariant::UserType:
+ case QVariant::Invalid:
+ default:
+ return -3;
+ }
+
+ // could not generate a hash for the given variant
+ return -2;
+}