1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-06-26 19:19:16 +02:00

Improve SQLite-based maps error reporting

This commit is contained in:
2023-04-25 22:52:55 +02:00
parent 1d589e25d8
commit 8cea06f2ad
6 changed files with 41 additions and 3 deletions

View File

@ -10,6 +10,7 @@
#endif // Q_OS_ANDROID
#include "util.h"
#define SQLITE_DB_MAGIC "SQLite format 3"
#ifdef Q_OS_ANDROID
static QString documentName(const QString &path)
@ -156,3 +157,21 @@ const QTemporaryDir &Util::tempDir()
static QTemporaryDir dir;
return dir;
}
bool Util::isSQLiteDB(const QString &path, QString &errorString)
{
QFile file(path);
char magic[sizeof(SQLITE_DB_MAGIC)];
if (!file.open(QFile::ReadOnly)) {
errorString = file.errorString();
return false;
}
if ((file.read(magic, sizeof(magic)) < (qint64)sizeof(magic))
|| memcmp(SQLITE_DB_MAGIC, magic, sizeof(SQLITE_DB_MAGIC))) {
errorString = "Not a SQLite database file";
return false;
}
return true;
}

View File

@ -16,6 +16,7 @@ namespace Util
QString file2name(const QString &path);
QString displayName(const QString &path);
const QTemporaryDir &tempDir();
bool isSQLiteDB(const QString &path, QString &errorString);
}
#endif // UTIL_H