diff options
-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; }; |