Commit 61704511f600d4761b1ee9d35d38473db31e4e8c
1 parent
c3fff4cf
Add File::setList to automatically convert QLists to QVariantLists
Showing
3 changed files
with
12 additions
and
3 deletions
openbr/openbr_plugin.h
| @@ -41,6 +41,7 @@ | @@ -41,6 +41,7 @@ | ||
| 41 | #include <QVector> | 41 | #include <QVector> |
| 42 | #include <opencv2/core/core.hpp> | 42 | #include <opencv2/core/core.hpp> |
| 43 | #include <openbr/openbr.h> | 43 | #include <openbr/openbr.h> |
| 44 | +#include <openbr/core/qtutils.h> | ||
| 44 | 45 | ||
| 45 | /*! | 46 | /*! |
| 46 | * \defgroup cpp_plugin_sdk C++ Plugin SDK | 47 | * \defgroup cpp_plugin_sdk C++ Plugin SDK |
| @@ -215,6 +216,14 @@ struct BR_EXPORT File | @@ -215,6 +216,14 @@ struct BR_EXPORT File | ||
| 215 | static QVariant parse(const QString &value); /*!< \brief Try to convert the QString to a QPointF or QRectF if possible. */ | 216 | static QVariant parse(const QString &value); /*!< \brief Try to convert the QString to a QPointF or QRectF if possible. */ |
| 216 | inline void set(const QString &key, const QVariant &value) { m_metadata.insert(key, value); } /*!< \brief Insert or overwrite the metadata key with the specified value. */ | 217 | inline void set(const QString &key, const QVariant &value) { m_metadata.insert(key, value); } /*!< \brief Insert or overwrite the metadata key with the specified value. */ |
| 217 | void set(const QString &key, const QString &value); /*!< \brief Insert or overwrite the metadata key with the specified value. */ | 218 | void set(const QString &key, const QString &value); /*!< \brief Insert or overwrite the metadata key with the specified value. */ |
| 219 | + | ||
| 220 | + /*!< \brief Specialization for list type. Insert or overwrite the metadata key with the specified value. */ | ||
| 221 | + template <typename T> | ||
| 222 | + void setList(const QString &key, const QList<T> &value) | ||
| 223 | + { | ||
| 224 | + set(key, QtUtils::toVariantList(value)); | ||
| 225 | + } | ||
| 226 | + | ||
| 218 | inline void remove(const QString &key) { m_metadata.remove(key); } /*!< \brief Remove the metadata key. */ | 227 | inline void remove(const QString &key) { m_metadata.remove(key); } /*!< \brief Remove the metadata key. */ |
| 219 | 228 | ||
| 220 | /*!< \brief Returns a value for the key, throwing an error if the key does not exist. */ | 229 | /*!< \brief Returns a value for the key, throwing an error if the key does not exist. */ |
openbr/plugins/landmarks.cpp
| @@ -113,7 +113,7 @@ class ProcrustesTransform : public Transform | @@ -113,7 +113,7 @@ class ProcrustesTransform : public Transform | ||
| 113 | // R(0,0), R(1,0), R(1,1), R(0,1), mean_x, mean_y, norm | 113 | // R(0,0), R(1,0), R(1,1), R(0,1), mean_x, mean_y, norm |
| 114 | QList<float> procrustesStats; | 114 | QList<float> procrustesStats; |
| 115 | procrustesStats << R(0,0) << R(1,0) << R(1,1) << R(0,1) << mean[0] << mean[1] << norm; | 115 | procrustesStats << R(0,0) << R(1,0) << R(1,1) << R(0,1) << mean[0] << mean[1] << norm; |
| 116 | - dst.file.set("ProcrustesStats",QtUtils::toVariantList(procrustesStats)); | 116 | + dst.file.setList<float>("ProcrustesStats",procrustesStats); |
| 117 | 117 | ||
| 118 | if (warp) { | 118 | if (warp) { |
| 119 | Eigen::MatrixXf dstMat = srcMat*R; | 119 | Eigen::MatrixXf dstMat = srcMat*R; |
| @@ -273,7 +273,7 @@ class DelaunayTransform : public UntrainableTransform | @@ -273,7 +273,7 @@ class DelaunayTransform : public UntrainableTransform | ||
| 273 | dst.file.setRects(QList<QRectF>() << OpenCVUtils::fromRect(boundingBox)); | 273 | dst.file.setRects(QList<QRectF>() << OpenCVUtils::fromRect(boundingBox)); |
| 274 | } else dst = src; | 274 | } else dst = src; |
| 275 | 275 | ||
| 276 | - dst.file.set("DelaunayTriangles", QtUtils::toVariantList(validTriangles)); | 276 | + dst.file.setList<QPointF>("DelaunayTriangles", validTriangles); |
| 277 | } | 277 | } |
| 278 | }; | 278 | }; |
| 279 | 279 |
openbr/plugins/slidingwindow.cpp
| @@ -120,7 +120,7 @@ private: | @@ -120,7 +120,7 @@ private: | ||
| 120 | if (dst.file.contains("Confidences")) | 120 | if (dst.file.contains("Confidences")) |
| 121 | confidences = dst.file.getList<float>("Confidences"); | 121 | confidences = dst.file.getList<float>("Confidences"); |
| 122 | confidences.append(confidence); | 122 | confidences.append(confidence); |
| 123 | - dst.file.set("Confidences", QtUtils::toVariantList(confidences)); | 123 | + dst.file.setList<float>("Confidences", confidences); |
| 124 | if (takeLargestScale) return; | 124 | if (takeLargestScale) return; |
| 125 | } | 125 | } |
| 126 | } | 126 | } |