7#include <QtCore/qglobal.h>
8#include <QtCore/qshareddata.h>
9#include <QtCore/qstring.h>
10#include <QtCore/qbindingstorage.h>
14#include <QtCore/qpropertyprivate.h>
16#if __has_include(<source_location>) && __cplusplus >= 202002L && !defined(Q_QDOC)
17#include <source_location>
18#if defined(__cpp_lib_source_location)
19#define QT_SOURCE_LOCATION_NAMESPACE std
20#define QT_PROPERTY_COLLECT_BINDING_LOCATION
24# define QT_PROPERTY_DEFAULT_BINDING_LOCATION QPropertyBindingSourceLocation::fromStdSourceLocation(std::source_location::current())
29# define QT_PROPERTY_DEFAULT_BINDING_LOCATION QPropertyBindingSourceLocation(std::source_location::current())
34#if __has_include(<experimental/source_location>) && !defined(Q_QDOC)
35#include <experimental/source_location>
36#if !defined(QT_PROPERTY_COLLECT_BINDING_LOCATION)
37#if defined(__cpp_lib_experimental_source_location)
38#define QT_SOURCE_LOCATION_NAMESPACE std::experimental
39#define QT_PROPERTY_COLLECT_BINDING_LOCATION
40#define QT_PROPERTY_DEFAULT_BINDING_LOCATION QPropertyBindingSourceLocation(std::experimental::source_location::current())
45#if !defined(QT_PROPERTY_COLLECT_BINDING_LOCATION)
46#define QT_PROPERTY_DEFAULT_BINDING_LOCATION QPropertyBindingSourceLocation()
73 class DisableRValueRefs {};
75 static constexpr bool UseReferences = !(std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>);
79 using rvalue_ref =
typename std::conditional_t<UseReferences, T &&, DisableRValueRefs>;
81 std::conditional_t<QTypeTraits::is_dereferenceable_v<T>,
const T &,
void>>;
97 const char *functionName =
nullptr;
101#ifdef __cpp_lib_source_location
105 functionName = cppLocation.function_name();
106 line = cppLocation.line();
107 column = cppLocation.column();
111 fromStdSourceLocation(
const std::source_location &cppLocation)
116#ifdef __cpp_lib_experimental_source_location
120 functionName = cppLocation.function_name();
121 line = cppLocation.line();
122 column = cppLocation.column();
154 QSharedDataPointer<QPropertyBindingErrorPrivate>
d;
166 template<
typename Functor>
191template <
typename PropertyType>
198 template<
typename Functor>
211 template <
typename Functor>
213 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
215 return QPropertyBinding<std::invoke_result_t<Functor>>(std::forward<Functor>(
f),
location);
219struct QPropertyObserverPrivate;
231#if QT_DEPRECATED_SINCE(6, 6)
246 QTaggedPointer<QPropertyObserver, ObserverTag>
next;
266 template <
typename Property, QtPrivate::IsUntypedPropertyData<Property> = true>
268 { setSource(
property.bindingData()); }
273#if QT_DEPRECATED_SINCE(6, 6)
290template <
typename Functor>
298 auto This =
static_cast<QPropertyChangeHandler<Functor>*
>(self);
305 template <
typename Property, QtPrivate::IsUntypedPropertyData<Property> = true>
309 auto This =
static_cast<QPropertyChangeHandler<Functor>*
>(self);
320 std::function<
void()> m_handler;
324 template<
typename Functor>
335 template <
typename Functor,
typename Property,
353 bool is_equal(
const T &
v)
355 if constexpr (QTypeTraits::has_operator_equal_v<T>) {
375 template <
typename Functor>
377 typename std::enable_if_t<std::is_invocable_r_v<T, Functor&>> * =
nullptr)
381 template <
typename Functor>
388 d.registerWithCurrentlyEvaluatingBinding();
394 if constexpr (QTypeTraits::is_dereferenceable_v<T>) {
396 }
else if constexpr (std::is_pointer_v<T>) {
417 if (is_equal(newValue))
419 this->
val = std::move(newValue);
426 if (is_equal(newValue))
428 this->
val = newValue;
444 QPropertyBinding<T>
setBinding(
const QPropertyBinding<T> &newBinding)
446 return QPropertyBinding<T>(
d.setBinding(newBinding,
this));
453 setBinding(
static_cast<const QPropertyBinding<T> &
>(newBinding));
458 template <
typename Functor>
461 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
466 template <
typename Functor>
482 template<
typename Functor>
485 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
486 return QPropertyChangeHandler<Functor>(*
this,
f);
489 template<
typename Functor>
492 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
497 template<
typename Functor>
500 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
508 d.notifyObservers(
this);
515 template <
typename PropertyType>
548template<
typename Property,
typename =
void>
551 using T =
typename Property::value_type;
557 { *
static_cast<T*
>(
value) =
static_cast<const Property *
>(
d)->value(); },
564 { observer->setSource(
static_cast<const Property *
>(
d)->bindingData()); },
565 []() {
return QMetaType::fromType<T>(); }
569template<
typename Property>
572 using T =
typename Property::value_type;
578 { *
static_cast<T*
>(
value) =
static_cast<const Property *
>(
d)->value(); },
581 {
return static_cast<const Property *
>(
d)->binding(); },
586 { observer->setSource(
static_cast<const Property *
>(
d)->bindingData()); },
587 []() {
return QMetaType::fromType<T>(); }
591template<
typename Property>
594 using T =
typename Property::value_type;
598 { *
static_cast<T*
>(
value) =
static_cast<const Property *
>(
d)->value(); },
600 {
static_cast<Property *
>(
d)->
setValue(*
static_cast<const T*
>(
value)); },
602 {
return static_cast<const Property *
>(
d)->binding(); },
604 {
return static_cast<Property *
>(
d)->setBinding(
static_cast<const QPropertyBinding<T> &
>(binding)); },
608 { observer->setSource(
static_cast<const Property *
>(
d)->bindingData()); },
609 []() {
return QMetaType::fromType<T>(); }
617namespace BindableWarnings {
623namespace PropertyAdaptorSlotObjectHelpers {
641 void *
data() {
return &this->
val; }
673 &QMetaType::fromType<T>,
693 template<
typename Property>
695 :
data(const_cast<
std::remove_cv_t<Property> *>(
p)),
734 template<
typename Functor>
737 QPropertyChangeHandler<Functor> handler(
f);
742 template<
typename Functor>
749 template<
typename Functor>
860 return QPropertyBinding<T>();
863 template <
typename Functor>
866 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
871 template <
typename Functor>
892#if QT_DEPRECATED_SINCE(6, 6)
910 template <
typename Property, QtPrivate::IsUntypedPropertyData<Property> = true>
943 operator T()
const {
return value(); }
948 iface->setter(
p, &newValue);
951 QPropertyAlias<T> &
operator=(
const T &newValue)
957 QPropertyBinding<T>
setBinding(
const QPropertyBinding<T> &newBinding)
968 template <
typename Functor>
971 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
976 template <
typename Functor>
980 bool hasBinding()
const
985 QPropertyBinding<T>
binding()
const
990 QPropertyBinding<T> takeBinding()
995 template<
typename Functor>
996 QPropertyChangeHandler<Functor> onValueChanged(
Functor f)
1001 template<
typename Functor>
1002 QPropertyChangeHandler<Functor> subscribe(
Functor f)
1007 template<
typename Functor>
1013 bool isValid()
const
1021template<
typename Class,
typename T, auto Offset, auto Signal =
nullptr>
1024 using ThisType = QObjectBindableProperty<Class, T, Offset, Signal>;
1025 static bool constexpr HasSignal = !std::is_same_v<
decltype(Signal), std::nullptr_t>;
1026 using SignalTakesValue = std::is_invocable<
decltype(Signal), Class, T>;
1029 char *that =
reinterpret_cast<char *
>(
this);
1032 const Class *owner()
const
1034 char *that =
const_cast<char *
>(
reinterpret_cast<const char *
>(
this));
1040 if constexpr (HasSignal) {
1041 if constexpr (SignalTakesValue::value)
1042 (that->owner()->*Signal)(that->valueBypassingBindings());
1044 (that->owner()->*Signal)();
1060 template <
typename Functor>
1062 typename std::enable_if_t<std::is_invocable_r_v<T, Functor&>> * =
nullptr)
1066 template <
typename Functor>
1078 if constexpr (QTypeTraits::is_dereferenceable_v<T>) {
1080 }
else if constexpr (std::is_pointer_v<T>) {
1121 this->
val = std::move(
t);
1137 QPropertyBinding<T>
setBinding(
const QPropertyBinding<T> &newBinding)
1141 return static_cast<QPropertyBinding<T> &
>(oldBinding);
1148 setBinding(
static_cast<const QPropertyBinding<T> &
>(newBinding));
1153 template <
typename Functor>
1156 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
1161 template <
typename Functor>
1168 return bd && bd->
binding() !=
nullptr;
1182 template<
typename Functor>
1185 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1186 return QPropertyChangeHandler<Functor>(*
this,
f);
1189 template<
typename Functor>
1192 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1197 template<
typename Functor>
1200 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1207 return *
storage->bindingData(
const_cast<ThisType *
>(
this),
true);
1214 if constexpr (HasSignal) {
1215 if constexpr (SignalTakesValue::value)
1218 (owner()->*Signal)();
1223#define QT_OBJECT_BINDABLE_PROPERTY_3(Class, Type, name) \
1224 static constexpr size_t _qt_property_##name##_offset() { \
1225 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1226 return offsetof(Class, name); \
1229 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, nullptr> name;
1231#define QT_OBJECT_BINDABLE_PROPERTY_4(Class, Type, name, Signal) \
1232 static constexpr size_t _qt_property_##name##_offset() { \
1233 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1234 return offsetof(Class, name); \
1237 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, Signal> name;
1239#define Q_OBJECT_BINDABLE_PROPERTY(...) \
1240 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1241 QT_OVERLOADED_MACRO(QT_OBJECT_BINDABLE_PROPERTY, __VA_ARGS__) \
1244#define QT_OBJECT_BINDABLE_PROPERTY_WITH_ARGS_4(Class, Type, name, value) \
1245 static constexpr size_t _qt_property_##name##_offset() \
1247 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1248 return offsetof(Class, name); \
1251 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, nullptr> name = \
1252 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, nullptr>( \
1255#define QT_OBJECT_BINDABLE_PROPERTY_WITH_ARGS_5(Class, Type, name, value, Signal) \
1256 static constexpr size_t _qt_property_##name##_offset() \
1258 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1259 return offsetof(Class, name); \
1262 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, Signal> name = \
1263 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, Signal>( \
1266#define Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(...) \
1267 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1268 QT_OVERLOADED_MACRO(QT_OBJECT_BINDABLE_PROPERTY_WITH_ARGS, __VA_ARGS__) \
1271template<
typename Class,
typename T, auto Offset, auto Getter>
1276 char *that =
reinterpret_cast<char *
>(
this);
1279 const Class *owner()
const
1281 char *that =
const_cast<char *
>(
reinterpret_cast<const char *
>(
this));
1294 return (owner()->*Getter)();
1297 std::conditional_t<QTypeTraits::is_dereferenceable_v<T>,
parameter_type,
void>
1300 if constexpr (QTypeTraits::is_dereferenceable_v<T>)
1318 template<
typename Functor>
1321 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1322 return QPropertyChangeHandler<Functor>(*
this,
f);
1325 template<
typename Functor>
1328 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1333 template<
typename Functor>
1336 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1355#define Q_OBJECT_COMPUTED_PROPERTY(Class, Type, name, ...) \
1356 static constexpr size_t _qt_property_##name##_offset() { \
1357 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1358 return offsetof(Class, name); \
1361 QObjectComputedProperty<Class, Type, Class::_qt_property_##name##_offset, __VA_ARGS__> name;
1363#undef QT_SOURCE_LOCATION_NAMESPACE
void setValue(const T &value)
Sets the underlying property's value to value.
QBindable(QObject *obj, const QMetaProperty &property)
See \l QBindable::QBindable(QObject *obj, const char *property)
QPropertyBinding< T > makeBinding(const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION) const
Constructs a binding evaluating to the underlying property's value, using a specified source location...
QPropertyBinding< T > takeBinding()
Removes the currently set binding of the underlying property and returns it.
QPropertyBinding< T > setBinding(const QPropertyBinding< T > &binding)
Sets the underlying property's binding to binding.
T value() const
Returns the underlying property's current value.
QPropertyBinding< T > setBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
QBindable(QObject *obj, const char *property)
Constructs a QBindable for the \l Q_PROPERTY property on obj.
QBindable(const QUntypedBindable &b)
QPropertyBinding< T > binding() const
Returns the currently set binding of the underlying property.
void registerDependency(const QUntypedPropertyData *data) const
QtPrivate::QPropertyBindingData * bindingData(const QUntypedPropertyData *data) const
QObjectBindableProperty()=default
void setValue(parameter_type t)
QPropertyNotifier addNotifier(Functor f)
Subscribes the given functor f as a callback that is called whenever the value of the property change...
typename QPropertyData< T >::rvalue_ref rvalue_ref
typename QPropertyData< T >::value_type value_type
void notify()
Programmatically signals a change of the property.
QPropertyBinding< T > binding() const
Returns the binding expression that is associated with this property.
typename QPropertyData< T >::arrow_operator_result arrow_operator_result
arrow_operator_result operator->() const
parameter_type value() const
Returns the value of the property.
QObjectBindableProperty(T &&initialValue)
Move-Constructs a property with the provided initialValue.
QPropertyChangeHandler< Functor > subscribe(Functor f)
Subscribes the given functor f as a callback that is called immediately and whenever the value of the...
const QtPrivate::QPropertyBindingData & bindingData() const
void setValue(rvalue_ref t)
Assigns newValue to this property and removes the property's associated binding, if present.
parameter_type operator*() const
QObjectBindableProperty(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, typename std::enable_if_t< std::is_invocable_r_v< T, Functor & > > *=nullptr)
QObjectBindableProperty(const QPropertyBinding< T > &binding)
bool hasBinding() const
Returns true if the property is associated with a binding; false otherwise.
QObjectBindableProperty & operator=(rvalue_ref newValue)
QPropertyBinding< T > setBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
QObjectBindableProperty & operator=(parameter_type newValue)
typename QPropertyData< T >::parameter_type parameter_type
QPropertyBinding< T > setBinding(const QPropertyBinding< T > &newBinding)
Associates the value of this property with the provided newBinding expression and returns the previou...
bool setBinding(const QUntypedPropertyBinding &newBinding)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QPropertyBinding< T > takeBinding()
Disassociates the binding expression from this property and returns it.
QObjectBindableProperty(const T &initialValue)
Constructs a property with the provided initialValue.
QPropertyChangeHandler< Functor > onValueChanged(Functor f)
Registers the given functor f as a callback that shall be called whenever the value of the property c...
\macro Q_OBJECT_COMPAT_PROPERTY(containingClass, type, name, callback)
QPropertyChangeHandler< Functor > onValueChanged(Functor f)
constexpr bool hasBinding() const
QObjectComputedProperty()=default
std::conditional_t< QTypeTraits::is_dereferenceable_v< T >, parameter_type, void > operator->() const
QPropertyChangeHandler< Functor > subscribe(Functor f)
QtPrivate::QPropertyBindingData & bindingData() const
parameter_type operator*() const
parameter_type value() const
QPropertyNotifier addNotifier(Functor f)
QPropertyBinding(const QUntypedPropertyBinding &binding)
QPropertyBinding()=default
QPropertyBinding(Functor &&f, const QPropertyBindingSourceLocation &location)
Q_NODISCARD_CTOR QPropertyChangeHandler(Functor handler)
Q_NODISCARD_CTOR QPropertyChangeHandler(const Property &property, Functor handler)
QPropertyData(rvalue_ref t)
std::conditional_t< std::is_pointer_v< T >, const T &, std::conditional_t< QTypeTraits::is_dereferenceable_v< T >, const T &, void > > arrow_operator_result
typename std::conditional_t< UseReferences, T &&, DisableRValueRefs > rvalue_ref
static constexpr bool UseReferences
std::conditional_t< UseReferences, const T &, T > parameter_type
void setValueBypassingBindings(rvalue_ref v)
This is an overloaded member function, provided for convenience. It differs from the above function o...
parameter_type valueBypassingBindings() const
Returns the data stored in this property.
void setValueBypassingBindings(parameter_type v)
Sets the data value stored in this property to v.
QPropertyData(parameter_type t)
Q_NODISCARD_CTOR QPropertyNotifier(Functor handler)
Q_NODISCARD_CTOR QPropertyNotifier(const Property &property, Functor handler)
Q_NODISCARD_CTOR QPropertyNotifier()=default
@ ObserverNotifiesBinding
@ ObserverNotifiesChangeHandler
QUntypedPropertyData * aliasData
void(*)(QPropertyObserver *, QUntypedPropertyData *) ChangeHandler
ChangeHandler changeHandler
QPropertyBindingPrivate * binding
void setSource(const Property &property)
QUntypedPropertyData * aliasedProperty() const
QPropertyObserver & operator=(QPropertyObserver &&other) noexcept
constexpr QPropertyObserver()=default
typename QPropertyData< T >::arrow_operator_result arrow_operator_result
QPropertyBinding< T > takeBinding()
Disassociates the binding expression from this property and returns it.
QProperty(const QPropertyBinding< T > &binding)
Constructs a property that is tied to the provided binding expression.
QPropertyChangeHandler< Functor > subscribe(Functor f)
Subscribes the given functor f as a callback that is called immediately and whenever the value of the...
QPropertyChangeHandler< Functor > onValueChanged(Functor f)
Registers the given functor f as a callback that shall be called whenever the value of the property c...
QProperty< T > & operator=(rvalue_ref newValue)
QProperty(rvalue_ref initialValue)
const QtPrivate::QPropertyBindingData & bindingData() const
typename QPropertyData< T >::value_type value_type
bool setBinding(const QUntypedPropertyBinding &newBinding)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QPropertyBinding< T > binding() const
Returns the binding expression that is associated with this property.
parameter_type value() const
Returns the value of the property.
QPropertyBinding< T > setBinding(const QPropertyBinding< T > &newBinding)
Associates the value of this property with the provided newBinding expression and returns the previou...
void setValue(parameter_type newValue)
Assigns newValue to this property and removes the property's associated binding, if present.
typename QPropertyData< T >::rvalue_ref rvalue_ref
QPropertyBinding< T > setBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
void setValue(rvalue_ref newValue)
QProperty()=default
Constructs a property with a default constructed instance of T.
QProperty(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, typename std::enable_if_t< std::is_invocable_r_v< T, Functor & > > *=nullptr)
QProperty< T > & operator=(parameter_type newValue)
Assigns newValue to this property and returns a reference to this QProperty.
typename QPropertyData< T >::parameter_type parameter_type
QPropertyNotifier addNotifier(Functor f)
Subscribes the given functor f as a callback that is called whenever the value of the property change...
arrow_operator_result operator->() const
~QProperty()=default
Destroys the property.
parameter_type operator*() const
QProperty(parameter_type initialValue)
RAII class around Qt::beginPropertyUpdateGroup()/Qt::endPropertyUpdateGroup().
Q_NODISCARD_CTOR QScopedPropertyUpdateGroup()
Calls Qt::beginPropertyUpdateGroup().
~QScopedPropertyUpdateGroup() noexcept(false)
Calls Qt::endPropertyUpdateGroup().
\macro QT_RESTRICTED_CAST_FROM_ASCII
QUntypedPropertyBinding binding() const
Returns the underlying property's binding if there is any, or a default constructed QUntypedPropertyB...
QUntypedPropertyBinding makeBinding(const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION) const
Creates a binding returning the underlying properties' value, using a specified source location.
bool hasBinding() const
Returns true if the underlying property has a binding.
QMetaType metaType() const
const QtPrivate::QBindableInterface * iface
QPropertyChangeHandler< Functor > subscribe(Functor f) const
Behaves like a call to f followed by onValueChanged(f),.
QUntypedPropertyBinding takeBinding()
Removes the currently set binding from the property and returns it.
bool isValid() const
Returns true if the QUntypedBindable is valid.
bool setBinding(const QUntypedPropertyBinding &binding)
Sets the underlying property's binding to binding.
QUntypedBindable(Property *p)
Constructs a QUntypedBindable from the property property.
QPropertyNotifier addNotifier(Functor f)
Installs f as a change handler.
constexpr QUntypedBindable(QUntypedPropertyData *d, const QtPrivate::QBindableInterface *i)
QPropertyChangeHandler< Functor > onValueChanged(Functor f) const
Installs f as a change handler.
constexpr QUntypedBindable()=default
Default-constructs a QUntypedBindable.
void observe(QPropertyObserver *observer) const
QMetaType valueMetaType() const
Returns the meta-type of the binding.
QUntypedPropertyBinding()
Constructs a null QUntypedPropertyBinding.
bool isNull() const
Returns true if the QUntypedPropertyBinding is null.
QUntypedPropertyBinding(QMetaType metaType, Functor &&f, const QPropertyBindingSourceLocation &location)
static constexpr QBindableInterface iface
QPropertyBindingPrivate * binding() const
Combined button and popup list for selecting options.
void printMetaTypeMismatch(QMetaType actual, QMetaType expected)
void printUnsuitableBindableWarning(QAnyStringView prefix, BindableWarnings::Reason reason)
void getter(const QUntypedPropertyData *d, void *value)
void setObserver(const QUntypedPropertyData *d, QPropertyObserver *observer)
QUntypedPropertyBinding setBinding(QUntypedPropertyData *d, const QUntypedPropertyBinding &binding, QPropertyBindingWrapper wrapper)
void setter(QUntypedPropertyData *d, const void *value)
bool bindingWrapper(QMetaType type, QUntypedPropertyData *d, QtPrivate::QPropertyBindingFunction binding, QUntypedPropertyData *temp, void *value)
constexpr QBindableInterface iface
QUntypedPropertyBinding makeBinding(const QUntypedPropertyData *d, const QPropertyBindingSourceLocation &location)
QUntypedPropertyBinding getBinding(const QUntypedPropertyData *d)
constexpr size_t getOffset(size_t o)
std::enable_if_t< std::is_base_of_v< QUntypedPropertyData, T >, bool > IsUntypedPropertyData
bool(*)(QMetaType, QUntypedPropertyData *dataPtr, QPropertyBindingFunction) QPropertyBindingWrapper
auto makePropertyBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
Q_CORE_EXPORT void beginPropertyUpdateGroup()
Q_CORE_EXPORT void endPropertyUpdateGroup()
#define QT_POST_CXX17_API_IN_EXPORTED_CLASS
#define QT_WARNING_DISABLE_DEPRECATED
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
DBusConnection const char DBusError * error
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
const QBindingStorage * qGetBindingStorage(const QObject *o)
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * v
[13]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLenum GLsizei void GLsizei void * column
#define QT_PROPERTY_DEFAULT_BINDING_LOCATION
#define QT_DEPRECATED_VERSION_X_6_6(text)
settings setValue("DataPump/bgcolor", color)
QPropertyBindingSourceLocation()=default
QMetaType(*)() GetMetaType
void(*)(const QUntypedPropertyData *d, void *value) Getter
QUntypedPropertyBinding(*)(QUntypedPropertyData *d, const QUntypedPropertyBinding &binding) BindingSetter
void(*)(const QUntypedPropertyData *d, QPropertyObserver *observer) SetObserver
void(*)(QUntypedPropertyData *d, const void *value) Setter
QUntypedPropertyBinding(*)(const QUntypedPropertyData *d, const QPropertyBindingSourceLocation &location) MakeBinding
QUntypedPropertyBinding(*)(const QUntypedPropertyData *d) BindingGetter
static constexpr quintptr MetaTypeAccessorFlag