mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +02:00
Added choosing sticker action to field autocomplete.
This commit is contained in:
parent
4550b2a315
commit
59977da2b4
4 changed files with 33 additions and 6 deletions
|
@ -199,6 +199,11 @@ auto FieldAutocomplete::stickerChosen() const
|
|||
return _inner->stickerChosen();
|
||||
}
|
||||
|
||||
auto FieldAutocomplete::choosingProcesses() const
|
||||
-> rpl::producer<FieldAutocomplete::Type> {
|
||||
return _scroll->scrollTopChanges() | rpl::map([=] { return _type; });
|
||||
}
|
||||
|
||||
FieldAutocomplete::~FieldAutocomplete() = default;
|
||||
|
||||
void FieldAutocomplete::paintEvent(QPaintEvent *e) {
|
||||
|
|
|
@ -87,6 +87,12 @@ public:
|
|||
Api::SendOptions options;
|
||||
ChooseMethod method;
|
||||
};
|
||||
enum class Type {
|
||||
Mentions,
|
||||
Hashtags,
|
||||
BotCommands,
|
||||
Stickers,
|
||||
};
|
||||
|
||||
bool chooseSelected(ChooseMethod method) const;
|
||||
|
||||
|
@ -111,6 +117,7 @@ public:
|
|||
rpl::producer<HashtagChosen> hashtagChosen() const;
|
||||
rpl::producer<BotCommandChosen> botCommandChosen() const;
|
||||
rpl::producer<StickerChosen> stickerChosen() const;
|
||||
rpl::producer<Type> choosingProcesses() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
void showAnimated();
|
||||
|
@ -176,12 +183,6 @@ private:
|
|||
ChannelData *_channel = nullptr;
|
||||
EmojiPtr _emoji;
|
||||
uint64 _stickersSeed = 0;
|
||||
enum class Type {
|
||||
Mentions,
|
||||
Hashtags,
|
||||
BotCommands,
|
||||
Stickers,
|
||||
};
|
||||
Type _type = Type::Mentions;
|
||||
QString _filter;
|
||||
QRect _boundings;
|
||||
|
|
|
@ -360,6 +360,18 @@ HistoryWidget::HistoryWidget(
|
|||
: _keyboard->moderateKeyActivate(key);
|
||||
});
|
||||
|
||||
_fieldAutocomplete->choosingProcesses(
|
||||
) | rpl::start_with_next([=](FieldAutocomplete::Type type) {
|
||||
if (!_history) {
|
||||
return;
|
||||
}
|
||||
if (type == FieldAutocomplete::Type::Stickers) {
|
||||
session().sendProgressManager().update(
|
||||
_history,
|
||||
Api::SendProgressType::ChooseSticker);
|
||||
}
|
||||
}, lifetime());
|
||||
|
||||
_fieldAutocomplete->setSendMenuType([=] { return sendMenuType(); });
|
||||
|
||||
if (_supportAutocomplete) {
|
||||
|
|
|
@ -1236,6 +1236,15 @@ void ComposeControls::initAutocomplete() {
|
|||
});
|
||||
}, _autocomplete->lifetime());
|
||||
|
||||
_autocomplete->choosingProcesses(
|
||||
) | rpl::start_with_next([=](FieldAutocomplete::Type type) {
|
||||
if (type == FieldAutocomplete::Type::Stickers) {
|
||||
_sendActionUpdates.fire({
|
||||
.type = Api::SendProgressType::ChooseSticker,
|
||||
});
|
||||
}
|
||||
}, _autocomplete->lifetime());
|
||||
|
||||
_autocomplete->setSendMenuType([=] { return sendMenuType(); });
|
||||
|
||||
//_autocomplete->setModerateKeyActivateCallback([=](int key) {
|
||||
|
|
Loading…
Add table
Reference in a new issue