Commit dc7df56391ec330c030c8393f894eb363e5f84a3

Authored by Josh Klontz
2 parents 59574f5a 6209d68e

Merge branch 'master' of https://github.com/biometrics/openbr

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/gallery/empty.cpp
... ... @@ -40,7 +40,12 @@ class EmptyGallery : public Gallery
40 40 {
41 41 QDir dir(file.name);
42 42 QtUtils::touchDir(dir);
43   - gallerySize = dir.count();
  43 + QDirIterator it(dir.absolutePath(), QDir::Files | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
  44 + gallerySize = 0;
  45 + while (it.hasNext()) {
  46 + it.next();
  47 + gallerySize++;
  48 + }
44 49 }
45 50  
46 51 TemplateList readBlock(bool *done)
... ...
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;
... ...