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();
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)
219struct QPropertyObserverPrivate;
231#if QT_DEPRECATED_SINCE(6, 6)
266 template<
typename Property,
typename =
typename Property::InheritsQUntypedPropertyData>
268 { setSource(
property.bindingData()); }
273#if QT_DEPRECATED_SINCE(6, 6)
289template <
typename Functor>
304 template<
typename Property,
typename =
typename Property::InheritsQUntypedPropertyData>
319 std::function<
void()> m_handler;
323 template<
typename Functor>
334 template<
typename Functor,
typename Property,
typename =
typename Property::InheritsQUntypedPropertyData>
351 bool is_equal(
const T &
v)
353 if constexpr (QTypeTraits::has_operator_equal_v<T>) {
373 template <
typename Functor>
375 typename std::enable_if_t<std::is_invocable_r_v<T, Functor&>> * =
nullptr)
379 template <
typename Functor>
386 d.registerWithCurrentlyEvaluatingBinding();
392 if constexpr (QTypeTraits::is_dereferenceable_v<T>) {
394 }
else if constexpr (std::is_pointer_v<T>) {
415 if (is_equal(newValue))
417 this->
val = std::move(newValue);
424 if (is_equal(newValue))
426 this->
val = newValue;
456 template <
typename Functor>
459 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
464 template <
typename Functor>
480 template<
typename Functor>
483 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
487 template<
typename Functor>
490 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
495 template<
typename Functor>
498 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
506 d.notifyObservers(
this);
513 template <
typename PropertyType>
546template<
typename Property,
typename =
void>
549 using T =
typename Property::value_type;
555 { *
static_cast<T*
>(
value) =
static_cast<const Property *
>(
d)->value(); },
562 { observer->setSource(
static_cast<const Property *
>(
d)->bindingData()); },
563 []() {
return QMetaType::fromType<T>(); }
567template<
typename Property>
570 using T =
typename Property::value_type;
576 { *
static_cast<T*
>(
value) =
static_cast<const Property *
>(
d)->value(); },
579 {
return static_cast<const Property *
>(
d)->binding(); },
584 { observer->setSource(
static_cast<const Property *
>(
d)->bindingData()); },
585 []() {
return QMetaType::fromType<T>(); }
589template<
typename Property>
592 using T =
typename Property::value_type;
596 { *
static_cast<T*
>(
value) =
static_cast<const Property *
>(
d)->value(); },
598 {
static_cast<Property *
>(
d)->
setValue(*
static_cast<const T*
>(
value)); },
600 {
return static_cast<const Property *
>(
d)->binding(); },
602 {
return static_cast<Property *
>(
d)->setBinding(
static_cast<const QPropertyBinding<T> &
>(binding)); },
606 { observer->setSource(
static_cast<const Property *
>(
d)->bindingData()); },
607 []() {
return QMetaType::fromType<T>(); }
615namespace BindableWarnings {
621namespace PropertyAdaptorSlotObjectHelpers {
639 void *
data() {
return &this->
val; }
671 &QMetaType::fromType<T>,
691 template<
typename Property>
693 :
data(const_cast<
std::remove_cv_t<Property> *>(
p)),
732 template<
typename Functor>
740 template<
typename Functor>
747 template<
typename Functor>
861 template <
typename Functor>
864 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
869 template <
typename Functor>
890#if QT_DEPRECATED_SINCE(6, 6)
892class QT_DEPRECATED_X(
"Class was only meant for internal use, use a QProperty and add a binding to the target")
908 template<
typename Property,
typename =
typename Property::InheritsQUntypedPropertyData>
941 operator T()
const {
return value(); }
966 template <
typename Functor>
969 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
974 template <
typename Functor>
978 bool hasBinding()
const
993 template<
typename Functor>
999 template<
typename Functor>
1005 template<
typename Functor>
1011 bool isValid()
const
1019template<
typename Class,
typename T, auto Offset, auto Signal =
nullptr>
1023 static bool constexpr HasSignal = !std::is_same_v<
decltype(Signal), std::nullptr_t>;
1024 using SignalTakesValue = std::is_invocable<
decltype(Signal), Class, T>;
1027 char *that =
reinterpret_cast<char *
>(
this);
1030 const Class *owner()
const
1032 char *that =
const_cast<char *
>(
reinterpret_cast<const char *
>(
this));
1038 if constexpr (HasSignal) {
1039 if constexpr (SignalTakesValue::value)
1042 (that->owner()->*Signal)();
1058 template <
typename Functor>
1060 typename std::enable_if_t<std::is_invocable_r_v<T, Functor&>> * =
nullptr)
1064 template <
typename Functor>
1076 if constexpr (QTypeTraits::is_dereferenceable_v<T>) {
1078 }
else if constexpr (std::is_pointer_v<T>) {
1119 this->
val = std::move(
t);
1151 template <
typename Functor>
1154 std::enable_if_t<std::is_invocable_v<Functor>> * =
nullptr)
1159 template <
typename Functor>
1166 return bd && bd->
binding() !=
nullptr;
1180 template<
typename Functor>
1183 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1187 template<
typename Functor>
1190 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1195 template<
typename Functor>
1198 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1212 if constexpr (HasSignal) {
1213 if constexpr (SignalTakesValue::value)
1216 (owner()->*Signal)();
1221#define QT_OBJECT_BINDABLE_PROPERTY_3(Class, Type, name) \
1222 static constexpr size_t _qt_property_##name##_offset() { \
1223 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1224 return offsetof(Class, name); \
1227 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, nullptr> name;
1229#define QT_OBJECT_BINDABLE_PROPERTY_4(Class, Type, name, Signal) \
1230 static constexpr size_t _qt_property_##name##_offset() { \
1231 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1232 return offsetof(Class, name); \
1235 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, Signal> name;
1237#define Q_OBJECT_BINDABLE_PROPERTY(...) \
1238 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1239 QT_OVERLOADED_MACRO(QT_OBJECT_BINDABLE_PROPERTY, __VA_ARGS__) \
1242#define QT_OBJECT_BINDABLE_PROPERTY_WITH_ARGS_4(Class, Type, name, value) \
1243 static constexpr size_t _qt_property_##name##_offset() \
1245 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1246 return offsetof(Class, name); \
1249 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, nullptr> name = \
1250 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, nullptr>( \
1253#define QT_OBJECT_BINDABLE_PROPERTY_WITH_ARGS_5(Class, Type, name, value, Signal) \
1254 static constexpr size_t _qt_property_##name##_offset() \
1256 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1257 return offsetof(Class, name); \
1260 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, Signal> name = \
1261 QObjectBindableProperty<Class, Type, Class::_qt_property_##name##_offset, Signal>( \
1264#define Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(...) \
1265 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1266 QT_OVERLOADED_MACRO(QT_OBJECT_BINDABLE_PROPERTY_WITH_ARGS, __VA_ARGS__) \
1269template<
typename Class,
typename T, auto Offset, auto Getter>
1274 char *that =
reinterpret_cast<char *
>(
this);
1277 const Class *owner()
const
1279 char *that =
const_cast<char *
>(
reinterpret_cast<const char *
>(
this));
1292 return (owner()->*Getter)();
1295 std::conditional_t<QTypeTraits::is_dereferenceable_v<T>,
parameter_type,
void>
1298 if constexpr (QTypeTraits::is_dereferenceable_v<T>)
1316 template<
typename Functor>
1319 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1323 template<
typename Functor>
1326 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1331 template<
typename Functor>
1334 static_assert(std::is_invocable_v<Functor>,
"Functor callback must be callable without any parameters");
1353#define Q_OBJECT_COMPUTED_PROPERTY(Class, Type, name, ...) \
1354 static constexpr size_t _qt_property_##name##_offset() { \
1355 QT_WARNING_PUSH QT_WARNING_DISABLE_INVALID_OFFSETOF \
1356 return offsetof(Class, name); \
1359 QObjectComputedProperty<Class, Type, Class::_qt_property_##name##_offset, __VA_ARGS__> name;
1361#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)
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...
std::conditional_t< std::is_pointer_v< T >, const T &, std::conditional_t< QTypeTraits::is_dereferenceable_v< T >, const T &, void > > arrow_operator_result
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
QUntypedPropertyBinding setBinding(const QUntypedPropertyBinding &newBinding, QUntypedPropertyData *propertyDataPtr, QPropertyObserverCallback staticObserverCallback=nullptr, QPropertyBindingWrapper bindingWrapper=nullptr)
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)
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_X(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