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:
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user