mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-09-01 15:05:56 +00:00
Support shared media / pins for sublists.
This commit is contained in:
@@ -16,6 +16,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "core/sandbox.h"
|
||||
#include "core/core_settings.h"
|
||||
#include "data/data_forum_topic.h"
|
||||
#include "data/data_saved_sublist.h"
|
||||
#include "data/data_peer.h"
|
||||
#include "history/history.h"
|
||||
#include "history/history_item.h"
|
||||
#include "main/main_session.h"
|
||||
@@ -156,6 +158,7 @@ public:
|
||||
void clearAll();
|
||||
void clearFromItem(not_null<HistoryItem*> item);
|
||||
void clearFromTopic(not_null<Data::ForumTopic*> topic);
|
||||
void clearFromSublist(not_null<Data::SavedSublist*> sublist);
|
||||
void clearFromHistory(not_null<History*> history);
|
||||
void clearFromSession(not_null<Main::Session*> session);
|
||||
void clearNotification(NotificationId id);
|
||||
@@ -367,6 +370,8 @@ Manager::Private::Private(not_null<Manager*> manager)
|
||||
.sessionId = dict.lookup_value("session").get_uint64(),
|
||||
.peerId = PeerId(dict.lookup_value("peer").get_uint64()),
|
||||
.topicRootId = dict.lookup_value("topic").get_int64(),
|
||||
.monoforumPeerId = dict.lookup_value(
|
||||
"monoforumpeer").get_uint64(),
|
||||
},
|
||||
.msgId = dict.lookup_value("msgid").get_int64(),
|
||||
};
|
||||
@@ -531,6 +536,7 @@ void Manager::Private::showNotification(
|
||||
.sessionId = peer->session().uniqueId(),
|
||||
.peerId = peer->id,
|
||||
.topicRootId = info.topicRootId,
|
||||
.monoforumPeerId = info.monoforumPeerId,
|
||||
};
|
||||
const auto notificationId = NotificationId{
|
||||
.contextId = key,
|
||||
@@ -591,6 +597,10 @@ void Manager::Private::showNotification(
|
||||
GLib::Variant::new_string("topic"),
|
||||
GLib::Variant::new_variant(
|
||||
GLib::Variant::new_int64(info.topicRootId.bare))),
|
||||
GLib::Variant::new_dict_entry(
|
||||
GLib::Variant::new_string("monoforumpeer"),
|
||||
GLib::Variant::new_variant(
|
||||
GLib::Variant::new_uint64(info.monoforumPeerId.value))),
|
||||
GLib::Variant::new_dict_entry(
|
||||
GLib::Variant::new_string("msgid"),
|
||||
GLib::Variant::new_variant(
|
||||
@@ -809,6 +819,7 @@ void Manager::Private::clearFromItem(not_null<HistoryItem*> item) {
|
||||
.sessionId = item->history()->session().uniqueId(),
|
||||
.peerId = item->history()->peer->id,
|
||||
.topicRootId = item->topicRootId(),
|
||||
.monoforumPeerId = item->sublistPeerId(),
|
||||
});
|
||||
if (i != _notifications.cend()
|
||||
&& i->second.remove(item->id)
|
||||
@@ -825,6 +836,15 @@ void Manager::Private::clearFromTopic(not_null<Data::ForumTopic*> topic) {
|
||||
});
|
||||
}
|
||||
|
||||
void Manager::Private::clearFromSublist(
|
||||
not_null<Data::SavedSublist*> sublist) {
|
||||
_notifications.remove(ContextId{
|
||||
.sessionId = sublist->session().uniqueId(),
|
||||
.peerId = sublist->owningHistory()->peer->id,
|
||||
.monoforumPeerId = sublist->sublistPeer()->id,
|
||||
});
|
||||
}
|
||||
|
||||
void Manager::Private::clearFromHistory(not_null<History*> history) {
|
||||
const auto sessionId = history->session().uniqueId();
|
||||
const auto peerId = history->peer->id;
|
||||
@@ -889,6 +909,10 @@ void Manager::doClearFromTopic(not_null<Data::ForumTopic*> topic) {
|
||||
_private->clearFromTopic(topic);
|
||||
}
|
||||
|
||||
void Manager::doClearFromSublist(not_null<Data::SavedSublist*> sublist) {
|
||||
_private->clearFromSublist(sublist);
|
||||
}
|
||||
|
||||
void Manager::doClearFromHistory(not_null<History*> history) {
|
||||
_private->clearFromHistory(history);
|
||||
}
|
||||
|
@@ -24,6 +24,7 @@ protected:
|
||||
void doClearAllFast() override;
|
||||
void doClearFromItem(not_null<HistoryItem*> item) override;
|
||||
void doClearFromTopic(not_null<Data::ForumTopic*> topic) override;
|
||||
void doClearFromSublist(not_null<Data::SavedSublist*> sublist) override;
|
||||
void doClearFromHistory(not_null<History*> history) override;
|
||||
void doClearFromSession(not_null<Main::Session*> session) override;
|
||||
bool doSkipToast() const override;
|
||||
|
Reference in New Issue
Block a user