mirror of
https://github.com/Qz3rK/tdesktop.git
synced 2026-06-02 03:53:42 +02:00
Suggest all send options in topics.
This commit is contained in:
@@ -696,7 +696,7 @@ bool PeerData::canPinMessages() const {
|
||||
Unexpected("Peer type in PeerData::canPinMessages.");
|
||||
}
|
||||
|
||||
bool PeerData::canCreatePolls() const {
|
||||
bool PeerData::canCreatePolls(bool forbidInForums) const {
|
||||
if (const auto user = asUser()) {
|
||||
return user->isSelf()
|
||||
|| (user->isBot()
|
||||
@@ -706,15 +706,16 @@ bool PeerData::canCreatePolls() const {
|
||||
} else if (isMonoforum()) {
|
||||
return false;
|
||||
}
|
||||
return Data::CanSend(this, ChatRestriction::SendPolls);
|
||||
return Data::CanSend(this, ChatRestriction::SendPolls, forbidInForums);
|
||||
}
|
||||
|
||||
bool PeerData::canCreateTodoLists() const {
|
||||
bool PeerData::canCreateTodoLists(bool forbidInForums) const {
|
||||
if (isMonoforum() || isBroadcast()) {
|
||||
return false;
|
||||
}
|
||||
return session().premium()
|
||||
&& (Data::CanSend(this, ChatRestriction::SendPolls) || isUser());
|
||||
&& (Data::CanSend(this, ChatRestriction::SendPolls, forbidInForums)
|
||||
|| isUser());
|
||||
}
|
||||
|
||||
bool PeerData::canCreateTopics() const {
|
||||
|
||||
@@ -463,8 +463,8 @@ public:
|
||||
|
||||
[[nodiscard]] bool canPinMessages() const;
|
||||
[[nodiscard]] bool canEditMessagesIndefinitely() const;
|
||||
[[nodiscard]] bool canCreatePolls() const;
|
||||
[[nodiscard]] bool canCreateTodoLists() const;
|
||||
[[nodiscard]] bool canCreatePolls(bool forbidInForums = true) const;
|
||||
[[nodiscard]] bool canCreateTodoLists(bool forbidInForums = true) const;
|
||||
[[nodiscard]] bool canCreateTopics() const;
|
||||
[[nodiscard]] bool canManageTopics() const;
|
||||
[[nodiscard]] bool canPostStories() const;
|
||||
|
||||
@@ -2819,13 +2819,13 @@ std::unique_ptr<Ui::DropdownMenu> MakeAttachBotsMenu(
|
||||
| ChatRestriction::SendStickers
|
||||
| ChatRestriction::SendMusic
|
||||
| ChatRestriction::SendFiles;
|
||||
if (Data::CanSendAnyOf(peer, fileTypes)) {
|
||||
if (Data::CanSendAnyOf(peer, fileTypes, false)) {
|
||||
++minimal;
|
||||
raw->addAction(tr::lng_attach_document(tr::now), [=] {
|
||||
attach(false);
|
||||
}, &st::menuIconFile);
|
||||
}
|
||||
if (peer->canCreatePolls()) {
|
||||
if (peer->canCreatePolls(false)) {
|
||||
++minimal;
|
||||
raw->addAction(tr::lng_polls_menu_item(tr::now), [=] {
|
||||
const auto action = actionFactory();
|
||||
@@ -2848,7 +2848,7 @@ std::unique_ptr<Ui::DropdownMenu> MakeAttachBotsMenu(
|
||||
{ sendMenuType });
|
||||
}, &st::menuIconCreatePoll);
|
||||
}
|
||||
if (peer->canCreateTodoLists()) {
|
||||
if (peer->canCreateTodoLists(false)) {
|
||||
++minimal;
|
||||
raw->addAction(tr::lng_todo_menu_item(tr::now), [=] {
|
||||
const auto action = actionFactory();
|
||||
@@ -2871,13 +2871,13 @@ std::unique_ptr<Ui::DropdownMenu> MakeAttachBotsMenu(
|
||||
const auto session = &controller->session();
|
||||
const auto locationType = ChatRestriction::SendOther;
|
||||
const auto config = ResolveMapsConfig(session);
|
||||
if (Data::CanSendAnyOf(peer, locationType)
|
||||
if (Data::CanSendAnyOf(peer, locationType, false)
|
||||
&& Ui::LocationPicker::Available(config)) {
|
||||
raw->addAction(tr::lng_maps_point(tr::now), [=] {
|
||||
ChooseAndSendLocation(controller, config, actionFactory());
|
||||
}, &st::menuIconAddress);
|
||||
}
|
||||
const auto addBots = Data::CanSend(peer, ChatRestriction::SendInline)
|
||||
const auto addBots = Data::CanSend(peer, ChatRestriction::SendInline, false)
|
||||
&& !peer->starsPerMessageChecked();
|
||||
for (const auto &bot : bots->attachBots()) {
|
||||
if (!addBots
|
||||
|
||||
Reference in New Issue
Block a user