diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 4b278eeb3d..2afe27cfa8 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -5988,6 +5988,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_todo_mark_premium" = "Only subscribers of {link} can mark tasks as done."; "lng_todo_premium_link" = "Telegram Premium"; "lng_todo_mark_restricted" = "{user} has restricted others from marking tasks as done."; +"lng_todo_mark_forwarded" = "You can't change forwarded checklists."; "lng_outdated_title" = "PLEASE UPDATE YOUR OPERATING SYSTEM."; "lng_outdated_title_bits" = "PLEASE SWITCH TO A 64-BIT OPERATING SYSTEM."; diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index 3fb17b5c44..30b3929be7 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/send_credits_box.h" // CreditsEmoji. #include "history/history.h" #include "history/history_item.h" // CreateMedia. +#include "history/history_item_components.h" #include "history/history_location_manager.h" #include "history/view/history_view_element.h" #include "history/view/history_view_item_preview.h" diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index f4ec275e32..9ea1f9da3e 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -4178,10 +4178,7 @@ not_null Session::duplicateTodoList( const auto result = todoList(id); result->title = existing->title; result->items = existing->items; - for (auto &item : result->items) { - item.completedBy = nullptr; - item.completionDate = TimeId(); - } + ++result->version; return result; } diff --git a/Telegram/SourceFiles/data/data_todo_list.h b/Telegram/SourceFiles/data/data_todo_list.h index a94d8c6760..dd10b8878a 100644 --- a/Telegram/SourceFiles/data/data_todo_list.h +++ b/Telegram/SourceFiles/data/data_todo_list.h @@ -63,8 +63,6 @@ struct TodoListData { static constexpr auto kMaxOptions = 32; private: - bool applyCompletionToItems(const MTPTodoCompletion *result); - const not_null _owner; Flags _flags = Flags(); diff --git a/Telegram/SourceFiles/history/view/media/history_view_todo_list.cpp b/Telegram/SourceFiles/history/view/media/history_view_todo_list.cpp index 8249613074..357778cd9d 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_todo_list.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_todo_list.cpp @@ -341,7 +341,14 @@ void TodoList::startToggleAnimation(Task &task) { } void TodoList::toggleCompletion(int id) { - if (!canComplete()) { + if (_parent->data()->isBusinessShortcut()) { + return; + } else if (_parent->data()->Has()) { + _parent->delegate()->elementShowTooltip( + tr::lng_todo_mark_forwarded(tr::now, Ui::Text::RichLangValue), + [] {}); + return; + } else if (!canComplete()) { _parent->delegate()->elementShowTooltip( tr::lng_todo_mark_restricted( tr::now, diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index 00e7264660..114f0ec207 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -66,6 +66,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/mtproto_config.h" #include "history/history.h" #include "history/history_item_helpers.h" // GetErrorForSending. +#include "history/history_item_components.h" #include "history/view/history_view_context_menu.h" #include "window/window_separate_id.h" #include "window/window_session_controller.h" @@ -2077,6 +2078,7 @@ bool PeerMenuShowAddTodoListTasks(not_null item) { const auto todolist = media ? media->todolist() : nullptr; const auto appConfig = &item->history()->session().appConfig(); return item->isRegular() + && !item->Has() && todolist && (todolist->items.size() < appConfig->todoListItemsLimit()) && (item->out() || todolist->othersCanAppend());