Commit c99cdb2a authored by Don Gagne's avatar Don Gagne

parent c5396510
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
#include <QFile> #include <QFile>
const char* KMLFileHelper::_errorPrefix = QT_TR_NOOP("KML file load failed. %1");
QDomDocument KMLFileHelper::loadFile(const QString& kmlFile, QString& errorString) QDomDocument KMLFileHelper::loadFile(const QString& kmlFile, QString& errorString)
{ {
QFile file(kmlFile); QFile file(kmlFile);
...@@ -18,12 +20,12 @@ QDomDocument KMLFileHelper::loadFile(const QString& kmlFile, QString& errorStrin ...@@ -18,12 +20,12 @@ QDomDocument KMLFileHelper::loadFile(const QString& kmlFile, QString& errorStrin
errorString.clear(); errorString.clear();
if (!file.exists()) { if (!file.exists()) {
errorString = tr("File not found: %1").arg(kmlFile); errorString = QString(_errorPrefix).arg(tr("File not found: %1").arg(kmlFile));
return QDomDocument(); return QDomDocument();
} }
if (!file.open(QIODevice::ReadOnly)) { if (!file.open(QIODevice::ReadOnly)) {
errorString = tr("Unable to open file: %1 error: $%2").arg(kmlFile).arg(file.errorString()); errorString = QString(_errorPrefix).arg(tr("Unable to open file: %1 error: $%2").arg(kmlFile).arg(file.errorString()));
return QDomDocument(); return QDomDocument();
} }
...@@ -31,7 +33,7 @@ QDomDocument KMLFileHelper::loadFile(const QString& kmlFile, QString& errorStrin ...@@ -31,7 +33,7 @@ QDomDocument KMLFileHelper::loadFile(const QString& kmlFile, QString& errorStrin
QString errorMessage; QString errorMessage;
int errorLine; int errorLine;
if (!doc.setContent(&file, &errorMessage, &errorLine)) { if (!doc.setContent(&file, &errorMessage, &errorLine)) {
errorString = tr("Unable to parse KML file: %1 error: %2 line: %3").arg(kmlFile).arg(errorMessage).arg(errorLine); errorString = QString(_errorPrefix).arg(tr("Unable to parse KML file: %1 error: %2 line: %3").arg(kmlFile).arg(errorMessage).arg(errorLine));
return QDomDocument(); return QDomDocument();
} }
...@@ -67,7 +69,7 @@ KMLFileHelper::KMLFileContents KMLFileHelper::determineFileContents(const QStrin ...@@ -67,7 +69,7 @@ KMLFileHelper::KMLFileContents KMLFileHelper::determineFileContents(const QStrin
return Polyline; return Polyline;
} }
errorString = tr("No known type found in KML file."); errorString = QString(_errorPrefix).arg(tr("No supported type found in KML file."));
return Error; return Error;
} }
...@@ -83,13 +85,13 @@ bool KMLFileHelper::loadPolygonFromFile(const QString& kmlFile, QList<QGeoCoordi ...@@ -83,13 +85,13 @@ bool KMLFileHelper::loadPolygonFromFile(const QString& kmlFile, QList<QGeoCoordi
QDomNodeList rgNodes = domDocument.elementsByTagName("Polygon"); QDomNodeList rgNodes = domDocument.elementsByTagName("Polygon");
if (rgNodes.count() == 0) { if (rgNodes.count() == 0) {
errorString = tr("Unable to find Polygon node in KML"); errorString = QString(_errorPrefix).arg(tr("Unable to find Polygon node in KML"));
return false; return false;
} }
QDomNode coordinatesNode = rgNodes.item(0).namedItem("outerBoundaryIs").namedItem("LinearRing").namedItem("coordinates"); QDomNode coordinatesNode = rgNodes.item(0).namedItem("outerBoundaryIs").namedItem("LinearRing").namedItem("coordinates");
if (coordinatesNode.isNull()) { if (coordinatesNode.isNull()) {
errorString = tr("Internal error: Unable to find coordinates node in KML"); errorString = QString(_errorPrefix).arg(tr("Internal error: Unable to find coordinates node in KML"));
return false; return false;
} }
...@@ -144,13 +146,13 @@ bool KMLFileHelper::loadPolylineFromFile(const QString& kmlFile, QList<QGeoCoord ...@@ -144,13 +146,13 @@ bool KMLFileHelper::loadPolylineFromFile(const QString& kmlFile, QList<QGeoCoord
QDomNodeList rgNodes = domDocument.elementsByTagName("LineString"); QDomNodeList rgNodes = domDocument.elementsByTagName("LineString");
if (rgNodes.count() == 0) { if (rgNodes.count() == 0) {
errorString = tr("Unable to find LineString node in KML"); errorString = QString(_errorPrefix).arg(tr("Unable to find LineString node in KML"));
return false; return false;
} }
QDomNode coordinatesNode = rgNodes.item(0).namedItem("coordinates"); QDomNode coordinatesNode = rgNodes.item(0).namedItem("coordinates");
if (coordinatesNode.isNull()) { if (coordinatesNode.isNull()) {
errorString = tr("Internal error: Unable to find coordinates node in KML"); errorString = QString(_errorPrefix).arg(tr("Internal error: Unable to find coordinates node in KML"));
return false; return false;
} }
......
...@@ -34,4 +34,7 @@ public: ...@@ -34,4 +34,7 @@ public:
static QDomDocument loadFile(const QString& kmlFile, QString& errorString); static QDomDocument loadFile(const QString& kmlFile, QString& errorString);
static bool loadPolygonFromFile(const QString& kmlFile, QList<QGeoCoordinate>& vertices, QString& errorString); static bool loadPolygonFromFile(const QString& kmlFile, QList<QGeoCoordinate>& vertices, QString& errorString);
static bool loadPolylineFromFile(const QString& kmlFile, QList<QGeoCoordinate>& coords, QString& errorString); static bool loadPolylineFromFile(const QString& kmlFile, QList<QGeoCoordinate>& coords, QString& errorString);
private:
static const char* _errorPrefix;
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment