telepathy-qt: Request creation moved from Account to FileTransferChannelCreationProperties.
Alexandr Akulich
kaffeine at kemper.freedesktop.org
Sat Apr 23 08:33:21 UTC 2016
Module: telepathy-qt
Branch: master
Commit: 0b50d12a56e619e93f6b0943399e5fa4d45c4c92
URL: http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=0b50d12a56e619e93f6b0943399e5fa4d45c4c92
Author: Alexandr Akulich <akulichalexander at gmail.com>
Date: Mon Feb 15 13:17:33 2016 +0500
Request creation moved from Account to FileTransferChannelCreationProperties.
The purpose of this change is to use the code in test, so we
1) Avoid code duplication Account<->Tests,
2) Improve test coverage a bit.
---
TelepathyQt/account.cpp | 63 +-------------------
.../file-transfer-channel-creation-properties.cpp | 67 ++++++++++++++++++++++
.../file-transfer-channel-creation-properties.h | 4 ++
3 files changed, 73 insertions(+), 61 deletions(-)
diff --git a/TelepathyQt/account.cpp b/TelepathyQt/account.cpp
index 8d4c7a7..f6635e1 100644
--- a/TelepathyQt/account.cpp
+++ b/TelepathyQt/account.cpp
@@ -291,75 +291,16 @@ QVariantMap streamedMediaVideoCallRequest(const Tp::ContactPtr &contact, bool wi
return request;
}
-QVariantMap fileTransferCommonRequest(const Tp::FileTransferChannelCreationProperties &properties)
-{
- if (!properties.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"),
- properties.suggestedFileName());
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentType"),
- properties.contentType());
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Size"),
- properties.size());
-
- if (properties.hasContentHash()) {
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHashType"),
- (uint) properties.contentHashType());
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHash"),
- properties.contentHash());
- }
-
- if (properties.hasDescription()) {
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Description"),
- properties.description());
- }
-
- if (properties.hasLastModificationTime()) {
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Date"),
- (qulonglong) properties.lastModificationTime().toTime_t());
- }
-
- if (properties.hasUri()) {
- request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".URI"),
- properties.uri());
- }
-
- return request;
-}
-
QVariantMap fileTransferRequest(const QString &contactIdentifier,
const Tp::FileTransferChannelCreationProperties &properties)
{
- QVariantMap request = fileTransferCommonRequest(properties);
-
- if (!request.isEmpty()) {
- request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetID"),
- contactIdentifier);
- }
-
- return request;
+ return properties.createRequest(contactIdentifier);
}
QVariantMap fileTransferRequest(const Tp::ContactPtr &contact,
const Tp::FileTransferChannelCreationProperties &properties)
{
- QVariantMap request = fileTransferCommonRequest(properties);
-
- if (!request.isEmpty()) {
- request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandle"),
- contact ? contact->handle().at(0) : (uint) 0);
- }
-
- return request;
+ return properties.createRequest(contact ? contact->handle().at(0) : (uint) 0);
}
QVariantMap streamTubeCommonRequest(const QString &service)
diff --git a/TelepathyQt/file-transfer-channel-creation-properties.cpp b/TelepathyQt/file-transfer-channel-creation-properties.cpp
index e7232b0..aa0d822 100644
--- a/TelepathyQt/file-transfer-channel-creation-properties.cpp
+++ b/TelepathyQt/file-transfer-channel-creation-properties.cpp
@@ -430,4 +430,71 @@ 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"),
+ (qulonglong) lastModificationTime().toTime_t());
+ }
+
+ 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
diff --git a/TelepathyQt/file-transfer-channel-creation-properties.h b/TelepathyQt/file-transfer-channel-creation-properties.h
index a3904b4..3e1c5b6 100644
--- a/TelepathyQt/file-transfer-channel-creation-properties.h
+++ b/TelepathyQt/file-transfer-channel-creation-properties.h
@@ -83,6 +83,10 @@ public:
bool hasUri() const;
QString uri() const;
+ QVariantMap createRequest() const;
+ QVariantMap createRequest(const QString &contactIdentifier) const;
+ QVariantMap createRequest(uint handle) const;
+
private:
struct Private;
friend struct Private;
More information about the telepathy-commits
mailing list