From 48d8b3cc9b70911c5051430344aae5a53714dca2 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Mon, 11 Mar 2013 19:56:17 -0400 Subject: [PATCH] PP5 fix, file::flat() and init() tweaks --- sdk/core/core.cpp | 2 -- sdk/openbr_plugin.cpp | 28 ++++++++++++++++++++++++++-- sdk/plugins/pp5.cpp | 6 ++---- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/sdk/core/core.cpp b/sdk/core/core.cpp index 713e2b4..b5bdefb 100644 --- a/sdk/core/core.cpp +++ b/sdk/core/core.cpp @@ -189,8 +189,6 @@ struct AlgorithmCore enroll(file); gallery.reset(Gallery::make(getMemoryGallery(file))); galleryFiles = gallery->files(); - - qDebug() << galleryFiles; } } diff --git a/sdk/openbr_plugin.cpp b/sdk/openbr_plugin.cpp index edb9480..f9c2eaa 100644 --- a/sdk/openbr_plugin.cpp +++ b/sdk/openbr_plugin.cpp @@ -45,7 +45,20 @@ QString File::flat() const foreach (const QString &key, keys) { const QVariant value = this->value(key); if (value.isNull()) values.append(key); - else values.append(key + "=" + value.toString()); + else { + if (value.canConvert(QVariant::String)) { + values.append(key + "=" + value.toString()); + } + else { + if (value.type() == QVariant::PointF) values.append(key + "=" + QString("(%1,%2)").arg(QString::number(qvariant_cast(value).x()), + QString::number(qvariant_cast(value).y()))); + else if (value.type() == QVariant::RectF) values.append(key + "=" + QString("(%1,%2,%3,%4)").arg(QString::number(qvariant_cast(value).x()), + QString::number(qvariant_cast(value).y()), + QString::number(qvariant_cast(value).width()), + QString::number(qvariant_cast(value).height()))); + else values.append(key + "="); + } + } } QString flat = name; @@ -240,7 +253,18 @@ void File::init(const QString &file) if (unnamed) setParameter(i, words[0]); else set(words[0], QVariant()); } else { - set(words[0], words[1]); + if (words[1][0] == '(') { + QStringList values = words[1].split(','); + if (values.size() == 2) /* QPointF */ { + QPointF point(values[0].remove('(').toFloat(), values[1].remove(')').toFloat()); + set(words[0], point); + } + else /* QRectF */ { + QRectF rect(values[0].remove('(').toFloat(), values[1].toFloat(), values[2].toFloat(), values[3].remove(')').toFloat()); + set(words[0], rect); + } + } + else set(words[0], words[1]); } } name = name.left(index); diff --git a/sdk/plugins/pp5.cpp b/sdk/plugins/pp5.cpp index ae54344..f557ac9 100644 --- a/sdk/plugins/pp5.cpp +++ b/sdk/plugins/pp5.cpp @@ -191,15 +191,13 @@ struct PP5Context ppr_landmark_type &landmark = landmark_list.landmarks[j]; if (landmark.category != category) continue; - metadata.insert(metadataString+"_X", landmark.position.x); - metadata.insert(metadataString+"_Y", landmark.position.y); + metadata.insert(metadataString, QPointF(landmark.position.x, landmark.position.y)); found = true; break; } if (!found) { - metadata.insert(metadataString+"_X", std::numeric_limits::quiet_NaN()); - metadata.insert(metadataString+"_Y", std::numeric_limits::quiet_NaN()); + metadata.insert(metadataString, QPointF(std::numeric_limits::quiet_NaN(), std::numeric_limits::quiet_NaN())); } } -- libgit2 0.21.4