diff options
Diffstat (limited to 'src/Utils.h')
-rw-r--r-- | src/Utils.h | 145 |
1 files changed, 5 insertions, 140 deletions
diff --git a/src/Utils.h b/src/Utils.h index 2c75cb5c..7f844627 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -5,14 +5,14 @@ #pragma once #include <CacheStructs.h> -#include <QCoreApplication> #include <QDateTime> #include <QPixmap> -#include <QRegularExpression> -#include <mtx/events/collections.hpp> -#include <mtx/events/common.hpp> +#include <mtx/events.hpp> -#include <qmath.h> +namespace mtx::events::collections { +struct TimelineEvents; +struct StateEvents; +} struct DescInfo; @@ -85,131 +85,6 @@ firstChar(const QString &input); QString humanReadableFileSize(uint64_t bytes); -//! Match widgets/events with a description message. -template<class T> -QString -messageDescription(const QString &username = QString(), - const QString &body = QString(), - const bool isLocal = false) -{ - using Audio = mtx::events::RoomEvent<mtx::events::msg::Audio>; - using Emote = mtx::events::RoomEvent<mtx::events::msg::Emote>; - using File = mtx::events::RoomEvent<mtx::events::msg::File>; - using Image = mtx::events::RoomEvent<mtx::events::msg::Image>; - using Notice = mtx::events::RoomEvent<mtx::events::msg::Notice>; - using Sticker = mtx::events::Sticker; - using Text = mtx::events::RoomEvent<mtx::events::msg::Text>; - using Unknown = mtx::events::RoomEvent<mtx::events::msg::Unknown>; - using Video = mtx::events::RoomEvent<mtx::events::msg::Video>; - using ElementEffect = mtx::events::RoomEvent<mtx::events::msg::ElementEffect>; - using CallInvite = mtx::events::RoomEvent<mtx::events::voip::CallInvite>; - using CallAnswer = mtx::events::RoomEvent<mtx::events::voip::CallAnswer>; - using CallHangUp = mtx::events::RoomEvent<mtx::events::voip::CallHangUp>; - using CallReject = mtx::events::RoomEvent<mtx::events::voip::CallReject>; - using Encrypted = mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>; - - if (std::is_same<T, Audio>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", - "You sent an audio clip"); - else - return QCoreApplication::translate("message-description sent:", "%1 sent an audio clip") - .arg(username); - } else if (std::is_same<T, Image>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You sent an image"); - else - return QCoreApplication::translate("message-description sent:", "%1 sent an image") - .arg(username); - } else if (std::is_same<T, File>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You sent a file"); - else - return QCoreApplication::translate("message-description sent:", "%1 sent a file") - .arg(username); - } else if (std::is_same<T, Video>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You sent a video"); - else - return QCoreApplication::translate("message-description sent:", "%1 sent a video") - .arg(username); - } else if (std::is_same<T, Sticker>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You sent a sticker"); - else - return QCoreApplication::translate("message-description sent:", "%1 sent a sticker") - .arg(username); - } else if (std::is_same<T, Notice>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", - "You sent a notification"); - else - return QCoreApplication::translate("message-description sent:", - "%1 sent a notification") - .arg(username); - } else if (std::is_same<T, Text>::value || std::is_same<T, Unknown>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You: %1").arg(body); - else - return QCoreApplication::translate("message-description sent:", "%1: %2") - .arg(username, body); - } else if (std::is_same<T, ElementEffect>::value) { - if (body.isEmpty()) { - // TODO: what is the best way to handle this? - if (isLocal) - return QCoreApplication::translate("message-description sent:", - "You sent a chat effect"); - else - return QCoreApplication::translate("message-description sent:", - "%1 sent a chat effect") - .arg(username); - } else { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You: %1") - .arg(body); - else - return QCoreApplication::translate("message-description sent:", "%1: %2") - .arg(username, body); - } - } else if (std::is_same<T, Emote>::value) { - return QStringLiteral("* %1 %2").arg(username, body); - } else if (std::is_same<T, Encrypted>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", - "You sent an encrypted message"); - else - return QCoreApplication::translate("message-description sent:", - "%1 sent an encrypted message") - .arg(username); - } else if (std::is_same<T, CallInvite>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You placed a call"); - else - return QCoreApplication::translate("message-description sent:", "%1 placed a call") - .arg(username); - } else if (std::is_same<T, CallAnswer>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You answered a call"); - else - return QCoreApplication::translate("message-description sent:", "%1 answered a call") - .arg(username); - } else if (std::is_same<T, CallHangUp>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You ended a call"); - else - return QCoreApplication::translate("message-description sent:", "%1 ended a call") - .arg(username); - } else if (std::is_same<T, CallReject>::value) { - if (isLocal) - return QCoreApplication::translate("message-description sent:", "You rejected a call"); - else - return QCoreApplication::translate("message-description sent:", "%1 rejected a call") - .arg(username); - } else { - return QCoreApplication::translate("utils", "Unknown Message Type"); - } -} - //! Scale down an image to fit to the given width & height limitations. QPixmap scaleDown(uint64_t maxWidth, uint64_t maxHeight, const QPixmap &source); @@ -227,13 +102,6 @@ erase_if(ContainerT &items, const PredicateT &predicate) } } -template<class T> -QString -message_body(const mtx::events::collections::TimelineEvents &event) -{ - return QString::fromStdString(std::get<T>(event).content.body); -} - //! Calculate the Levenshtein distance between two strings with character skipping. int levenshtein_distance(const std::string &s1, const std::string &s2); @@ -249,9 +117,6 @@ mxcToHttp(const QUrl &url, const QString &server, int port); QString humanReadableFingerprint(const std::string &ed25519); -QString -humanReadableFingerprint(const QString &ed25519); - //! Retrieve the message body taking into account the `formatted_body` field. //! If the `format` of the message is not supported we fallback to `body`. template<typename RoomMessageT> |