Commit 6209d68ebc31383ac1a9a9369b171429729b20f3
Merge pull request #347 from biometrics/io_tweaks
Io tweaks
Showing
2 changed files
with
13 additions
and
3 deletions
openbr/plugins/gallery/binary.cpp
| ... | ... | @@ -16,6 +16,7 @@ |
| 16 | 16 | |
| 17 | 17 | #include <QJsonObject> |
| 18 | 18 | #include <QJsonParseError> |
| 19 | +#include <QUrl> | |
| 19 | 20 | |
| 20 | 21 | #ifdef _WIN32 |
| 21 | 22 | #include <io.h> |
| ... | ... | @@ -272,7 +273,8 @@ class utGallery : public BinaryGallery |
| 272 | 273 | t.append(cv::Mat(1, dataSize, CV_8UC1, dataStart).clone() /* We don't want a shallow copy! */); |
| 273 | 274 | } else { |
| 274 | 275 | if (!gallery.atEnd()) |
| 275 | - qFatal("Failed to read universal template header!"); | |
| 276 | + qWarning("Failed to read universal template header!"); | |
| 277 | + gallery.close(); | |
| 276 | 278 | } |
| 277 | 279 | return t; |
| 278 | 280 | } |
| ... | ... | @@ -284,7 +286,10 @@ class utGallery : public BinaryGallery |
| 284 | 286 | qFatal("Expected 16-byte ImageID, got: %d bytes.", imageID.size()); |
| 285 | 287 | |
| 286 | 288 | const int32_t algorithmID = (t.isEmpty() || t.file.fte) ? 0 : t.file.get<int32_t>("AlgorithmID"); |
| 287 | - const QByteArray url = t.file.get<QString>("URL", t.file.name).toLatin1(); | |
| 289 | + | |
| 290 | + // QUrl::fromUserInput provides some nice functionality in terms of completing URLs | |
| 291 | + // e.g. C:/test.jpg -> file://C:/test.jpg and google.com/image.jpg -> http://google.com/image.jpg | |
| 292 | + const QByteArray url = QUrl::fromUserInput(t.file.get<QString>("URL", t.file.name)).toEncoded(); | |
| 288 | 293 | |
| 289 | 294 | int32_t x = 0, y = 0; |
| 290 | 295 | uint32_t width = 0, height = 0; | ... | ... |
openbr/plugins/io/download.cpp
| ... | ... | @@ -57,7 +57,12 @@ private: |
| 57 | 57 | if (!url.contains("://")) |
| 58 | 58 | url = "file://" + url; |
| 59 | 59 | dst.file.set("URL", url); |
| 60 | - if (url.startsWith("file://")) | |
| 60 | + | |
| 61 | + static const QRegularExpression regExp("file:///[A-Z]:/"); | |
| 62 | + | |
| 63 | + if (url.contains(regExp)) | |
| 64 | + url = url.mid(8); | |
| 65 | + else if (url.startsWith("file://")) | |
| 61 | 66 | url = url.mid(7); |
| 62 | 67 | |
| 63 | 68 | QIODevice *device = NULL; | ... | ... |