Commit 1fd84565bde840007fdedf907018e7cd2dbf379a

Authored by Scott Klum
1 parent 5ab669f9

Added the ability to store QMaps as File metadata

openbr/core/qtutils.cpp
... ... @@ -26,6 +26,8 @@
26 26 #include <QRegExp>
27 27 #include <QStack>
28 28 #include <QUrl>
  29 +#include <QMap>
  30 +
29 31 #include <openbr/openbr_plugin.h>
30 32  
31 33 #include "alphanum.hpp"
... ... @@ -410,6 +412,8 @@ QString toString(const QVariant &amp;variant)
410 412 QString::number(rect.y()),
411 413 QString::number(rect.width()),
412 414 QString::number(rect.height()));
  415 + } else if (variant.canConvert(QVariant::Map)) {
  416 + return toString(qvariant_cast<QVariantMap>(variant));
413 417 }
414 418  
415 419 return QString();
... ... @@ -427,6 +431,21 @@ QString toString(const QVariantList &amp;variantList)
427 431 return QString();
428 432 }
429 433  
  434 +QString toString(const QMap<QString,QVariant> &variantMap)
  435 +{
  436 + QStringList variants;
  437 +
  438 + QMapIterator<QString, QVariant> i(variantMap);
  439 + while (i.hasNext()) {
  440 + i.next();
  441 + variants.append(i.key() + "=" + toString(i.value()));
  442 + }
  443 +
  444 + if (!variants.isEmpty()) return "[" + variants.join(", ") + "]";
  445 +
  446 + return QString();
  447 +}
  448 +
430 449 QString toTime(int s)
431 450 {
432 451 int h = s / (60*60);
... ...
openbr/core/qtutils.h
... ... @@ -75,6 +75,7 @@ namespace QtUtils
75 75 /**** Variant Utilities ****/
76 76 QString toString(const QVariant &variant);
77 77 QString toString(const QVariantList &variantList);
  78 + QString toString(const QVariantMap &QVariantMap);
78 79  
79 80 template <typename T>
80 81 QVariantList toVariantList(const QList<T> &list)
... ...