summaryrefslogtreecommitdiff
path: root/TelepathyQt/file-transfer-channel-creation-properties.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TelepathyQt/file-transfer-channel-creation-properties.cpp')
-rw-r--r--TelepathyQt/file-transfer-channel-creation-properties.cpp73
1 files changed, 72 insertions, 1 deletions
diff --git a/TelepathyQt/file-transfer-channel-creation-properties.cpp b/TelepathyQt/file-transfer-channel-creation-properties.cpp
index e7232b05..dd17f8a1 100644
--- a/TelepathyQt/file-transfer-channel-creation-properties.cpp
+++ b/TelepathyQt/file-transfer-channel-creation-properties.cpp
@@ -130,7 +130,7 @@ FileTransferChannelCreationProperties::FileTransferChannelCreationProperties(
: mPriv(new Private(path, contentType))
{
if (mPriv->suggestedFileName.isEmpty()) {
- mPriv = QSharedDataPointer<Private>(NULL);
+ mPriv = QSharedDataPointer<Private>(nullptr);
}
}
@@ -430,4 +430,75 @@ QString FileTransferChannelCreationProperties::uri() const
return mPriv->uri;
}
+QVariantMap FileTransferChannelCreationProperties::createRequest() const
+{
+ if (!isValid()) {
+ warning() << "Invalid file transfer creation properties";
+ return QVariantMap();
+ }
+
+ QVariantMap request;
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
+ TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER);
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
+ (uint) Tp::HandleTypeContact);
+
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Filename"),
+ suggestedFileName());
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentType"),
+ contentType());
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Size"),
+ size());
+
+ if (hasContentHash()) {
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHashType"),
+ (uint) contentHashType());
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHash"),
+ contentHash());
+ }
+
+ if (hasDescription()) {
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Description"),
+ description());
+ }
+
+ if (hasLastModificationTime()) {
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Date"),
+#if QT_VERSION < QT_VERSION_CHECK(5, 8, 0)
+ (qulonglong) lastModificationTime().toTime_t());
+#else
+ (qulonglong) lastModificationTime().toSecsSinceEpoch());
+#endif
+ }
+
+ if (hasUri()) {
+ request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".URI"),
+ uri());
+ }
+
+ return request;
+}
+
+QVariantMap FileTransferChannelCreationProperties::createRequest(const QString &contactIdentifier) const
+{
+ QVariantMap request = createRequest();
+
+ if (!request.isEmpty()) {
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetID"), contactIdentifier);
+ }
+
+ return request;
+}
+
+QVariantMap FileTransferChannelCreationProperties::createRequest(uint handle) const
+{
+ QVariantMap request = createRequest();
+
+ if (!request.isEmpty()) {
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandle"), handle);
+ }
+
+ return request;
+}
+
} // Tp