284 QVariant v1 = *
d->value.variant;
285 QVariant v2 = *
v.d->value.variant;
286 Q_ASSERT(v2.canConvert(v1.type()));
289 warnMetaData <<
"KisMetaData: Merging metadata of type" << v1.type() <<
"is unsupported!";
291 case QMetaType::QDate:
292 *
d->value.variant = qMax(v1.toDate(), v2.toDate());
294 case QMetaType::QDateTime:
295 *
d->value.variant = qMax(v1.toDate(), v2.toDate());
297 case QMetaType::Double:
298 *
d->value.variant = v1.toDouble() + v2.toDouble();
301 *
d->value.variant = v1.toInt() + v2.toInt();
303 case QMetaType::QVariantList:
304 *
d->value.variant = v1.toList() + v2.toList();
306 case QMetaType::LongLong:
307 *
d->value.variant = v1.toLongLong() + v2.toLongLong();
309 case QMetaType::QPoint:
310 *
d->value.variant = v1.toPoint() + v2.toPoint();
312 case QMetaType::QPointF:
313 *
d->value.variant = v1.toPointF() + v2.toPointF();
315 case QMetaType::QString:
316 *
d->value.variant = QVariant(v1.toString() + v2.toString());
318 case QMetaType::QStringList:
319 *
d->value.variant = v1.toStringList() + v2.toStringList();
321 case QMetaType::QTime: {
322 QTime t1 = v1.toTime();
323 QTime t2 = v2.toTime();
324 int h = t1.hour() + t2.hour();
325 int m = t1.minute() + t2.minute();
326 int s = t1.second() + t2.second();
327 int ms = t1.msec() + t2.msec();
340 *
d->value.variant = QTime(h, m, s, ms);
343 case QMetaType::UInt:
344 *
d->value.variant = v1.toUInt() + v2.toUInt();
346 case QMetaType::ULongLong:
347 *
d->value.variant = v1.toULongLong() + v2.toULongLong();
357 *(
d->value.array) += *(
v.d->value.array);
359 d->value.array->append(
v);
373 d->value.rational->numerator =
374 (
d->value.rational->numerator
375 *
v.d->value.rational->denominator)
376 + (
v.d->value.rational->numerator
377 *
d->value.rational->denominator);
378 d->value.rational->denominator *=
v.d->value.rational->denominator;
388 QMap<QString, KisMetaData::Value> langArray;
390 Q_ASSERT(val.
d->propertyQualifiers.contains(
"xml:lang"));
393 QVariant valKeyVar = valKeyVal.
asVariant();
394 Q_ASSERT(valKeyVar.type() == QMetaType::QString);
395 langArray[valKeyVar.toString()] = val;
404 return i18n(
"Invalid value.");
406 return d->value.variant->toString();
412 QString r = QString(
"[%1]{ ").arg(
d->value.array->size());
413 for (
int i = 0; i <
d->value.array->size(); ++i) {
414 const Value& val =
d->value.array->at(i);
416 if (i !=
d->value.array->size() - 1) {
427 for (
int i = 0; i < fields.count(); ++i) {
428 const QString& field = fields[i];
429 const Value& val =
d->value.structure->value(field);
430 r += field +
" => " + val.
toString();
431 if (i !=
d->value.array->size() - 1) {
441 return QString(
"%1 / %2").arg(
d->value.rational->numerator).arg(
d->value.rational->denominator);
443 return i18n(
"Invalid value.");