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