mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +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();
|
return _inner->stickerChosen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto FieldAutocomplete::choosingProcesses() const
|
||||||
|
-> rpl::producer<FieldAutocomplete::Type> {
|
||||||
|
return _scroll->scrollTopChanges() | rpl::map([=] { return _type; });
|
||||||
|
}
|
||||||
|
|
||||||
FieldAutocomplete::~FieldAutocomplete() = default;
|
FieldAutocomplete::~FieldAutocomplete() = default;
|
||||||
|
|
||||||
void FieldAutocomplete::paintEvent(QPaintEvent *e) {
|
void FieldAutocomplete::paintEvent(QPaintEvent *e) {
|
||||||
|
|
|
@ -87,6 +87,12 @@ public:
|
||||||
Api::SendOptions options;
|
Api::SendOptions options;
|
||||||
ChooseMethod method;
|
ChooseMethod method;
|
||||||
};
|
};
|
||||||
|
enum class Type {
|
||||||
|
Mentions,
|
||||||
|
Hashtags,
|
||||||
|
BotCommands,
|
||||||
|
Stickers,
|
||||||
|
};
|
||||||
|
|
||||||
bool chooseSelected(ChooseMethod method) const;
|
bool chooseSelected(ChooseMethod method) const;
|
||||||
|
|
||||||
|
@ -111,6 +117,7 @@ public:
|
||||||
rpl::producer<HashtagChosen> hashtagChosen() const;
|
rpl::producer<HashtagChosen> hashtagChosen() const;
|
||||||
rpl::producer<BotCommandChosen> botCommandChosen() const;
|
rpl::producer<BotCommandChosen> botCommandChosen() const;
|
||||||
rpl::producer<StickerChosen> stickerChosen() const;
|
rpl::producer<StickerChosen> stickerChosen() const;
|
||||||
|
rpl::producer<Type> choosingProcesses() const;
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void showAnimated();
|
void showAnimated();
|
||||||
|
@ -176,12 +183,6 @@ private:
|
||||||
ChannelData *_channel = nullptr;
|
ChannelData *_channel = nullptr;
|
||||||
EmojiPtr _emoji;
|
EmojiPtr _emoji;
|
||||||
uint64 _stickersSeed = 0;
|
uint64 _stickersSeed = 0;
|
||||||
enum class Type {
|
|
||||||
Mentions,
|
|
||||||
Hashtags,
|
|
||||||
BotCommands,
|
|
||||||
Stickers,
|
|
||||||
};
|
|
||||||
Type _type = Type::Mentions;
|
Type _type = Type::Mentions;
|
||||||
QString _filter;
|
QString _filter;
|
||||||
QRect _boundings;
|
QRect _boundings;
|
||||||
|
|
|
@ -360,6 +360,18 @@ HistoryWidget::HistoryWidget(
|
||||||
: _keyboard->moderateKeyActivate(key);
|
: _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(); });
|
_fieldAutocomplete->setSendMenuType([=] { return sendMenuType(); });
|
||||||
|
|
||||||
if (_supportAutocomplete) {
|
if (_supportAutocomplete) {
|
||||||
|
|
|
@ -1236,6 +1236,15 @@ void ComposeControls::initAutocomplete() {
|
||||||
});
|
});
|
||||||
}, _autocomplete->lifetime());
|
}, _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->setSendMenuType([=] { return sendMenuType(); });
|
||||||
|
|
||||||
//_autocomplete->setModerateKeyActivateCallback([=](int key) {
|
//_autocomplete->setModerateKeyActivateCallback([=](int key) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue