diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-09-01 13:35:10 +0300 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-09-01 13:35:10 +0300 |
commit | 990a3a97c7578c30223ff4f348b9241be75f5bf9 (patch) | |
tree | 392164db51daf80aac81bde90f35129dd338b972 /src | |
parent | Remove nix script which was unmaintained (diff) | |
download | nheko-990a3a97c7578c30223ff4f348b9241be75f5bf9.tar.xz |
Merge matrix-structs into the client lib
Diffstat (limited to 'src')
-rw-r--r-- | src/Cache.cpp | 10 | ||||
-rw-r--r-- | src/Cache.h | 50 | ||||
-rw-r--r-- | src/ChatPage.h | 5 | ||||
-rw-r--r-- | src/Olm.cpp | 6 | ||||
-rw-r--r-- | src/RoomInfoListItem.cpp | 2 | ||||
-rw-r--r-- | src/TextInputWidget.cpp | 2 | ||||
-rw-r--r-- | src/Utils.cpp | 38 | ||||
-rw-r--r-- | src/Utils.h | 19 | ||||
-rw-r--r-- | src/timeline/TimelineView.cpp | 46 |
9 files changed, 91 insertions, 87 deletions
diff --git a/src/Cache.cpp b/src/Cache.cpp index b8b4a2bf..4965167b 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -24,8 +24,8 @@ #include <QSettings> #include <QStandardPaths> +#include <boost/variant.hpp> #include <mtx/responses/common.hpp> -#include <variant.hpp> #include "Cache.h" #include "Utils.h" @@ -918,8 +918,8 @@ Cache::saveInvite(lmdb::txn &txn, using namespace mtx::events::state; for (const auto &e : room.invite_state) { - if (mpark::holds_alternative<StrippedEvent<Member>>(e)) { - auto msg = mpark::get<StrippedEvent<Member>>(e); + if (boost::get<StrippedEvent<Member>>(&e) != nullptr) { + auto msg = boost::get<StrippedEvent<Member>>(e); auto display_name = msg.content.display_name.empty() ? msg.state_key @@ -930,7 +930,7 @@ Cache::saveInvite(lmdb::txn &txn, lmdb::dbi_put( txn, membersdb, lmdb::val(msg.state_key), lmdb::val(json(tmp).dump())); } else { - mpark::visit( + boost::apply_visitor( [&txn, &statesdb](auto msg) { bool res = lmdb::dbi_put(txn, statesdb, @@ -1744,7 +1744,7 @@ Cache::saveTimelineMessages(lmdb::txn &txn, if (isStateEvent(e)) continue; - if (mpark::holds_alternative<RedactionEvent<msg::Redaction>>(e)) + if (boost::get<RedactionEvent<msg::Redaction>>(&e) != nullptr) continue; json obj = json::object(); diff --git a/src/Cache.h b/src/Cache.h index c2f8cfc8..ce531056 100644 --- a/src/Cache.h +++ b/src/Cache.h @@ -486,8 +486,8 @@ private: using namespace mtx::events; using namespace mtx::events::state; - if (mpark::holds_alternative<StateEvent<Member>>(event)) { - const auto e = mpark::get<StateEvent<Member>>(event); + if (boost::get<StateEvent<Member>>(&event) != nullptr) { + const auto e = boost::get<StateEvent<Member>>(event); switch (e.content.membership) { // @@ -531,7 +531,7 @@ private: } return; - } else if (mpark::holds_alternative<StateEvent<Encryption>>(event)) { + } else if (boost::get<StateEvent<Encryption>>(&event) != nullptr) { setEncryptedRoom(txn, room_id); return; } @@ -539,7 +539,7 @@ private: if (!isStateEvent(event)) return; - mpark::visit( + boost::apply_visitor( [&txn, &statesdb](auto e) { lmdb::dbi_put( txn, statesdb, lmdb::val(to_string(e.type)), lmdb::val(json(e).dump())); @@ -553,17 +553,17 @@ private: using namespace mtx::events; using namespace mtx::events::state; - return mpark::holds_alternative<StateEvent<Aliases>>(e) || - mpark::holds_alternative<StateEvent<state::Avatar>>(e) || - mpark::holds_alternative<StateEvent<CanonicalAlias>>(e) || - mpark::holds_alternative<StateEvent<Create>>(e) || - mpark::holds_alternative<StateEvent<GuestAccess>>(e) || - mpark::holds_alternative<StateEvent<HistoryVisibility>>(e) || - mpark::holds_alternative<StateEvent<JoinRules>>(e) || - mpark::holds_alternative<StateEvent<Name>>(e) || - mpark::holds_alternative<StateEvent<Member>>(e) || - mpark::holds_alternative<StateEvent<PowerLevels>>(e) || - mpark::holds_alternative<StateEvent<Topic>>(e); + return boost::get<StateEvent<Aliases>>(&e) != nullptr || + boost::get<StateEvent<state::Avatar>>(&e) != nullptr || + boost::get<StateEvent<CanonicalAlias>>(&e) != nullptr || + boost::get<StateEvent<Create>>(&e) != nullptr || + boost::get<StateEvent<GuestAccess>>(&e) != nullptr || + boost::get<StateEvent<HistoryVisibility>>(&e) != nullptr || + boost::get<StateEvent<JoinRules>>(&e) != nullptr || + boost::get<StateEvent<Name>>(&e) != nullptr || + boost::get<StateEvent<Member>>(&e) != nullptr || + boost::get<StateEvent<PowerLevels>>(&e) != nullptr || + boost::get<StateEvent<Topic>>(&e) != nullptr; } template<class T> @@ -572,11 +572,11 @@ private: using namespace mtx::events; using namespace mtx::events::state; - return mpark::holds_alternative<StateEvent<state::Avatar>>(e) || - mpark::holds_alternative<StateEvent<CanonicalAlias>>(e) || - mpark::holds_alternative<StateEvent<Name>>(e) || - mpark::holds_alternative<StateEvent<Member>>(e) || - mpark::holds_alternative<StateEvent<Topic>>(e); + return boost::get<StateEvent<state::Avatar>>(&e) != nullptr || + boost::get<StateEvent<CanonicalAlias>>(&e) != nullptr || + boost::get<StateEvent<Name>>(&e) != nullptr || + boost::get<StateEvent<Member>>(&e) != nullptr || + boost::get<StateEvent<Topic>>(&e) != nullptr; } bool containsStateUpdates(const mtx::events::collections::StrippedEvents &e) @@ -584,11 +584,11 @@ private: using namespace mtx::events; using namespace mtx::events::state; - return mpark::holds_alternative<StrippedEvent<state::Avatar>>(e) || - mpark::holds_alternative<StrippedEvent<CanonicalAlias>>(e) || - mpark::holds_alternative<StrippedEvent<Name>>(e) || - mpark::holds_alternative<StrippedEvent<Member>>(e) || - mpark::holds_alternative<StrippedEvent<Topic>>(e); + return boost::get<StrippedEvent<state::Avatar>>(&e) != nullptr || + boost::get<StrippedEvent<CanonicalAlias>>(&e) != nullptr || + boost::get<StrippedEvent<Name>>(&e) != nullptr || + boost::get<StrippedEvent<Member>>(&e) != nullptr || + boost::get<StrippedEvent<Topic>>(&e) != nullptr; } void saveInvites(lmdb::txn &txn, diff --git a/src/ChatPage.h b/src/ChatPage.h index 9398b443..2000b9e5 100644 --- a/src/ChatPage.h +++ b/src/ChatPage.h @@ -18,6 +18,7 @@ #pragma once #include <atomic> +#include <boost/variant.hpp> #include <QFrame> #include <QHBoxLayout> @@ -249,8 +250,8 @@ ChatPage::getMemberships(const std::vector<Collection> &collection) const using Member = mtx::events::StateEvent<mtx::events::state::Member>; for (const auto &event : collection) { - if (mpark::holds_alternative<Member>(event)) { - auto member = mpark::get<Member>(event); + if (boost::get<Member>(event) != nullptr) { + auto member = boost::get<Member>(event); memberships.emplace(member.state_key, member); } } diff --git a/src/Olm.cpp b/src/Olm.cpp index f65430f1..d12542ed 100644 --- a/src/Olm.cpp +++ b/src/Olm.cpp @@ -1,3 +1,5 @@ +#include <boost/variant.hpp> + #include "Olm.h" #include "Cache.h" @@ -288,14 +290,14 @@ request_keys(const std::string &room_id, const std::string &event_id) return; } - if (!mpark::holds_alternative<EncryptedEvent<msg::Encrypted>>(res)) { + if (boost::get<EncryptedEvent<msg::Encrypted>>(&res) == nullptr) { nhlog::net()->info( "retrieved event is not encrypted: {} from {}", event_id, room_id); return; } olm::send_key_request_for(room_id, - mpark::get<EncryptedEvent<msg::Encrypted>>(res)); + boost::get<EncryptedEvent<msg::Encrypted>>(res)); }); } diff --git a/src/RoomInfoListItem.cpp b/src/RoomInfoListItem.cpp index 172cdb90..4edd7b89 100644 --- a/src/RoomInfoListItem.cpp +++ b/src/RoomInfoListItem.cpp @@ -20,8 +20,6 @@ #include <QMouseEvent> #include <QPainter> -#include <variant.hpp> - #include "Cache.h" #include "Config.h" #include "RoomInfoListItem.h" diff --git a/src/TextInputWidget.cpp b/src/TextInputWidget.cpp index 74ca072b..3c5fa9e9 100644 --- a/src/TextInputWidget.cpp +++ b/src/TextInputWidget.cpp @@ -29,8 +29,6 @@ #include <QStyleOption> #include <QtConcurrent> -#include <variant.hpp> - #include "Cache.h" #include "ChatPage.h" #include "Config.h" diff --git a/src/Utils.cpp b/src/Utils.cpp index ceca53fc..8f7e9992 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -5,7 +5,7 @@ #include <QSettings> #include <cmath> -#include <variant.hpp> +#include <boost/variant.hpp> using TimelineEvent = mtx::events::collections::TimelineEvents; @@ -89,24 +89,24 @@ utils::getMessageDescription(const TimelineEvent &event, using Video = mtx::events::RoomEvent<mtx::events::msg::Video>; using Encrypted = mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>; - if (mpark::holds_alternative<Audio>(event)) { + if (boost::get<Audio>(&event) != nullptr) { return createDescriptionInfo<Audio>(event, localUser, room_id); - } else if (mpark::holds_alternative<Emote>(event)) { + } else if (boost::get<Emote>(&event) != nullptr) { return createDescriptionInfo<Emote>(event, localUser, room_id); - } else if (mpark::holds_alternative<File>(event)) { + } else if (boost::get<File>(&event) != nullptr) { return createDescriptionInfo<File>(event, localUser, room_id); - } else if (mpark::holds_alternative<Image>(event)) { + } else if (boost::get<Image>(&event) != nullptr) { return createDescriptionInfo<Image>(event, localUser, room_id); - } else if (mpark::holds_alternative<Notice>(event)) { + } else if (boost::get<Notice>(&event) != nullptr) { return createDescriptionInfo<Notice>(event, localUser, room_id); - } else if (mpark::holds_alternative<Text>(event)) { + } else if (boost::get<Text>(&event) != nullptr) { return createDescriptionInfo<Text>(event, localUser, room_id); - } else if (mpark::holds_alternative<Video>(event)) { + } else if (boost::get<Video>(&event) != nullptr) { return createDescriptionInfo<Video>(event, localUser, room_id); - } else if (mpark::holds_alternative<mtx::events::Sticker>(event)) { + } else if (boost::get<mtx::events::Sticker>(&event) != nullptr) { return createDescriptionInfo<mtx::events::Sticker>(event, localUser, room_id); - } else if (mpark::holds_alternative<Encrypted>(event)) { - const auto msg = mpark::get<Encrypted>(event); + } else if (boost::get<Encrypted>(&event) != nullptr) { + const auto msg = boost::get<Encrypted>(event); const auto sender = QString::fromStdString(msg.sender); const auto username = Cache::displayName(room_id, sender); @@ -193,21 +193,21 @@ utils::event_body(const mtx::events::collections::TimelineEvents &event) using namespace mtx::events; using namespace mtx::events::msg; - if (mpark::holds_alternative<RoomEvent<Audio>>(event)) { + if (boost::get<RoomEvent<Audio>>(&event) != nullptr) { return message_body<RoomEvent<Audio>>(event); - } else if (mpark::holds_alternative<RoomEvent<Emote>>(event)) { + } else if (boost::get<RoomEvent<Emote>>(&event) != nullptr) { return message_body<RoomEvent<Emote>>(event); - } else if (mpark::holds_alternative<RoomEvent<File>>(event)) { + } else if (boost::get<RoomEvent<File>>(&event) != nullptr) { return message_body<RoomEvent<File>>(event); - } else if (mpark::holds_alternative<RoomEvent<Image>>(event)) { + } else if (boost::get<RoomEvent<Image>>(&event) != nullptr) { return message_body<RoomEvent<Image>>(event); - } else if (mpark::holds_alternative<RoomEvent<Notice>>(event)) { + } else if (boost::get<RoomEvent<Notice>>(&event) != nullptr) { return message_body<RoomEvent<Notice>>(event); - } else if (mpark::holds_alternative<Sticker>(event)) { + } else if (boost::get<Sticker>(&event) != nullptr) { return message_body<Sticker>(event); - } else if (mpark::holds_alternative<RoomEvent<Text>>(event)) { + } else if (boost::get<RoomEvent<Text>>(&event) != nullptr) { return message_body<RoomEvent<Text>>(event); - } else if (mpark::holds_alternative<RoomEvent<Video>>(event)) { + } else if (boost::get<RoomEvent<Video>>(&event) != nullptr) { return message_body<RoomEvent<Video>>(event); } diff --git a/src/Utils.h b/src/Utils.h index faa67faa..90c8d9f6 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -1,5 +1,7 @@ #pragma once +#include <boost/variant.hpp> + #include "Cache.h" #include "RoomInfoListItem.h" #include "timeline/widgets/AudioItem.h" @@ -96,7 +98,7 @@ createDescriptionInfo(const Event &event, const QString &localUser, const QStrin using Text = mtx::events::RoomEvent<mtx::events::msg::Text>; using Emote = mtx::events::RoomEvent<mtx::events::msg::Emote>; - const auto msg = mpark::get<T>(event); + const auto msg = boost::get<T>(event); const auto sender = QString::fromStdString(msg.sender); const auto username = Cache::displayName(room_id, sender); @@ -135,25 +137,25 @@ erase_if(ContainerT &items, const PredicateT &predicate) inline uint64_t event_timestamp(const mtx::events::collections::TimelineEvents &event) { - return mpark::visit([](auto msg) { return msg.origin_server_ts; }, event); + return boost::apply_visitor([](auto msg) { return msg.origin_server_ts; }, event); } inline nlohmann::json serialize_event(const mtx::events::collections::TimelineEvents &event) { - return mpark::visit([](auto msg) { return json(msg); }, event); + return boost::apply_visitor([](auto msg) { return json(msg); }, event); } inline mtx::events::EventType event_type(const mtx::events::collections::TimelineEvents &event) { - return mpark::visit([](auto msg) { return msg.type; }, event); + return boost::apply_visitor([](auto msg) { return msg.type; }, event); } inline std::string event_id(const mtx::events::collections::TimelineEvents &event) { - return mpark::visit([](auto msg) { return msg.event_id; }, event); + return boost::apply_visitor([](auto msg) { return msg.event_id; }, event); } inline QString @@ -165,14 +167,15 @@ eventId(const mtx::events::collections::TimelineEvents &event) inline QString event_sender(const mtx::events::collections::TimelineEvents &event) { - return mpark::visit([](auto msg) { return QString::fromStdString(msg.sender); }, event); + return boost::apply_visitor([](auto msg) { return QString::fromStdString(msg.sender); }, + event); } template<class T> QString message_body(const mtx::events::collections::TimelineEvents &event) { - return QString::fromStdString(mpark::get<T>(event).content.body); + return QString::fromStdString(boost::get<T>(event).content.body); } //! Calculate the Levenshtein distance between two strings with character skipping. @@ -192,4 +195,4 @@ humanReadableFingerprint(const std::string &ed25519); QString humanReadableFingerprint(const QString &ed25519); -} \ No newline at end of file +} diff --git a/src/timeline/TimelineView.cpp b/src/timeline/TimelineView.cpp index 887d4d4f..bf828a8e 100644 --- a/src/timeline/TimelineView.cpp +++ b/src/timeline/TimelineView.cpp @@ -15,6 +15,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <boost/variant.hpp> + #include <QApplication> #include <QFileInfo> #include <QTimer> @@ -223,8 +225,8 @@ TimelineView::parseMessageEvent(const mtx::events::collections::TimelineEvents & using TextEvent = RoomEvent<msg::Text>; using VideoEvent = RoomEvent<msg::Video>; - if (mpark::holds_alternative<RedactionEvent<msg::Redaction>>(event)) { - auto redaction_event = mpark::get<RedactionEvent<msg::Redaction>>(event); + if (boost::get<RedactionEvent<msg::Redaction>>(&event) != nullptr) { + auto redaction_event = boost::get<RedactionEvent<msg::Redaction>>(event); const auto event_id = QString::fromStdString(redaction_event.redacts); QTimer::singleShot(0, this, [event_id, this]() { @@ -233,8 +235,8 @@ TimelineView::parseMessageEvent(const mtx::events::collections::TimelineEvents & }); return nullptr; - } else if (mpark::holds_alternative<StateEvent<state::Encryption>>(event)) { - auto msg = mpark::get<StateEvent<state::Encryption>>(event); + } else if (boost::get<StateEvent<state::Encryption>>(&event) != nullptr) { + auto msg = boost::get<StateEvent<state::Encryption>>(event); auto event_id = QString::fromStdString(msg.event_id); if (eventIds_.contains(event_id)) @@ -248,32 +250,32 @@ TimelineView::parseMessageEvent(const mtx::events::collections::TimelineEvents & saveMessageInfo("", msg.origin_server_ts, direction); return item; - } else if (mpark::holds_alternative<RoomEvent<msg::Audio>>(event)) { - auto audio = mpark::get<RoomEvent<msg::Audio>>(event); + } else if (boost::get<RoomEvent<msg::Audio>>(&event) != nullptr) { + auto audio = boost::get<RoomEvent<msg::Audio>>(event); return processMessageEvent<AudioEvent, AudioItem>(audio, direction); - } else if (mpark::holds_alternative<RoomEvent<msg::Emote>>(event)) { - auto emote = mpark::get<RoomEvent<msg::Emote>>(event); + } else if (boost::get<RoomEvent<msg::Emote>>(&event) != nullptr) { + auto emote = boost::get<RoomEvent<msg::Emote>>(event); return processMessageEvent<EmoteEvent>(emote, direction); - } else if (mpark::holds_alternative<RoomEvent<msg::File>>(event)) { - auto file = mpark::get<RoomEvent<msg::File>>(event); + } else if (boost::get<RoomEvent<msg::File>>(&event) != nullptr) { + auto file = boost::get<RoomEvent<msg::File>>(event); return processMessageEvent<FileEvent, FileItem>(file, direction); - } else if (mpark::holds_alternative<RoomEvent<msg::Image>>(event)) { - auto image = mpark::get<RoomEvent<msg::Image>>(event); + } else if (boost::get<RoomEvent<msg::Image>>(&event) != nullptr) { + auto image = boost::get<RoomEvent<msg::Image>>(event); return processMessageEvent<ImageEvent, ImageItem>(image, direction); - } else if (mpark::holds_alternative<RoomEvent<msg::Notice>>(event)) { - auto notice = mpark::get<RoomEvent<msg::Notice>>(event); + } else if (boost::get<RoomEvent<msg::Notice>>(&event) != nullptr) { + auto notice = boost::get<RoomEvent<msg::Notice>>(event); return processMessageEvent<NoticeEvent>(notice, direction); - } else if (mpark::holds_alternative<RoomEvent<msg::Text>>(event)) { - auto text = mpark::get<RoomEvent<msg::Text>>(event); + } else if (boost::get<RoomEvent<msg::Text>>(&event) != nullptr) { + auto text = boost::get<RoomEvent<msg::Text>>(event); return processMessageEvent<TextEvent>(text, direction); - } else if (mpark::holds_alternative<RoomEvent<msg::Video>>(event)) { - auto video = mpark::get<RoomEvent<msg::Video>>(event); + } else if (boost::get<RoomEvent<msg::Video>>(&event) != nullptr) { + auto video = boost::get<RoomEvent<msg::Video>>(event); return processMessageEvent<VideoEvent, VideoItem>(video, direction); - } else if (mpark::holds_alternative<Sticker>(event)) { - return processMessageEvent<Sticker, StickerItem>(mpark::get<Sticker>(event), + } else if (boost::get<Sticker>(&event) != nullptr) { + return processMessageEvent<Sticker, StickerItem>(boost::get<Sticker>(event), direction); - } else if (mpark::holds_alternative<EncryptedEvent<msg::Encrypted>>(event)) { - auto res = parseEncryptedEvent(mpark::get<EncryptedEvent<msg::Encrypted>>(event)); + } else if (boost::get<EncryptedEvent<msg::Encrypted>>(&event) != nullptr) { + auto res = parseEncryptedEvent(boost::get<EncryptedEvent<msg::Encrypted>>(event)); auto widget = parseMessageEvent(res.event, direction); if (widget == nullptr) |