Allow fully editing todo lists.

This commit is contained in:
John Preston
2025-06-12 18:41:01 +04:00
parent d83a80ec53
commit 9290c90bdc
17 changed files with 204 additions and 42 deletions
+19
View File
@@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_file_origin.h"
#include "data/data_histories.h"
#include "data/data_session.h"
#include "data/data_todo_list.h"
#include "data/data_web_page.h"
#include "history/view/controls/history_view_compose_media_edit_manager.h"
#include "history/history.h"
@@ -358,4 +359,22 @@ mtpRequestId EditTextMessage(
std::nullopt);
}
void EditTodoList(
not_null<HistoryItem*> item,
const TodoListData &data,
SendOptions options,
Fn<void(mtpRequestId requestId)> done,
Fn<void(const QString &error, mtpRequestId requestId)> fail) {
const auto callback = [=](Fn<void()> applyUpdates, mtpRequestId id) {
applyUpdates();
done(id);
};
EditMessage(
item,
options,
callback,
fail,
MTP_inputMediaTodo(TodoListDataToMTP(&data)));
}
} // namespace Api
+7
View File
@@ -58,4 +58,11 @@ mtpRequestId EditTextMessage(
Fn<void(const QString &error, mtpRequestId requestId)> fail,
bool spoilered);
void EditTodoList(
not_null<HistoryItem*> item,
const TodoListData &data,
SendOptions options,
Fn<void(mtpRequestId requestId)> done,
Fn<void(const QString &error, mtpRequestId requestId)> fail);
} // namespace Api
+18 -2
View File
@@ -7,8 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/
#include "api/api_todo_lists.h"
//#include "api/api_common.h"
//#include "api/api_updates.h"
#include "api/api_editing.h"
#include "apiwrap.h"
#include "base/random.h"
#include "data/business/data_shortcut_messages.h" // ShortcutIdToMTP
@@ -134,6 +133,23 @@ void TodoLists::create(
});
}
void TodoLists::edit(
not_null<HistoryItem*> item,
const TodoListData &data,
SendOptions options,
Fn<void()> done,
Fn<void(QString)> fail) {
EditTodoList(item, data, options, [=](mtpRequestId) {
if (const auto onstack = done) {
onstack();
}
}, [=](const QString &error, mtpRequestId) {
if (const auto onstack = fail) {
onstack(error);
}
});
}
void TodoLists::add(
not_null<HistoryItem*> item,
const std::vector<TodoListItem> &items,
@@ -22,6 +22,7 @@ class Session;
namespace Api {
struct SendAction;
struct SendOptions;
class TodoLists final {
public:
@@ -32,6 +33,12 @@ public:
SendAction action,
Fn<void()> done,
Fn<void(QString)> fail);
void edit(
not_null<HistoryItem*> item,
const TodoListData &data,
SendOptions options,
Fn<void()> done,
Fn<void(QString)> fail);
void add(
not_null<HistoryItem*> item,
const std::vector<TodoListItem> &items,