Commit 9e0ebdd31257d7c9f05572d94ab6cd225436d6f9

Authored by sklum
2 parents 20f71065 67718638

Merge pull request #118 from biometrics/decouple_variantlist

Decouple variantlist
openbr/core/qtutils.cpp
... ... @@ -399,33 +399,31 @@ void showFile(const QString &file)
399 399  
400 400 QString toString(const QVariant &variant)
401 401 {
402   - if (variant.canConvert(QVariant::String))
403   - return variant.toString();
404   - else if(variant.canConvert(QVariant::PointF)) {
405   - QPointF pt = qvariant_cast<QPointF>(variant);
406   - return QString("(%1,%2)").arg(QString::number(pt.x()),
407   - QString::number(pt.y()));
408   - }
409   - else if (variant.canConvert(QVariant::RectF)) {
  402 + if (variant.canConvert(QVariant::List)) return toString(qvariant_cast<QVariantList>(variant));
  403 + else if (variant.canConvert(QVariant::String)) return variant.toString();
  404 + else if (variant.canConvert(QVariant::PointF)) {
  405 + QPointF point = qvariant_cast<QPointF>(variant);
  406 + return QString("(%1,%2)").arg(QString::number(point.x()),QString::number(point.y()));
  407 + } else if (variant.canConvert(QVariant::RectF)) {
410 408 QRectF rect = qvariant_cast<QRectF>(variant);
411 409 return QString("(%1,%2,%3,%4)").arg(QString::number(rect.x()),
412 410 QString::number(rect.y()),
413 411 QString::number(rect.width()),
414 412 QString::number(rect.height()));
415 413 }
416   - else if (variant.canConvert(QVariant::List)) {
417   - QString ret = QString("[");
418   - bool first = true;
419   - foreach (const QVariant &i, variant.toList()) {
420   - if (!first)
421   - ret += ",";
422   - else
423   - first = false;
424   - ret += toString(i);
425   - }
426   - ret += "]";
427   - return ret;
428   - }
  414 +
  415 + return QString();
  416 +}
  417 +
  418 +QString toString(const QVariantList &variantList)
  419 +{
  420 + QStringList variants;
  421 +
  422 + foreach(const QVariant &variant, variantList)
  423 + variants.append(toString(variant));
  424 +
  425 + if (!variants.isEmpty()) return "[" + variants.join(", ") + "]";
  426 +
429 427 return QString();
430 428 }
431 429  
... ...
openbr/core/qtutils.h
... ... @@ -73,6 +73,7 @@ namespace QtUtils
73 73  
74 74 /**** Variant Utilities ****/
75 75 QString toString(const QVariant &variant);
  76 + QString toString(const QVariantList &variantList);
76 77  
77 78 template <typename T>
78 79 QVariantList toVariantList(const QList<T> &list)
... ...
openbr/openbr_plugin.cpp
... ... @@ -58,16 +58,7 @@ QString File::flat() const
58 58 foreach (const QString &key, keys) {
59 59 const QVariant value = this->value(key);
60 60 if (value.isNull()) values.append(key);
61   - else {
62   - if (QString(value.typeName()) == "QVariantList") {
63   - QStringList variants;
64   - foreach(const QVariant &variant, qvariant_cast<QVariantList>(value)) {
65   - variants.append(QtUtils::toString(variant));
66   - }
67   - if (!variants.isEmpty()) values.append(key + "=[" + variants.join(", ") + "]");
68   - }
69   - else values.append(key + "=" + QtUtils::toString(value));
70   - }
  61 + else values.append(key + "=" + QtUtils::toString(value));
71 62 }
72 63  
73 64 QString flat = name;
... ...
openbr/plugins/stasm4.cpp
... ... @@ -133,12 +133,14 @@ class StasmTransform : public UntrainableTransform
133 133 if (!foundFace) {
134 134 qWarning("No face found in %s.", qPrintable(src.file.fileName()));
135 135 } else {
  136 + QList<QPointF> points;
136 137 for (int i = 0; i < nLandmarks; i++) {
137 138 QPointF point(landmarks[2 * i], landmarks[2 * i + 1]);
138   - dst.file.appendPoint(point);
139   - if (i == 38) dst.file.set("StasmRightEye",point);
140   - else if (i == 39) dst.file.set("StasmLeftEye", point);
  139 + points.append(point);
141 140 }
  141 + dst.file.set("StasmRightEye", points[38]);
  142 + dst.file.set("StasmLeftEye", points[39]);
  143 + dst.file.appendPoints(points);
142 144 }
143 145 }
144 146 };
... ...
openbr/plugins/template.cpp
... ... @@ -9,7 +9,7 @@ namespace br
9 9 * \brief Retains only the values for the keys listed, to reduce template size
10 10 * \author Scott Klum \cite sklum
11 11 */
12   -class RetainTransform : public UntrainableTransform
  12 +class KeepMetadataTransform : public UntrainableTransform
13 13 {
14 14 Q_OBJECT
15 15 Q_PROPERTY(QStringList keys READ get_keys WRITE set_keys RESET reset_keys STORED false)
... ... @@ -24,7 +24,7 @@ class RetainTransform : public UntrainableTransform
24 24 }
25 25 };
26 26  
27   -BR_REGISTER(Transform, RetainTransform)
  27 +BR_REGISTER(Transform, KeepMetadataTransform)
28 28  
29 29 /*!
30 30 * \ingroup transforms
... ...