const auto parameterJsonObject = i.value().toObject();
const auto richParamLink = stringToUrl(account->url(), parameterJsonObject.value(QStringLiteral("link")).toString());
- activity._subjectRichParameters[i.key()] = Activity::RichSubjectParameter {
+ activity._subjectRichParameters[i.key()] = QVariant::fromValue(Activity::RichSubjectParameter{
parameterJsonObject.value(QStringLiteral("type")).toString(),
parameterJsonObject.value(QStringLiteral("id")).toString(),
parameterJsonObject.value(QStringLiteral("name")).toString(),
parameterJsonObject.contains(QStringLiteral("path")) ? parameterJsonObject.value(QStringLiteral("path")).toString() : QString(),
richParamLink,
- };
+ });
if (activity._objectType == QStringLiteral("calendar") && activity._link.isEmpty()) {
activity._link = richParamLink;
word.remove(subjectRichParameterBracesRe);
Q_ASSERT(activity._subjectRichParameters.contains(word));
- displayString = displayString.replace(match.captured(1), activity._subjectRichParameters[word].name);
+ displayString = displayString.replace(match.captured(1), activity._subjectRichParameters[word].value<Activity::RichSubjectParameter>().name);
}
activity._subjectDisplay = displayString;
#ifndef ACTIVITYDATA_H
#define ACTIVITYDATA_H
-#include <QtCore>
-#include <QIcon>
-#include <QJsonObject>
-
#include "syncfileitem.h"
#include "folder.h"
#include "account.h"
+#include <QtCore>
+#include <QIcon>
+#include <QJsonObject>
+#include <QVariantMap>
+
namespace OCC {
/**
* @brief The ActivityLink class describes actions of an activity
QString _objectName;
QString _subject;
QString _subjectRich;
- QHash<QString, RichSubjectParameter> _subjectRichParameters;
+ QVariantMap _subjectRichParameters;
QString _subjectDisplay;
QString _message;
QString _folder;
Q_DECLARE_METATYPE(OCC::Activity)
Q_DECLARE_METATYPE(OCC::ActivityList)
Q_DECLARE_METATYPE(OCC::Activity::Type)
+Q_DECLARE_METATYPE(OCC::Activity::RichSubjectParameter)
Q_DECLARE_METATYPE(OCC::ActivityLink)
Q_DECLARE_METATYPE(OCC::PreviewData)
const auto richParamsKeys = richParams.keys();
for(const auto &key : richParamsKeys) {
const auto parameterJsonObject = richParams.value(key).toObject();
- a._subjectRichParameters.insert(key, Activity::RichSubjectParameter{
+ a._subjectRichParameters.insert(key, QVariant::fromValue(Activity::RichSubjectParameter{
parameterJsonObject.value(QStringLiteral("type")).toString(),
parameterJsonObject.value(QStringLiteral("id")).toString(),
parameterJsonObject.value(QStringLiteral("name")).toString(),
QString(),
QUrl()
- });
+ }));
}
}
al._primary = false;
}
- a._talkNotificationData.userAvatar = ai->account()->url().toString() + QStringLiteral("/index.php/avatar/") + a._subjectRichParameters["user"].id + QStringLiteral("/128");
+ a._talkNotificationData.userAvatar = ai->account()->url().toString() + QStringLiteral("/index.php/avatar/") + a._subjectRichParameters["user"].value<Activity::RichSubjectParameter>().id + QStringLiteral("/128");
}
// We want to serve incoming call dialogs to the user for calls that
QCOMPARE(activity._link, eventLink);
QCOMPARE(activity._subjectDisplay, QStringLiteral("%1 updated event %2 in calendar %3").arg(account->displayName(),
eventName,
- richParams[calendarC].name));
+ richParams[calendarC].value<OCC::Activity::RichSubjectParameter>().name));
QCOMPARE(activity._icon, iconExpected);
}
}