diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-08-06 12:22:10 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-09-02 22:44:27 +0200 |
commit | 52bbb19fa4dc7647a0cad35a69dcf09437386080 (patch) | |
tree | 305547393dbaf8d57c9ad7b24576223ffe6302e3 /src/corelib/kernel/qproperty.h | |
parent | 80745bfffe55effcea466faeaad47c7aa2569374 (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.h | 43 |
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; } |