summary refs log tree commit diff
path: root/src/Utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Utils.cpp')
-rw-r--r--src/Utils.cpp65
1 files changed, 30 insertions, 35 deletions
diff --git a/src/Utils.cpp b/src/Utils.cpp

index 8f9e0643..3d69162f 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp
@@ -9,9 +9,10 @@ #include <QSettings> #include <QTextDocument> #include <QXmlStreamReader> + #include <cmath> +#include <variant> -#include <boost/variant.hpp> #include <cmark.h> #include "Config.h" @@ -122,34 +123,33 @@ utils::getMessageDescription(const TimelineEvent &event, using Video = mtx::events::RoomEvent<mtx::events::msg::Video>; using Encrypted = mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>; - if (boost::get<Audio>(&event) != nullptr) { + if (std::holds_alternative<Audio>(event)) { return createDescriptionInfo<Audio>(event, localUser, room_id); - } else if (boost::get<Emote>(&event) != nullptr) { + } else if (std::holds_alternative<Emote>(event)) { return createDescriptionInfo<Emote>(event, localUser, room_id); - } else if (boost::get<File>(&event) != nullptr) { + } else if (std::holds_alternative<File>(event)) { return createDescriptionInfo<File>(event, localUser, room_id); - } else if (boost::get<Image>(&event) != nullptr) { + } else if (std::holds_alternative<Image>(event)) { return createDescriptionInfo<Image>(event, localUser, room_id); - } else if (boost::get<Notice>(&event) != nullptr) { + } else if (std::holds_alternative<Notice>(event)) { return createDescriptionInfo<Notice>(event, localUser, room_id); - } else if (boost::get<Text>(&event) != nullptr) { + } else if (std::holds_alternative<Text>(event)) { return createDescriptionInfo<Text>(event, localUser, room_id); - } else if (boost::get<Video>(&event) != nullptr) { + } else if (std::holds_alternative<Video>(event)) { return createDescriptionInfo<Video>(event, localUser, room_id); - } else if (boost::get<mtx::events::Sticker>(&event) != nullptr) { + } else if (std::holds_alternative<mtx::events::Sticker>(event)) { return createDescriptionInfo<mtx::events::Sticker>(event, localUser, room_id); - } else if (boost::get<Encrypted>(&event) != nullptr) { - const auto msg = boost::get<Encrypted>(event); - const auto sender = QString::fromStdString(msg.sender); + } else if (auto msg = std::get_if<Encrypted>(&event); msg != nullptr) { + const auto sender = QString::fromStdString(msg->sender); const auto username = Cache::displayName(room_id, sender); - const auto ts = QDateTime::fromMSecsSinceEpoch(msg.origin_server_ts); + const auto ts = QDateTime::fromMSecsSinceEpoch(msg->origin_server_ts); DescInfo info; info.userid = sender; info.body = QString(" %1").arg(messageDescription<Encrypted>()); info.timestamp = utils::descriptiveTime(ts); - info.event_id = QString::fromStdString(msg.event_id); + info.event_id = QString::fromStdString(msg->event_id); info.datetime = ts; return info; @@ -217,30 +217,25 @@ utils::levenshtein_distance(const std::string &s1, const std::string &s2) } QString -utils::event_body(const mtx::events::collections::TimelineEvents &event) +utils::event_body(const mtx::events::collections::TimelineEvents &e) { using namespace mtx::events; - using namespace mtx::events::msg; - - if (boost::get<RoomEvent<Audio>>(&event) != nullptr) { - return message_body<RoomEvent<Audio>>(event); - } else if (boost::get<RoomEvent<Emote>>(&event) != nullptr) { - return message_body<RoomEvent<Emote>>(event); - } else if (boost::get<RoomEvent<File>>(&event) != nullptr) { - return message_body<RoomEvent<File>>(event); - } else if (boost::get<RoomEvent<Image>>(&event) != nullptr) { - return message_body<RoomEvent<Image>>(event); - } else if (boost::get<RoomEvent<Notice>>(&event) != nullptr) { - return message_body<RoomEvent<Notice>>(event); - } else if (boost::get<Sticker>(&event) != nullptr) { - return message_body<Sticker>(event); - } else if (boost::get<RoomEvent<Text>>(&event) != nullptr) { - return message_body<RoomEvent<Text>>(event); - } else if (boost::get<RoomEvent<Video>>(&event) != nullptr) { - return message_body<RoomEvent<Video>>(event); - } + if (auto ev = std::get_if<RoomEvent<msg::Audio>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); + if (auto ev = std::get_if<RoomEvent<msg::Emote>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); + if (auto ev = std::get_if<RoomEvent<msg::File>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); + if (auto ev = std::get_if<RoomEvent<msg::Image>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); + if (auto ev = std::get_if<RoomEvent<msg::Notice>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); + if (auto ev = std::get_if<RoomEvent<msg::Text>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); + if (auto ev = std::get_if<RoomEvent<msg::Video>>(&e); ev != nullptr) + return QString::fromStdString(ev->content.body); - return QString(); + return ""; } QPixmap