summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qproperty.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-08-06 12:22:10 +0200
committerLars Knoll <lars.knoll@qt.io>2020-09-02 22:44:27 +0200
commit52bbb19fa4dc7647a0cad35a69dcf09437386080 (patch)
tree305547393dbaf8d57c9ad7b24576223ffe6302e3 /src/corelib/kernel/qproperty.h
parent80745bfffe55effcea466faeaad47c7aa2569374 (diff)
Reduce some code duplication
The r-value setBinding() overloads can be removed, as they took a copy internally anyway. Change-Id: I691265299e5cb336791f614b30788c81467df534 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/corelib/kernel/qproperty.h')
-rw-r--r--src/corelib/kernel/qproperty.h43
1 files changed, 2 insertions, 41 deletions
diff --git a/src/corelib/kernel/qproperty.h b/src/corelib/kernel/qproperty.h
index c6be89e169..acaf74f9af 100644
--- a/src/corelib/kernel/qproperty.h
+++ b/src/corelib/kernel/qproperty.h
@@ -276,20 +276,11 @@ public:
return oldBinding;
}
- QPropertyBinding<T> setBinding(QPropertyBinding<T> &&newBinding)
- {
- QPropertyBinding<T> b(std::move(newBinding));
- QPropertyBinding<T> oldBinding(d.priv.setBinding(b, &d));
- notify();
- return oldBinding;
- }
-
bool setBinding(const QUntypedPropertyBinding &newBinding)
{
if (newBinding.valueMetaType().id() != qMetaTypeId<T>())
return false;
- d.priv.setBinding(newBinding, &d);
- notify();
+ setBinding(static_cast<const QPropertyBinding<T> &>(newBinding));
return true;
}
@@ -461,41 +452,11 @@ public:
}
}
- QPropertyBinding<T> setBinding(Class *owner, QPropertyBinding<T> &&newBinding)
- {
- QPropertyBinding<T> b(std::move(newBinding));
- if constexpr (CallbackAcceptsOldValue) {
- T oldValue = value();
- QPropertyBinding<T> oldBinding(d.priv.setBinding(b, &d, owner, [](void *o, void *oldVal) {
- (reinterpret_cast<Class *>(o)->*Callback)(*reinterpret_cast<T *>(oldVal));
- }, GuardTE));
- notify(owner, &oldValue);
- return oldBinding;
- } else {
- QPropertyBinding<T> oldBinding(d.priv.setBinding(b, &d, owner, [](void *o, void *) {
- (reinterpret_cast<Class *>(o)->*Callback)();
- }, GuardTE));
- notify(owner);
- return oldBinding;
- }
- }
-
bool setBinding(Class *owner, const QUntypedPropertyBinding &newBinding)
{
if (newBinding.valueMetaType().id() != qMetaTypeId<T>())
return false;
- if constexpr (CallbackAcceptsOldValue) {
- T oldValue = value();
- d.priv.setBinding(newBinding, &d, owner, [](void *o, void *oldVal) {
- (reinterpret_cast<Class *>(o)->*Callback)(*reinterpret_cast<T *>(oldVal));
- }, GuardTE);
- notify(owner, &oldValue);
- } else {
- d.priv.setBinding(newBinding, &d, owner, [](void *o, void *) {
- (reinterpret_cast<Class *>(o)->*Callback)();
- }, GuardTE);
- notify(owner);
- }
+ setBinding(owner, static_cast<const QPropertyBinding<T> &>(newBinding));
return true;
}