mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-09-04 16:45:12 +00:00
One-click forward to Saved Messages
This commit is contained in:
@@ -50,6 +50,7 @@ public:
|
|||||||
|
|
||||||
void setPeerSelectedChangedCallback(
|
void setPeerSelectedChangedCallback(
|
||||||
Fn<void(PeerData *peer, bool selected)> callback);
|
Fn<void(PeerData *peer, bool selected)> callback);
|
||||||
|
void setSubmitRequest(Fn<void()> callback);
|
||||||
void peerUnselected(not_null<PeerData*> peer);
|
void peerUnselected(not_null<PeerData*> peer);
|
||||||
|
|
||||||
std::vector<not_null<PeerData*>> selected() const;
|
std::vector<not_null<PeerData*>> selected() const;
|
||||||
@@ -141,6 +142,7 @@ private:
|
|||||||
base::flat_set<not_null<PeerData*>> _selected;
|
base::flat_set<not_null<PeerData*>> _selected;
|
||||||
|
|
||||||
Fn<void(PeerData *peer, bool selected)> _peerSelectedChangedCallback;
|
Fn<void(PeerData *peer, bool selected)> _peerSelectedChangedCallback;
|
||||||
|
Fn<void()> _submitRequest;
|
||||||
|
|
||||||
bool _searching = false;
|
bool _searching = false;
|
||||||
QString _lastQuery;
|
QString _lastQuery;
|
||||||
@@ -150,6 +152,7 @@ private:
|
|||||||
rpl::event_stream<Ui::ScrollToRequest> _scrollToRequests;
|
rpl::event_stream<Ui::ScrollToRequest> _scrollToRequests;
|
||||||
rpl::event_stream<> _searchRequests;
|
rpl::event_stream<> _searchRequests;
|
||||||
|
|
||||||
|
bool _hadSelection = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
ShareBox::ShareBox(
|
ShareBox::ShareBox(
|
||||||
@@ -269,6 +272,10 @@ void ShareBox::prepare() {
|
|||||||
innerSelectedChanged(peer, checked);
|
innerSelectedChanged(peer, checked);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_inner->setSubmitRequest([=] {
|
||||||
|
submit({});
|
||||||
|
});
|
||||||
|
|
||||||
Ui::Emoji::SuggestionsController::Init(
|
Ui::Emoji::SuggestionsController::Init(
|
||||||
getDelegate()->outerContainer(),
|
getDelegate()->outerContainer(),
|
||||||
_comment->entity(),
|
_comment->entity(),
|
||||||
@@ -923,6 +930,15 @@ void ShareBox::Inner::mousePressEvent(QMouseEvent *e) {
|
|||||||
if (e->button() == Qt::LeftButton) {
|
if (e->button() == Qt::LeftButton) {
|
||||||
updateUpon(e->pos());
|
updateUpon(e->pos());
|
||||||
changeCheckState(getChatAtIndex(_upon));
|
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);
|
_peerSelectedChangedCallback = std::move(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ShareBox::Inner::setSubmitRequest(Fn<void()> callback) {
|
||||||
|
_submitRequest = std::move(callback);
|
||||||
|
}
|
||||||
|
|
||||||
void ShareBox::Inner::changePeerCheckState(
|
void ShareBox::Inner::changePeerCheckState(
|
||||||
not_null<Chat*> chat,
|
not_null<Chat*> chat,
|
||||||
bool checked,
|
bool checked,
|
||||||
|
Reference in New Issue
Block a user