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,33 +399,31 @@ void showFile(const QString &file)
399 399
400 QString toString(const QVariant &variant) 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 QRectF rect = qvariant_cast<QRectF>(variant); 408 QRectF rect = qvariant_cast<QRectF>(variant);
411 return QString("(%1,%2,%3,%4)").arg(QString::number(rect.x()), 409 return QString("(%1,%2,%3,%4)").arg(QString::number(rect.x()),
412 QString::number(rect.y()), 410 QString::number(rect.y()),
413 QString::number(rect.width()), 411 QString::number(rect.width()),
414 QString::number(rect.height())); 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 return QString(); 427 return QString();
430 } 428 }
431 429
openbr/core/qtutils.h
@@ -73,6 +73,7 @@ namespace QtUtils @@ -73,6 +73,7 @@ namespace QtUtils
73 73
74 /**** Variant Utilities ****/ 74 /**** Variant Utilities ****/
75 QString toString(const QVariant &variant); 75 QString toString(const QVariant &variant);
  76 + QString toString(const QVariantList &variantList);
76 77
77 template <typename T> 78 template <typename T>
78 QVariantList toVariantList(const QList<T> &list) 79 QVariantList toVariantList(const QList<T> &list)
openbr/openbr_plugin.cpp
@@ -58,16 +58,7 @@ QString File::flat() const @@ -58,16 +58,7 @@ QString File::flat() const
58 foreach (const QString &key, keys) { 58 foreach (const QString &key, keys) {
59 const QVariant value = this->value(key); 59 const QVariant value = this->value(key);
60 if (value.isNull()) values.append(key); 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 QString flat = name; 64 QString flat = name;
openbr/plugins/stasm4.cpp
@@ -133,12 +133,14 @@ class StasmTransform : public UntrainableTransform @@ -133,12 +133,14 @@ class StasmTransform : public UntrainableTransform
133 if (!foundFace) { 133 if (!foundFace) {
134 qWarning("No face found in %s.", qPrintable(src.file.fileName())); 134 qWarning("No face found in %s.", qPrintable(src.file.fileName()));
135 } else { 135 } else {
  136 + QList<QPointF> points;
136 for (int i = 0; i < nLandmarks; i++) { 137 for (int i = 0; i < nLandmarks; i++) {
137 QPointF point(landmarks[2 * i], landmarks[2 * i + 1]); 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,7 +9,7 @@ namespace br
9 * \brief Retains only the values for the keys listed, to reduce template size 9 * \brief Retains only the values for the keys listed, to reduce template size
10 * \author Scott Klum \cite sklum 10 * \author Scott Klum \cite sklum
11 */ 11 */
12 -class RetainTransform : public UntrainableTransform 12 +class KeepMetadataTransform : public UntrainableTransform
13 { 13 {
14 Q_OBJECT 14 Q_OBJECT
15 Q_PROPERTY(QStringList keys READ get_keys WRITE set_keys RESET reset_keys STORED false) 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,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 * \ingroup transforms 30 * \ingroup transforms