mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
Added ability to delete added poll answer.
This commit is contained in:
@@ -4978,6 +4978,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
"lng_context_reply_to_task" = "Reply to Task";
|
||||
"lng_context_reply_to_poll_option" = "Reply to Option";
|
||||
"lng_context_copy_poll_option" = "Copy Option";
|
||||
"lng_context_delete_poll_option" = "Delete Option";
|
||||
"lng_context_edit_msg" = "Edit";
|
||||
"lng_context_draw" = "Edit Image";
|
||||
"lng_context_add_factcheck" = "Add Fact Check";
|
||||
|
||||
@@ -231,6 +231,27 @@ void Polls::addAnswer(
|
||||
_pollAddAnswerRequestIds.emplace(itemId, requestId);
|
||||
}
|
||||
|
||||
void Polls::deleteAnswer(FullMsgId itemId, const QByteArray &option) {
|
||||
if (_pollVotesRequestIds.contains(itemId)) {
|
||||
return;
|
||||
}
|
||||
const auto item = _session->data().message(itemId);
|
||||
if (!item) {
|
||||
return;
|
||||
}
|
||||
const auto requestId = _api.request(MTPmessages_DeletePollAnswer(
|
||||
item->history()->peer->input(),
|
||||
MTP_int(item->id),
|
||||
MTP_bytes(option)
|
||||
)).done([=](const MTPUpdates &result) {
|
||||
_pollVotesRequestIds.erase(itemId);
|
||||
_session->updates().applyUpdates(result);
|
||||
}).fail([=] {
|
||||
_pollVotesRequestIds.erase(itemId);
|
||||
}).send();
|
||||
_pollVotesRequestIds.emplace(itemId, requestId);
|
||||
}
|
||||
|
||||
void Polls::close(not_null<HistoryItem*> item) {
|
||||
const auto itemId = item->fullId();
|
||||
if (_pollCloseRequestIds.contains(itemId)) {
|
||||
|
||||
@@ -42,6 +42,7 @@ public:
|
||||
const PollMedia &media,
|
||||
Fn<void()> done,
|
||||
Fn<void(QString)> fail);
|
||||
void deleteAnswer(FullMsgId itemId, const QByteArray &option);
|
||||
void close(not_null<HistoryItem*> item);
|
||||
void reloadResults(not_null<HistoryItem*> item);
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
*/
|
||||
#include "history/history_inner_widget.h"
|
||||
|
||||
#include "api/api_polls.h"
|
||||
#include "chat_helpers/stickers_emoji_pack.h"
|
||||
#include "core/application.h"
|
||||
#include "core/file_utilities.h"
|
||||
@@ -2995,6 +2996,18 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||
TextUtilities::SetClipboardText(text);
|
||||
},
|
||||
&st::menuIconCopy);
|
||||
if (poll->creator() && a->addedDate) {
|
||||
const auto itemId = item->fullId();
|
||||
const auto option = pollOptionLink;
|
||||
_menu->addAction(
|
||||
tr::lng_context_delete_poll_option(tr::now),
|
||||
[=] {
|
||||
poll->session().api().polls().deleteAnswer(
|
||||
itemId,
|
||||
option);
|
||||
},
|
||||
&st::menuIconDelete);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1323,6 +1323,17 @@ base::unique_qptr<Ui::PopupMenu> FillContextMenu(
|
||||
TextUtilities::SetClipboardText(text);
|
||||
},
|
||||
&st::menuIconCopy);
|
||||
if (poll->creator() && a->addedDate) {
|
||||
const auto itemId = item->fullId();
|
||||
result->addAction(
|
||||
tr::lng_context_delete_poll_option(tr::now),
|
||||
[=] {
|
||||
poll->session().api().polls().deleteAnswer(
|
||||
itemId,
|
||||
pollOption);
|
||||
},
|
||||
&st::menuIconDelete);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user