summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-09-01 13:35:10 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-09-01 13:35:10 +0300
commit990a3a97c7578c30223ff4f348b9241be75f5bf9 (patch)
tree392164db51daf80aac81bde90f35129dd338b972 /src
parentRemove nix script which was unmaintained (diff)
downloadnheko-990a3a97c7578c30223ff4f348b9241be75f5bf9.tar.xz
Merge matrix-structs into the client lib
Diffstat (limited to 'src')
-rw-r--r--src/Cache.cpp10
-rw-r--r--src/Cache.h50
-rw-r--r--src/ChatPage.h5
-rw-r--r--src/Olm.cpp6
-rw-r--r--src/RoomInfoListItem.cpp2
-rw-r--r--src/TextInputWidget.cpp2
-rw-r--r--src/Utils.cpp38
-rw-r--r--src/Utils.h19
-rw-r--r--src/timeline/TimelineView.cpp46
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)