Commit 9e0ebdd31257d7c9f05572d94ab6cd225436d6f9
Merge pull request #118 from biometrics/decouple_variantlist
Decouple variantlist
Showing
5 changed files
with
28 additions
and
36 deletions
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
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 | ... | ... |