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,6 +26,8 @@
26 #include <QRegExp> 26 #include <QRegExp>
27 #include <QStack> 27 #include <QStack>
28 #include <QUrl> 28 #include <QUrl>
  29 +#include <QMap>
  30 +
29 #include <openbr/openbr_plugin.h> 31 #include <openbr/openbr_plugin.h>
30 32
31 #include "alphanum.hpp" 33 #include "alphanum.hpp"
@@ -410,6 +412,8 @@ QString toString(const QVariant &amp;variant) @@ -410,6 +412,8 @@ QString toString(const QVariant &amp;variant)
410 QString::number(rect.y()), 412 QString::number(rect.y()),
411 QString::number(rect.width()), 413 QString::number(rect.width()),
412 QString::number(rect.height())); 414 QString::number(rect.height()));
  415 + } else if (variant.canConvert(QVariant::Map)) {
  416 + return toString(qvariant_cast<QVariantMap>(variant));
413 } 417 }
414 418
415 return QString(); 419 return QString();
@@ -427,6 +431,21 @@ QString toString(const QVariantList &amp;variantList) @@ -427,6 +431,21 @@ QString toString(const QVariantList &amp;variantList)
427 return QString(); 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 QString toTime(int s) 449 QString toTime(int s)
431 { 450 {
432 int h = s / (60*60); 451 int h = s / (60*60);
openbr/core/qtutils.h
@@ -75,6 +75,7 @@ namespace QtUtils @@ -75,6 +75,7 @@ namespace QtUtils
75 /**** Variant Utilities ****/ 75 /**** Variant Utilities ****/
76 QString toString(const QVariant &variant); 76 QString toString(const QVariant &variant);
77 QString toString(const QVariantList &variantList); 77 QString toString(const QVariantList &variantList);
  78 + QString toString(const QVariantMap &QVariantMap);
78 79
79 template <typename T> 80 template <typename T>
80 QVariantList toVariantList(const QList<T> &list) 81 QVariantList toVariantList(const QList<T> &list)