summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2023-04-11 00:11:46 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2023-04-11 01:38:46 +0200
commit10b65b78fa8265dbeeb33e755fafcd642b21b514 (patch)
tree937cd43488aa8e938937a79422cd09966422874f /src/timeline
parentMerge pull request #1407 from Nheko-Reborn/ducktyping (diff)
downloadnheko-10b65b78fa8265dbeeb33e755fafcd642b21b514.tar.xz
Adapt to the new inherited variant
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/EventStore.cpp38
-rw-r--r--src/timeline/EventStore.h12
-rw-r--r--src/timeline/InputBar.cpp2
-rw-r--r--src/timeline/TimelineModel.cpp39
-rw-r--r--src/timeline/TimelineModel.h2
-rw-r--r--src/timeline/TimelineViewManager.cpp2
-rw-r--r--src/timeline/TimelineViewManager.h2
7 files changed, 48 insertions, 49 deletions
diff --git a/src/timeline/EventStore.cpp b/src/timeline/EventStore.cpp

index 5aa105b0..84b6dcd4 100644 --- a/src/timeline/EventStore.cpp +++ b/src/timeline/EventStore.cpp
@@ -155,7 +155,7 @@ EventStore::EventStore(std::string room_id, QObject *) } }); }, - event->data); + event.value()); }); connect( @@ -195,20 +195,20 @@ EventStore::EventStore(std::string room_id, QObject *) mtx::events::EncryptedEvent<mtx::events::msg::Encrypted> original_encrypted; if (auto encrypted = std::get_if<mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>( - &pending_event->data)) { + &pending_event.value())) { auto d_event = decryptEvent({room_id_, encrypted->event_id}, *encrypted); if (d_event->event) { - was_encrypted = true; - original_encrypted = *encrypted; - pending_event->data = *d_event->event; + was_encrypted = true; + original_encrypted = std::move(*encrypted); + *pending_event = std::move(*d_event->event); } } - auto relations = mtx::accessors::relations(pending_event->data); + auto relations = mtx::accessors::relations(pending_event.value()); // Replace the blockquote in fallback reply auto related_text = std::get_if<mtx::events::RoomEvent<mtx::events::msg::Text>>( - &pending_event->data); + &pending_event.value()); if (related_text && relations.reply_to() == txn_id) { size_t index = related_text->content.formatted_body.find(txn_id); if (index != std::string::npos) { @@ -228,7 +228,7 @@ EventStore::EventStore(std::string room_id, QObject *) if (!replaced_txn) continue; - mtx::accessors::set_relations(pending_event->data, std::move(relations)); + mtx::accessors::set_relations(pending_event.value(), std::move(relations)); // reencrypt. This is a bit of a hack and might make people able to read the // message, that were in the room at the time of sending the last pending message. @@ -246,7 +246,7 @@ EventStore::EventStore(std::string room_id, QObject *) {"content", nlohmann::json(msg.content)}, {"room_id", room_id_}}; }, - pending_event->data); + pending_event.value()); auto data = olm::encrypt_group_message_with_session( session.session, http::client()->device_id(), std::move(doc)); @@ -255,8 +255,8 @@ EventStore::EventStore(std::string room_id, QObject *) olm_outbound_group_session_message_index(session.session.get()); cache::updateOutboundMegolmSession(room_id_, session.data, session.session); - original_encrypted.content = data; - pending_event->data = original_encrypted; + original_encrypted.content = std::move(data); + *pending_event = std::move(original_encrypted); } cache::client()->replaceEvent(room_id_, pending_event_id, *pending_event); @@ -629,7 +629,7 @@ EventStore::reactions(const std::string &event_id) return temp; } -mtx::events::collections::TimelineEvents * +mtx::events::collections::TimelineEvents const * EventStore::get(int idx, bool decrypt) { if (this->thread() != QThread::currentThread()) @@ -645,17 +645,17 @@ EventStore::get(int idx, bool decrypt) if (!event_id) return nullptr; - std::optional<mtx::events::collections::TimelineEvent> event; + std::optional<mtx::events::collections::TimelineEvents> event; auto edits_ = edits(*event_id); if (edits_.empty()) event = cache::client()->getEvent(room_id_, *event_id); else - event = mtx::events::collections::TimelineEvent{edits_.back()}; + event = mtx::events::collections::TimelineEvents{edits_.back()}; if (!event) return nullptr; else - event_ptr = new mtx::events::collections::TimelineEvents(std::move(event->data)); + event_ptr = new mtx::events::collections::TimelineEvents(std::move(*event)); events_.insert(index, event_ptr); } @@ -692,7 +692,7 @@ EventStore::indexToId(int idx) const return cache::client()->getTimelineEventId(room_id_, toInternalIdx(idx)); } -olm::DecryptionResult * +olm::DecryptionResult const * EventStore::decryptEvent(const IdIndex &idx, const mtx::events::EncryptedEvent<mtx::events::msg::Encrypted> &e) { @@ -813,7 +813,7 @@ EventStore::enableKeyRequests(bool suppressKeyRequests_) suppressKeyRequests = true; } -mtx::events::collections::TimelineEvents * +mtx::events::collections::TimelineEvents const * EventStore::get(const std::string &id, std::string_view related_to, bool decrypt, @@ -856,7 +856,7 @@ EventStore::get(const std::string &id, }); return nullptr; } - event_ptr = new mtx::events::collections::TimelineEvents(std::move(event->data)); + event_ptr = new mtx::events::collections::TimelineEvents(std::move(*event)); events_by_id_.insert(index, event_ptr); } @@ -895,7 +895,7 @@ EventStore::decryptionError(std::string id) if (!event) { return olm::DecryptionErrorCode::NoError; } - event_ptr = new mtx::events::collections::TimelineEvents(std::move(event->data)); + event_ptr = new mtx::events::collections::TimelineEvents(std::move(*event)); events_by_id_.insert(index, event_ptr); } diff --git a/src/timeline/EventStore.h b/src/timeline/EventStore.h
index 5018ffbf..bf905fc6 100644 --- a/src/timeline/EventStore.h +++ b/src/timeline/EventStore.h
@@ -73,12 +73,12 @@ public: // optionally returns the event or nullptr and fetches it, after which it emits a // relatedFetched event - mtx::events::collections::TimelineEvents *get(const std::string &id, - std::string_view related_to, - bool decrypt = true, - bool resolve_edits = true); + mtx::events::collections::TimelineEvents const *get(const std::string &id, + std::string_view related_to, + bool decrypt = true, + bool resolve_edits = true); // always returns a proper event as long as the idx is valid - mtx::events::collections::TimelineEvents *get(int idx, bool decrypt = true); + mtx::events::collections::TimelineEvents const *get(int idx, bool decrypt = true); QVariantList reactions(const std::string &event_id); std::vector<mtx::events::collections::TimelineEvents> edits(const std::string &event_id); @@ -126,7 +126,7 @@ public slots: void enableKeyRequests(bool suppressKeyRequests_); private: - olm::DecryptionResult * + olm::DecryptionResult const * decryptEvent(const IdIndex &idx, const mtx::events::EncryptedEvent<mtx::events::msg::Encrypted> &e); diff --git a/src/timeline/InputBar.cpp b/src/timeline/InputBar.cpp
index fe8b8e48..879ec7cc 100644 --- a/src/timeline/InputBar.cpp +++ b/src/timeline/InputBar.cpp
@@ -53,7 +53,7 @@ threadFallbackEventId(const std::string &room_id, const std::string &thread_id) for (const auto &[index, event_id] : orderedEvents) { (void)index; if (auto event = cache::client()->getEvent(room_id, event_id)) { - if (mtx::accessors::relations(event->data).thread() == thread_id) + if (mtx::accessors::relations(event.value()).thread() == thread_id) return std::string(event_id); } } diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 918d1c0b..f80f2ee9 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -776,13 +776,12 @@ TimelineModel::data(const mtx::events::collections::TimelineEvents &event, int r return qml_mtx_events::NotificationLevel::Nothing; const auto &id = event_id(event); - std::vector<std::pair<mtx::common::Relation, mtx::events::collections::TimelineEvent>> + std::vector<std::pair<mtx::common::Relation, mtx::events::collections::TimelineEvents>> relatedEvents; for (const auto &r : mtx::accessors::relations(event).relations) { auto related = events.get(r.event_id, id); if (related) { - relatedEvents.emplace_back(r, - mtx::events::collections::TimelineEvent{*related}); + relatedEvents.emplace_back(r, *related); } } @@ -1790,7 +1789,7 @@ TimelineModel::openMedia(const QString &eventId) bool TimelineModel::saveMedia(const QString &eventId) const { - mtx::events::collections::TimelineEvents *event = events.get(eventId.toStdString(), ""); + auto event = events.get(eventId.toStdString(), ""); if (!event) return false; @@ -1865,7 +1864,7 @@ void TimelineModel::cacheMedia(const QString &eventId, const std::function<void(const QString)> &callback) { - mtx::events::collections::TimelineEvents *event = events.get(eventId.toStdString(), ""); + auto event = events.get(eventId.toStdString(), ""); if (!event) return; @@ -2150,7 +2149,7 @@ TimelineModel::formatTypingUsers(const std::vector<QString> &users, const QColor QString TimelineModel::formatJoinRuleEvent(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return {}; @@ -2187,7 +2186,7 @@ TimelineModel::formatJoinRuleEvent(const QString &id) QString TimelineModel::formatGuestAccessEvent(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return {}; @@ -2211,7 +2210,7 @@ TimelineModel::formatGuestAccessEvent(const QString &id) QString TimelineModel::formatHistoryVisibilityEvent(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return {}; @@ -2243,7 +2242,7 @@ TimelineModel::formatHistoryVisibilityEvent(const QString &id) QString TimelineModel::formatPowerLevelEvent(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return {}; @@ -2251,7 +2250,7 @@ TimelineModel::formatPowerLevelEvent(const QString &id) if (!event) return QString(); - mtx::events::StateEvent<mtx::events::state::PowerLevels> *prevEvent = nullptr; + mtx::events::StateEvent<mtx::events::state::PowerLevels> const *prevEvent = nullptr; if (!event->unsigned_data.replaces_state.empty()) { auto tempPrevEvent = events.get(event->unsigned_data.replaces_state, event->event_id); if (tempPrevEvent) { @@ -2519,7 +2518,7 @@ TimelineModel::formatPowerLevelEvent(const QString &id) QString TimelineModel::formatImagePackEvent(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return {}; @@ -2527,7 +2526,7 @@ TimelineModel::formatImagePackEvent(const QString &id) if (!event) return {}; - mtx::events::StateEvent<mtx::events::msc2545::ImagePack> *prevEvent = nullptr; + mtx::events::StateEvent<mtx::events::msc2545::ImagePack> const *prevEvent = nullptr; if (!event->unsigned_data.replaces_state.empty()) { auto tempPrevEvent = events.get(event->unsigned_data.replaces_state, event->event_id); if (tempPrevEvent) { @@ -2591,8 +2590,8 @@ TimelineModel::formatImagePackEvent(const QString &id) QString TimelineModel::formatPolicyRule(const QString &id) { - auto idStr = id.toStdString(); - mtx::events::collections::TimelineEvents *e = events.get(idStr, ""); + auto idStr = id.toStdString(); + auto e = events.get(idStr, ""); if (!e) return {}; @@ -2683,7 +2682,7 @@ QVariantMap TimelineModel::formatRedactedEvent(const QString &id) { QVariantMap pair{{"first", ""}, {"second", ""}}; - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return pair; @@ -2720,7 +2719,7 @@ TimelineModel::formatRedactedEvent(const QString &id) void TimelineModel::acceptKnock(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return; @@ -2745,7 +2744,7 @@ TimelineModel::acceptKnock(const QString &id) bool TimelineModel::showAcceptKnockButton(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return false; @@ -2766,7 +2765,7 @@ TimelineModel::showAcceptKnockButton(const QString &id) void TimelineModel::joinReplacementRoom(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return; @@ -2792,7 +2791,7 @@ TimelineModel::joinReplacementRoom(const QString &id) QString TimelineModel::formatMemberEvent(const QString &id) { - mtx::events::collections::TimelineEvents *e = events.get(id.toStdString(), ""); + auto e = events.get(id.toStdString(), ""); if (!e) return {}; @@ -2800,7 +2799,7 @@ TimelineModel::formatMemberEvent(const QString &id) if (!event) return {}; - mtx::events::StateEvent<mtx::events::state::Member> *prevEvent = nullptr; + mtx::events::StateEvent<mtx::events::state::Member> const *prevEvent = nullptr; if (!event->unsigned_data.replaces_state.empty()) { auto tempPrevEvent = events.get(event->unsigned_data.replaces_state, event->event_id); if (tempPrevEvent) { diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index ef845bb5..0244c1b1 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -483,7 +483,7 @@ signals: void isDirectChanged(); void directChatOtherUserIdChanged(); void permissionsChanged(); - void forwardToRoom(mtx::events::collections::TimelineEvents *e, QString roomId); + void forwardToRoom(mtx::events::collections::TimelineEvents const *e, QString roomId); void scrollTargetChanged(); diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index c19d0c3f..b949e4c3 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp
@@ -461,7 +461,7 @@ TimelineViewManager::completerFor(const QString &completerName, const QString &r } void -TimelineViewManager::forwardMessageToRoom(mtx::events::collections::TimelineEvents *e, +TimelineViewManager::forwardMessageToRoom(mtx::events::collections::TimelineEvents const *e, QString roomId) { auto room = rooms_->getRoomById(roomId); diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h
index 089b2e1f..ee5cf031 100644 --- a/src/timeline/TimelineViewManager.h +++ b/src/timeline/TimelineViewManager.h
@@ -113,7 +113,7 @@ public slots: QObject *completerFor(const QString &completerName, const QString &roomId = QLatin1String(QLatin1String(""))); - void forwardMessageToRoom(mtx::events::collections::TimelineEvents *e, QString roomId); + void forwardMessageToRoom(mtx::events::collections::TimelineEvents const *e, QString roomId); RoomlistModel *rooms() { return rooms_; }