diff options
Diffstat (limited to 'examples/corelib/bindableproperties/bindablesubscription')
4 files changed, 13 insertions, 15 deletions
diff --git a/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.cpp b/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.cpp index 14b28b3fae..e9c57a2d29 100644 --- a/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.cpp +++ b/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.cpp @@ -60,7 +60,7 @@ BindableSubscription::BindableSubscription(BindableUser *user) : m_user(user) m_price.setBinding([this] { return qRound(calculateDiscount() * m_duration * basePrice()); }); m_isValid.setBinding([this] { - return m_user->country() != BindableUser::None && m_user->age() > 12; + return m_user->country() != BindableUser::Country::AnyCountry && m_user->age() > 12; }); } @@ -91,8 +91,8 @@ double BindableSubscription::calculateDiscount() const int BindableSubscription::basePrice() const { - if (m_user->country() == BindableUser::None) + if (m_user->country() == BindableUser::Country::AnyCountry) return 0; - return (m_user->country() == BindableUser::Norway) ? 100 : 80; + return (m_user->country() == BindableUser::Country::Norway) ? 100 : 80; } diff --git a/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.h b/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.h index 763864d627..5fab4bc91f 100644 --- a/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.h +++ b/examples/corelib/bindableproperties/bindablesubscription/bindablesubscription.h @@ -61,7 +61,7 @@ class BindableUser; class BindableSubscription { public: - enum Duration { Monthly = 1, Quarterly = 4, Yearly = 12 }; + enum Duration { Monthly = 1, Quarterly = 3, Yearly = 12 }; BindableSubscription(BindableUser *user); BindableSubscription(const BindableSubscription &) = delete; diff --git a/examples/corelib/bindableproperties/bindablesubscription/bindableuser.h b/examples/corelib/bindableproperties/bindablesubscription/bindableuser.h index 65541e6ac1..d2ab4a2d42 100644 --- a/examples/corelib/bindableproperties/bindablesubscription/bindableuser.h +++ b/examples/corelib/bindableproperties/bindablesubscription/bindableuser.h @@ -51,6 +51,7 @@ #ifndef BINDABLEUSER_H #define BINDABLEUSER_H +#include <QLocale> #include <QProperty> //! [bindable-user-class] @@ -58,13 +59,9 @@ class BindableUser { public: - enum Country { - None, - Finland, - Germany, - Norway, - }; + using Country = QLocale::Territory; +public: BindableUser() = default; BindableUser(const BindableUser &) = delete; @@ -77,7 +74,7 @@ public: QBindable<int> bindableAge() { return &m_age; } private: - QProperty<Country> m_country { None }; + QProperty<Country> m_country { QLocale::AnyTerritory }; QProperty<int> m_age { 0 }; }; diff --git a/examples/corelib/bindableproperties/bindablesubscription/main.cpp b/examples/corelib/bindableproperties/bindablesubscription/main.cpp index df935679ad..86f7149648 100644 --- a/examples/corelib/bindableproperties/bindablesubscription/main.cpp +++ b/examples/corelib/bindableproperties/bindablesubscription/main.cpp @@ -84,15 +84,15 @@ int main(int argc, char *argv[]) // Initialize user data QPushButton *germany = w.findChild<QPushButton *>("btnGermany"); QObject::connect(germany, &QPushButton::clicked, [&] { - user.setCountry(BindableUser::Germany); + user.setCountry(BindableUser::Country::Germany); }); QPushButton *finland = w.findChild<QPushButton *>("btnFinland"); QObject::connect(finland, &QPushButton::clicked, [&] { - user.setCountry(BindableUser::Finland); + user.setCountry(BindableUser::Country::Finland); }); QPushButton *norway = w.findChild<QPushButton *>("btnNorway"); QObject::connect(norway, &QPushButton::clicked, [&] { - user.setCountry(BindableUser::Norway); + user.setCountry(BindableUser::Country::Norway); }); QSpinBox *ageSpinBox = w.findChild<QSpinBox *>("ageSpinBox"); @@ -105,7 +105,8 @@ int main(int argc, char *argv[]) // Track price changes //! [update-ui] auto priceChangeHandler = subscription.bindablePrice().subscribe([&] { - priceDisplay->setText(QString::number(subscription.price())); + QLocale lc{QLocale::AnyLanguage, user.country()}; + priceDisplay->setText(lc.toCurrencyString(subscription.price() / subscription.duration())); }); auto priceValidHandler = subscription.bindableIsValid().subscribe([&] { |