mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-02-26 12:10:49 +01:00
Allow arbitrary .map file names in TrekBuddy TAR maps
This commit is contained in:
parent
2884c39367
commit
b38cf31920
@ -16,6 +16,17 @@
|
|||||||
#include "ozimap.h"
|
#include "ozimap.h"
|
||||||
|
|
||||||
|
|
||||||
|
static QString mapFile(const QStringList &files)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < files.size(); i++) {
|
||||||
|
QFileInfo fi(files.at(i));
|
||||||
|
if (fi.path() == "." && fi.suffix() == "map")
|
||||||
|
return files.at(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
OziMap::OziMap(const QString &fileName, bool TAR, QObject *parent)
|
OziMap::OziMap(const QString &fileName, bool TAR, QObject *parent)
|
||||||
: Map(fileName, parent), _img(0), _tar(0), _ozf(0), _zoom(0), _mapRatio(1.0),
|
: Map(fileName, parent), _img(0), _tar(0), _ozf(0), _zoom(0), _mapRatio(1.0),
|
||||||
_valid(false)
|
_valid(false)
|
||||||
@ -29,12 +40,14 @@ OziMap::OziMap(const QString &fileName, bool TAR, QObject *parent)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString mapFileName = fi.completeBaseName() + ".map";
|
QStringList files(_tar->files());
|
||||||
QByteArray ba = _tar->file(mapFileName);
|
QString mapFileName(mapFile(files));
|
||||||
if (ba.isNull()) {
|
if (mapFileName.isNull()) {
|
||||||
_errorString = "Map file not found";
|
_errorString = "No map file found in tar file";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QByteArray ba(_tar->file(mapFileName));
|
||||||
QBuffer buffer(&ba);
|
QBuffer buffer(&ba);
|
||||||
MapFile mf(buffer);
|
MapFile mf(buffer);
|
||||||
if (!mf.isValid()) {
|
if (!mf.isValid()) {
|
||||||
@ -48,7 +61,7 @@ OziMap::OziMap(const QString &fileName, bool TAR, QObject *parent)
|
|||||||
_transform = mf.transform();
|
_transform = mf.transform();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!setTileInfo(_tar->files()))
|
if (!setTileInfo(files))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_tar->close();
|
_tar->close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user