From 48332c0c6b64ed6869086011e41966ff44a5e17b Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 21 Oct 2016 15:28:26 +0300 Subject: [PATCH] Ui::MultiSelect control ready. --- Telegram/Resources/art/sprite.png | Bin 40118 -> 39727 bytes Telegram/Resources/art/sprite_200x.png | Bin 85439 -> 84452 bytes Telegram/Resources/basic.style | 13 +- Telegram/Resources/basic_types.style | 7 +- Telegram/Resources/icons/box_search_icon.png | Bin 0 -> 350 bytes .../Resources/icons/box_search_icon@2x.png | Bin 0 -> 707 bytes Telegram/SourceFiles/boxes/boxes.style | 48 +- Telegram/SourceFiles/boxes/contactsbox.cpp | 155 +++- Telegram/SourceFiles/boxes/contactsbox.h | 40 +- Telegram/SourceFiles/boxes/sharebox.cpp | 2 +- Telegram/SourceFiles/boxes/sharebox.h | 2 +- Telegram/SourceFiles/core/lambda_wrap.h | 4 + Telegram/SourceFiles/ui/animation.h | 23 +- .../ui/effects/round_image_checkbox.cpp | 25 +- .../ui/effects/round_image_checkbox.h | 5 +- Telegram/SourceFiles/ui/flatinput.cpp | 71 +- Telegram/SourceFiles/ui/flatinput.h | 16 +- .../SourceFiles/ui/style/style_core_icon.h | 3 + .../SourceFiles/ui/widgets/multi_select.cpp | 767 ++++++++++++++++-- .../SourceFiles/ui/widgets/multi_select.h | 145 ++-- Telegram/SourceFiles/ui/widgets/widgets.style | 30 +- 21 files changed, 1080 insertions(+), 276 deletions(-) create mode 100644 Telegram/Resources/icons/box_search_icon.png create mode 100644 Telegram/Resources/icons/box_search_icon@2x.png diff --git a/Telegram/Resources/art/sprite.png b/Telegram/Resources/art/sprite.png index fb2205f25c5e60782bde38a2360e85983c42e40b..8ff946cf267ca6d062241dcb7810f099deade512 100644 GIT binary patch literal 39727 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 literal 40118 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 D4g$nk diff --git a/Telegram/Resources/basic.style b/Telegram/Resources/basic.style index f2c34e362..a9fa919e9 100644 --- a/Telegram/Resources/basic.style +++ b/Telegram/Resources/basic.style @@ -193,6 +193,7 @@ defaultInputArea: InputArea { heightMax: 128px; } defaultInputField: InputField { + textBg: white; textFg: black; textMargins: margins(0px, 6px, 0px, 4px); textAlign: align(topleft); @@ -216,15 +217,6 @@ defaultInputField: InputField { height: 32px; } -dialogsSearchField: InputField(defaultInputField) { - textMargins: margins(34px, 7px, 34px, 7px); - - iconSprite: sprite(227px, 21px, 24px, 24px); - iconPosition: point(6px, 5px); - - width: 240px; - height: 34px; -} defaultCheckbox: Checkbox { textFg: black; textBg: white; @@ -746,12 +738,11 @@ dlgFilter: flatInput(inpDefGray) { bgColor: #f2f2f2; phColor: #949494; phFocusColor: #a4a4a4; - imgRect: sprite(227px, 21px, 24px, 24px); + icon: icon {{ "box_search_icon", #aaaaaa, point(10px, 9px) }}; width: 240px; height: 34px; textMrg: margins(34px, 2px, 34px, 4px); - imgPos: point(6px, 5px); } topBarHeight: 54px; diff --git a/Telegram/Resources/basic_types.style b/Telegram/Resources/basic_types.style index 73918d110..f3baf7e69 100644 --- a/Telegram/Resources/basic_types.style +++ b/Telegram/Resources/basic_types.style @@ -130,8 +130,7 @@ flatInput { font: font; cursor: cursor; - imgRect: sprite; - imgPos: point; + icon: icon; borderWidth: pixels; borderColor: color; @@ -394,6 +393,7 @@ InputArea { } InputField { + textBg: color; textFg: color; textMargins: margins; textAlign: align; @@ -418,9 +418,6 @@ InputField { width: pixels; height: pixels; - - iconSprite: sprite; - iconPosition: point; } PeerAvatarButton { diff --git a/Telegram/Resources/icons/box_search_icon.png b/Telegram/Resources/icons/box_search_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..04735260760a3bc5d9b99022d3d868882a5d59c7 GIT binary patch literal 350 zcmV-k0iphhP)9C=+{pqNh0sP%Cb}xMGY>BB9&z+@4b>FxxY6BilUI2DGWnBbAZAy zl$oh0igp1rQ=aFo!*}F)E;AFLuQv0ls_HVHs;Y?N7=Ranx~@snv{N8W(?$~i>%qGz zyxf6vj>%+#_a6BB4*J06dH8%jlVuq}5HKE(na}4)V!z+BTCKQTE)7ov$T=rTa?W)| w*n*FS)dx1W+l}FH$aFgGjIXU)Khrz)4TY@wg>IlGNB{r;07*qoM6N<$f;RA;vH$=8 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/box_search_icon@2x.png b/Telegram/Resources/icons/box_search_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2c66f86e536edb168c150881677aeb32b04d57 GIT binary patch literal 707 zcmV;!0zCbRP)S*txX<0KyF=T%t%I5CDh60RRAl!2l5X z?g@E^-EPNBCWEb33lFK+>tQ~hN3Yjwr5>O8!@~oO*APDCJ2!eo> zO68!@a5zLl2ogeYyWRepZ@1g%cDv65sMqUE(a~sxsZcKffju~-ZVA`MRZ-~`eu^JBmFxwUfpi@U|myy{oMlq%;)p70G7)ojh#-XHGoU% z?(UApyWP$jz{kf2jeS1fSpXi7hsLwn%o@O8FraZH5;+SX8jaGp*XuEJrdwz{9-B20 zOGB1rrWyJDe(R0s|0eSK`iinFa|0NLVb+dMH<7ouH(J0j3@-CrE=O~>+bt@J!Uq5V z7>~#C^YfDyB7|Tl6f(^bMG?#8GV|z<{6|g$sH(~U>{TolF&2xVBuUgX7!0DOX*iuu znYE2Z18p`NKY*&L%pv0t$SDVSIdiv}8OS4ly2&pL)X9&7Dps zomUhE^Z7g)hC#RLVzEF%2v)0Ao-NC7e&KOba~9wR=HCFRRO%My-vE*%(U0kh=Ikqw pBng|%<~7aHwx_t2u680irY{@T^!=co>}>!5002ovPDHLkV1f}EK==Rv literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/boxes/boxes.style b/Telegram/SourceFiles/boxes/boxes.style index 3bdfe8a83..47d4a5737 100644 --- a/Telegram/SourceFiles/boxes/boxes.style +++ b/Telegram/SourceFiles/boxes/boxes.style @@ -69,20 +69,19 @@ aboutRevokePublicLabel: flatLabel(labelDefFlat) { } boxSearchField: InputField(defaultInputField) { - textMargins: margins(41px, 16px, 41px, 0px); + textBg: transparent; + textMargins: margins(2px, 7px, 2px, 0px); placeholderFg: #999; placeholderFgActive: #aaa; - placeholderMargins: margins(4px, 0px, 4px, 0px); + placeholderMargins: margins(2px, 0px, 2px, 0px); + duration: 150; border: 0px; borderActive: 0px; borderError: 0px; - height: 48px; - - iconSprite: sprite(227px, 21px, 24px, 24px); - iconPosition: point(15px, 14px); + height: 32px; font: normalFont; } @@ -95,15 +94,46 @@ boxSearchCancel: IconButton { icon: icon {{ "box_search_cancel", #000000 }}; iconPosition: point(8px, 18px); - downIconPosition: point(8px, 18px); + downIconPosition: point(8px, 19px); duration: 150; } contactsMultiSelect: MultiSelect { - field: boxSearchField; - cancel: boxSearchCancel; + padding: margins(8px, 8px, 8px, 8px); maxHeight: 104px; + scroll: flatScroll(solidScroll) { + deltat: 3px; + deltab: 3px; + round: 1px; + width: 8px; + deltax: 3px; + hiding: 1000; + } + + item: MultiSelectItem { + padding: margins(6px, 7px, 12px, 0px); + maxWidth: 128px; + height: 32px; + font: normalFont; + textBg: contactsBgOver; + textFg: windowTextFg; + textActiveBg: titleBg; + textActiveFg: white; + deleteFg: white; + deleteLeft: 9px; + deleteStroke: 3px; + duration: 150; + minScale: 0.3; + } + itemSkip: 8px; + + field: boxSearchField; + fieldIcon: icon {{ "box_search_icon", #aaaaaa, point(11px, 9px) }}; + fieldIconSkip: 36px; + fieldCancel: boxSearchCancel; + fieldCancelSkip: 34px; + fieldMinWidth: 42px; } contactsPhotoCheckbox: RoundImageCheckbox { imageRadius: 21px; diff --git a/Telegram/SourceFiles/boxes/contactsbox.cpp b/Telegram/SourceFiles/boxes/contactsbox.cpp index ad98a8315..cbf186b8f 100644 --- a/Telegram/SourceFiles/boxes/contactsbox.cpp +++ b/Telegram/SourceFiles/boxes/contactsbox.cpp @@ -23,6 +23,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "dialogs/dialogs_indexed_list.h" #include "styles/style_dialogs.h" +#include "styles/style_history.h" #include "styles/style_boxes.h" #include "lang.h" #include "boxes/addcontactbox.h" @@ -97,10 +98,18 @@ ContactsBox::ContactsBox(UserData *bot) : ItemListBox(st::contactsScroll) } void ContactsBox::init() { - ItemListBox::init(_inner); + _select->resizeToWidth(st::boxWideWidth); + + auto inviting = (_inner->creating() == CreatingGroupGroup) || (_inner->channel() && _inner->membersFilter() == MembersFilter::Recent) || _inner->chat(); + auto topSkip = st::boxTitleHeight + _select->height(); + auto bottomSkip = inviting ? (st::boxButtonPadding.top() + _next.height() + st::boxButtonPadding.bottom()) : st::boxScrollSkip; + ItemListBox::init(_inner, bottomSkip, topSkip); - connect(_inner, SIGNAL(chosenChanged()), this, SLOT(onChosenChanged())); connect(_inner, SIGNAL(addRequested()), App::wnd(), SLOT(onShowAddContact())); + _inner->setPeerSelectedChangedCallback([this](PeerData *peer, bool checked) { + onPeerSelectedChanged(peer, checked); + }); + if (_inner->channel() && _inner->membersFilter() == MembersFilter::Admins) { _next.hide(); _cancel.hide(); @@ -120,7 +129,14 @@ void ContactsBox::init() { connect(&_cancel, SIGNAL(clicked()), this, SLOT(onClose())); connect(scrollArea(), SIGNAL(scrolled()), this, SLOT(onScroll())); _select->setQueryChangedCallback([this](const QString &query) { onFilterUpdate(query); }); + _select->setItemRemovedCallback([this](uint64 itemId) { + if (auto peer = App::peerLoaded(itemId)) { + _inner->peerUnselected(peer); + update(); + } + }); _select->setSubmittedCallback([this](bool) { onSubmit(); }); + _select->setResizedCallback([this] { updateScrollSkips(); }); connect(_inner, SIGNAL(mustScrollTo(int, int)), scrollArea(), SLOT(scrollToY(int, int))); connect(_inner, SIGNAL(searchByUsername()), this, SLOT(onNeedSearchByUsername())); connect(_inner, SIGNAL(adminAdded()), this, SIGNAL(adminAdded())); @@ -184,7 +200,7 @@ void ContactsBox::peopleReceived(const MTPcontacts_Found &result, mtpRequestId r } _peopleRequest = 0; - _inner->updateSel(); + _inner->updateSelection(); onScroll(); } } @@ -266,21 +282,31 @@ void ContactsBox::paintEvent(QPaintEvent *e) { } } +void ContactsBox::updateScrollSkips() { + auto oldScrollHeight = scrollArea()->height(); + auto inviting = (_inner->creating() == CreatingGroupGroup) || (_inner->channel() && _inner->membersFilter() == MembersFilter::Recent) || _inner->chat(); + auto topSkip = st::boxTitleHeight + _select->height(); + auto bottomSkip = inviting ? (st::boxButtonPadding.top() + _next.height() + st::boxButtonPadding.bottom()) : st::boxScrollSkip; + setScrollSkips(bottomSkip, topSkip); + auto scrollHeightDelta = scrollArea()->height() - oldScrollHeight; + if (scrollHeightDelta) { + scrollArea()->scrollToY(scrollArea()->scrollTop() - scrollHeightDelta); + } + + _topShadow.setGeometry(0, st::boxTitleHeight + _select->height(), width(), st::lineWidth); +} + void ContactsBox::resizeEvent(QResizeEvent *e) { ItemListBox::resizeEvent(e); _select->resizeToWidth(width()); _select->moveToLeft(0, st::boxTitleHeight); - auto inviting = (_inner->creating() == CreatingGroupGroup) || (_inner->channel() && _inner->membersFilter() == MembersFilter::Recent) || _inner->chat(); - auto topSkip = st::boxTitleHeight + _select->height(); - auto bottomSkip = inviting ? (st::boxButtonPadding.top() + _next.height() + st::boxButtonPadding.bottom()) : st::boxScrollSkip; - setScrollSkips(bottomSkip, topSkip); + updateScrollSkips(); _inner->resize(width(), _inner->height()); _next.moveToRight(st::boxButtonPadding.right(), height() - st::boxButtonPadding.bottom() - _next.height()); _cancel.moveToRight(st::boxButtonPadding.right() + _next.width() + st::boxButtonPadding.left(), _next.y()); - _topShadow.setGeometry(0, st::boxTitleHeight + _select->height(), width(), st::lineWidth); if (_bottomShadow) _bottomShadow->setGeometry(0, height() - st::boxButtonPadding.bottom() - _next.height() - st::boxButtonPadding.top() - st::lineWidth, width(), st::lineWidth); } @@ -295,7 +321,25 @@ void ContactsBox::onFilterUpdate(const QString &filter) { _inner->updateFilter(filter); } -void ContactsBox::onChosenChanged() { +void ContactsBox::onPeerSelectedChanged(PeerData *peer, bool checked) { + if (checked) { + auto getColor = [peer]() -> const style::color &{ + switch (peer->colorIndex) { + case 1: return st::historyPeer2UserpicFg; + case 2: return st::historyPeer3UserpicFg; + case 3: return st::historyPeer4UserpicFg; + case 4: return st::historyPeer5UserpicFg; + case 5: return st::historyPeer6UserpicFg; + case 6: return st::historyPeer7UserpicFg; + case 7: return st::historyPeer8UserpicFg; + default: return st::historyPeer1UserpicFg; + } + }; + _select->addItem(peer->id, peer->shortName(), getColor(), PaintUserpicCallback(peer)); + _select->clearQuery(); + } else { + _select->removeItem(peer->id); + } update(); } @@ -482,12 +526,8 @@ bool ContactsBox::creationFail(const RPCError &error) { return false; } -ContactsBox::Inner::ContactData::ContactData() : name(st::boxWideWidth) { -} - -ContactsBox::Inner::ContactData::ContactData(PeerData *peer, Ui::RoundImageCheckbox::UpdateCallback &&updateCallback) -: checkbox(std_::make_unique(st::contactsPhotoCheckbox, std_::move(updateCallback), PaintUserpicCallback(peer))) -, name(st::boxWideWidth) { +ContactsBox::Inner::ContactData::ContactData(PeerData *peer, base::lambda_wrap updateCallback) +: checkbox(std_::make_unique(st::contactsPhotoCheckbox, std_::move(updateCallback), PaintUserpicCallback(peer))) { } ContactsBox::Inner::Inner(QWidget *parent, CreatingGroupType creating) : ScrolledWidget(parent) @@ -613,7 +653,7 @@ void ContactsBox::Inner::initList() { if (i.key()->id == peerFromUser(_chat->creator)) continue; if (!_allAdmins.checked() && _chat->admins.contains(i.key())) { admins.push_back(i.key()); - _checkedContacts.insert(i.key(), true); + _checkedContacts.insert(i.key()); } else { others.push_back(i.key()); } @@ -1186,13 +1226,13 @@ void ContactsBox::Inner::leaveEvent(QEvent *e) { void ContactsBox::Inner::mouseMoveEvent(QMouseEvent *e) { _mouseSel = true; _lastMousePos = e->globalPos(); - updateSel(); + updateSelection(); } void ContactsBox::Inner::mousePressEvent(QMouseEvent *e) { _mouseSel = true; _lastMousePos = e->globalPos(); - updateSel(); + updateSelection(); if (e->button() == Qt::LeftButton) { chooseParticipant(); } @@ -1205,29 +1245,35 @@ void ContactsBox::Inner::chooseParticipant() { _time = unixtime(); if (_filter.isEmpty()) { if (_byUsernameSel >= 0 && _byUsernameSel < _byUsername.size()) { - if (d_byUsername[_byUsernameSel]->disabledChecked) return; - changeCheckState(d_byUsername[_byUsernameSel], _byUsername[_byUsernameSel]); - } else { - if (!_sel || contactData(_sel)->disabledChecked) return; + auto data = d_byUsername[_byUsernameSel]; + auto peer = _byUsername[_byUsernameSel]; + if (data->disabledChecked) return; + + changeCheckState(data, peer); + } else if (_sel) { + auto data = contactData(_sel); + auto peer = _sel->history()->peer; + if (data->disabledChecked) return; + changeCheckState(_sel); } } else { if (_byUsernameSel >= 0 && _byUsernameSel < _byUsernameFiltered.size()) { - if (d_byUsernameFiltered[_byUsernameSel]->disabledChecked) return; - changeCheckState(d_byUsernameFiltered[_byUsernameSel], _byUsernameFiltered[_byUsernameSel]); + auto data = d_byUsernameFiltered[_byUsernameSel]; + auto peer = _byUsernameFiltered[_byUsernameSel]; + if (data->disabledChecked) return; - ContactData *moving = d_byUsernameFiltered[_byUsernameSel]; - int32 i = 0, l = d_byUsername.size(); + int i = 0, l = d_byUsername.size(); for (; i < l; ++i) { - if (d_byUsername[i] == moving) { + if (d_byUsername[i] == data) { break; } } if (i == l) { - d_byUsername.push_back(moving); - _byUsername.push_back(_byUsernameFiltered[_byUsernameSel]); + d_byUsername.push_back(data); + _byUsername.push_back(peer); for (i = 0, l = _byUsernameDatas.size(); i < l;) { - if (_byUsernameDatas[i] == moving) { + if (_byUsernameDatas[i] == data) { _byUsernameDatas.removeAt(i); --l; } else { @@ -1235,9 +1281,14 @@ void ContactsBox::Inner::chooseParticipant() { } } } - } else { - if (_filteredSel < 0 || _filteredSel >= _filtered.size() || contactData(_filtered[_filteredSel])->disabledChecked) return; - changeCheckState(_filtered[_filteredSel]); + + changeCheckState(data, peer); + } else if (_filteredSel >= 0 && _filteredSel < _filtered.size()) { + auto data = contactData(_filtered[_filteredSel]); + auto peer = _filtered[_filteredSel]->history()->peer; + if (data->disabledChecked) return; + + changeCheckState(data, peer); } } } else { @@ -1304,25 +1355,43 @@ void ContactsBox::Inner::changeCheckState(Dialogs::Row *row) { void ContactsBox::Inner::changeCheckState(ContactData *data, PeerData *peer) { t_assert(usingMultiSelect()); - int32 cnt = _selCount; if (data->checkbox->checked()) { - data->checkbox->setChecked(false); - _checkedContacts.remove(peer); - --_selCount; + changePeerCheckState(data, peer, false); } else if (selectedCount() < ((_channel && _channel->isMegagroup()) ? Global::MegagroupSizeMax() : Global::ChatSizeMax())) { - data->checkbox->setChecked(true); - _checkedContacts.insert(peer, true); - ++_selCount; + changePeerCheckState(data, peer, true); } else if (_channel && !_channel->isMegagroup()) { Ui::showLayer(new MaxInviteBox(_channel->inviteLink()), KeepOtherLayers); } else if (!_channel && selectedCount() >= Global::ChatSizeMax() && selectedCount() < Global::MegagroupSizeMax()) { Ui::showLayer(new InformBox(lng_profile_add_more_after_upgrade(lt_count, Global::MegagroupSizeMax())), KeepOtherLayers); } - if (cnt != _selCount) emit chosenChanged(); +} + +void ContactsBox::Inner::peerUnselected(PeerData *peer) { + // If data is nullptr we simply won't do anything. + auto data = _contactsData.value(peer, nullptr); + changePeerCheckState(data, peer, false, ChangeStateWay::SkipCallback); +} + +void ContactsBox::Inner::setPeerSelectedChangedCallback(base::lambda_unique callback) { + _peerSelectedChangedCallback = std_::move(callback); +} + +void ContactsBox::Inner::changePeerCheckState(ContactData *data, PeerData *peer, bool checked, ChangeStateWay useCallback) { + if (data) { + data->checkbox->setChecked(checked); + } + if (checked) { + _checkedContacts.insert(peer); + } else { + _checkedContacts.remove(peer); + } + if (useCallback != ChangeStateWay::SkipCallback) { + _peerSelectedChangedCallback(peer, checked); + } } int32 ContactsBox::Inner::selectedCount() const { - int32 result = _selCount; + auto result = _checkedContacts.size(); if (_chat) { result += qMax(_chat->count, 1); } else if (_channel) { @@ -1333,7 +1402,7 @@ int32 ContactsBox::Inner::selectedCount() const { return result; } -void ContactsBox::Inner::updateSel() { +void ContactsBox::Inner::updateSelection() { if (!_mouseSel) return; QPoint p(mapFromGlobal(_lastMousePos)); diff --git a/Telegram/SourceFiles/boxes/contactsbox.h b/Telegram/SourceFiles/boxes/contactsbox.h index 8b1f519d5..9685bdd20 100644 --- a/Telegram/SourceFiles/boxes/contactsbox.h +++ b/Telegram/SourceFiles/boxes/contactsbox.h @@ -56,8 +56,7 @@ public: signals: void adminAdded(); -public slots: - void onChosenChanged(); +private slots: void onScroll(); void onInvite(); @@ -80,7 +79,9 @@ protected: private: void init(); + void updateScrollSkips(); void onFilterUpdate(const QString &filter); + void onPeerSelectedChanged(PeerData *peer, bool checked); class Inner; ChildWidget _inner; @@ -136,10 +137,11 @@ public: Inner(QWidget *parent, ChatData *chat, MembersFilter membersFilter); Inner(QWidget *parent, UserData *bot); - void init(); - void initList(); + void setPeerSelectedChangedCallback(base::lambda_unique callback); + void peerUnselected(PeerData *peer); void updateFilter(QString filter = QString()); + void updateSelection(); void selectSkip(int32 dir); void selectSkipPage(int32 h, int32 dir); @@ -177,14 +179,12 @@ public: signals: void mustScrollTo(int ymin, int ymax); void searchByUsername(); - void chosenChanged(); void adminAdded(); void addRequested(); -public slots: +private slots: void onDialogRowReplaced(Dialogs::Row *oldRow, Dialogs::Row *newRow); - void updateSel(); void peerUpdated(PeerData *peer); void onPeerNameChanged(PeerData *peer, const PeerData::Names &oldNames, const PeerData::NameFirstChars &oldChars); @@ -204,8 +204,8 @@ protected: private: struct ContactData { - ContactData(); - ContactData(PeerData *peer, Ui::RoundImageCheckbox::UpdateCallback &&updateCallback); + ContactData() = default; + ContactData(PeerData *peer, base::lambda_wrap updateCallback); std_::unique_ptr checkbox; Text name; @@ -214,6 +214,9 @@ private: bool disabledChecked = false; }; + void init(); + void initList(); + void updateRowWithTop(int rowTop); int getSelectedRowTop() const; void updateSelectedRow(); @@ -227,6 +230,11 @@ private: void changeCheckState(Dialogs::Row *row); void changeCheckState(ContactData *data, PeerData *peer); + enum class ChangeStateWay { + Default, + SkipCallback, + }; + void changePeerCheckState(ContactData *data, PeerData *peer, bool checked, ChangeStateWay useCallback = ChangeStateWay::Default); template void addDialogsToList(FilterCallback callback); @@ -235,6 +243,8 @@ private: return (_chat != nullptr) || (_creating != CreatingGroupNone && (!_channel || _membersFilter != MembersFilter::Admins)); } + base::lambda_unique _peerSelectedChangedCallback; + int32 _rowHeight; int _newItemHeight = 0; bool _newItemSel = false; @@ -261,24 +271,22 @@ private: Dialogs::IndexedList *_contacts = nullptr; Dialogs::Row *_sel = nullptr; QString _filter; - typedef QVector FilteredDialogs; + using FilteredDialogs = QVector; FilteredDialogs _filtered; int _filteredSel = -1; bool _mouseSel = false; - int _selCount = 0; - - typedef QMap ContactsData; + using ContactsData = QMap; ContactsData _contactsData; - typedef QMap CheckedContacts; + using CheckedContacts = OrderedSet; CheckedContacts _checkedContacts; ContactData *contactData(Dialogs::Row *row); bool _searching = false; QString _lastQuery; - typedef QVector ByUsernameRows; - typedef QVector ByUsernameDatas; + using ByUsernameRows = QVector; + using ByUsernameDatas = QVector; ByUsernameRows _byUsername, _byUsernameFiltered; ByUsernameDatas d_byUsername, d_byUsernameFiltered; // filtered is partly subset of d_byUsername, partly subset of _byUsernameDatas ByUsernameDatas _byUsernameDatas; diff --git a/Telegram/SourceFiles/boxes/sharebox.cpp b/Telegram/SourceFiles/boxes/sharebox.cpp index bc8135fda..ca2323138 100644 --- a/Telegram/SourceFiles/boxes/sharebox.cpp +++ b/Telegram/SourceFiles/boxes/sharebox.cpp @@ -473,7 +473,7 @@ void ShareBox::Inner::paintChat(Painter &p, Chat *chat, int index) { chat->name.drawLeftElided(p, x + nameLeft, y + nameTop, nameWidth, outerWidth, 2, style::al_top, 0, -1, 0, true); } -ShareBox::Inner::Chat::Chat(PeerData *peer, Ui::RoundImageCheckbox::UpdateCallback &&updateCallback) +ShareBox::Inner::Chat::Chat(PeerData *peer, base::lambda_wrap updateCallback) : peer(peer) , checkbox(st::sharePhotoCheckbox, std_::move(updateCallback), PaintUserpicCallback(peer)) , name(st::sharePhotoCheckbox.imageRadius * 2) { diff --git a/Telegram/SourceFiles/boxes/sharebox.h b/Telegram/SourceFiles/boxes/sharebox.h index 2e4252fc2..96da0fb1c 100644 --- a/Telegram/SourceFiles/boxes/sharebox.h +++ b/Telegram/SourceFiles/boxes/sharebox.h @@ -153,7 +153,7 @@ private: int displayedChatsCount() const; struct Chat { - Chat(PeerData *peer, Ui::RoundImageCheckbox::UpdateCallback &&updateCallback); + Chat(PeerData *peer, base::lambda_wrap updateCallback); PeerData *peer; Ui::RoundImageCheckbox checkbox; diff --git a/Telegram/SourceFiles/core/lambda_wrap.h b/Telegram/SourceFiles/core/lambda_wrap.h index fc0ce2224..f75ceb5ef 100644 --- a/Telegram/SourceFiles/core/lambda_wrap.h +++ b/Telegram/SourceFiles/core/lambda_wrap.h @@ -359,6 +359,10 @@ public: } } + lambda_wrap clone() const { + return *this; + } + template > lambda_wrap(const Lambda &other) : Parent(&internal::lambda_wrap_helper_copy::instance, typename Parent::Private()) { internal::lambda_wrap_helper_copy::construct_copy_lambda_method(this->storage_, &other); diff --git a/Telegram/SourceFiles/ui/animation.h b/Telegram/SourceFiles/ui/animation.h index 1018053f2..97d4f58a6 100644 --- a/Telegram/SourceFiles/ui/animation.h +++ b/Telegram/SourceFiles/ui/animation.h @@ -102,6 +102,22 @@ namespace anim { float64 easeInQuint(const float64 &delta, const float64 &dt); float64 easeOutQuint(const float64 &delta, const float64 &dt); + template + float64 bumpy(const float64 &delta, const float64 &dt) { + struct Bumpy { + Bumpy() + : bump(BumpRatioNumerator / float64(BumpRatioDenominator)) + , dt0(bump - sqrt(bump * (bump - 1.))) + , k(1 / (2 * dt0 - 1)) { + } + float64 bump; + float64 dt0; + float64 k; + }; + static Bumpy data; + return delta * (data.bump - data.k * (dt - data.dt0) * (dt - data.dt0)); + } + class fvalue { // float animated value public: using ValueType = float64; @@ -499,7 +515,7 @@ public: template void start(Lambda &&updateCallback, const ValueType &from, const ValueType &to, float64 duration, anim::transition transition = anim::linear) { if (!_data) { - _data = std_::make_unique(from, std_::move(updateCallback)); + _data = std_::make_unique(from, std_::forward(updateCallback)); } _data->value.start(to); _data->duration = duration; @@ -522,6 +538,11 @@ private: , a_animation(animation(this, &Data::step)) , updateCallback(std_::move(updateCallback)) { } + Data(const ValueType &from, const base::lambda_wrap &updateCallback) + : value(from, from) + , a_animation(animation(this, &Data::step)) + , updateCallback(base::lambda_wrap(updateCallback)) { + } void step(float64 ms, bool timer) { auto dt = (ms >= duration) ? 1. : (ms / duration); if (dt >= 1) { diff --git a/Telegram/SourceFiles/ui/effects/round_image_checkbox.cpp b/Telegram/SourceFiles/ui/effects/round_image_checkbox.cpp index fbe75582d..de70ee3a7 100644 --- a/Telegram/SourceFiles/ui/effects/round_image_checkbox.cpp +++ b/Telegram/SourceFiles/ui/effects/round_image_checkbox.cpp @@ -56,25 +56,9 @@ void prepareCheckCaches(const style::RoundImageCheckbox *st, QPixmap &checkBgCac checkFullCache.setDevicePixelRatio(cRetinaFactor()); } -struct AnimBumpy { - AnimBumpy(float64 bump) : bump(bump) - , dt0(bump - sqrt(bump * (bump - 1.))) - , k(1 / (2 * dt0 - 1)) { - } - float64 bump; - float64 dt0; - float64 k; -}; - -template -float64 anim_bumpy(const float64 &delta, const float64 &dt) { - static AnimBumpy data = { BumpRatioPercent / 100. }; - return delta * (data.bump - data.k * (dt - data.dt0) * (dt - data.dt0)); -} - } // namespace -RoundImageCheckbox::RoundImageCheckbox(const style::RoundImageCheckbox &st, UpdateCallback &&updateCallback, PaintRoundImage &&paintRoundImage) +RoundImageCheckbox::RoundImageCheckbox(const style::RoundImageCheckbox &st, base::lambda_wrap updateCallback, PaintRoundImage paintRoundImage) : _st(st) , _updateCallback(std_::move(updateCallback)) , _paintRoundImage(std_::move(paintRoundImage)) { @@ -84,13 +68,14 @@ RoundImageCheckbox::RoundImageCheckbox(const style::RoundImageCheckbox &st, Upda void RoundImageCheckbox::paint(Painter &p, int x, int y, int outerWidth) { auto selectionLevel = _selection.current(_checked ? 1. : 0.); if (_selection.animating()) { - p.setRenderHint(QPainter::SmoothPixmapTransform, true); auto userpicRadius = qRound(kWideScale * (_st.imageRadius + (_st.imageSmallRadius - _st.imageRadius) * selectionLevel)); auto userpicShift = kWideScale * _st.imageRadius - userpicRadius; auto userpicLeft = x - (kWideScale - 1) * _st.imageRadius + userpicShift; auto userpicTop = y - (kWideScale - 1) * _st.imageRadius + userpicShift; auto to = QRect(userpicLeft, userpicTop, userpicRadius * 2, userpicRadius * 2); auto from = QRect(QPoint(0, 0), _wideCache.size()); + + p.setRenderHint(QPainter::SmoothPixmapTransform, true); p.drawPixmapLeft(to, outerWidth, _wideCache, from); p.setRenderHint(QPainter::SmoothPixmapTransform, false); } else { @@ -159,7 +144,7 @@ void RoundImageCheckbox::setChecked(bool checked, SetStyle speed) { _checked = checked; if (_checked) { _icons.push_back(Icon()); - _icons.back().fadeIn.start(UpdateCallback(_updateCallback), 0, 1, _st.selectDuration); + _icons.back().fadeIn.start(_updateCallback, 0, 1, _st.selectDuration); if (speed != SetStyle::Animated) { _icons.back().fadeIn.finish(); } @@ -176,7 +161,7 @@ void RoundImageCheckbox::setChecked(bool checked, SetStyle speed) { } if (speed == SetStyle::Animated) { prepareWideCache(); - _selection.start(UpdateCallback(_updateCallback), _checked ? 0 : 1, _checked ? 1 : 0, _st.selectDuration, anim_bumpy<125>); + _selection.start(_updateCallback, _checked ? 0 : 1, _checked ? 1 : 0, _st.selectDuration, anim::bumpy<125, 100>); } else { _selection.finish(); } diff --git a/Telegram/SourceFiles/ui/effects/round_image_checkbox.h b/Telegram/SourceFiles/ui/effects/round_image_checkbox.h index 972143625..c94a3c78d 100644 --- a/Telegram/SourceFiles/ui/effects/round_image_checkbox.h +++ b/Telegram/SourceFiles/ui/effects/round_image_checkbox.h @@ -27,8 +27,7 @@ namespace Ui { class RoundImageCheckbox { public: using PaintRoundImage = base::lambda_unique; - using UpdateCallback = base::lambda_wrap; - RoundImageCheckbox(const style::RoundImageCheckbox &st, UpdateCallback &&updateCallback, PaintRoundImage &&paintRoundImage); + RoundImageCheckbox(const style::RoundImageCheckbox &st, base::lambda_wrap updateCallback, PaintRoundImage paintRoundImage); void paint(Painter &p, int x, int y, int outerWidth); float64 checkedAnimationRatio() const; @@ -53,7 +52,7 @@ private: void prepareWideCheckIconCache(Icon *icon); const style::RoundImageCheckbox &_st; - UpdateCallback _updateCallback; + base::lambda_wrap _updateCallback; PaintRoundImage _paintRoundImage; bool _checked = false; diff --git a/Telegram/SourceFiles/ui/flatinput.cpp b/Telegram/SourceFiles/ui/flatinput.cpp index cc63eb4fe..9cb1f3aa2 100644 --- a/Telegram/SourceFiles/ui/flatinput.cpp +++ b/Telegram/SourceFiles/ui/flatinput.cpp @@ -184,8 +184,8 @@ void FlatInput::paintEvent(QPaintEvent *e) { p.drawRoundedRect(QRectF(0, 0, width(), height()).marginsRemoved(QMarginsF(_st.borderWidth / 2., _st.borderWidth / 2., _st.borderWidth / 2., _st.borderWidth / 2.)), st::buttonRadius - (_st.borderWidth / 2.), st::buttonRadius - (_st.borderWidth / 2.)); p.setRenderHint(QPainter::HighQualityAntialiasing, false); - if (_st.imgRect.pxWidth()) { - p.drawSprite(_st.imgPos, _st.imgRect); + if (!_st.icon.empty()) { + _st.icon.paint(p, 0, 0, width()); } bool phDraw = _phVisible; @@ -683,10 +683,10 @@ void InputArea::checkContentHeight() { } } -InputArea::InputAreaInner::InputAreaInner(InputArea *parent) : QTextEdit(parent) { +InputArea::Inner::Inner(InputArea *parent) : QTextEdit(parent) { } -bool InputArea::InputAreaInner::viewportEvent(QEvent *e) { +bool InputArea::Inner::viewportEvent(QEvent *e) { if (e->type() == QEvent::TouchBegin || e->type() == QEvent::TouchUpdate || e->type() == QEvent::TouchEnd || e->type() == QEvent::TouchCancel) { QTouchEvent *ev = static_cast(e); if (ev->device()->type() == QTouchDevice::TouchScreen) { @@ -790,7 +790,7 @@ void InputArea::contextMenuEvent(QContextMenuEvent *e) { _inner.contextMenuEvent(e); } -void InputArea::InputAreaInner::focusInEvent(QFocusEvent *e) { +void InputArea::Inner::focusInEvent(QFocusEvent *e) { f()->focusInInner(); QTextEdit::focusInEvent(e); emit f()->focused(); @@ -807,7 +807,7 @@ void InputArea::focusInInner() { } } -void InputArea::InputAreaInner::focusOutEvent(QFocusEvent *e) { +void InputArea::Inner::focusOutEvent(QFocusEvent *e) { f()->focusOutInner(); QTextEdit::focusOutEvent(e); emit f()->blurred(); @@ -943,7 +943,7 @@ void InputArea::insertEmoji(EmojiPtr emoji, QTextCursor c) { c.insertText(objectReplacement, imageFormat); } -QVariant InputArea::InputAreaInner::loadResource(int type, const QUrl &name) { +QVariant InputArea::Inner::loadResource(int type, const QUrl &name) { QString imageName = name.toDisplayString(); if (imageName.startsWith(qstr("emoji://e."))) { if (EmojiPtr emoji = emojiFromUrl(imageName)) { @@ -1193,7 +1193,7 @@ void InputArea::updatePlaceholder() { } } -QMimeData *InputArea::InputAreaInner::createMimeDataFromSelection() const { +QMimeData *InputArea::Inner::createMimeDataFromSelection() const { QMimeData *result = new QMimeData(); QTextCursor c(textCursor()); int32 start = c.selectionStart(), end = c.selectionEnd(); @@ -1211,7 +1211,7 @@ void InputArea::setCtrlEnterSubmit(CtrlEnterSubmit ctrlEnterSubmit) { _ctrlEnterSubmit = ctrlEnterSubmit; } -void InputArea::InputAreaInner::keyPressEvent(QKeyEvent *e) { +void InputArea::Inner::keyPressEvent(QKeyEvent *e) { bool shift = e->modifiers().testFlag(Qt::ShiftModifier), alt = e->modifiers().testFlag(Qt::AltModifier); bool macmeta = (cPlatform() == dbipMac || cPlatform() == dbipMacOld) && e->modifiers().testFlag(Qt::ControlModifier) && !e->modifiers().testFlag(Qt::MetaModifier) && !e->modifiers().testFlag(Qt::AltModifier); bool ctrl = e->modifiers().testFlag(Qt::ControlModifier) || e->modifiers().testFlag(Qt::MetaModifier); @@ -1276,11 +1276,11 @@ void InputArea::InputAreaInner::keyPressEvent(QKeyEvent *e) { } } -void InputArea::InputAreaInner::paintEvent(QPaintEvent *e) { +void InputArea::Inner::paintEvent(QPaintEvent *e) { return QTextEdit::paintEvent(e); } -void InputArea::InputAreaInner::contextMenuEvent(QContextMenuEvent *e) { +void InputArea::Inner::contextMenuEvent(QContextMenuEvent *e) { if (QMenu *menu = createStandardContextMenu()) { (new PopupMenu(menu))->popup(e->globalPos()); } @@ -1338,7 +1338,9 @@ InputField::InputField(QWidget *parent, const style::InputField &st, const QStri _inner.setWordWrapMode(QTextOption::NoWrap); - setAttribute(Qt::WA_OpaquePaintEvent); + if (_st.textBg->c.alphaF() >= 1.) { + setAttribute(Qt::WA_OpaquePaintEvent); + } _inner.setFont(_st.font->f); _inner.setAlignment(_st.textAlign); @@ -1380,10 +1382,10 @@ void InputField::onTouchTimer() { _touchRightButton = true; } -InputField::InputFieldInner::InputFieldInner(InputField *parent) : QTextEdit(parent) { +InputField::Inner::Inner(InputField *parent) : QTextEdit(parent) { } -bool InputField::InputFieldInner::viewportEvent(QEvent *e) { +bool InputField::Inner::viewportEvent(QEvent *e) { if (e->type() == QEvent::TouchBegin || e->type() == QEvent::TouchUpdate || e->type() == QEvent::TouchEnd || e->type() == QEvent::TouchCancel) { QTouchEvent *ev = static_cast(e); if (ev->device()->type() == QTouchDevice::TouchScreen) { @@ -1437,7 +1439,9 @@ void InputField::paintEvent(QPaintEvent *e) { Painter p(this); QRect r(rect().intersected(e->rect())); - p.fillRect(r, st::white->b); + if (_st.textBg->c.alphaF() > 0.) { + p.fillRect(r, _st.textBg); + } if (_st.border) { p.fillRect(0, height() - _st.border, width(), _st.border, _st.borderFg->b); } @@ -1446,9 +1450,6 @@ void InputField::paintEvent(QPaintEvent *e) { p.fillRect(0, height() - _st.borderActive, width(), _st.borderActive, a_borderFg.current()); p.setOpacity(1); } - if (_st.iconSprite.pxWidth()) { - p.drawSpriteLeft(_st.iconPosition, width(), _st.iconSprite); - } bool drawPlaceholder = _placeholderVisible; if (_a_placeholderShift.animating()) { @@ -1490,7 +1491,7 @@ void InputField::contextMenuEvent(QContextMenuEvent *e) { _inner.contextMenuEvent(e); } -void InputField::InputFieldInner::focusInEvent(QFocusEvent *e) { +void InputField::Inner::focusInEvent(QFocusEvent *e) { f()->focusInInner(); QTextEdit::focusInEvent(e); emit f()->focused(); @@ -1507,7 +1508,7 @@ void InputField::focusInInner() { } } -void InputField::InputFieldInner::focusOutEvent(QFocusEvent *e) { +void InputField::Inner::focusOutEvent(QFocusEvent *e) { f()->focusOutInner(); QTextEdit::focusOutEvent(e); emit f()->blurred(); @@ -1643,7 +1644,7 @@ void InputField::insertEmoji(EmojiPtr emoji, QTextCursor c) { c.insertText(objectReplacement, imageFormat); } -QVariant InputField::InputFieldInner::loadResource(int type, const QUrl &name) { +QVariant InputField::Inner::loadResource(int type, const QUrl &name) { QString imageName = name.toDisplayString(); if (imageName.startsWith(qstr("emoji://e."))) { if (EmojiPtr emoji = emojiFromUrl(imageName)) { @@ -1928,7 +1929,7 @@ void InputField::setPlaceholderHidden(bool forcePlaceholderHidden) { updatePlaceholder(); } -QMimeData *InputField::InputFieldInner::createMimeDataFromSelection() const { +QMimeData *InputField::Inner::createMimeDataFromSelection() const { QMimeData *result = new QMimeData(); QTextCursor c(textCursor()); int32 start = c.selectionStart(), end = c.selectionEnd(); @@ -1942,7 +1943,7 @@ void InputField::customUpDown(bool custom) { _customUpDown = custom; } -void InputField::InputFieldInner::keyPressEvent(QKeyEvent *e) { +void InputField::Inner::keyPressEvent(QKeyEvent *e) { bool shift = e->modifiers().testFlag(Qt::ShiftModifier), alt = e->modifiers().testFlag(Qt::AltModifier); bool macmeta = (cPlatform() == dbipMac || cPlatform() == dbipMacOld) && e->modifiers().testFlag(Qt::ControlModifier) && !e->modifiers().testFlag(Qt::MetaModifier) && !e->modifiers().testFlag(Qt::AltModifier); bool ctrl = e->modifiers().testFlag(Qt::ControlModifier) || e->modifiers().testFlag(Qt::MetaModifier), ctrlGood = true; @@ -1979,36 +1980,41 @@ void InputField::InputFieldInner::keyPressEvent(QKeyEvent *e) { } #endif // Q_OS_MAC } else { - QTextCursor tc(textCursor()); + auto oldCursorPosition = textCursor().position(); if (enter && ctrl) { e->setModifiers(e->modifiers() & ~Qt::ControlModifier); } QTextEdit::keyPressEvent(e); - if (tc == textCursor()) { + auto currentCursor = textCursor(); + if (textCursor().position() == oldCursorPosition) { bool check = false; if (e->key() == Qt::Key_PageUp || e->key() == Qt::Key_Up) { - tc.movePosition(QTextCursor::Start, e->modifiers().testFlag(Qt::ShiftModifier) ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); + oldCursorPosition = currentCursor.position(); + currentCursor.movePosition(QTextCursor::Start, e->modifiers().testFlag(Qt::ShiftModifier) ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); check = true; } else if (e->key() == Qt::Key_PageDown || e->key() == Qt::Key_Down) { - tc.movePosition(QTextCursor::End, e->modifiers().testFlag(Qt::ShiftModifier) ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); + oldCursorPosition = currentCursor.position(); + currentCursor.movePosition(QTextCursor::End, e->modifiers().testFlag(Qt::ShiftModifier) ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); check = true; + } else if (e->key() == Qt::Key_Left || e->key() == Qt::Key_Right || e->key() == Qt::Key_Backspace) { + e->ignore(); } if (check) { - if (tc == textCursor()) { + if (oldCursorPosition == currentCursor.position()) { e->ignore(); } else { - setTextCursor(tc); + setTextCursor(currentCursor); } } } } } -void InputField::InputFieldInner::paintEvent(QPaintEvent *e) { +void InputField::Inner::paintEvent(QPaintEvent *e) { return QTextEdit::paintEvent(e); } -void InputField::InputFieldInner::contextMenuEvent(QContextMenuEvent *e) { +void InputField::Inner::contextMenuEvent(QContextMenuEvent *e) { if (QMenu *menu = createStandardContextMenu()) { (new PopupMenu(menu))->popup(e->globalPos()); } @@ -2167,9 +2173,6 @@ void MaskedInputField::paintEvent(QPaintEvent *e) { p.fillRect(0, height() - _st.borderActive, width(), _st.borderActive, a_borderFg.current()); p.setOpacity(1); } - if (_st.iconSprite.pxWidth()) { - p.drawSpriteLeft(_st.iconPosition, width(), _st.iconSprite); - } p.setClipRect(r); paintPlaceholder(p); diff --git a/Telegram/SourceFiles/ui/flatinput.h b/Telegram/SourceFiles/ui/flatinput.h index 2535a019d..9b0ee960d 100644 --- a/Telegram/SourceFiles/ui/flatinput.h +++ b/Telegram/SourceFiles/ui/flatinput.h @@ -262,10 +262,9 @@ private: bool heightAutoupdated(); void checkContentHeight(); - friend class InputAreaInner; - class InputAreaInner : public QTextEdit { + class Inner : public QTextEdit { public: - InputAreaInner(InputArea *parent); + Inner(InputArea *parent); QVariant loadResource(int type, const QUrl &name) override; @@ -286,6 +285,7 @@ private: friend class InputArea; }; + friend class Inner; void focusInInner(); void focusOutInner(); @@ -294,7 +294,7 @@ private: void startBorderAnimation(); - InputAreaInner _inner; + Inner _inner; QString _oldtext; @@ -431,10 +431,9 @@ private: int32 _maxLength; bool _forcePlaceholderHidden = false; - friend class InputFieldInner; - class InputFieldInner : public QTextEdit { + class Inner : public QTextEdit { public: - InputFieldInner(InputField *parent); + Inner(InputField *parent); QVariant loadResource(int type, const QUrl &name) override; @@ -455,6 +454,7 @@ private: friend class InputField; }; + friend class Inner; void focusInInner(); void focusOutInner(); @@ -463,7 +463,7 @@ private: void startBorderAnimation(); - InputFieldInner _inner; + Inner _inner; QString _oldtext; diff --git a/Telegram/SourceFiles/ui/style/style_core_icon.h b/Telegram/SourceFiles/ui/style/style_core_icon.h index 822a491a9..7fb337a3f 100644 --- a/Telegram/SourceFiles/ui/style/style_core_icon.h +++ b/Telegram/SourceFiles/ui/style/style_core_icon.h @@ -105,6 +105,9 @@ public: return std_::make_unique(ColoredCopy { *this, colors }); } + bool empty() const { + return _parts.empty(); + } void paint(QPainter &p, const QPoint &pos, int outerw) const; void paint(QPainter &p, int x, int y, int outerw) const { paint(p, QPoint(x, y), outerw); diff --git a/Telegram/SourceFiles/ui/widgets/multi_select.cpp b/Telegram/SourceFiles/ui/widgets/multi_select.cpp index ab0888da7..373ad7e92 100644 --- a/Telegram/SourceFiles/ui/widgets/multi_select.cpp +++ b/Telegram/SourceFiles/ui/widgets/multi_select.cpp @@ -26,91 +26,476 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "lang.h" namespace Ui { +namespace { + +constexpr int kWideScale = 3; + +} // namespace + +class MultiSelect::Inner::Item { +public: + Item(const style::MultiSelectItem &st, uint64 id, const QString &text, const style::color &color, PaintRoundImage paintRoundImage); + + uint64 id() const { + return _id; + } + int getWidth() const { + return _width; + } + QRect rect() const { + return QRect(_x, _y, _width, _st.height); + } + bool isOverDelete() const { + return _overDelete; + } + void setActive(bool active) { + _active = active; + } + void setPosition(int x, int y, int outerWidth, int maxVisiblePadding); + QRect paintArea(int outerWidth) const; + + void setUpdateCallback(base::lambda_wrap updateCallback) { + _updateCallback = std_::move(updateCallback); + } + void setText(const QString &text); + void paint(Painter &p, int outerWidth, uint64 ms); + + void mouseMoveEvent(QPoint point); + void leaveEvent(); + + void showAnimated() { + setVisibleAnimated(true); + } + void hideAnimated() { + setVisibleAnimated(false); + } + bool hideFinished() const { + return (_hiding && !_visibility.animating()); + } + + +private: + void setOver(bool over); + void paintOnce(Painter &p, int x, int y, int outerWidth, uint64 ms); + void paintDeleteButton(Painter &p, int x, int y, int outerWidth, float64 overOpacity); + bool paintCached(Painter &p, int x, int y, int outerWidth); + void prepareCache(); + void setVisibleAnimated(bool visible); + + const style::MultiSelectItem &_st; + + uint64 _id; + struct SlideAnimation { + SlideAnimation(base::lambda_wrap updateCallback, int fromX, int toX, int y, float64 duration) + : fromX(fromX) + , toX(toX) + , y(y) { + x.start(std_::move(updateCallback), fromX, toX, duration); + } + IntAnimation x; + int fromX, toX; + int y; + }; + std_::vector_of_moveable _copies; + int _x = -1; + int _y = -1; + int _width = 0; + Text _text; + const style::color &_color; + bool _over = false; + QPixmap _cache; + FloatAnimation _visibility; + FloatAnimation _overOpacity; + bool _overDelete = false; + bool _active = false; + PaintRoundImage _paintRoundImage; + base::lambda_wrap _updateCallback; + bool _hiding = false; + +}; + +MultiSelect::Inner::Item::Item(const style::MultiSelectItem &st, uint64 id, const QString &text, const style::color &color, PaintRoundImage paintRoundImage) +: _st(st) +, _id(id) +, _color(color) +, _paintRoundImage(std_::move(paintRoundImage)) { + setText(text); +} + +void MultiSelect::Inner::Item::setText(const QString &text) { + _text.setText(_st.font, text, _textNameOptions); + _width = _st.height + _st.padding.left() + _text.maxWidth() + _st.padding.right(); + accumulate_min(_width, _st.maxWidth); +} + +void MultiSelect::Inner::Item::paint(Painter &p, int outerWidth, uint64 ms) { + if (!_cache.isNull() && !_visibility.animating(ms)) { + if (_hiding) { + return; + } else { + _cache = QPixmap(); + } + } + if (_copies.empty()) { + paintOnce(p, _x, _y, outerWidth, ms); + } else { + for (auto i = _copies.begin(), e = _copies.end(); i != e;) { + auto x = i->x.current(getms(), _x); + auto y = i->y; + auto animating = i->x.animating(); + if (animating || (y == _y)) { + paintOnce(p, x, y, outerWidth, ms); + } + if (animating) { + ++i; + } else { + i = _copies.erase(i); + e = _copies.end(); + } + } + } +} + +void MultiSelect::Inner::Item::paintOnce(Painter &p, int x, int y, int outerWidth, uint64 ms) { + if (!_cache.isNull()) { + paintCached(p, x, y, outerWidth); + return; + } + + auto radius = _st.height / 2; + auto inner = rtlrect(x + radius, y, _width - radius, _st.height, outerWidth); + + auto clipEnabled = p.hasClipping(); + auto clip = clipEnabled ? p.clipRegion() : QRegion(); + p.setRenderHint(QPainter::HighQualityAntialiasing); + p.setClipRect(inner); + + p.setPen(Qt::NoPen); + p.setBrush(_active ? _st.textActiveBg : _st.textBg); + p.drawRoundedRect(rtlrect(x, y, _width, _st.height, outerWidth), radius, radius); + + if (clipEnabled) { + p.setClipRegion(clip); + } else { + p.setClipping(false); + } + p.setRenderHint(QPainter::HighQualityAntialiasing, false); + + auto overOpacity = _overOpacity.current(ms, _over ? 1. : 0.); + if (overOpacity < 1.) { + _paintRoundImage(p, x, y, outerWidth, _st.height); + } + if (overOpacity > 0.) { + paintDeleteButton(p, x, y, outerWidth, overOpacity); + } + + auto textLeft = _st.height + _st.padding.left(); + auto textWidth = _width - textLeft - _st.padding.right(); + p.setPen(_active ? _st.textActiveFg : _st.textFg); + _text.drawLeftElided(p, x + textLeft, y + _st.padding.top(), textWidth, outerWidth); +} + +void MultiSelect::Inner::Item::paintDeleteButton(Painter &p, int x, int y, int outerWidth, float64 overOpacity) { + p.setOpacity(overOpacity); + p.setRenderHint(QPainter::HighQualityAntialiasing); + p.setPen(Qt::NoPen); + p.setBrush(_color); + p.drawEllipse(rtlrect(x, y, _st.height, _st.height, outerWidth)); + + auto deleteScale = overOpacity + _st.minScale * (1. - overOpacity); + auto deleteSkip = deleteScale * _st.deleteLeft + (1. - deleteScale) * (_st.height / 2); + auto sqrt2 = sqrt(2.); + auto deleteLeft = rtlpoint(x + deleteSkip, 0, outerWidth).x() + 0.; + auto deleteTop = y + deleteSkip + 0.; + auto deleteWidth = _st.height - 2 * deleteSkip; + auto deleteHeight = _st.height - 2 * deleteSkip; + auto deleteStroke = _st.deleteStroke / sqrt2; + QPointF pathDelete[] = { + { deleteLeft, deleteTop + deleteStroke }, + { deleteLeft + deleteStroke, deleteTop }, + { deleteLeft + (deleteWidth / 2.), deleteTop + (deleteHeight / 2.) - deleteStroke }, + { deleteLeft + deleteWidth - deleteStroke, deleteTop }, + { deleteLeft + deleteWidth, deleteTop + deleteStroke }, + { deleteLeft + (deleteWidth / 2.) + deleteStroke, deleteTop + (deleteHeight / 2.) }, + { deleteLeft + deleteWidth, deleteTop + deleteHeight - deleteStroke }, + { deleteLeft + deleteWidth - deleteStroke, deleteTop + deleteHeight }, + { deleteLeft + (deleteWidth / 2.), deleteTop + (deleteHeight / 2.) + deleteStroke }, + { deleteLeft + deleteStroke, deleteTop + deleteHeight }, + { deleteLeft, deleteTop + deleteHeight - deleteStroke }, + { deleteLeft + (deleteWidth / 2.) - deleteStroke, deleteTop + (deleteHeight / 2.) }, + }; + if (overOpacity < 1.) { + auto alpha = -(overOpacity - 1.) * M_PI_2; + auto cosalpha = cos(alpha); + auto sinalpha = sin(alpha); + auto shiftx = deleteLeft + (deleteWidth / 2.); + auto shifty = deleteTop + (deleteHeight / 2.); + for (auto &point : pathDelete) { + auto x = point.x() - shiftx; + auto y = point.y() - shifty; + point.setX(shiftx + x * cosalpha - y * sinalpha); + point.setY(shifty + y * cosalpha + x * sinalpha); + } + } + QPainterPath path; + path.moveTo(pathDelete[0]); + for (int i = 1; i != base::array_size(pathDelete); ++i) { + path.lineTo(pathDelete[i]); + } + p.fillPath(path, _st.deleteFg); + + p.setRenderHint(QPainter::HighQualityAntialiasing, false); + p.setOpacity(1.); +} + +bool MultiSelect::Inner::Item::paintCached(Painter &p, int x, int y, int outerWidth) { + auto opacity = _visibility.current(_hiding ? 0. : 1.); + auto scale = opacity + _st.minScale * (1. - opacity); + auto height = opacity * _cache.height() / _cache.devicePixelRatio(); + auto width = opacity * _cache.width() / _cache.devicePixelRatio(); + + p.setOpacity(opacity); + p.setRenderHint(QPainter::SmoothPixmapTransform, true); + p.drawPixmap(rtlrect(x + (_width - width) / 2., y + (_st.height - height) / 2., width, height, outerWidth), _cache); + p.setRenderHint(QPainter::SmoothPixmapTransform, false); + p.setOpacity(1.); + return true; +} + +void MultiSelect::Inner::Item::mouseMoveEvent(QPoint point) { + if (!_cache.isNull()) return; + _overDelete = QRect(0, 0, _st.height, _st.height).contains(point); + setOver(true); +} + +void MultiSelect::Inner::Item::leaveEvent() { + _overDelete = false; + setOver(false); +} + +void MultiSelect::Inner::Item::setPosition(int x, int y, int outerWidth, int maxVisiblePadding) { + if (_x >= 0 && _y >= 0 && (_x != x || _y != y)) { + // Make an animation if it is not the first setPosition(). + auto found = false; + auto leftHidden = -_width - maxVisiblePadding; + auto rightHidden = outerWidth + maxVisiblePadding; + for (auto i = _copies.begin(), e = _copies.end(); i != e;) { + if (i->x.animating()) { + if (i->y == y) { + i->x.start(_updateCallback, i->toX, x, _st.duration); + found = true; + } else { + i->x.start(_updateCallback, i->fromX, (i->toX > i->fromX) ? rightHidden : leftHidden, _st.duration); + } + ++i; + } else { + i = _copies.erase(i); + e = _copies.end(); + } + } + if (_copies.empty()) { + if (_y == y) { + auto copy = SlideAnimation(_updateCallback, _x, x, _y, _st.duration); + _copies.push_back(std_::move(copy)); + } else { + auto copyHiding = SlideAnimation(_updateCallback, _x, (y > _y) ? rightHidden : leftHidden, _y, _st.duration); + _copies.push_back(std_::move(copyHiding)); + auto copyShowing = SlideAnimation(_updateCallback, (y > _y) ? leftHidden : rightHidden, x, y, _st.duration); + _copies.push_back(std_::move(copyShowing)); + } + } else if (!found) { + auto copy = SlideAnimation(_updateCallback, (y > _y) ? leftHidden : rightHidden, x, y, _st.duration); + _copies.push_back(std_::move(copy)); + } + } + _x = x; + _y = y; +} + +QRect MultiSelect::Inner::Item::paintArea(int outerWidth) const { + if (_copies.empty()) { + return rect(); + } + auto yMin = 0, yMax = 0; + for_const (auto ©, _copies) { + accumulate_max(yMax, copy.y); + if (yMin) { + accumulate_min(yMin, copy.y); + } else { + yMin = copy.y; + } + } + return QRect(0, yMin, outerWidth, yMax - yMin + _st.height); +} + +void MultiSelect::Inner::Item::prepareCache() { + if (!_cache.isNull()) return; + + t_assert(!_visibility.animating()); + auto cacheWidth = _width * kWideScale * cIntRetinaFactor(); + auto cacheHeight = _st.height * kWideScale * cIntRetinaFactor(); + auto data = QImage(cacheWidth, cacheHeight, QImage::Format_ARGB32_Premultiplied); + data.fill(Qt::transparent); + data.setDevicePixelRatio(cRetinaFactor()); + { + Painter p(&data); + paintOnce(p, _width * (kWideScale - 1) / 2, _st.height * (kWideScale - 1) / 2, cacheWidth, getms()); + } + _cache = App::pixmapFromImageInPlace(std_::move(data)); +} + +void MultiSelect::Inner::Item::setVisibleAnimated(bool visible) { + _hiding = !visible; + prepareCache(); + auto from = visible ? 0. : 1.; + auto to = visible ? 1. : 0.; + auto transition = visible ? anim::bumpy<1125, 1000> : anim::linear; + _visibility.start(_updateCallback, from, to, _st.duration, transition); +} + +void MultiSelect::Inner::Item::setOver(bool over) { + if (over != _over) { + _over = over; + _overOpacity.start(_updateCallback, _over ? 0. : 1., _over ? 1. : 0., _st.duration); + } +} MultiSelect::MultiSelect(QWidget *parent, const style::MultiSelect &st, const QString &placeholder) : TWidget(parent) , _st(st) -, _scroll(this, st::boxScroll) -, _inner(this, st, placeholder) { +, _scroll(this, _st.scroll) +, _inner(this, st, placeholder, [this](int activeTop, int activeBottom) { scrollTo(activeTop, activeBottom); }) { _scroll->setOwnedWidget(_inner); + _scroll->installEventFilter(this); + _inner->setResizedCallback([this](int innerHeightDelta) { + auto newHeight = resizeGetHeight(width()); + if (innerHeightDelta > 0) { + _scroll->scrollToY(_scroll->scrollTop() + innerHeightDelta); + } + if (newHeight != height()) { + resize(width(), newHeight); + if (_resizedCallback) { + _resizedCallback(); + } + } + }); + _inner->setQueryChangedCallback([this](const QString &query) { + _scroll->scrollToY(_scroll->scrollTopMax()); + if (_queryChangedCallback) { + _queryChangedCallback(query); + } + }); + setAttribute(Qt::WA_OpaquePaintEvent); } +bool MultiSelect::eventFilter(QObject *o, QEvent *e) { + if (o == _scroll && e->type() == QEvent::KeyPress) { + e->ignore(); + return true; + } + return false; +} + +void MultiSelect::scrollTo(int activeTop, int activeBottom) { + auto scrollTop = _scroll->scrollTop(); + auto scrollHeight = _scroll->height(); + auto scrollBottom = scrollTop + scrollHeight; + if (scrollTop > activeTop) { + _scroll->scrollToY(activeTop); + } else if (scrollBottom < activeBottom) { + _scroll->scrollToY(activeBottom - scrollHeight); + } +} + void MultiSelect::setQueryChangedCallback(base::lambda_unique callback) { - _inner->setQueryChangedCallback(std_::move(callback)); + _queryChangedCallback = std_::move(callback); } void MultiSelect::setSubmittedCallback(base::lambda_unique callback) { _inner->setSubmittedCallback(std_::move(callback)); } +void MultiSelect::setResizedCallback(base::lambda_unique callback) { + _resizedCallback = std_::move(callback); +} + void MultiSelect::setInnerFocus() { if (_inner->setInnerFocus()) { _scroll->scrollToY(_scroll->scrollTopMax()); } } +void MultiSelect::clearQuery() { + _inner->clearQuery(); +} + QString MultiSelect::getQuery() const { return _inner->getQuery(); } -void MultiSelect::addItem(std_::unique_ptr item) { - _inner->addItem(std_::move(item)); +void MultiSelect::addItem(uint64 itemId, const QString &text, const style::color &color, PaintRoundImage paintRoundImage) { + _inner->addItem(std_::make_unique(_st.item, itemId, text, color, std_::move(paintRoundImage))); +} + +void MultiSelect::setItemRemovedCallback(base::lambda_unique callback) { + _inner->setItemRemovedCallback(std_::move(callback)); +} + +void MultiSelect::removeItem(uint64 itemId) { + _inner->removeItem(itemId); } int MultiSelect::resizeGetHeight(int newWidth) { - _inner->resizeToWidth(newWidth); + if (newWidth != _inner->width()) { + _inner->resizeToWidth(newWidth); + } auto newHeight = qMin(_inner->height(), _st.maxHeight); - _scroll->resize(newWidth, newHeight); + _scroll->setGeometryToLeft(0, 0, newWidth, newHeight); return newHeight; } -void MultiSelect::resizeEvent(QResizeEvent *e) { - _scroll->moveToLeft(0, 0); -} - -MultiSelect::Item::Item(uint64 id, const QString &text, const style::color &color) -: _id(id) { -} - -void MultiSelect::Item::setText(const QString &text) { - -} - -void MultiSelect::Item::paint(Painter &p, int x, int y) { - -} - -MultiSelect::Inner::Inner(QWidget *parent, const style::MultiSelect &st, const QString &placeholder) : ScrolledWidget(parent) +MultiSelect::Inner::Inner(QWidget *parent, const style::MultiSelect &st, const QString &placeholder, ScrollCallback callback) : ScrolledWidget(parent) , _st(st) -, _filter(this, _st.field, placeholder) -, _cancel(this, _st.cancel) { - connect(_filter, SIGNAL(changed()), this, SLOT(onQueryChanged())); - connect(_filter, SIGNAL(submitted(bool)), this, SLOT(onSubmitted(bool))); +, _scrollCallback(std_::move(callback)) +, _field(this, _st.field, placeholder) +, _cancel(this, _st.fieldCancel) { + _field->customUpDown(true); + connect(_field, SIGNAL(focused()), this, SLOT(onFieldFocused())); + connect(_field, SIGNAL(changed()), this, SLOT(onQueryChanged())); + connect(_field, SIGNAL(submitted(bool)), this, SLOT(onSubmitted(bool))); _cancel->hide(); _cancel->setClickedCallback([this] { - _filter->setText(QString()); - _filter->setFocus(); + clearQuery(); + _field->setFocus(); }); + setMouseTracking(true); } void MultiSelect::Inner::onQueryChanged() { auto query = getQuery(); _cancel->setVisible(!query.isEmpty()); + updateFieldGeometry(); if (_queryChangedCallback) { _queryChangedCallback(query); } } +QString MultiSelect::Inner::getQuery() const { + return _field->getLastText().trimmed(); +} + bool MultiSelect::Inner::setInnerFocus() { - if (!_filter->hasFocus()) { - _filter->setFocus(); + if (_active >= 0) { + setFocus(); + } else if (!_field->hasFocus()) { + _field->setFocus(); return true; } return false; } -QString MultiSelect::Inner::getQuery() const { - return _filter->getLastText().trimmed(); +void MultiSelect::Inner::clearQuery() { + _field->setText(QString()); } void MultiSelect::Inner::setQueryChangedCallback(base::lambda_unique callback) { @@ -121,41 +506,275 @@ void MultiSelect::Inner::setSubmittedCallback(base::lambda_uniqueresizeToWidth(newWidth); - return _filter->height(); +void MultiSelect::Inner::updateFieldGeometry() { + auto fieldFinalWidth = _fieldWidth; + if (!_cancel->isHidden()) { + fieldFinalWidth -= _st.fieldCancelSkip; + } + _field->resizeToWidth(fieldFinalWidth); + _field->moveToLeft(_st.padding.left() + _fieldLeft, _st.padding.top() + _fieldTop); } -void MultiSelect::Inner::resizeEvent(QResizeEvent *e) { - _filter->moveToLeft(0, 0); - _cancel->moveToRight(0, 0); +void MultiSelect::Inner::updateHasAnyItems(bool hasAnyItems) { + _field->setPlaceholderHidden(hasAnyItems); + updateCursor(); + _iconOpacity.start([this] { + rtlupdate(_st.padding.left(), _st.padding.top(), _st.fieldIcon.width(), _st.fieldIcon.height()); + }, hasAnyItems ? 1. : 0., hasAnyItems ? 0. : 1., _st.item.duration); +} + +void MultiSelect::Inner::updateCursor() { + setCursor(_items.empty() ? style::cur_text : (_overDelete ? style::cur_pointer : style::cur_default)); +} + +void MultiSelect::Inner::setActiveItem(int active, ChangeActiveWay skipSetFocus) { + if (_active == active) return; + + if (_active >= 0) { + t_assert(_active < _items.size()); + _items[_active]->setActive(false); + } + _active = active; + if (_active >= 0) { + t_assert(_active < _items.size()); + _items[_active]->setActive(true); + } + if (skipSetFocus != ChangeActiveWay::SkipSetFocus) { + setInnerFocus(); + } + if (_scrollCallback) { + auto rect = (_active >= 0) ? _items[_active]->rect() : _field->geometry().translated(-_st.padding.left(), -_st.padding.top()); + _scrollCallback(rect.y(), rect.y() + rect.height() + _st.padding.top() + _st.padding.bottom()); + } + update(); +} + +void MultiSelect::Inner::setActiveItemPrevious() { + if (_active > 0) { + setActiveItem(_active - 1); + } else if (_active < 0 && !_items.empty()) { + setActiveItem(_items.size() - 1); + } +} + +void MultiSelect::Inner::setActiveItemNext() { + if (_active >= 0 && _active + 1 < _items.size()) { + setActiveItem(_active + 1); + } else { + setActiveItem(-1); + } +} + +int MultiSelect::Inner::resizeGetHeight(int newWidth) { + computeItemsGeometry(newWidth); + updateFieldGeometry(); + + auto cancelLeft = _fieldLeft + _fieldWidth + _st.padding.right() - _cancel->width(); + auto cancelTop = _fieldTop - _st.padding.top(); + _cancel->moveToLeft(_st.padding.left() + cancelLeft, _st.padding.top() + cancelTop); + + return _field->y() + _field->height() + _st.padding.bottom(); +} + +void MultiSelect::Inner::paintEvent(QPaintEvent *e) { + Painter p(this); + + auto paintRect = e->rect(); + p.fillRect(paintRect, st::windowBg); + + auto offset = QPoint(rtl() ? _st.padding.right() : _st.padding.left(), _st.padding.top()); + p.translate(offset); + paintRect.translate(-offset); + + auto ms = getms(); + auto outerWidth = width() - _st.padding.left() - _st.padding.right(); + auto iconOpacity = _iconOpacity.current(ms, _items.empty() ? 1. : 0.); + if (iconOpacity > 0.) { + p.setOpacity(iconOpacity); + _st.fieldIcon.paint(p, 0, 0, outerWidth); + p.setOpacity(1.); + } + + auto checkRect = myrtlrect(paintRect); + auto paintMargins = itemPaintMargins(); + for (auto i = _removingItems.begin(), e = _removingItems.end(); i != e;) { + auto item = *i; + auto itemRect = item->paintArea(outerWidth); + itemRect = itemRect.marginsAdded(paintMargins); + if (checkRect.intersects(itemRect)) { + item->paint(p, outerWidth, ms); + } + if (item->hideFinished()) { + i = _removingItems.erase(i); + e = _removingItems.end(); + } else { + ++i; + } + } + for_const (auto item, _items) { + auto itemRect = item->paintArea(outerWidth); + itemRect = itemRect.marginsAdded(paintMargins); + if (checkRect.y() + checkRect.height() <= itemRect.y()) { + break; + } else if (checkRect.intersects(itemRect)) { + item->paint(p, outerWidth, ms); + } + } +} + +QMargins MultiSelect::Inner::itemPaintMargins() const { + return { + qMax(_st.itemSkip, _st.padding.left()), + _st.itemSkip, + qMax(_st.itemSkip, _st.padding.right()), + _st.itemSkip, + }; +} + +void MultiSelect::Inner::leaveEvent(QEvent *e) { + clearSelection(); +} + +void MultiSelect::Inner::mouseMoveEvent(QMouseEvent *e) { + updateSelection(e->pos()); +} + +void MultiSelect::Inner::keyPressEvent(QKeyEvent *e) { + if (_active >= 0) { + t_assert(_active < _items.size()); + if (e->key() == Qt::Key_Delete || e->key() == Qt::Key_Backspace) { + auto itemId = _items[_active]->id(); + setActiveItemNext(); + removeItem(itemId); + } else if (e->key() == Qt::Key_Left) { + setActiveItemPrevious(); + } else if (e->key() == Qt::Key_Right) { + setActiveItemNext(); + } else if (e->key() == Qt::Key_Escape) { + setActiveItem(-1); + } else { + e->ignore(); + } + } else if (e->key() == Qt::Key_Left || e->key() == Qt::Key_Backspace) { + setActiveItemPrevious(); + } else { + e->ignore(); + } +} + +void MultiSelect::Inner::onFieldFocused() { + setActiveItem(-1, ChangeActiveWay::SkipSetFocus); +} + +void MultiSelect::Inner::updateSelection(QPoint mousePosition) { + auto point = myrtlpoint(mousePosition) - QPoint(_st.padding.left(), _st.padding.right()); + auto selected = -1; + for (auto i = 0, size = _items.size(); i != size; ++i) { + auto itemRect = _items[i]->rect(); + if (itemRect.y() > point.y()) { + break; + } else if (itemRect.contains(point)) { + point -= itemRect.topLeft(); + selected = i; + break; + } + } + if (_selected != selected) { + if (_selected >= 0) { + t_assert(_selected < _items.size()); + _items[_selected]->leaveEvent(); + } + _selected = selected; + update(); + } + auto overDelete = false; + if (_selected >= 0) { + _items[_selected]->mouseMoveEvent(point); + overDelete = _items[_selected]->isOverDelete(); + } + if (_overDelete != overDelete) { + _overDelete = overDelete; + updateCursor(); + } +} + +void MultiSelect::Inner::mousePressEvent(QMouseEvent *e) { + if (_overDelete) { + t_assert(_selected >= 0); + t_assert(_selected < _items.size()); + removeItem(_items[_selected]->id()); + } else if (_selected >= 0) { + setActiveItem(_selected); + } else { + setInnerFocus(); + } } void MultiSelect::Inner::addItem(std_::unique_ptr item) { + auto wasEmpty = _items.empty(); + item->setUpdateCallback([this, item = item.get()] { + auto itemRect = item->paintArea(width() - _st.padding.left() - _st.padding.top()); + itemRect = itemRect.translated(_st.padding.left(), _st.padding.top()); + itemRect = itemRect.marginsAdded(itemPaintMargins()); + rtlupdate(itemRect); + }); _items.push_back(item.release()); - refreshItemsGeometry(nullptr); + updateItemsGeometry(); + if (wasEmpty) { + updateHasAnyItems(true); + } + _items.back()->showAnimated(); } -void MultiSelect::Inner::refreshItemsGeometry(Item *startingFromRowWithItem) { - int startingFromRow = 0; - int startingFromIndex = 0; - for (int row = 1, rowsCount = qMin(_rows.size(), 1); row != rowsCount; ++row) { - if (startingFromRowWithItem) { - if (_rows[row - 1].contains(startingFromRowWithItem)) { - break; - } +void MultiSelect::Inner::computeItemsGeometry(int newWidth) { + newWidth -= _st.padding.left() + _st.padding.right(); + + auto itemLeft = 0; + auto itemTop = 0; + auto widthLeft = newWidth; + auto maxVisiblePadding = qMax(_st.padding.left(), _st.padding.right()); + for_const (auto item, _items) { + auto itemWidth = item->getWidth(); + t_assert(itemWidth <= newWidth); + if (itemWidth > widthLeft) { + itemLeft = 0; + itemTop += _st.item.height + _st.itemSkip; + widthLeft = newWidth; } - startingFromIndex += _rows[row - 1].size(); - ++startingFromRow; + item->setPosition(itemLeft, itemTop, newWidth, maxVisiblePadding); + itemLeft += itemWidth + _st.itemSkip; + widthLeft -= itemWidth + _st.itemSkip; } - while (_rows.size() > startingFromRow) { - _rows.pop_back(); - } - for (int i = startingFromIndex, count = _items.size(); i != count; ++i) { - Row row; - row.append(_items[i]); - _rows.append(row); + + auto fieldMinWidth = _st.fieldMinWidth + _st.fieldCancelSkip; + t_assert(fieldMinWidth <= newWidth); + if (fieldMinWidth > widthLeft) { + _fieldLeft = 0; + _fieldTop = itemTop + _st.item.height + _st.itemSkip; + } else { + _fieldLeft = itemLeft + (_items.empty() ? _st.fieldIconSkip : 0); + _fieldTop = itemTop; } + _fieldWidth = newWidth - _fieldLeft; +} + +void MultiSelect::Inner::updateItemsGeometry() { + computeItemsGeometry(width()); + updateFieldGeometry(); + auto newHeight = resizeGetHeight(width()); + if (newHeight == _newHeight) return; + + _newHeight = newHeight; + _height.start([this] { + auto newHeight = _height.current(_newHeight); + if (auto heightDelta = newHeight - height()) { + resize(width(), newHeight); + if (_resizedCallback) { + _resizedCallback(heightDelta); + } + update(); + } + }, height(), _newHeight, _st.item.duration); } void MultiSelect::Inner::setItemText(uint64 itemId, const QString &text) { @@ -163,7 +782,7 @@ void MultiSelect::Inner::setItemText(uint64 itemId, const QString &text) { auto item = _items[i]; if (item->id() == itemId) { item->setText(text); - refreshItemsGeometry(item); + updateItemsGeometry(); return; } } @@ -173,26 +792,50 @@ void MultiSelect::Inner::setItemRemovedCallback(base::lambda_unique callback) { + _resizedCallback = std_::move(callback); +} + void MultiSelect::Inner::removeItem(uint64 itemId) { for (int i = 0, count = _items.size(); i != count; ++i) { auto item = _items[i]; if (item->id() == itemId) { + clearSelection(); _items.removeAt(i); - refreshItemsGeometry(item); - delete item; + if (_active == i) { + _active = -1; + } else if (_active > i) { + --_active; + } + _removingItems.insert(item); + item->hideAnimated(); + + updateItemsGeometry(); + if (_items.empty()) { + updateHasAnyItems(false); + } + auto point = QCursor::pos(); + if (auto parent = parentWidget()) { + if (parent->rect().contains(parent->mapFromGlobal(point))) { + updateSelection(mapFromGlobal(point)); + } + } break; } } if (_itemRemovedCallback) { _itemRemovedCallback(itemId); } + setInnerFocus(); } MultiSelect::Inner::~Inner() { - base::take(_rows); for (auto item : base::take(_items)) { delete item; } + for (auto item : base::take(_removingItems)) { + delete item; + } } } // namespace Ui diff --git a/Telegram/SourceFiles/ui/widgets/multi_select.h b/Telegram/SourceFiles/ui/widgets/multi_select.h index e44199d1e..6226fc4fc 100644 --- a/Telegram/SourceFiles/ui/widgets/multi_select.h +++ b/Telegram/SourceFiles/ui/widgets/multi_select.h @@ -34,6 +34,49 @@ public: QString getQuery() const; void setInnerFocus(); + void clearQuery(); + + void setQueryChangedCallback(base::lambda_unique callback); + void setSubmittedCallback(base::lambda_unique callback); + void setResizedCallback(base::lambda_unique callback); + + using PaintRoundImage = base::lambda_unique; + void addItem(uint64 itemId, const QString &text, const style::color &color, PaintRoundImage paintRoundImage); + void setItemText(uint64 itemId, const QString &text); + + void setItemRemovedCallback(base::lambda_unique callback); + void removeItem(uint64 itemId); + +protected: + int resizeGetHeight(int newWidth) override; + bool eventFilter(QObject *o, QEvent *e) override; + +private: + void scrollTo(int activeTop, int activeBottom); + + const style::MultiSelect &_st; + + ChildWidget _scroll; + + class Inner; + ChildWidget _inner; + + base::lambda_unique _resizedCallback; + base::lambda_unique _queryChangedCallback; + +}; + +// This class is hold in header because it requires Qt preprocessing. +class MultiSelect::Inner : public ScrolledWidget { + Q_OBJECT + +public: + using ScrollCallback = base::lambda_unique; + Inner(QWidget *parent, const style::MultiSelect &st, const QString &placeholder, ScrollCallback callback); + + QString getQuery() const; + bool setInnerFocus(); + void clearQuery(); void setQueryChangedCallback(base::lambda_unique callback); void setSubmittedCallback(base::lambda_unique callback); @@ -43,68 +86,20 @@ public: void setItemText(uint64 itemId, const QString &text); void setItemRemovedCallback(base::lambda_unique callback); - void removeItem(uint64 itemId); // Always calls the itemRemovedCallback(). + void removeItem(uint64 itemId); -protected: - int resizeGetHeight(int newWidth) override; - - void resizeEvent(QResizeEvent *e) override; - -private: - ChildWidget _scroll; - - class Inner; - ChildWidget _inner; - - const style::MultiSelect &_st; - -}; - -class MultiSelect::Item { -public: - Item(uint64 id, const QString &text, const style::color &color); - - uint64 id() const { - return _id; - } - void setText(const QString &text); - void paint(Painter &p, int x, int y); - - virtual ~Item() = default; - -protected: - virtual void paintImage(Painter &p, int x, int y, int outerWidth, int size) = 0; - -private: - uint64 _id; - -}; - -// This class is hold in header because it requires Qt preprocessing. -class MultiSelect::Inner : public ScrolledWidget { - Q_OBJECT - -public: - Inner(QWidget *parent, const style::MultiSelect &st, const QString &placeholder); - - QString getQuery() const; - bool setInnerFocus(); - - void setQueryChangedCallback(base::lambda_unique callback); - void setSubmittedCallback(base::lambda_unique callback); - - void addItem(std_::unique_ptr item); - void setItemText(uint64 itemId, const QString &text); - - void setItemRemovedCallback(base::lambda_unique callback); - void removeItem(uint64 itemId); // Always calls the itemRemovedCallback(). + void setResizedCallback(base::lambda_unique callback); ~Inner(); protected: int resizeGetHeight(int newWidth) override; - void resizeEvent(QResizeEvent *e) override; + void paintEvent(QPaintEvent *e) override; + void leaveEvent(QEvent *e) override; + void mouseMoveEvent(QMouseEvent *e) override; + void mousePressEvent(QMouseEvent *e) override; + void keyPressEvent(QKeyEvent *e) override; private slots: void onQueryChanged(); @@ -113,25 +108,55 @@ private slots: _submittedCallback(ctrlShiftEnter); } } + void onFieldFocused(); private: - void refreshItemsGeometry(Item *startingFromItem); + void computeItemsGeometry(int newWidth); + void updateItemsGeometry(); + void updateFieldGeometry(); + void updateHasAnyItems(bool hasAnyItems); + void updateSelection(QPoint mousePosition); + void clearSelection() { + updateSelection(QPoint(-1, -1)); + } + void updateCursor(); + enum class ChangeActiveWay { + Default, + SkipSetFocus, + }; + void setActiveItem(int active, ChangeActiveWay skipSetFocus = ChangeActiveWay::Default); + void setActiveItemPrevious(); + void setActiveItemNext(); + + QMargins itemPaintMargins() const; const style::MultiSelect &_st; + FloatAnimation _iconOpacity; - using Row = QList; - using Rows = QList; - Rows _rows; + ScrollCallback _scrollCallback; using Items = QList; Items _items; + using RemovingItems = OrderedSet; + RemovingItems _removingItems; - ChildWidget _filter; + int _selected = -1; + int _active = -1; + bool _overDelete = false; + + int _fieldLeft = 0; + int _fieldTop = 0; + int _fieldWidth = 0; + ChildWidget _field; ChildWidget _cancel; + int _newHeight = 0; + IntAnimation _height; + base::lambda_unique _queryChangedCallback; base::lambda_unique _submittedCallback; base::lambda_unique _itemRemovedCallback; + base::lambda_unique _resizedCallback; }; diff --git a/Telegram/SourceFiles/ui/widgets/widgets.style b/Telegram/SourceFiles/ui/widgets/widgets.style index 5db4677f0..8e34c14e4 100644 --- a/Telegram/SourceFiles/ui/widgets/widgets.style +++ b/Telegram/SourceFiles/ui/widgets/widgets.style @@ -67,10 +67,36 @@ RoundImageCheckbox { checkIcon: icon; } +MultiSelectItem { + padding: margins; + maxWidth: pixels; + height: pixels; + font: font; + textBg: color; + textFg: color; + textActiveBg: color; + textActiveFg: color; + deleteFg: color; + deleteLeft: pixels; + deleteStroke: pixels; + duration: int; + minScale: double; +} + MultiSelect { - field: InputField; - cancel: IconButton; + padding: margins; maxHeight: pixels; + scroll: flatScroll; + + item: MultiSelectItem; + itemSkip: pixels; + + field: InputField; + fieldIcon: icon; + fieldIconSkip: pixels; + fieldCancel: IconButton; + fieldCancelSkip: pixels; + fieldMinWidth: pixels; } widgetSlideDuration: 200;