diff options
Diffstat (limited to 'examples/corelib/bindableproperties/subscription')
4 files changed, 14 insertions, 16 deletions
diff --git a/examples/corelib/bindableproperties/subscription/main.cpp b/examples/corelib/bindableproperties/subscription/main.cpp index 8b3f37ab7c..1f41486728 100644 --- a/examples/corelib/bindableproperties/subscription/main.cpp +++ b/examples/corelib/bindableproperties/subscription/main.cpp @@ -40,15 +40,15 @@ int main(int argc, char *argv[]) // Initialize user data QPushButton *germany = w.findChild<QPushButton *>("btnGermany"); QObject::connect(germany, &QPushButton::clicked, &user, [&] { - user.setCountry(User::Germany); + user.setCountry(User::Country::Germany); }); QPushButton *finland = w.findChild<QPushButton *>("btnFinland"); QObject::connect(finland, &QPushButton::clicked, &user, [&] { - user.setCountry(User::Finland); + user.setCountry(User::Country::Finland); }); QPushButton *norway = w.findChild<QPushButton *>("btnNorway"); QObject::connect(norway, &QPushButton::clicked, &user, [&] { - user.setCountry(User::Norway); + user.setCountry(User::Country::Norway); }); QSpinBox *ageSpinBox = w.findChild<QSpinBox *>("ageSpinBox"); @@ -65,7 +65,8 @@ int main(int argc, char *argv[]) //! [connect-price-changed] QObject::connect(&subscription, &Subscription::priceChanged, [&] { - priceDisplay->setText(QString::number(subscription.price())); + QLocale lc{QLocale::AnyLanguage, user.country()}; + priceDisplay->setText(lc.toCurrencyString(subscription.price() / subscription.duration())); }); //! [connect-price-changed] diff --git a/examples/corelib/bindableproperties/subscription/subscription.cpp b/examples/corelib/bindableproperties/subscription/subscription.cpp index 16bb6cfdd6..5d040f76d9 100644 --- a/examples/corelib/bindableproperties/subscription/subscription.cpp +++ b/examples/corelib/bindableproperties/subscription/subscription.cpp @@ -57,10 +57,10 @@ double Subscription::calculateDiscount() const int Subscription::basePrice() const { - if (m_user->country() == User::None) + if (m_user->country() == User::Country::AnyTerritory) return 0; - return (m_user->country() == User::Norway) ? 100 : 80; + return (m_user->country() == User::Country::Norway) ? 100 : 80; } //! [calculate-base-price] @@ -70,7 +70,7 @@ int Subscription::basePrice() const void Subscription::updateValidity() { bool isValid = m_isValid; - m_isValid = m_user->country() != User::None && m_user->age() > 12; + m_isValid = m_user->country() != User::Country::AnyTerritory && m_user->age() > 12; if (m_isValid != isValid) emit isValidChanged(); diff --git a/examples/corelib/bindableproperties/subscription/subscription.h b/examples/corelib/bindableproperties/subscription/subscription.h index 5fa705772b..8f0d34e948 100644 --- a/examples/corelib/bindableproperties/subscription/subscription.h +++ b/examples/corelib/bindableproperties/subscription/subscription.h @@ -15,7 +15,7 @@ class Subscription : public QObject { Q_OBJECT public: - enum Duration { Monthly = 1, Quarterly = 4, Yearly = 12 }; + enum Duration { Monthly = 1, Quarterly = 3, Yearly = 12 }; Subscription(User *user); diff --git a/examples/corelib/bindableproperties/subscription/user.h b/examples/corelib/bindableproperties/subscription/user.h index 1e16f9e901..dd32a4fe23 100644 --- a/examples/corelib/bindableproperties/subscription/user.h +++ b/examples/corelib/bindableproperties/subscription/user.h @@ -4,6 +4,7 @@ #ifndef USER_H #define USER_H +#include <QLocale> #include <QObject> //! [user-class] @@ -13,13 +14,9 @@ class User : public QObject Q_OBJECT public: - enum Country { - None, - Finland, - Germany, - Norway, - }; + using Country = QLocale::Territory; +public: Country country() const { return m_country; } void setCountry(Country country); @@ -31,8 +28,8 @@ signals: void ageChanged(); private: - Country m_country = Country::None; - int m_age = 0; + Country m_country { QLocale::AnyTerritory }; + int m_age { 0 }; }; //! [user-class] |