From 85f46cef8c3ca72af695918a431521aae64d5aeb Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 1 Jan 2016 17:58:05 +0800 Subject: [PATCH] emoji button with progress done for inline bot requests --- Telegram/Resources/style.txt | 7 +++ Telegram/SourceFiles/application.cpp | 8 ++-- Telegram/SourceFiles/art/sprite_200x.png | Bin 245405 -> 243908 bytes Telegram/SourceFiles/dropdown.cpp | 7 +++ Telegram/SourceFiles/facades.cpp | 4 ++ Telegram/SourceFiles/facades.h | 2 + Telegram/SourceFiles/gui/flatbutton.cpp | 53 +++++++++++++++++++++++ Telegram/SourceFiles/gui/flatbutton.h | 24 +++++++++- Telegram/SourceFiles/historywidget.cpp | 9 ++++ Telegram/SourceFiles/historywidget.h | 5 ++- Telegram/SourceFiles/mainwidget.cpp | 4 ++ Telegram/SourceFiles/mainwidget.h | 1 + 12 files changed, 118 insertions(+), 6 deletions(-) diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt index 9a70915d57..155785981b 100644 --- a/Telegram/Resources/style.txt +++ b/Telegram/Resources/style.txt @@ -1307,6 +1307,13 @@ btnAttachEmoji: iconedButton(btnAttachDocument) { width: 33px; } +emojiCircle: size(19px, 19px); +emojiCirclePeriod: 1500; +emojiCircleDuration: 500; +emojiCircleTop: 13px; +emojiCircleLine: 2px; +emojiCircleFg: #b9b9b9; +emojiCirclePart: 3.5; btnBotKbShow: iconedButton(btnAttachEmoji) { icon: sprite(375px, 74px, 21px, 21px); iconPos: point(6px, 12px); diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp index 1e79a4ce8b..421e2b443f 100644 --- a/Telegram/SourceFiles/application.cpp +++ b/Telegram/SourceFiles/application.cpp @@ -548,7 +548,7 @@ void Application::stopUpdate() { void Application::startUpdateCheck(bool forceWait) { updateCheckTimer.stop(); if (updateRequestId || updateThread || updateReply || !cAutoUpdate()) return; - + int32 constDelay = cBetaVersion() ? 600 : UpdateDelayConstPart, randDelay = cBetaVersion() ? 300 : UpdateDelayRandPart; int32 updateInSecs = cLastUpdateCheck() + constDelay + int32(MTP::nonce() % randDelay) - unixtime(); bool sendRequest = (updateInSecs <= 0 || updateInSecs > (constDelay + randDelay)); @@ -684,7 +684,7 @@ void Application::socketError(QLocalSocket::LocalSocketError e) { socket.close(); psCheckLocalSocket(serverName); - + if (!server.listen(serverName)) { DEBUG_LOG(("Application Error: failed to start listening to %1 server, error %2").arg(serverName).arg(int(server.serverError()))); return App::quit(); @@ -769,7 +769,7 @@ void Application::startApp() { } QNetworkProxyFactory::setUseSystemConfiguration(true); - + if (state != Local::ReadMapPassNeeded) { checkMapVersion(); } @@ -912,7 +912,7 @@ Application::~Application() { cSetChatDogImage(0); style::stopManager(); - + delete _translator; } diff --git a/Telegram/SourceFiles/art/sprite_200x.png b/Telegram/SourceFiles/art/sprite_200x.png index 50dfed9c3e6762db06c479fa2a7b2c79dd6224c2..16b454f0570083120156ac334862d07f4734f772 100644 GIT binary patch delta 35468 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 delta 36911 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 vO76@TH?^ppmC$75aYwWpRj& diff --git a/Telegram/SourceFiles/dropdown.cpp b/Telegram/SourceFiles/dropdown.cpp index 458504bf7d..d483017098 100644 --- a/Telegram/SourceFiles/dropdown.cpp +++ b/Telegram/SourceFiles/dropdown.cpp @@ -3560,10 +3560,13 @@ void EmojiPan::inlineBotChanged() { } _inlineCache.clear(); s_inner.inlineBotChanged(); + + Notify::inlineBotRequesting(false); } void EmojiPan::inlineResultsDone(const MTPmessages_BotResults &result) { _inlineRequestId = 0; + Notify::inlineBotRequesting(false); InlineCache::iterator it = _inlineCache.find(_inlineQuery); @@ -3659,6 +3662,8 @@ void EmojiPan::inlineResultsDone(const MTPmessages_BotResults &result) { bool EmojiPan::inlineResultsFail(const RPCError &error) { if (mtpIsFlood(error)) return false; + + Notify::inlineBotRequesting(false); _inlineRequestId = 0; return true; } @@ -3674,6 +3679,7 @@ void EmojiPan::queryInlineBot(UserData *bot, QString query) { if (_inlineRequestId) { MTP::cancel(_inlineRequestId); _inlineRequestId = 0; + Notify::inlineBotRequesting(false); } if (_inlineCache.contains(query)) { _inlineRequestTimer.stop(); @@ -3696,6 +3702,7 @@ void EmojiPan::onInlineRequest() { nextOffset = i.value()->nextOffset; if (nextOffset.isEmpty()) return; } + Notify::inlineBotRequesting(true); _inlineRequestId = MTP::send(MTPmessages_GetInlineBotResults(_inlineBot->inputUser, MTP_string(_inlineQuery), MTP_string(nextOffset)), rpcDone(&EmojiPan::inlineResultsDone), rpcFail(&EmojiPan::inlineResultsFail)); } diff --git a/Telegram/SourceFiles/facades.cpp b/Telegram/SourceFiles/facades.cpp index 0fb84b15be..2c5db2dfda 100644 --- a/Telegram/SourceFiles/facades.cpp +++ b/Telegram/SourceFiles/facades.cpp @@ -149,6 +149,10 @@ namespace Notify { if (MainWidget *m = App::main()) m->notify_botCommandsChanged(user); } + void inlineBotRequesting(bool requesting) { + if (MainWidget *m = App::main()) m->notify_inlineBotRequesting(requesting); + } + void migrateUpdated(PeerData *peer) { if (MainWidget *m = App::main()) m->notify_migrateUpdated(peer); } diff --git a/Telegram/SourceFiles/facades.h b/Telegram/SourceFiles/facades.h index 21db659b63..ed7ee718cf 100644 --- a/Telegram/SourceFiles/facades.h +++ b/Telegram/SourceFiles/facades.h @@ -80,6 +80,8 @@ namespace Notify { void userIsContactChanged(UserData *user, bool fromThisApp = false); void botCommandsChanged(UserData *user); + void inlineBotRequesting(bool requesting); + void migrateUpdated(PeerData *peer); void clipStopperHidden(ClipStopperType type); diff --git a/Telegram/SourceFiles/gui/flatbutton.cpp b/Telegram/SourceFiles/gui/flatbutton.cpp index e02c47fa2e..e41f13b355 100644 --- a/Telegram/SourceFiles/gui/flatbutton.cpp +++ b/Telegram/SourceFiles/gui/flatbutton.cpp @@ -289,6 +289,59 @@ void MaskedButton::paintEvent(QPaintEvent *e) { } } +EmojiButton::EmojiButton(QWidget *parent, const style::iconedButton &st) : IconedButton(parent, st) +, _loading(false) +, _a_loading(animation(this, &EmojiButton::step_loading)) { +} + +void EmojiButton::paintEvent(QPaintEvent *e) { + QPainter p(this); + + uint64 ms = getms(); + float64 loading = a_loading.current(ms, _loading ? 1 : 0); + p.setOpacity(_opacity * (1 - loading)); + + p.fillRect(e->rect(), a_bg.current()); + + p.setOpacity(a_opacity.current() * _opacity * (1 - loading)); + + const QRect &i((_state & StateDown) ? _st.downIcon : _st.icon); + if (i.width()) { + const QPoint &t((_state & StateDown) ? _st.downIconPos : _st.iconPos); + p.drawPixmap(t, App::sprite(), i); + } + + QRect inner(QPoint((width() - st::emojiCircle.width()) / 2, st::emojiCircleTop), st::emojiCircle); + int32 full = 5760; + int32 start = qRound(full * float64(ms % uint64(st::emojiCirclePeriod)) / st::emojiCirclePeriod), part = qRound(full / st::emojiCirclePart); + + p.setBrush(Qt::NoBrush); + p.setRenderHint(QPainter::HighQualityAntialiasing); + + p.setPen(QPen(st::emojiCircleFg->c, st::emojiCircleLine)); + p.setOpacity(a_opacity.current() * _opacity); + p.drawEllipse(inner); + + p.setPen(QPen(st::white->c, st::emojiCircleLine)); + p.setOpacity(loading); + p.drawArc(inner, (full - start) % full, part); + + p.setRenderHint(QPainter::HighQualityAntialiasing, false); +} + +void EmojiButton::setLoading(bool loading) { + if (_loading != loading) { + EnsureAnimation(a_loading, _loading ? 1. : 0., func(this, &EmojiButton::update)); + a_loading.start(loading ? 1. : 0., st::emojiCircleDuration); + _loading = loading; + if (_loading) { + _a_loading.start(); + } else { + _a_loading.stop(); + } + } +} + BoxButton::BoxButton(QWidget *parent, const QString &text, const style::BoxButton &st) : Button(parent) , _text(text.toUpper()) , _fullText(text.toUpper()) diff --git a/Telegram/SourceFiles/gui/flatbutton.h b/Telegram/SourceFiles/gui/flatbutton.h index 9f542949e6..f07b0c4a25 100644 --- a/Telegram/SourceFiles/gui/flatbutton.h +++ b/Telegram/SourceFiles/gui/flatbutton.h @@ -106,7 +106,7 @@ public: void setText(const QString &text); QString getText() const; - + public slots: void onStateChange(int oldState, ButtonStateChangeSource source); @@ -136,6 +136,28 @@ public: }; +class EmojiButton : public IconedButton { + Q_OBJECT + +public: + EmojiButton(QWidget *parent, const style::iconedButton &st); + + void paintEvent(QPaintEvent *e); + void setLoading(bool loading); + +private: + bool _loading; + FloatAnimation a_loading; + Animation _a_loading; + + void step_loading(uint64 ms, bool timer) { + if (timer) { + update(); + } + } + +}; + class BoxButton : public Button { Q_OBJECT diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 18da2d243d..e114842162 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -3028,6 +3028,10 @@ void HistoryWidget::notify_botCommandsChanged(UserData *user) { } } +void HistoryWidget::notify_inlineBotRequesting(bool requesting) { + _attachEmoji.setLoading(requesting); +} + void HistoryWidget::notify_userIsBotChanged(UserData *user) { if (_peer && _peer == user) { _list->notifyIsBotChanged(); @@ -4971,6 +4975,7 @@ bool HistoryWidget::hasBroadcastToggle() const { } void HistoryWidget::inlineBotResolveDone(const MTPcontacts_ResolvedPeer &result) { + Notify::inlineBotRequesting(false); _inlineBotUsername = QString(); if (result.type() == mtpc_contacts_resolvedPeer) { const MTPDcontacts_resolvedPeer &d(result.c_contacts_resolvedPeer()); @@ -4982,6 +4987,8 @@ void HistoryWidget::inlineBotResolveDone(const MTPcontacts_ResolvedPeer &result) bool HistoryWidget::inlineBotResolveFail(QString name, const RPCError &error) { if (mtpIsFlood(error)) return false; + + Notify::inlineBotRequesting(false); if (name == _inlineBotUsername) { _inlineBot = 0; onCheckMentionDropdown(); @@ -5335,10 +5342,12 @@ void HistoryWidget::onCheckMentionDropdown() { _field.getMentionHashtagBotCommandStart(start, _inlineBot, _inlineBotUsername); if (inlineBotUsername != _inlineBotUsername) { if (_inlineBotResolveRequestId) { + Notify::inlineBotRequesting(false); MTP::cancel(_inlineBotResolveRequestId); _inlineBotResolveRequestId = 0; } if (_inlineBot == InlineBotLookingUpData) { + Notify::inlineBotRequesting(true); _inlineBotResolveRequestId = MTP::send(MTPcontacts_ResolveUsername(MTP_string(_inlineBotUsername)), rpcDone(&HistoryWidget::inlineBotResolveDone), rpcFail(&HistoryWidget::inlineBotResolveFail, _inlineBotUsername)); return; } diff --git a/Telegram/SourceFiles/historywidget.h b/Telegram/SourceFiles/historywidget.h index f3f7acb31c..a7a3e6d02d 100644 --- a/Telegram/SourceFiles/historywidget.h +++ b/Telegram/SourceFiles/historywidget.h @@ -568,6 +568,7 @@ public: void notify_historyItemLayoutChanged(const HistoryItem *item); void notify_automaticLoadSettingsChangedGif(); void notify_botCommandsChanged(UserData *user); + void notify_inlineBotRequesting(bool requesting); void notify_userIsBotChanged(UserData *user); void notify_migrateUpdated(PeerData *peer); void notify_clipStopperHidden(ClipStopperType type); @@ -784,7 +785,9 @@ private: FlatButton _send, _unblock, _botStart, _joinChannel, _muteUnmute; mtpRequestId _unblockRequest, _reportSpamRequest; - IconedButton _attachDocument, _attachPhoto, _attachEmoji, _kbShow, _kbHide, _cmdStart; + IconedButton _attachDocument, _attachPhoto; + EmojiButton _attachEmoji; + IconedButton _kbShow, _kbHide, _cmdStart; FlatCheckbox _broadcast; bool _cmdStartShown; MessageField _field; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 8624a27d3f..ba51e53d27 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -759,6 +759,10 @@ void MainWidget::notify_botCommandsChanged(UserData *bot) { history.notify_botCommandsChanged(bot); } +void MainWidget::notify_inlineBotRequesting(bool requesting) { + history.notify_inlineBotRequesting(requesting); +} + void MainWidget::notify_userIsBotChanged(UserData *bot) { history.notify_userIsBotChanged(bot); } diff --git a/Telegram/SourceFiles/mainwidget.h b/Telegram/SourceFiles/mainwidget.h index 03c30ccda0..3d8c6efa39 100644 --- a/Telegram/SourceFiles/mainwidget.h +++ b/Telegram/SourceFiles/mainwidget.h @@ -416,6 +416,7 @@ public: void ui_showPeerHistory(quint64 peer, qint32 msgId, bool back); void notify_botCommandsChanged(UserData *bot); + void notify_inlineBotRequesting(bool requesting); void notify_userIsBotChanged(UserData *bot); void notify_userIsContactChanged(UserData *user, bool fromThisApp); void notify_migrateUpdated(PeerData *peer);