2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-02 23:55:12 +00:00

One-click forward to Saved Messages

This commit is contained in:
RadRussianRus
2020-07-09 13:13:16 +03:00
parent aabe77b89c
commit b42a7331a8

View File

@@ -50,6 +50,7 @@ public:
void setPeerSelectedChangedCallback(
Fn<void(PeerData *peer, bool selected)> callback);
void setSubmitRequest(Fn<void()> callback);
void peerUnselected(not_null<PeerData*> peer);
std::vector<not_null<PeerData*>> selected() const;
@@ -141,6 +142,7 @@ private:
base::flat_set<not_null<PeerData*>> _selected;
Fn<void(PeerData *peer, bool selected)> _peerSelectedChangedCallback;
Fn<void()> _submitRequest;
bool _searching = false;
QString _lastQuery;
@@ -150,6 +152,7 @@ private:
rpl::event_stream<Ui::ScrollToRequest> _scrollToRequests;
rpl::event_stream<> _searchRequests;
bool _hadSelection = false;
};
ShareBox::ShareBox(
@@ -269,6 +272,10 @@ void ShareBox::prepare() {
innerSelectedChanged(peer, checked);
});
_inner->setSubmitRequest([=] {
submit({});
});
Ui::Emoji::SuggestionsController::Init(
getDelegate()->outerContainer(),
_comment->entity(),
@@ -923,6 +930,15 @@ void ShareBox::Inner::mousePressEvent(QMouseEvent *e) {
if (e->button() == Qt::LeftButton) {
updateUpon(e->pos());
changeCheckState(getChatAtIndex(_upon));
if (!_hadSelection
&& _submitRequest
&& !(e->modifiers() & Qt::ControlModifier)
&& _selected.size() == 1
&& _selected.front()->isSelf()) {
_submitRequest();
} else if (!_hadSelection) {
_hadSelection = true;
}
}
}
@@ -970,6 +986,10 @@ void ShareBox::Inner::setPeerSelectedChangedCallback(
_peerSelectedChangedCallback = std::move(callback);
}
void ShareBox::Inner::setSubmitRequest(Fn<void()> callback) {
_submitRequest = std::move(callback);
}
void ShareBox::Inner::changePeerCheckState(
not_null<Chat*> chat,
bool checked,