From ec24625373c680fd51237b809792e9cd98c792f0 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 24 Jun 2025 16:09:12 +0200 Subject: QObject: Extract Method q_choose_{assign,append} from doSetProperty() We'll apply that doSetFoo() pattern in more places going forward, so extract the central switch between lvalue and rvalue into a pair of class helper functions for easier reuse. Needed a new header for this, so started a qtclasshelper_p.h. Amends 39cdf431f034121353e51768b4d1fec8b0dd35dc. Pick-to: 6.10 6.9 6.8 Change-Id: I864b7faba41a74058e42d2ca96a0cc519751389f Reviewed-by: Ivan Solovev Reviewed-by: Thiago Macieira --- src/corelib/kernel/qobject.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/corelib/kernel/qobject.cpp') diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 0d2ec8efd7a..5a6da48d52c 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -8,6 +8,7 @@ #include "qobject_p_p.h" #include "qmetaobject_p.h" +#include #include "qabstracteventdispatcher.h" #include "qabstracteventdispatcher_p.h" #include "qcoreapplication.h" @@ -4392,18 +4393,12 @@ bool QObject::doSetProperty(const char *name, const QVariant *lvalue, QVariant * } else { if (idx == -1) { d->extraData->propertyNames.append(name); - if (rvalue) - d->extraData->propertyValues.append(std::move(*rvalue)); - else - d->extraData->propertyValues.append(*lvalue); + q_choose_append(d->extraData->propertyValues, value, rvalue); } else { if (value.userType() == d->extraData->propertyValues.at(idx).userType() && value == d->extraData->propertyValues.at(idx)) return false; - if (rvalue) - d->extraData->propertyValues[idx] = std::move(*rvalue); - else - d->extraData->propertyValues[idx] = *lvalue; + q_choose_assign(d->extraData->propertyValues[idx], value, rvalue); } } -- cgit v1.2.3