Finalize rename / move.

Also removed non-existent emoji_section module from GYP.
This commit is contained in:
John Preston 2017-04-08 17:05:19 +03:00
parent 155cd8ce42
commit 26b05cf844
11 changed files with 114 additions and 116 deletions

View File

@ -34,7 +34,7 @@ constexpr auto kSaveRecentEmojiTimeout = 3000;
} // namespace
class EmojiListWidget::Footer : public EmojiPanel::InnerFooter {
class EmojiListWidget::Footer : public TabbedPanel::InnerFooter {
public:
Footer(gsl::not_null<EmojiListWidget*> parent);
@ -330,7 +330,7 @@ void EmojiListWidget::setVisibleTopBottom(int visibleTop, int visibleBottom) {
}
}
object_ptr<EmojiPanel::InnerFooter> EmojiListWidget::createFooter() {
object_ptr<TabbedPanel::InnerFooter> EmojiListWidget::createFooter() {
Expects(_footer == nullptr);
auto result = object_ptr<Footer>(this);
_footer = result;
@ -664,7 +664,7 @@ Ui::Emoji::Section EmojiListWidget::currentSection(int yOffset) const {
return static_cast<Section>(sectionInfoByOffset(yOffset).section);
}
EmojiPanel::InnerFooter *EmojiListWidget::getFooter() const {
TabbedPanel::InnerFooter *EmojiListWidget::getFooter() const {
return _footer;
}

View File

@ -20,7 +20,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
*/
#pragma once
#include "chat_helpers/emoji_panel.h"
#include "chat_helpers/tabbed_panel.h"
namespace Window {
class Controller;
@ -84,7 +84,7 @@ private:
};
class EmojiListWidget : public EmojiPanel::Inner {
class EmojiListWidget : public TabbedPanel::Inner {
Q_OBJECT
public:
@ -95,7 +95,7 @@ public:
void setVisibleTopBottom(int visibleTop, int visibleBottom) override;
void refreshRecent() override;
void clearSelection() override;
object_ptr<EmojiPanel::InnerFooter> createFooter() override;
object_ptr<TabbedPanel::InnerFooter> createFooter() override;
void showEmojiSection(Section section);
Section currentSection(int yOffset) const;
@ -121,7 +121,7 @@ protected:
void enterFromChildEvent(QEvent *e, QWidget *child) override;
bool event(QEvent *e) override;
EmojiPanel::InnerFooter *getFooter() const override;
TabbedPanel::InnerFooter *getFooter() const override;
void processHideFinished() override;
int countHeight() override;

View File

@ -43,7 +43,7 @@ constexpr auto kSearchBotUsername = "gif";
} // namespace
class GifsListWidget::Footer : public EmojiPanel::InnerFooter {
class GifsListWidget::Footer : public TabbedPanel::InnerFooter {
public:
Footer(gsl::not_null<GifsListWidget*> parent);
@ -145,7 +145,7 @@ GifsListWidget::GifsListWidget(QWidget *parent, gsl::not_null<Window::Controller
});
}
object_ptr<EmojiPanel::InnerFooter> GifsListWidget::createFooter() {
object_ptr<TabbedPanel::InnerFooter> GifsListWidget::createFooter() {
Expects(_footer == nullptr);
auto result = object_ptr<Footer>(this);
_footer = result;
@ -383,7 +383,7 @@ void GifsListWidget::clearSelection() {
update();
}
EmojiPanel::InnerFooter *GifsListWidget::getFooter() const {
TabbedPanel::InnerFooter *GifsListWidget::getFooter() const {
return _footer;
}

View File

@ -20,7 +20,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
*/
#pragma once
#include "chat_helpers/emoji_panel.h"
#include "chat_helpers/tabbed_panel.h"
#include "inline_bots/inline_bot_layout_item.h"
namespace InlineBots {
@ -40,7 +40,7 @@ class Controller;
namespace ChatHelpers {
class GifsListWidget : public EmojiPanel::Inner, public InlineBots::Layout::Context, private base::Subscriber, private MTP::Sender {
class GifsListWidget : public TabbedPanel::Inner, public InlineBots::Layout::Context, private base::Subscriber, private MTP::Sender {
Q_OBJECT
public:
@ -49,7 +49,7 @@ public:
void refreshRecent() override;
void preloadImages() override;
void clearSelection() override;
object_ptr<EmojiPanel::InnerFooter> createFooter() override;
object_ptr<TabbedPanel::InnerFooter> createFooter() override;
void setVisibleTopBottom(int visibleTop, int visibleBottom) override;
@ -77,7 +77,7 @@ protected:
void leaveToChildEvent(QEvent *e, QWidget *child) override;
void enterFromChildEvent(QEvent *e, QWidget *child) override;
EmojiPanel::InnerFooter *getFooter() const override;
TabbedPanel::InnerFooter *getFooter() const override;
void processHideFinished() override;
void processPanelHideFinished() override;
int countHeight() override;

View File

@ -54,7 +54,7 @@ struct StickerIcon {
};
class StickersListWidget::Footer : public EmojiPanel::InnerFooter {
class StickersListWidget::Footer : public TabbedPanel::InnerFooter {
public:
Footer(gsl::not_null<StickersListWidget*> parent);
@ -433,7 +433,7 @@ StickersListWidget::StickersListWidget(QWidget *parent, gsl::not_null<Window::Co
});
}
object_ptr<EmojiPanel::InnerFooter> StickersListWidget::createFooter() {
object_ptr<TabbedPanel::InnerFooter> StickersListWidget::createFooter() {
Expects(_footer == nullptr);
auto result = object_ptr<Footer>(this);
_footer = result;
@ -984,7 +984,7 @@ void StickersListWidget::clearSelection() {
update();
}
EmojiPanel::InnerFooter *StickersListWidget::getFooter() const {
TabbedPanel::InnerFooter *StickersListWidget::getFooter() const {
return _footer;
}

View File

@ -20,7 +20,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
*/
#pragma once
#include "chat_helpers/emoji_panel.h"
#include "chat_helpers/tabbed_panel.h"
#include "base/variant.h"
namespace Window {
@ -35,7 +35,7 @@ namespace ChatHelpers {
struct StickerIcon;
class StickersListWidget : public EmojiPanel::Inner, private base::Subscriber, private MTP::Sender {
class StickersListWidget : public TabbedPanel::Inner, private base::Subscriber, private MTP::Sender {
Q_OBJECT
public:
@ -44,7 +44,7 @@ public:
void refreshRecent() override;
void preloadImages() override;
void clearSelection() override;
object_ptr<EmojiPanel::InnerFooter> createFooter() override;
object_ptr<TabbedPanel::InnerFooter> createFooter() override;
void showStickerSet(uint64 setId);
@ -72,7 +72,7 @@ protected:
void leaveToChildEvent(QEvent *e, QWidget *child) override;
void enterFromChildEvent(QEvent *e, QWidget *child) override;
EmojiPanel::InnerFooter *getFooter() const override;
TabbedPanel::InnerFooter *getFooter() const override;
void processHideFinished() override;
void processPanelHideFinished() override;
int countHeight() override;

View File

@ -18,7 +18,7 @@ to link the code of portions of this program with the OpenSSL library.
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
*/
#include "chat_helpers/emoji_panel.h"
#include "chat_helpers/tabbed_panel.h"
#include "chat_helpers/emoji_list_widget.h"
#include "chat_helpers/stickers_list_widget.h"
@ -40,7 +40,7 @@ constexpr auto kSaveChosenTabTimeout = 1000;
} // namespace
class EmojiPanel::SlideAnimation : public Ui::RoundShadowAnimation {
class TabbedPanel::SlideAnimation : public Ui::RoundShadowAnimation {
public:
enum class Direction {
LeftToRight,
@ -75,7 +75,7 @@ private:
};
void EmojiPanel::SlideAnimation::setFinalImages(Direction direction, QImage &&left, QImage &&right, QRect inner) {
void TabbedPanel::SlideAnimation::setFinalImages(Direction direction, QImage &&left, QImage &&right, QRect inner) {
Expects(!started());
_direction = direction;
_leftImage = QPixmap::fromImage(std::move(left).convertToFormat(QImage::Format_ARGB32_Premultiplied), Qt::ColorOnly);
@ -111,7 +111,7 @@ void EmojiPanel::SlideAnimation::setFinalImages(Direction direction, QImage &&le
_painterCategoriesTop = _painterInnerBottom - st::emojiCategory.height;
}
void EmojiPanel::SlideAnimation::start() {
void TabbedPanel::SlideAnimation::start() {
t_assert(!_leftImage.isNull());
t_assert(!_rightImage.isNull());
RoundShadowAnimation::start(_width, _height, _leftImage.devicePixelRatio());
@ -127,7 +127,7 @@ void EmojiPanel::SlideAnimation::start() {
_frameIntsPerLineAdd = (_width - _innerWidth) + _frameIntsPerLineAdded;
}
void EmojiPanel::SlideAnimation::paintFrame(QPainter &p, float64 dt, float64 opacity) {
void TabbedPanel::SlideAnimation::paintFrame(QPainter &p, float64 dt, float64 opacity) {
t_assert(started());
t_assert(dt >= 0.);
@ -258,7 +258,7 @@ void EmojiPanel::SlideAnimation::paintFrame(QPainter &p, float64 dt, float64 opa
p.drawImage(outerLeft / cIntRetinaFactor(), outerTop / cIntRetinaFactor(), _frame, outerLeft, outerTop, outerRight - outerLeft, outerBottom - outerTop);
}
EmojiPanel::Tab::Tab(TabType type, object_ptr<Inner> widget)
TabbedPanel::Tab::Tab(TabType type, object_ptr<Inner> widget)
: _type(type)
, _widget(std::move(widget))
, _weak(_widget)
@ -266,20 +266,20 @@ EmojiPanel::Tab::Tab(TabType type, object_ptr<Inner> widget)
_footer->setParent(_widget->parentWidget());
}
object_ptr<EmojiPanel::Inner> EmojiPanel::Tab::takeWidget() {
object_ptr<TabbedPanel::Inner> TabbedPanel::Tab::takeWidget() {
return std::move(_widget);
}
void EmojiPanel::Tab::returnWidget(object_ptr<Inner> widget) {
void TabbedPanel::Tab::returnWidget(object_ptr<Inner> widget) {
_widget = std::move(widget);
Ensures(_widget == _weak);
}
void EmojiPanel::Tab::saveScrollTop() {
void TabbedPanel::Tab::saveScrollTop() {
_scrollTop = widget()->getVisibleTop();
}
EmojiPanel::EmojiPanel(QWidget *parent, gsl::not_null<Window::Controller*> controller) : TWidget(parent)
TabbedPanel::TabbedPanel(QWidget *parent, gsl::not_null<Window::Controller*> controller) : TWidget(parent)
, _tabsSlider(this, st::emojiTabs)
, _topShadow(this, st::shadowFg)
, _bottomShadow(this, st::shadowFg)
@ -353,12 +353,12 @@ EmojiPanel::EmojiPanel(QWidget *parent, gsl::not_null<Window::Controller*> contr
hideChildren();
}
void EmojiPanel::moveBottom(int bottom) {
void TabbedPanel::moveBottom(int bottom) {
_bottom = bottom;
updateContentHeight();
}
void EmojiPanel::updateContentHeight() {
void TabbedPanel::updateContentHeight() {
auto addedHeight = innerPadding().top() + marginTop() + marginBottom() + innerPadding().bottom();
auto wantedContentHeight = qRound(st::emojiPanHeightRatio * _bottom) - addedHeight;
auto contentHeight = snap(wantedContentHeight, st::emojiPanMinHeight, st::emojiPanMaxHeight);
@ -394,21 +394,21 @@ void EmojiPanel::updateContentHeight() {
update();
}
void EmojiPanel::onWndActiveChanged() {
void TabbedPanel::onWndActiveChanged() {
if (!App::wnd()->windowHandle()->isActive() && !isHidden()) {
leaveEvent(0);
}
}
void EmojiPanel::onSaveConfig() {
void TabbedPanel::onSaveConfig() {
Local::writeUserSettings();
}
void EmojiPanel::onSaveConfigDelayed(int delay) {
void TabbedPanel::onSaveConfigDelayed(int delay) {
_saveConfigTimer.start(delay);
}
void EmojiPanel::paintEvent(QPaintEvent *e) {
void TabbedPanel::paintEvent(QPaintEvent *e) {
Painter p(this);
auto ms = getms();
@ -457,7 +457,7 @@ void EmojiPanel::paintEvent(QPaintEvent *e) {
}
}
void EmojiPanel::paintSlideFrame(Painter &p, TimeMs ms) {
void TabbedPanel::paintSlideFrame(Painter &p, TimeMs ms) {
Ui::Shadow::paint(p, innerRect(), width(), st::emojiPanAnimation.shadow);
auto inner = innerRect();
@ -468,7 +468,7 @@ void EmojiPanel::paintSlideFrame(Painter &p, TimeMs ms) {
_slideAnimation->paintFrame(p, slideDt, _a_opacity.current(_hiding ? 0. : 1.));
}
void EmojiPanel::paintContent(Painter &p) {
void TabbedPanel::paintContent(Painter &p) {
auto inner = innerRect();
auto topPart = QRect(inner.x(), inner.y(), inner.width(), _tabsSlider->height() + st::buttonRadius);
App::roundRect(p, topPart, st::emojiPanBg, ImageRoundRadius::Small, App::RectPart::TopFull | App::RectPart::NoTopBottom);
@ -486,28 +486,28 @@ void EmojiPanel::paintContent(Painter &p) {
p.fillRect(myrtlrect(inner.x(), sidesTop, st::buttonRadius, sidesHeight), st::emojiPanBg);
}
int EmojiPanel::marginTop() const {
int TabbedPanel::marginTop() const {
return _tabsSlider->height() - st::lineWidth;
}
int EmojiPanel::marginBottom() const {
int TabbedPanel::marginBottom() const {
return st::emojiCategory.height;
}
void EmojiPanel::moveByBottom() {
void TabbedPanel::moveByBottom() {
moveToRight(0, y());
updateContentHeight();
}
void EmojiPanel::enterEventHook(QEvent *e) {
void TabbedPanel::enterEventHook(QEvent *e) {
showAnimated();
}
bool EmojiPanel::preventAutoHide() const {
bool TabbedPanel::preventAutoHide() const {
return stickers()->preventAutoHide();
}
void EmojiPanel::leaveEventHook(QEvent *e) {
void TabbedPanel::leaveEventHook(QEvent *e) {
if (preventAutoHide()) {
return;
}
@ -520,11 +520,11 @@ void EmojiPanel::leaveEventHook(QEvent *e) {
return TWidget::leaveEventHook(e);
}
void EmojiPanel::otherEnter() {
void TabbedPanel::otherEnter() {
showAnimated();
}
void EmojiPanel::otherLeave() {
void TabbedPanel::otherLeave() {
if (preventAutoHide()) {
return;
}
@ -537,7 +537,7 @@ void EmojiPanel::otherLeave() {
}
}
void EmojiPanel::hideFast() {
void TabbedPanel::hideFast() {
if (isHidden()) return;
_hideTimer.stop();
@ -546,14 +546,14 @@ void EmojiPanel::hideFast() {
hideFinished();
}
void EmojiPanel::refreshStickers() {
void TabbedPanel::refreshStickers() {
stickers()->refreshStickers();
if (isHidden() || _currentTabType != TabType::Stickers) {
stickers()->preloadImages();
}
}
void EmojiPanel::opacityAnimationCallback() {
void TabbedPanel::opacityAnimationCallback() {
update();
if (!_a_opacity.animating()) {
if (_hiding) {
@ -566,13 +566,13 @@ void EmojiPanel::opacityAnimationCallback() {
}
}
void EmojiPanel::hideByTimerOrLeave() {
void TabbedPanel::hideByTimerOrLeave() {
if (isHidden() || preventAutoHide()) return;
hideAnimated();
}
void EmojiPanel::prepareCache() {
void TabbedPanel::prepareCache() {
if (_a_opacity.animating()) return;
auto showAnimation = base::take(_a_show);
@ -588,7 +588,7 @@ void EmojiPanel::prepareCache() {
}
}
void EmojiPanel::startOpacityAnimation(bool hiding) {
void TabbedPanel::startOpacityAnimation(bool hiding) {
if (!_scroll->isHidden()) {
currentTab()->widget()->beforeHiding();
}
@ -599,7 +599,7 @@ void EmojiPanel::startOpacityAnimation(bool hiding) {
_a_opacity.start([this] { opacityAnimationCallback(); }, _hiding ? 1. : 0., _hiding ? 0. : 1., st::emojiPanDuration);
}
void EmojiPanel::startShowAnimation() {
void TabbedPanel::startShowAnimation() {
if (!_a_show.animating()) {
auto image = grabForComplexAnimation(GrabType::Panel);
@ -614,7 +614,7 @@ void EmojiPanel::startShowAnimation() {
_a_show.start([this] { update(); }, 0., 1., st::emojiPanShowDuration);
}
QImage EmojiPanel::grabForComplexAnimation(GrabType type) {
QImage TabbedPanel::grabForComplexAnimation(GrabType type) {
auto cache = base::take(_cache);
auto opacityAnimation = base::take(_a_opacity);
auto slideAnimationData = base::take(_slideAnimation);
@ -646,7 +646,7 @@ QImage EmojiPanel::grabForComplexAnimation(GrabType type) {
return result;
}
void EmojiPanel::hideAnimated() {
void TabbedPanel::hideAnimated() {
if (isHidden()) return;
if (_hiding) return;
@ -658,9 +658,9 @@ void EmojiPanel::hideAnimated() {
}
}
EmojiPanel::~EmojiPanel() = default;
TabbedPanel::~TabbedPanel() = default;
void EmojiPanel::hideFinished() {
void TabbedPanel::hideFinished() {
hide();
for (auto &tab : _tabs) {
tab.widget()->panelHideFinished();
@ -675,13 +675,13 @@ void EmojiPanel::hideFinished() {
scrollToY(0);
}
void EmojiPanel::showAnimated() {
void TabbedPanel::showAnimated() {
_hideTimer.stop();
_hideAfterSlide = false;
showStarted();
}
void EmojiPanel::showStarted() {
void TabbedPanel::showStarted() {
if (isHidden()) {
emit updateStickers();
currentTab()->widget()->refreshRecent();
@ -696,7 +696,7 @@ void EmojiPanel::showStarted() {
}
}
bool EmojiPanel::eventFilter(QObject *obj, QEvent *e) {
bool TabbedPanel::eventFilter(QObject *obj, QEvent *e) {
if (e->type() == QEvent::Enter) {
otherEnter();
} else if (e->type() == QEvent::Leave) {
@ -711,7 +711,7 @@ bool EmojiPanel::eventFilter(QObject *obj, QEvent *e) {
return false;
}
void EmojiPanel::stickersInstalled(uint64 setId) {
void TabbedPanel::stickersInstalled(uint64 setId) {
_tabsSlider->setActiveSection(static_cast<int>(TabType::Stickers));
if (isHidden()) {
moveByBottom();
@ -724,11 +724,11 @@ void EmojiPanel::stickersInstalled(uint64 setId) {
showAnimated();
}
void EmojiPanel::setInlineQueryPeer(PeerData *peer) {
void TabbedPanel::setInlineQueryPeer(PeerData *peer) {
gifs()->setInlineQueryPeer(peer);
}
void EmojiPanel::showAll() {
void TabbedPanel::showAll() {
currentTab()->footer()->show();
_scroll->show();
_topShadow->show();
@ -736,36 +736,36 @@ void EmojiPanel::showAll() {
_tabsSlider->show();
}
void EmojiPanel::hideForSliding() {
void TabbedPanel::hideForSliding() {
hideChildren();
_tabsSlider->show();
_topShadow->show();
currentTab()->widget()->clearSelection();
}
void EmojiPanel::onScroll() {
void TabbedPanel::onScroll() {
auto scrollTop = _scroll->scrollTop();
auto scrollBottom = scrollTop + _scroll->height();
currentTab()->widget()->setVisibleTopBottom(scrollTop, scrollBottom);
}
style::margins EmojiPanel::innerPadding() const {
style::margins TabbedPanel::innerPadding() const {
return st::emojiPanMargins;
}
QRect EmojiPanel::innerRect() const {
QRect TabbedPanel::innerRect() const {
return rect().marginsRemoved(innerPadding());
}
QRect EmojiPanel::horizontalRect() const {
QRect TabbedPanel::horizontalRect() const {
return innerRect().marginsRemoved(style::margins(0, st::buttonRadius, 0, st::buttonRadius));
}
QRect EmojiPanel::verticalRect() const {
QRect TabbedPanel::verticalRect() const {
return innerRect().marginsRemoved(style::margins(st::buttonRadius, 0, st::buttonRadius, 0));
}
void EmojiPanel::createTabsSlider() {
void TabbedPanel::createTabsSlider() {
auto sections = QStringList();
sections.push_back(lang(lng_switch_emoji).toUpper());
sections.push_back(lang(lng_switch_stickers).toUpper());
@ -782,7 +782,7 @@ void EmojiPanel::createTabsSlider() {
_topShadow->setGeometry(_tabsSlider->x(), _tabsSlider->bottomNoMargins() - st::lineWidth, _tabsSlider->width(), st::lineWidth);
}
void EmojiPanel::switchTab() {
void TabbedPanel::switchTab() {
auto tab = _tabsSlider->activeSection();
t_assert(tab >= 0 && tab < Tab::kCount);
auto newTabType = static_cast<TabType>(tab);
@ -835,19 +835,19 @@ void EmojiPanel::switchTab() {
onSaveConfigDelayed(kSaveChosenTabTimeout);
}
gsl::not_null<EmojiListWidget*> EmojiPanel::emoji() const {
gsl::not_null<EmojiListWidget*> TabbedPanel::emoji() const {
return static_cast<EmojiListWidget*>(getTab(TabType::Emoji)->widget().get());
}
gsl::not_null<StickersListWidget*> EmojiPanel::stickers() const {
gsl::not_null<StickersListWidget*> TabbedPanel::stickers() const {
return static_cast<StickersListWidget*>(getTab(TabType::Stickers)->widget().get());
}
gsl::not_null<GifsListWidget*> EmojiPanel::gifs() const {
gsl::not_null<GifsListWidget*> TabbedPanel::gifs() const {
return static_cast<GifsListWidget*>(getTab(TabType::Gifs)->widget().get());
}
void EmojiPanel::setWidgetToScrollArea() {
void TabbedPanel::setWidgetToScrollArea() {
_scroll->setOwnedWidget(currentTab()->takeWidget());
_scroll->disableScroll(false);
currentTab()->widget()->moveToLeft(0, 0);
@ -857,13 +857,13 @@ void EmojiPanel::setWidgetToScrollArea() {
onScroll();
}
void EmojiPanel::onCheckForHide() {
void TabbedPanel::onCheckForHide() {
if (!rect().contains(mapFromGlobal(QCursor::pos()))) {
_hideTimer.start(3000);
}
}
bool EmojiPanel::overlaps(const QRect &globalRect) const {
bool TabbedPanel::overlaps(const QRect &globalRect) const {
if (isHidden() || !_cache.isNull()) return false;
auto testRect = QRect(mapFromGlobal(globalRect.topLeft()), globalRect.size());
@ -872,18 +872,18 @@ bool EmojiPanel::overlaps(const QRect &globalRect) const {
|| inner.marginsRemoved(QMargins(0, st::buttonRadius, 0, st::buttonRadius)).contains(testRect);
}
void EmojiPanel::scrollToY(int y) {
void TabbedPanel::scrollToY(int y) {
_scroll->scrollToY(y);
// Qt render glitch workaround, shadow sometimes disappears if we just scroll to y.
_topShadow->update();
}
EmojiPanel::Inner::Inner(QWidget *parent, gsl::not_null<Window::Controller*> controller) : TWidget(parent)
TabbedPanel::Inner::Inner(QWidget *parent, gsl::not_null<Window::Controller*> controller) : TWidget(parent)
, _controller(controller) {
}
void EmojiPanel::Inner::setVisibleTopBottom(int visibleTop, int visibleBottom) {
void TabbedPanel::Inner::setVisibleTopBottom(int visibleTop, int visibleBottom) {
auto oldVisibleHeight = getVisibleBottom() - getVisibleTop();
_visibleTop = visibleTop;
_visibleBottom = visibleBottom;
@ -893,14 +893,14 @@ void EmojiPanel::Inner::setVisibleTopBottom(int visibleTop, int visibleBottom) {
}
}
void EmojiPanel::Inner::hideFinished() {
void TabbedPanel::Inner::hideFinished() {
processHideFinished();
if (auto footer = getFooter()) {
footer->processHideFinished();
}
}
void EmojiPanel::Inner::panelHideFinished() {
void TabbedPanel::Inner::panelHideFinished() {
hideFinished();
processPanelHideFinished();
if (auto footer = getFooter()) {
@ -908,7 +908,7 @@ void EmojiPanel::Inner::panelHideFinished() {
}
}
EmojiPanel::InnerFooter::InnerFooter(QWidget *parent) : TWidget(parent) {
TabbedPanel::InnerFooter::InnerFooter(QWidget *parent) : TWidget(parent) {
resize(st::emojiPanWidth, st::emojiCategory.height);
}

View File

@ -46,11 +46,11 @@ class EmojiListWidget;
class StickersListWidget;
class GifsListWidget;
class EmojiPanel : public TWidget {
class TabbedPanel : public TWidget {
Q_OBJECT
public:
EmojiPanel(QWidget *parent, gsl::not_null<Window::Controller*> controller);
TabbedPanel(QWidget *parent, gsl::not_null<Window::Controller*> controller);
void moveBottom(int bottom);
@ -67,7 +67,7 @@ public:
void showAnimated();
void hideAnimated();
~EmojiPanel();
~TabbedPanel();
class Inner;
class InnerFooter;
@ -234,7 +234,7 @@ private:
};
class EmojiPanel::Inner : public TWidget {
class TabbedPanel::Inner : public TWidget {
Q_OBJECT
public:
@ -288,7 +288,7 @@ private:
};
class EmojiPanel::InnerFooter : public TWidget {
class TabbedPanel::InnerFooter : public TWidget {
public:
InnerFooter(QWidget *parent);

View File

@ -43,7 +43,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
#include "history/history_inner_widget.h"
#include "profile/profile_block_group_members.h"
#include "core/click_handler_types.h"
#include "chat_helpers/emoji_panel.h"
#include "chat_helpers/tabbed_panel.h"
#include "chat_helpers/bot_keyboard.h"
#include "chat_helpers/message_field.h"
#include "lang.h"
@ -484,7 +484,7 @@ HistoryWidget::HistoryWidget(QWidget *parent, gsl::not_null<Window::Controller*>
, _recordCancelWidth(st::historyRecordFont->width(lang(lng_record_cancel)))
, _a_recording(animation(this, &HistoryWidget::step_recording))
, _kbScroll(this, st::botKbScroll)
, _emojiPanel(this, _controller)
, _tabbedPanel(this, _controller)
, _attachDragDocument(this)
, _attachDragPhoto(this)
, _fileLoader(this, FileLoaderQueueStopTimeout)
@ -515,11 +515,11 @@ HistoryWidget::HistoryWidget(QWidget *parent, gsl::not_null<Window::Controller*>
connect(_field, SIGNAL(linksChanged()), this, SLOT(onPreviewCheck()));
connect(App::wnd()->windowHandle(), SIGNAL(visibleChanged(bool)), this, SLOT(onWindowVisibleChanged()));
connect(&_scrollTimer, SIGNAL(timeout()), this, SLOT(onScrollTimer()));
connect(_emojiPanel, SIGNAL(emojiSelected(EmojiPtr)), _field, SLOT(onEmojiInsert(EmojiPtr)));
connect(_emojiPanel, SIGNAL(stickerSelected(DocumentData*)), this, SLOT(onStickerSend(DocumentData*)));
connect(_emojiPanel, SIGNAL(photoSelected(PhotoData*)), this, SLOT(onPhotoSend(PhotoData*)));
connect(_emojiPanel, SIGNAL(inlineResultSelected(InlineBots::Result*,UserData*)), this, SLOT(onInlineResultSend(InlineBots::Result*,UserData*)));
connect(_emojiPanel, SIGNAL(updateStickers()), this, SLOT(updateStickers()));
connect(_tabbedPanel, SIGNAL(emojiSelected(EmojiPtr)), _field, SLOT(onEmojiInsert(EmojiPtr)));
connect(_tabbedPanel, SIGNAL(stickerSelected(DocumentData*)), this, SLOT(onStickerSend(DocumentData*)));
connect(_tabbedPanel, SIGNAL(photoSelected(PhotoData*)), this, SLOT(onPhotoSend(PhotoData*)));
connect(_tabbedPanel, SIGNAL(inlineResultSelected(InlineBots::Result*,UserData*)), this, SLOT(onInlineResultSend(InlineBots::Result*,UserData*)));
connect(_tabbedPanel, SIGNAL(updateStickers()), this, SLOT(updateStickers()));
connect(&_sendActionStopTimer, SIGNAL(timeout()), this, SLOT(onCancelSendAction()));
connect(&_previewTimer, SIGNAL(timeout()), this, SLOT(onPreviewTimeout()));
connect(Media::Capture::instance(), SIGNAL(error()), this, SLOT(onRecordError()));
@ -597,13 +597,13 @@ HistoryWidget::HistoryWidget(QWidget *parent, gsl::not_null<Window::Controller*>
_silent->hide();
_botCommandStart->hide();
_attachEmoji->installEventFilter(_emojiPanel);
_attachEmoji->installEventFilter(_tabbedPanel);
connect(_botKeyboardShow, SIGNAL(clicked()), this, SLOT(onKbToggle()));
connect(_botKeyboardHide, SIGNAL(clicked()), this, SLOT(onKbToggle()));
connect(_botCommandStart, SIGNAL(clicked()), this, SLOT(onCmdStart()));
_emojiPanel->hide();
_tabbedPanel->hide();
_attachDragDocument->hide();
_attachDragPhoto->hide();
@ -638,7 +638,7 @@ void HistoryWidget::start() {
}
void HistoryWidget::onStickersUpdated() {
_emojiPanel->refreshStickers();
_tabbedPanel->refreshStickers();
updateStickersByEmoji();
}
@ -725,7 +725,7 @@ void HistoryWidget::orderWidgets() {
if (_inlineResults) {
_inlineResults->raise();
}
_emojiPanel->raise();
_tabbedPanel->raise();
_attachDragDocument->raise();
_attachDragPhoto->raise();
}
@ -916,11 +916,11 @@ void HistoryWidget::updateSendAction(History *history, SendAction::Type type, in
}
void HistoryWidget::updateRecentStickers() {
_emojiPanel->refreshStickers();
_tabbedPanel->refreshStickers();
}
void HistoryWidget::stickersInstalled(uint64 setId) {
_emojiPanel->stickersInstalled(setId);
_tabbedPanel->stickersInstalled(setId);
}
void HistoryWidget::sendActionDone(const MTPBool &result, mtpRequestId req) {
@ -1695,7 +1695,7 @@ void HistoryWidget::showHistory(const PeerId &peerId, MsgId showAtMsgId, bool re
_peer = App::peer(peerId);
_channel = peerToChannel(_peer->id);
_canSendMessages = canSendMessages(_peer);
_emojiPanel->setInlineQueryPeer(_peer);
_tabbedPanel->setInlineQueryPeer(_peer);
}
updateTopBarSelection();
@ -1847,7 +1847,7 @@ bool HistoryWidget::contentOverlapped(const QRect &globalRect) {
return (_attachDragDocument->overlaps(globalRect)
|| _attachDragPhoto->overlaps(globalRect)
|| _fieldAutocomplete->overlaps(globalRect)
|| _emojiPanel->overlaps(globalRect)
|| _tabbedPanel->overlaps(globalRect)
|| (_inlineResults && _inlineResults->overlaps(globalRect)));
}
@ -1979,7 +1979,7 @@ void HistoryWidget::updateControlsVisibility() {
_botKeyboardShow->hide();
_botKeyboardHide->hide();
_botCommandStart->hide();
_emojiPanel->hide();
_tabbedPanel->hide();
if (_inlineResults) {
_inlineResults->hide();
}
@ -2040,7 +2040,7 @@ void HistoryWidget::updateControlsVisibility() {
_botKeyboardShow->hide();
_botKeyboardHide->hide();
_botCommandStart->hide();
_emojiPanel->hide();
_tabbedPanel->hide();
if (_inlineResults) {
_inlineResults->hide();
}
@ -2154,7 +2154,7 @@ void HistoryWidget::updateControlsVisibility() {
_botKeyboardShow->hide();
_botKeyboardHide->hide();
_botCommandStart->hide();
_emojiPanel->hide();
_tabbedPanel->hide();
if (_inlineResults) {
_inlineResults->hide();
}
@ -2675,7 +2675,7 @@ bool HistoryWidget::saveEditMsgFail(History *history, const RPCError &error, mtp
void HistoryWidget::hideSelectorControlsAnimated() {
_fieldAutocomplete->hideAnimated();
_emojiPanel->hideAnimated();
_tabbedPanel->hideAnimated();
if (_inlineResults) {
_inlineResults->hideAnimated();
}
@ -3790,7 +3790,7 @@ void HistoryWidget::moveFieldControls() {
_kbScroll->setGeometry(0, bottom, width(), keyboardHeight);
}
// _attachToggle ------- _inlineResults ---------------------------------- _emojiPanel ------- _fieldBarCancel
// _attachToggle ------- _inlineResults --------------------------------- _tabbedPanel ------- _fieldBarCancel
// (_attachDocument|_attachPhoto) _field (_silent|_cmdStart|_kbShow) (_kbHide|_attachEmoji) [_broadcast] _send
// (_botStart|_unblock|_joinChannel|_muteUnmute)
@ -3810,7 +3810,7 @@ void HistoryWidget::moveFieldControls() {
if (_inlineResults) {
_inlineResults->moveBottom(_field->y() - st::historySendPadding);
}
_emojiPanel->moveBottom(buttonsBottom);
_tabbedPanel->moveBottom(buttonsBottom);
auto fullWidthButtonRect = QRect(0, bottom - _botStart->height(), width(), _botStart->height());
_botStart->setGeometry(fullWidthButtonRect);

View File

@ -57,7 +57,7 @@ class TopBarWidget;
} // namespace Window
namespace ChatHelpers {
class EmojiPanel;
class TabbedPanel;
} // namespace ChatHelpers
class DragArea;
@ -780,7 +780,7 @@ private:
QTimer _membersDropdownShowTimer;
object_ptr<InlineBots::Layout::Widget> _inlineResults = { nullptr };
object_ptr<ChatHelpers::EmojiPanel> _emojiPanel;
object_ptr<ChatHelpers::TabbedPanel> _tabbedPanel;
DragState _attachDrag = DragStateNone;
object_ptr<DragArea> _attachDragDocument, _attachDragPhoto;

View File

@ -81,12 +81,8 @@
<(src_loc)/boxes/username_box.h
<(src_loc)/chat_helpers/bot_keyboard.cpp
<(src_loc)/chat_helpers/bot_keyboard.h
<(src_loc)/chat_helpers/emoji_panel.cpp
<(src_loc)/chat_helpers/emoji_panel.h
<(src_loc)/chat_helpers/emoji_list_widget.cpp
<(src_loc)/chat_helpers/emoji_list_widget.h
<(src_loc)/chat_helpers/emoji_section.cpp
<(src_loc)/chat_helpers/emoji_section.h
<(src_loc)/chat_helpers/field_autocomplete.cpp
<(src_loc)/chat_helpers/field_autocomplete.h
<(src_loc)/chat_helpers/gifs_list_widget.cpp
@ -97,6 +93,8 @@
<(src_loc)/chat_helpers/stickers.h
<(src_loc)/chat_helpers/stickers_list_widget.cpp
<(src_loc)/chat_helpers/stickers_list_widget.h
<(src_loc)/chat_helpers/tabbed_panel.cpp
<(src_loc)/chat_helpers/tabbed_panel.h
<(src_loc)/core/basic_types.h
<(src_loc)/core/click_handler.cpp
<(src_loc)/core/click_handler.h