From df61ddbfc7e31a604173ca7acd79eb8f1901e2ef Mon Sep 17 00:00:00 2001 From: Leonardo Date: Fri, 23 Sep 2016 12:48:29 -0700 Subject: [PATCH] Better file type detection when loading files. --- common/project.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/common/project.cpp b/common/project.cpp index baf6ec8c..7854abf7 100644 --- a/common/project.cpp +++ b/common/project.cpp @@ -241,10 +241,18 @@ bool Project::Load(const QString& FileName) QString Extension = FileInfo.suffix().toLower(); lcGetPiecesLibrary()->SetCurrentModelPath(FileInfo.absolutePath()); + QByteArray FileData = File.readAll(); + bool LoadDAT; if (Extension == QLatin1String("dat") || Extension == QLatin1String("ldr") || Extension == QLatin1String("mpd")) + LoadDAT = true; + else if (Extension == QLatin1String("lcd") || Extension == QLatin1String("leocad")) + LoadDAT = false; + else + LoadDAT = memcmp(FileData, "LeoCAD ", 7); + + if (LoadDAT) { - QByteArray FileData = File.readAll(); QBuffer Buffer(&FileData); Buffer.open(QIODevice::ReadOnly); @@ -265,7 +273,6 @@ bool Project::Load(const QString& FileName) else { lcMemFile MemFile; - QByteArray FileData = File.readAll(); MemFile.WriteBuffer(FileData.constData(), FileData.size()); MemFile.Seek(0, SEEK_SET);