mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Correctly apply editions to media-edit-in-progress.
This commit is contained in:
parent
21b06f390c
commit
dfe36f638b
4 changed files with 40 additions and 15 deletions
|
@ -456,7 +456,6 @@ void SendConfirmedFile(
|
||||||
}());
|
}());
|
||||||
|
|
||||||
if (itemToEdit) {
|
if (itemToEdit) {
|
||||||
itemToEdit->savePreviousMedia();
|
|
||||||
auto edition = HistoryMessageEdition();
|
auto edition = HistoryMessageEdition();
|
||||||
edition.isEditHide = (flags & MessageFlag::HideEdited);
|
edition.isEditHide = (flags & MessageFlag::HideEdited);
|
||||||
edition.editDate = 0;
|
edition.editDate = 0;
|
||||||
|
@ -468,6 +467,7 @@ void SendConfirmedFile(
|
||||||
edition.useSameMarkup = true;
|
edition.useSameMarkup = true;
|
||||||
edition.useSameReplies = true;
|
edition.useSameReplies = true;
|
||||||
edition.useSameReactions = true;
|
edition.useSameReactions = true;
|
||||||
|
edition.savePreviousMedia = true;
|
||||||
itemToEdit->applyEdition(std::move(edition));
|
itemToEdit->applyEdition(std::move(edition));
|
||||||
} else {
|
} else {
|
||||||
const auto viaBotId = UserId();
|
const auto viaBotId = UserId();
|
||||||
|
|
|
@ -467,16 +467,17 @@ HistoryItem *ScheduledMessages::append(
|
||||||
// probably this message was edited.
|
// probably this message was edited.
|
||||||
if (data.is_edit_hide()) {
|
if (data.is_edit_hide()) {
|
||||||
existing->applyEdition(HistoryMessageEdition(_session, data));
|
existing->applyEdition(HistoryMessageEdition(_session, data));
|
||||||
|
} else {
|
||||||
|
existing->updateSentContent({
|
||||||
|
qs(data.vmessage()),
|
||||||
|
Api::EntitiesFromMTP(
|
||||||
|
_session,
|
||||||
|
data.ventities().value_or_empty())
|
||||||
|
}, data.vmedia());
|
||||||
|
existing->updateReplyMarkup(
|
||||||
|
HistoryMessageMarkupData(data.vreply_markup()));
|
||||||
|
existing->updateForwardedInfo(data.vfwd_from());
|
||||||
}
|
}
|
||||||
existing->updateSentContent({
|
|
||||||
qs(data.vmessage()),
|
|
||||||
Api::EntitiesFromMTP(
|
|
||||||
_session,
|
|
||||||
data.ventities().value_or_empty())
|
|
||||||
}, data.vmedia());
|
|
||||||
existing->updateReplyMarkup(
|
|
||||||
HistoryMessageMarkupData(data.vreply_markup()));
|
|
||||||
existing->updateForwardedInfo(data.vfwd_from());
|
|
||||||
existing->updateDate(data.vdate().v);
|
existing->updateDate(data.vdate().v);
|
||||||
history->owner().requestItemTextRefresh(existing);
|
history->owner().requestItemTextRefresh(existing);
|
||||||
}, [&](const auto &data) {});
|
}, [&](const auto &data) {});
|
||||||
|
|
|
@ -1467,6 +1467,12 @@ void HistoryItem::applyEdition(HistoryMessageEdition &&edition) {
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
const auto updatingSavedLocalEdit = !edition.savePreviousMedia
|
||||||
|
&& (_savedLocalEditMediaData != nullptr);
|
||||||
|
if (!_savedLocalEditMediaData && edition.savePreviousMedia) {
|
||||||
|
savePreviousMedia();
|
||||||
|
}
|
||||||
|
|
||||||
if (edition.isEditHide) {
|
if (edition.isEditHide) {
|
||||||
_flags |= MessageFlag::HideEdited;
|
_flags |= MessageFlag::HideEdited;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1486,8 +1492,14 @@ void HistoryItem::applyEdition(HistoryMessageEdition &&edition) {
|
||||||
setReplyMarkup(base::take(edition.replyMarkup));
|
setReplyMarkup(base::take(edition.replyMarkup));
|
||||||
}
|
}
|
||||||
if (!isLocalUpdateMedia()) {
|
if (!isLocalUpdateMedia()) {
|
||||||
removeFromSharedMediaIndex();
|
if (updatingSavedLocalEdit) {
|
||||||
refreshMedia(edition.mtpMedia);
|
_savedLocalEditMediaData->media = edition.mtpMedia
|
||||||
|
? CreateMedia(this, *edition.mtpMedia)
|
||||||
|
: nullptr;
|
||||||
|
} else {
|
||||||
|
removeFromSharedMediaIndex();
|
||||||
|
refreshMedia(edition.mtpMedia);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!edition.useSameReactions) {
|
if (!edition.useSameReactions) {
|
||||||
updateReactions(edition.mtpReactions);
|
updateReactions(edition.mtpReactions);
|
||||||
|
@ -1498,10 +1510,18 @@ void HistoryItem::applyEdition(HistoryMessageEdition &&edition) {
|
||||||
if (!edition.useSameForwards) {
|
if (!edition.useSameForwards) {
|
||||||
setForwardsCount(edition.forwards);
|
setForwardsCount(edition.forwards);
|
||||||
}
|
}
|
||||||
setText(_media
|
const auto &checkedMedia = updatingSavedLocalEdit
|
||||||
|
? _savedLocalEditMediaData->media
|
||||||
|
: _media;
|
||||||
|
auto updatedText = checkedMedia
|
||||||
? edition.textWithEntities
|
? edition.textWithEntities
|
||||||
: EnsureNonEmpty(edition.textWithEntities));
|
: EnsureNonEmpty(edition.textWithEntities);
|
||||||
if (!isLocalUpdateMedia()) {
|
if (updatingSavedLocalEdit) {
|
||||||
|
_savedLocalEditMediaData->text = std::move(updatedText);
|
||||||
|
} else {
|
||||||
|
setText(std::move(updatedText));
|
||||||
|
}
|
||||||
|
if (!isLocalUpdateMedia() && !updatingSavedLocalEdit) {
|
||||||
indexAsNewItem();
|
indexAsNewItem();
|
||||||
}
|
}
|
||||||
if (!edition.useSameReplies) {
|
if (!edition.useSameReplies) {
|
||||||
|
@ -1650,6 +1670,9 @@ void HistoryItem::applySentMessage(
|
||||||
void HistoryItem::updateSentContent(
|
void HistoryItem::updateSentContent(
|
||||||
const TextWithEntities &textWithEntities,
|
const TextWithEntities &textWithEntities,
|
||||||
const MTPMessageMedia *media) {
|
const MTPMessageMedia *media) {
|
||||||
|
if (_savedLocalEditMediaData) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
setText(textWithEntities);
|
setText(textWithEntities);
|
||||||
if (_flags & MessageFlag::FromInlineBot) {
|
if (_flags & MessageFlag::FromInlineBot) {
|
||||||
if (!media || !_media || !_media->updateInlineResultMedia(*media)) {
|
if (!media || !_media || !_media->updateInlineResultMedia(*media)) {
|
||||||
|
|
|
@ -29,6 +29,7 @@ struct HistoryMessageEdition {
|
||||||
bool useSameReplies = false;
|
bool useSameReplies = false;
|
||||||
bool useSameMarkup = false;
|
bool useSameMarkup = false;
|
||||||
bool useSameReactions = false;
|
bool useSameReactions = false;
|
||||||
|
bool savePreviousMedia = false;
|
||||||
TextWithEntities textWithEntities;
|
TextWithEntities textWithEntities;
|
||||||
HistoryMessageMarkupData replyMarkup;
|
HistoryMessageMarkupData replyMarkup;
|
||||||
HistoryMessageRepliesData replies;
|
HistoryMessageRepliesData replies;
|
||||||
|
|
Loading…
Add table
Reference in a new issue