summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user.cxx127
-rw-r--r--user.hxx57
2 files changed, 113 insertions, 71 deletions
diff --git a/user.cxx b/user.cxx
index 76b44e1..0983874 100644
--- a/user.cxx
+++ b/user.cxx
@@ -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();
}
}
diff --git a/user.hxx b/user.hxx
index 98d5f68..1cac5fe 100644
--- a/user.hxx
+++ b/user.hxx
@@ -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;
};