diff options
author | Erik Prabowo Kamal <erik@darapsa.co.id> | 2019-08-30 16:22:54 +0800 |
---|---|---|
committer | Erik Prabowo Kamal <erik@darapsa.co.id> | 2019-08-30 16:22:54 +0800 |
commit | b4f44ef2d55f42764fb599e67680f5f45bf7f20c (patch) | |
tree | aca947800f2e3b3a3eef26a1e206e5c9e10a17db | |
parent | 5607c8dbc6ba69f17b12579f7aad8cb028e33ce4 (diff) |
Revert "Made the user class members more straightforward"
This reverts commit 5607c8dbc6ba69f17b12579f7aad8cb028e33ce4.
On second thought, for now we don't need to use rtclient's user struct
yet, to be more memory efficient with the members QString
instantiations.
-rw-r--r-- | user.cxx | 127 | ||||
-rw-r--r-- | user.hxx | 57 |
2 files changed, 113 insertions, 71 deletions
@@ -1,156 +1,179 @@ -#include <cstring> #include "rtuser.h" #include "user.hxx" +void User::update(rt_user* user) +{ + if (m_isLoggedIn) { + setName(QString{user->name}); + setEmailAddress(QString{user->emailaddress}); + setOrganization(QString{user->organization}); + setRealName(QString{user->realname}); + setNickName(QString{user->nickname}); + setLang(QString{user->lang}); + setHomePhone(QString{user->homephone}); + setWorkPhone(QString{user->workphone}); + setMobilePhone(QString{user->mobilephone}); + setPagerPhone(QString{user->pagerphone}); + setAddress1(QString{user->address1}); + setAddress2(QString{user->address2}); + setCity(QString{user->city}); + setState(QString{user->state}); + setZip(QString{user->zip}); + setCountry(QString{user->country}); + setTimeZone(QString{user->timezone}); + } else { + setName(""); + setEmailAddress(""); + setOrganization(""); + setRealName(""); + setNickName(""); + setLang(""); + setHomePhone(""); + setWorkPhone(""); + setMobilePhone(""); + setPagerPhone(""); + setAddress1(""); + setAddress2(""); + setCity(""); + setState(""); + setZip(""); + setCountry(""); + setTimeZone(""); + } +} + void User::setName(QString const& name) { - auto c_name = name.toUtf8().constData(); - if (strcmp(m_user.name, c_name)) { - strcpy(m_user.name, c_name); + if (m_name != name) { + m_name = name; emit nameChanged(); } } void User::setEmailAddress(QString const& emailAddress) { - auto c_emailAddress = emailAddress.toUtf8().constData(); - if (strcmp(m_user.emailaddress, c_emailAddress)) { - strcpy(m_user.emailaddress, c_emailAddress); + if (m_emailAddress != emailAddress) { + m_emailAddress = emailAddress; emit emailAddressChanged(); } } void User::setOrganization(QString const& organization) { - auto c_organization = organization.toUtf8().constData(); - if (strcmp(m_user.organization, c_organization)) { - strcpy(m_user.organization, c_organization); + if (m_organization != organization) { + m_organization = organization; emit organizationChanged(); } } void User::setRealName(QString const& realName) { - auto c_realName = realName.toUtf8().constData(); - if (strcmp(m_user.realname, c_realName)) { - strcpy(m_user.realname, c_realName); + if (m_realName != realName) { + m_realName = realName; emit realNameChanged(); } } void User::setNickName(QString const& nickName) { - auto c_nickName = nickName.toUtf8().constData(); - if (strcmp(m_user.nickname, c_nickName)) { - strcpy(m_user.nickname, c_nickName); + if (m_nickName != nickName) { + m_nickName = nickName; emit nickNameChanged(); } } void User::setLang(QString const& lang) { - auto c_lang = lang.toUtf8().constData(); - if (strcmp(m_user.lang, c_lang)) { - strcpy(m_user.lang, c_lang); + if (m_lang != lang) { + m_lang = lang; emit langChanged(); } } void User::setHomePhone(QString const& homePhone) { - auto c_homePhone = homePhone.toUtf8().constData(); - if (strcmp(m_user.homephone, c_homePhone)) { - strcpy(m_user.homephone, c_homePhone); + if (m_homePhone != homePhone) { + m_homePhone = homePhone; emit homePhoneChanged(); } } void User::setWorkPhone(QString const& workPhone) { - auto c_workPhone = workPhone.toUtf8().constData(); - if (strcmp(m_user.workphone, c_workPhone)) { - strcpy(m_user.workphone, c_workPhone); + if (m_workPhone != workPhone) { + m_workPhone = workPhone; emit workPhoneChanged(); } } void User::setMobilePhone(QString const& mobilePhone) { - auto c_mobilePhone = mobilePhone.toUtf8().constData(); - if (strcmp(m_user.mobilephone, c_mobilePhone)) { - strcpy(m_user.mobilephone, c_mobilePhone); + if (m_mobilePhone != mobilePhone) { + m_mobilePhone = mobilePhone; emit mobilePhoneChanged(); } } void User::setPagerPhone(QString const& pagerPhone) { - auto c_pagerPhone = pagerPhone.toUtf8().constData(); - if (strcmp(m_user.pagerphone, c_pagerPhone)) { - strcpy(m_user.pagerphone, c_pagerPhone); + if (m_pagerPhone != pagerPhone) { + m_pagerPhone = pagerPhone; emit pagerPhoneChanged(); } } void User::setAddress1(QString const& address1) { - auto c_address1 = address1.toUtf8().constData(); - if (strcmp(m_user.address1, c_address1)) { - strcpy(m_user.address1, c_address1); + if (m_address1 != address1) { + m_address1 = address1; emit address1Changed(); } } void User::setAddress2(QString const& address2) { - auto c_address2 = address2.toUtf8().constData(); - if (strcmp(m_user.address2, c_address2)) { - strcpy(m_user.address2, c_address2); + if (m_address2 != address2) { + m_address2 = address2; emit address2Changed(); } } void User::setCity(QString const& city) { - auto c_city = city.toUtf8().constData(); - if (strcmp(m_user.city, c_city)) { - strcpy(m_user.city, c_city); + if (m_city != city) { + m_city = city; emit cityChanged(); } } void User::setState(QString const& state) { - auto c_state = state.toUtf8().constData(); - if (strcmp(m_user.state, c_state)) { - strcpy(m_user.state, c_state); + if (m_state != state) { + m_state = state; emit stateChanged(); } } void User::setZip(QString const& zip) { - auto c_zip = zip.toUtf8().constData(); - if (strcmp(m_user.zip, c_zip)) { - strcpy(m_user.zip, c_zip); + if (m_zip != zip) { + m_zip = zip; emit zipChanged(); } } void User::setCountry(QString const& country) { - auto c_country = country.toUtf8().constData(); - if (strcmp(m_user.country, c_country)) { - strcpy(m_user.country, c_country); + if (m_country != country) { + m_country = country; emit countryChanged(); } } void User::setTimeZone(QString const& timeZone) { - auto c_timeZone = timeZone.toUtf8().constData(); - if (strcmp(m_user.timezone, c_timeZone)) { - strcpy(m_user.timezone, c_timeZone); + if (m_timeZone != timeZone) { + m_timeZone = timeZone; emit timeZoneChanged(); } } @@ -2,7 +2,8 @@ #define USER_HXX #include <QObject> -#include "rtuser.h" + +struct rt_user; class User : public QObject { @@ -33,23 +34,25 @@ class User : public QObject {} ~User() {} - QString const name() const { return QString{m_user.name}; } - QString const emailAddress() const { return QString{m_user.emailaddress}; } - QString const organization() const { return QString{m_user.organization}; } - QString const realName() const { return QString{m_user.realname}; } - QString const nickName() const { return QString{m_user.nickname}; } - QString const lang() const { return QString{m_user.lang}; } - QString const homePhone() const { return QString{m_user.homephone}; } - QString const workPhone() const { return QString{m_user.workphone}; } - QString const mobilePhone() const { return QString{m_user.mobilephone}; } - QString const pagerPhone() const { return QString{m_user.pagerphone}; } - QString const address1() const { return QString{m_user.address1}; } - QString const address2() const { return QString{m_user.address2}; } - QString const city() const { return QString{m_user.city}; } - QString const state() const { return QString{m_user.state}; } - QString const zip() const { return QString{m_user.zip}; } - QString const country() const { return QString{m_user.country}; } - QString const timeZone() const { return QString{m_user.timezone}; } + Q_INVOKABLE void update(rt_user* user); + + QString const& name() const { return m_name; } + QString const& emailAddress() const { return m_emailAddress; } + QString const& organization() const { return m_organization; } + QString const& realName() const { return m_realName; } + QString const& nickName() const { return m_nickName; } + QString const& lang() const { return m_lang; } + QString const& homePhone() const { return m_homePhone; } + QString const& workPhone() const { return m_workPhone; } + QString const& mobilePhone() const { return m_mobilePhone; } + QString const& pagerPhone() const { return m_pagerPhone; } + QString const& address1() const { return m_address1; } + QString const& address2() const { return m_address2; } + QString const& city() const { return m_city; } + QString const& state() const { return m_state; } + QString const& zip() const { return m_zip; } + QString const& country() const { return m_country; } + QString const& timeZone() const { return m_timeZone; } bool isLoggedIn() const { return m_isLoggedIn; } void setName(QString const& name); @@ -92,7 +95,23 @@ class User : public QObject void loggedInChanged(); private: - rt_user m_user; + QString m_name; + QString m_emailAddress; + QString m_organization; + QString m_realName; + QString m_nickName; + QString m_lang; + QString m_homePhone; + QString m_workPhone; + QString m_mobilePhone; + QString m_pagerPhone; + QString m_address1; + QString m_address2; + QString m_city; + QString m_state; + QString m_zip; + QString m_country; + QString m_timeZone; bool m_isLoggedIn; }; |