summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qproperty.cpp37
-rw-r--r--src/corelib/kernel/qproperty.cpp37
2 files changed, 38 insertions, 36 deletions
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qproperty.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qproperty.cpp
index 3d63abe590..ae1d2202e7 100644
--- a/src/corelib/doc/snippets/code/src_corelib_kernel_qproperty.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qproperty.cpp
@@ -160,3 +160,40 @@ int main()
#include "main.moc"
//! [4]
+
+//! [5]
+class Client{};
+
+class MyClassPrivate : public QObjectPrivate
+{
+public:
+ QList<Client> clients;
+ bool hasClientsActualCalculation() const { return clients.size() > 0; }
+ Q_OBJECT_COMPUTED_PROPERTY(MyClassPrivate, bool, hasClientsData,
+ &MyClassPrivate::hasClientsActualCalculation)
+};
+
+class MyClass : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(bool hasClients READ hasClients STORED false BINDABLE bindableHasClients)
+public:
+ QBindable<bool> bindableHasClients()
+ {
+ return QBindable<bool>(&d_func()->hasClientsData);
+ }
+ bool hasClients() const
+ {
+ return d_func()->hasClientsData.value();
+ }
+ void addClient(const Client &c)
+ {
+ Q_D(MyClass);
+ d->clients.push_back(c);
+ // notify that the value could have changed
+ d->hasClientsData.markDirty();
+ }
+private:
+ Q_DECLARE_PRIVATE(MyClass)
+};
+//! [5]
diff --git a/src/corelib/kernel/qproperty.cpp b/src/corelib/kernel/qproperty.cpp
index c985943498..f9df135d9c 100644
--- a/src/corelib/kernel/qproperty.cpp
+++ b/src/corelib/kernel/qproperty.cpp
@@ -1565,42 +1565,7 @@ QString QPropertyBindingError::description() const
See the following example.
- \code
- class Client{};
-
- class MyClassPrivate : public QObjectPrivate
- {
- public:
- QList<Client> clients;
- bool hasClientsActualCalculation() const { return clients.size() > 0; }
- Q_OBJECT_COMPUTED_PROPERTY(MyClassPrivate, bool, hasClientsData,
- &MyClassPrivate::hasClientsActualCalculation)
- };
-
- class MyClass : public QObject
- {
- // add q-object macro here (confuses qdoc if we do it here)
- Q_PROPERTY(bool hasClients READ hasClients STORED false BINDABLE bindableHasClients)
- public:
- QBindable<bool> bindableHasClients()
- {
- return QBindable<bool>(&d_func()->hasClientsData);
- }
- bool hasClients() const
- {
- return d_func()->hasClientsData.value();
- }
- void addClient(const Client &c)
- {
- Q_D(MyClass);
- d->clients.push_back(c);
- // notify that the value could have changed
- d->hasClientsData.markDirty();
- }
- private:
- Q_DECLARE_PRIVATE(MyClass)
- };
- \endcode
+ \snippet code/src_corelib_kernel_qproperty.cpp 5
The rules for getters in \l {Bindable Property Getters and Setters}
also apply for QObjectComputedProperty. Especially, the getter