Disable reschedule/edit-media for processing.

This commit is contained in:
John Preston 2024-10-30 11:30:19 +04:00
parent 472a2fe802
commit e38998214f
6 changed files with 18 additions and 8 deletions

View file

@ -1521,17 +1521,17 @@ sendGifBox: Box(defaultBox) {
} }
processingVideoTipMaxWidth: 364px; processingVideoTipMaxWidth: 364px;
processingVideoTipShift: 10px; processingVideoTipShift: 8px;
processingVideoToast: Toast(defaultToast) { processingVideoToast: Toast(defaultToast) {
minWidth: 32px; minWidth: 32px;
maxWidth: 380px; maxWidth: 380px;
padding: margins(19px, 17px, 19px, 16px); padding: margins(19px, 17px, 19px, 17px);
} }
processingVideoPreviewSkip: 0px; processingVideoPreviewSkip: 8px;
processingVideoView: RoundButton(defaultActiveButton) { processingVideoView: RoundButton(defaultActiveButton) {
width: -24px; width: -24px;
height: 68px; height: 52px;
textTop: 26px; textTop: 17px;
textFg: mediaviewTextLinkFg; textFg: mediaviewTextLinkFg;
textFgOver: mediaviewTextLinkFg; textFgOver: mediaviewTextLinkFg;
textBg: transparent; textBg: transparent;

View file

@ -2212,6 +2212,10 @@ bool HistoryItem::allowsSendNow() const {
&& !isEditingMedia(); && !isEditingMedia();
} }
bool HistoryItem::allowsReschedule() const {
return allowsSendNow() && !awaitingVideoProcessing();
}
bool HistoryItem::allowsForward() const { bool HistoryItem::allowsForward() const {
return !isService() return !isService()
&& isRegular() && isRegular()
@ -2236,7 +2240,8 @@ bool HistoryItem::allowsEdit(TimeId now) const {
} }
bool HistoryItem::allowsEditMedia() const { bool HistoryItem::allowsEditMedia() const {
return !_media || _media->allowsEditMedia(); return !awaitingVideoProcessing()
&& (!_media || _media->allowsEditMedia());
} }
bool HistoryItem::canBeEdited() const { bool HistoryItem::canBeEdited() const {

View file

@ -429,6 +429,7 @@ public:
[[nodiscard]] bool forbidsForward() const; [[nodiscard]] bool forbidsForward() const;
[[nodiscard]] bool forbidsSaving() const; [[nodiscard]] bool forbidsSaving() const;
[[nodiscard]] bool allowsSendNow() const; [[nodiscard]] bool allowsSendNow() const;
[[nodiscard]] bool allowsReschedule() const;
[[nodiscard]] bool allowsForward() const; [[nodiscard]] bool allowsForward() const;
[[nodiscard]] bool allowsEdit(TimeId now) const; [[nodiscard]] bool allowsEdit(TimeId now) const;
[[nodiscard]] bool allowsEditMedia() const; [[nodiscard]] bool allowsEditMedia() const;

View file

@ -522,7 +522,7 @@ bool AddRescheduleAction(
const auto owner = &request.navigation->session().data(); const auto owner = &request.navigation->session().data();
const auto goodSingle = HasEditMessageAction(request, list) const auto goodSingle = HasEditMessageAction(request, list)
&& request.item->isScheduled(); && request.item->allowsReschedule();
const auto goodMany = [&] { const auto goodMany = [&] {
if (goodSingle) { if (goodSingle) {
return false; return false;
@ -534,7 +534,7 @@ bool AddRescheduleAction(
if (items.size() > kRescheduleLimit) { if (items.size() > kRescheduleLimit) {
return false; return false;
} }
return ranges::all_of(items, &SelectedItem::canSendNow); return ranges::all_of(items, &SelectedItem::canReschedule);
}(); }();
if (!goodSingle && !goodMany) { if (!goodSingle && !goodMany) {
return false; return false;

View file

@ -1183,6 +1183,7 @@ auto ListWidget::collectSelectedItems() const -> SelectedItems {
result.canDelete = selection.canDelete; result.canDelete = selection.canDelete;
result.canForward = selection.canForward; result.canForward = selection.canForward;
result.canSendNow = selection.canSendNow; result.canSendNow = selection.canSendNow;
result.canReschedule = selection.canReschedule;
return result; return result;
}; };
auto items = SelectedItems(); auto items = SelectedItems();
@ -1317,6 +1318,7 @@ bool ListWidget::addToSelection(
iterator->second.canDelete = item->canDelete(); iterator->second.canDelete = item->canDelete();
iterator->second.canForward = item->allowsForward(); iterator->second.canForward = item->allowsForward();
iterator->second.canSendNow = item->allowsSendNow(); iterator->second.canSendNow = item->allowsSendNow();
iterator->second.canReschedule = item->allowsReschedule();
return true; return true;
} }

View file

@ -80,6 +80,7 @@ struct SelectedItem {
bool canDelete = false; bool canDelete = false;
bool canForward = false; bool canForward = false;
bool canSendNow = false; bool canSendNow = false;
bool canReschedule = false;
}; };
struct MessagesBar { struct MessagesBar {
@ -232,6 +233,7 @@ struct SelectionData {
bool canDelete = false; bool canDelete = false;
bool canForward = false; bool canForward = false;
bool canSendNow = false; bool canSendNow = false;
bool canReschedule = false;
}; };
using SelectedMap = base::flat_map< using SelectedMap = base::flat_map<