2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-03 16:05:57 +00:00

Support shared media / pins for sublists.

This commit is contained in:
John Preston
2025-06-02 15:00:36 +04:00
parent ffe6786ad1
commit dfc1ec3ccf
83 changed files with 1105 additions and 221 deletions

View File

@@ -17,6 +17,7 @@ class History;
namespace Data {
class Session;
class ForumTopic;
class SavedSublist;
class Thread;
struct ItemNotification;
enum class ItemNotificationType;
@@ -109,8 +110,10 @@ public:
void checkDelayed();
void schedule(Data::ItemNotification notification);
void clearFromTopic(not_null<Data::ForumTopic*> topic);
void clearFromSublist(not_null<Data::SavedSublist*> sublist);
void clearFromHistory(not_null<History*> history);
void clearIncomingFromTopic(not_null<Data::ForumTopic*> topic);
void clearIncomingFromSublist(not_null<Data::SavedSublist*> sublist);
void clearIncomingFromHistory(not_null<History*> history);
void clearFromSession(not_null<Main::Session*> session);
void clearFromItem(not_null<HistoryItem*> item);
@@ -221,6 +224,9 @@ private:
base::flat_map<
not_null<Data::ForumTopic*>,
rpl::lifetime> _watchedTopics;
base::flat_map<
not_null<Data::SavedSublist*>,
rpl::lifetime> _watchedSublists;
int _lastForwardedCount = 0;
uint64 _lastHistorySessionId = 0;
@@ -237,6 +243,7 @@ public:
uint64 sessionId = 0;
PeerId peerId = 0;
MsgId topicRootId = 0;
PeerId monoforumPeerId = 0;
friend inline auto operator<=>(
const ContextId&,
@@ -279,6 +286,9 @@ public:
void clearFromTopic(not_null<Data::ForumTopic*> topic) {
doClearFromTopic(topic);
}
void clearFromSublist(not_null<Data::SavedSublist*> sublist) {
doClearFromSublist(sublist);
}
void clearFromHistory(not_null<History*> history) {
doClearFromHistory(history);
}
@@ -341,6 +351,8 @@ protected:
virtual void doClearAllFast() = 0;
virtual void doClearFromItem(not_null<HistoryItem*> item) = 0;
virtual void doClearFromTopic(not_null<Data::ForumTopic*> topic) = 0;
virtual void doClearFromSublist(
not_null<Data::SavedSublist*> sublist) = 0;
virtual void doClearFromHistory(not_null<History*> history) = 0;
virtual void doClearFromSession(not_null<Main::Session*> session) = 0;
[[nodiscard]] virtual bool doSkipToast() const = 0;
@@ -377,6 +389,7 @@ public:
struct NotificationInfo {
not_null<PeerData*> peer;
MsgId topicRootId = 0;
PeerId monoforumPeerId = 0;
MsgId itemId = 0;
QString title;
QString subtitle;
@@ -426,6 +439,8 @@ protected:
}
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 {