diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2021-11-26 15:49:18 +0100 |
---|---|---|
committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2021-12-02 12:53:34 +0100 |
commit | 022891bcd8ae4e8de02cdef9ed281e9a31eedbc4 (patch) | |
tree | 31c3228b888f891298a75dc730eb45006f85a03b /examples/corelib/bindableproperties/subscription | |
parent | cee89e70a6011c3fcae29ad95d5fec4b2026d055 (diff) |
Document the example showing the benefits of using bindable properties
And mention the example in the bindable properties docs.
Pick-to: 6.2
Task-number: QTBUG-97655
Change-Id: I676e90dbda66c2e718c7f6c2240fac608a8653df
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'examples/corelib/bindableproperties/subscription')
5 files changed, 42 insertions, 0 deletions
diff --git a/examples/corelib/bindableproperties/subscription/main.cpp b/examples/corelib/bindableproperties/subscription/main.cpp index c987448611..6ff0c960f1 100644 --- a/examples/corelib/bindableproperties/subscription/main.cpp +++ b/examples/corelib/bindableproperties/subscription/main.cpp @@ -62,8 +62,11 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); + +//! [init] User user; Subscription subscription(&user); +//! [init] SubscriptionWindow w; @@ -106,14 +109,20 @@ int main(int argc, char *argv[]) priceDisplay->setEnabled(subscription.isValid()); // Track the price changes + +//! [connect-price-changed] QObject::connect(&subscription, &Subscription::priceChanged, [&] { priceDisplay->setText(QString::number(subscription.price())); }); +//! [connect-price-changed] +//! [connect-validity-changed] QObject::connect(&subscription, &Subscription::isValidChanged, [&] { priceDisplay->setEnabled(subscription.isValid()); }); +//! [connect-validity-changed] +//! [connect-user] QObject::connect(&user, &User::countryChanged, [&] { subscription.calculatePrice(); subscription.updateValidity(); @@ -122,6 +131,7 @@ int main(int argc, char *argv[]) QObject::connect(&user, &User::ageChanged, [&] { subscription.updateValidity(); }); +//! [connect-user] w.show(); return a.exec(); diff --git a/examples/corelib/bindableproperties/subscription/subscription.cpp b/examples/corelib/bindableproperties/subscription/subscription.cpp index 7f6da35862..20efe825f3 100644 --- a/examples/corelib/bindableproperties/subscription/subscription.cpp +++ b/examples/corelib/bindableproperties/subscription/subscription.cpp @@ -56,6 +56,8 @@ Subscription::Subscription(User *user) : m_user(user) Q_ASSERT(user); } +//! [calculate-price] + void Subscription::calculatePrice() { const auto oldPrice = m_price; @@ -65,6 +67,10 @@ void Subscription::calculatePrice() emit priceChanged(); } +//! [calculate-price] + +//! [set-duration] + void Subscription::setDuration(Duration newDuration) { if (newDuration != m_duration) { @@ -74,6 +80,10 @@ void Subscription::setDuration(Duration newDuration) } } +//! [set-duration] + +//! [calculate-discount] + double Subscription::calculateDiscount() const { switch (m_duration) { @@ -88,6 +98,10 @@ double Subscription::calculateDiscount() const return -1; } +//! [calculate-discount] + +//! [calculate-base-price] + int Subscription::basePrice() const { if (m_user->country() == User::None) @@ -96,6 +110,10 @@ int Subscription::basePrice() const return (m_user->country() == User::Norway) ? 100 : 80; } +//! [calculate-base-price] + +//! [update-validity] + void Subscription::updateValidity() { bool isValid = m_isValid; @@ -104,3 +122,5 @@ void Subscription::updateValidity() if (m_isValid != isValid) emit isValidChanged(); } + +//! [update-validity] diff --git a/examples/corelib/bindableproperties/subscription/subscription.h b/examples/corelib/bindableproperties/subscription/subscription.h index 95b840bbe5..41d052e86f 100644 --- a/examples/corelib/bindableproperties/subscription/subscription.h +++ b/examples/corelib/bindableproperties/subscription/subscription.h @@ -56,6 +56,8 @@ class User; +//! [subscription-class] + class Subscription : public QObject { Q_OBJECT @@ -88,4 +90,6 @@ private: bool m_isValid = false; }; +//! [subscription-class] + #endif // SUBSCRIPTION_H diff --git a/examples/corelib/bindableproperties/subscription/user.cpp b/examples/corelib/bindableproperties/subscription/user.cpp index af97576cc7..c2b0835330 100644 --- a/examples/corelib/bindableproperties/subscription/user.cpp +++ b/examples/corelib/bindableproperties/subscription/user.cpp @@ -50,6 +50,8 @@ #include "user.h" +//! [user-setters] + void User::setCountry(Country country) { if (m_country != country) { @@ -65,3 +67,5 @@ void User::setAge(int age) emit ageChanged(); } } + +//! [user-setters] diff --git a/examples/corelib/bindableproperties/subscription/user.h b/examples/corelib/bindableproperties/subscription/user.h index a872ecf8c8..8c9ebb1009 100644 --- a/examples/corelib/bindableproperties/subscription/user.h +++ b/examples/corelib/bindableproperties/subscription/user.h @@ -53,6 +53,8 @@ #include <QObject> +//! [user-class] + class User : public QObject { Q_OBJECT @@ -79,4 +81,6 @@ private: Country m_country = Country::None; int m_age = 0; }; + +//! [user-class] #endif // USER_H |