Added saving local text before editing scheduled message.
This commit is contained in:
parent
58281023bc
commit
8320feea10
|
@ -79,6 +79,10 @@ FieldHeader::FieldHeader(QWidget *parent, not_null<Data::Session*> data)
|
|||
Ui::DialogTextOptions());
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
_cancel->addClickHandler([=] {
|
||||
_editMsgId = nullptr;
|
||||
});
|
||||
}
|
||||
|
||||
void FieldHeader::paintEvent(QPaintEvent *e) {
|
||||
|
@ -303,11 +307,32 @@ void ComposeControls::init() {
|
|||
}, _wrap->lifetime());
|
||||
|
||||
_header->editMsgId(
|
||||
) | rpl::start_with_next([=] {
|
||||
) | rpl::start_with_next([=](auto item) {
|
||||
updateHeight();
|
||||
updateSendButtonType();
|
||||
|
||||
if (_header->isEditingMessage()) {
|
||||
setTextFromEditingMessage(item);
|
||||
} else {
|
||||
setText(_localSavedText);
|
||||
_localSavedText = {};
|
||||
}
|
||||
}, _wrap->lifetime());
|
||||
}
|
||||
|
||||
void ComposeControls::setTextFromEditingMessage(not_null<HistoryItem*> item) {
|
||||
if (!_header->isEditingMessage()) {
|
||||
return;
|
||||
}
|
||||
_localSavedText = getTextWithAppliedMarkdown();
|
||||
const auto t = item->originalText();
|
||||
const auto text = TextWithTags{
|
||||
t.text,
|
||||
TextUtilities::ConvertEntitiesToTextTags(t.entities)
|
||||
};
|
||||
setText(text);
|
||||
}
|
||||
|
||||
void ComposeControls::initField() {
|
||||
_field->setMaxHeight(st::historyComposeFieldMaxHeight);
|
||||
_field->setSubmitSettings(Core::App().settings().sendSubmitWay());
|
||||
|
@ -369,13 +394,13 @@ void ComposeControls::initSendButton() {
|
|||
void ComposeControls::updateSendButtonType() {
|
||||
using Type = Ui::SendButton::Type;
|
||||
const auto type = [&] {
|
||||
//if (_editMsgId) {
|
||||
// return Type::Save;
|
||||
if (_header->isEditingMessage()) {
|
||||
return Type::Save;
|
||||
//} else if (_isInlineBot) {
|
||||
// return Type::Cancel;
|
||||
//} else if (showRecordButton()) {
|
||||
// return Type::Record;
|
||||
//}
|
||||
}
|
||||
return Type::Schedule;
|
||||
}();
|
||||
_send->setType(type);
|
||||
|
|
|
@ -115,6 +115,8 @@ private:
|
|||
void setTabbedPanel(std::unique_ptr<ChatHelpers::TabbedPanel> panel);
|
||||
void setText(const TextWithTags &text);
|
||||
|
||||
void setTextFromEditingMessage(not_null<HistoryItem*> item);
|
||||
|
||||
const not_null<QWidget*> _parent;
|
||||
const not_null<Window::SessionController*> _window;
|
||||
History *_history = nullptr;
|
||||
|
@ -137,6 +139,8 @@ private:
|
|||
rpl::event_stream<not_null<PhotoData*>> _photoChosen;
|
||||
rpl::event_stream<ChatHelpers::TabbedSelector::InlineChosen> _inlineResultChosen;
|
||||
|
||||
TextWithTags _localSavedText;
|
||||
|
||||
//bool _recording = false;
|
||||
//bool _inField = false;
|
||||
//bool _inReplyEditForward = false;
|
||||
|
|
Loading…
Reference in New Issue