2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-05 00:46:08 +00:00

Made base::lambda a copyable value type.

Now base::lambda can be copied and can wrap any immutable lambda.
For mutable lambdas there is base::lambda_once (which you're
supposed to call only once to pass data through lambda captures,
for example by using std::unique_ptr). Generally base::lambda is
passed by value and base::lambda_once is passed by rvalue reference.
This commit is contained in:
John Preston
2017-02-26 14:32:13 +03:00
parent f82989c9c3
commit c207743338
78 changed files with 662 additions and 633 deletions

View File

@@ -57,7 +57,7 @@ public:
void setPosition(int x, int y, int outerWidth, int maxVisiblePadding);
QRect paintArea(int outerWidth) const;
void setUpdateCallback(const base::lambda_copy<void()> &updateCallback) {
void setUpdateCallback(base::lambda<void()> updateCallback) {
_updateCallback = updateCallback;
}
void setText(const QString &text);
@@ -89,7 +89,7 @@ private:
uint64 _id;
struct SlideAnimation {
SlideAnimation(const base::lambda_copy<void()> &updateCallback, int fromX, int toX, int y, float64 duration)
SlideAnimation(base::lambda<void()> updateCallback, int fromX, int toX, int y, float64 duration)
: fromX(fromX)
, toX(toX)
, y(y) {
@@ -112,7 +112,7 @@ private:
bool _overDelete = false;
bool _active = false;
PaintRoundImage _paintRoundImage;
base::lambda_copy<void()> _updateCallback;
base::lambda<void()> _updateCallback;
bool _hiding = false;
};
@@ -376,15 +376,15 @@ void MultiSelect::scrollTo(int activeTop, int activeBottom) {
}
}
void MultiSelect::setQueryChangedCallback(base::lambda<void(const QString &query)> &&callback) {
void MultiSelect::setQueryChangedCallback(base::lambda<void(const QString &query)> callback) {
_queryChangedCallback = std::move(callback);
}
void MultiSelect::setSubmittedCallback(base::lambda<void(bool ctrlShiftEnter)> &&callback) {
void MultiSelect::setSubmittedCallback(base::lambda<void(bool ctrlShiftEnter)> callback) {
_inner->setSubmittedCallback(std::move(callback));
}
void MultiSelect::setResizedCallback(base::lambda<void()> &&callback) {
void MultiSelect::setResizedCallback(base::lambda<void()> callback) {
_resizedCallback = std::move(callback);
}
@@ -402,11 +402,11 @@ QString MultiSelect::getQuery() const {
return _inner->getQuery();
}
void MultiSelect::addItem(uint64 itemId, const QString &text, style::color color, PaintRoundImage &&paintRoundImage, AddItemWay way) {
void MultiSelect::addItem(uint64 itemId, const QString &text, style::color color, PaintRoundImage paintRoundImage, AddItemWay way) {
_inner->addItem(std::make_unique<Inner::Item>(_st.item, itemId, text, color, std::move(paintRoundImage)), way);
}
void MultiSelect::setItemRemovedCallback(base::lambda<void(uint64 itemId)> &&callback) {
void MultiSelect::setItemRemovedCallback(base::lambda<void(uint64 itemId)> callback) {
_inner->setItemRemovedCallback(std::move(callback));
}
@@ -423,7 +423,7 @@ int MultiSelect::resizeGetHeight(int newWidth) {
return newHeight;
}
MultiSelect::Inner::Inner(QWidget *parent, const style::MultiSelect &st, const QString &placeholder, ScrollCallback &&callback) : TWidget(parent)
MultiSelect::Inner::Inner(QWidget *parent, const style::MultiSelect &st, const QString &placeholder, ScrollCallback callback) : TWidget(parent)
, _st(st)
, _scrollCallback(std::move(callback))
, _field(this, _st.field, placeholder)
@@ -470,11 +470,11 @@ void MultiSelect::Inner::clearQuery() {
_field->setText(QString());
}
void MultiSelect::Inner::setQueryChangedCallback(base::lambda<void(const QString &query)> &&callback) {
void MultiSelect::Inner::setQueryChangedCallback(base::lambda<void(const QString &query)> callback) {
_queryChangedCallback = std::move(callback);
}
void MultiSelect::Inner::setSubmittedCallback(base::lambda<void(bool ctrlShiftEnter)> &&callback) {
void MultiSelect::Inner::setSubmittedCallback(base::lambda<void(bool ctrlShiftEnter)> callback) {
_submittedCallback = std::move(callback);
}
@@ -775,11 +775,11 @@ void MultiSelect::Inner::setItemText(uint64 itemId, const QString &text) {
}
}
void MultiSelect::Inner::setItemRemovedCallback(base::lambda<void(uint64 itemId)> &&callback) {
void MultiSelect::Inner::setItemRemovedCallback(base::lambda<void(uint64 itemId)> callback) {
_itemRemovedCallback = std::move(callback);
}
void MultiSelect::Inner::setResizedCallback(base::lambda<void(int heightDelta)> &&callback) {
void MultiSelect::Inner::setResizedCallback(base::lambda<void(int heightDelta)> callback) {
_resizedCallback = std::move(callback);
}