diff options
author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-12 17:14:24 +0800 |
---|---|---|
committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-12 17:14:24 +0800 |
commit | 9f284fb7257f4968cfcd0a72b41e2e98ef51c890 (patch) | |
tree | 9dc1ea3a793ad80d2699175e7567022473c7e282 | |
parent | ac1d174658c81a0a4c867d6945a7115f9cb961ac (diff) |
Finish the user properties and connect logged signal
-rw-r--r-- | controller.cxx | 5 | ||||
m--------- | librtclient | 0 | ||||
-rw-r--r-- | user.cxx | 168 | ||||
-rw-r--r-- | user.hxx | 126 | ||||
-rw-r--r-- | worker.cxx | 2 | ||||
-rw-r--r-- | worker.hxx | 3 |
6 files changed, 209 insertions, 95 deletions
diff --git a/controller.cxx b/controller.cxx index a08e633..9d77cf4 100644 --- a/controller.cxx +++ b/controller.cxx @@ -1,5 +1,6 @@ #include <QQmlApplicationEngine> #include "worker.hxx" +#include "user.hxx" #include "controller.hxx" Controller::Controller(QObject* parent) : QObject{parent} @@ -14,6 +15,10 @@ Controller::Controller(QObject* parent) : QObject{parent} connect(appWindow, SIGNAL(logIn(QString, QString)), worker, SLOT(logIn(QString, QString))); + auto user = engine->singletonInstance<User*>(User::typeId); + connect(worker, SIGNAL(logged(rt_user*)) + , user, SLOT(update(rt_user*))); + thread.start(); } diff --git a/librtclient b/librtclient -Subproject 5fe434e35b65a42bc365404a7a6c3436a2a99a8 +Subproject 100c098d55faad03366dffad8572b2d9f75dc93 @@ -1,5 +1,14 @@ +#include "rtclient.h" #include "user.hxx" +void User::setId(QString const& id) +{ + if (m_id != id) { + m_id = id; + emit idChanged(); + } +} + void User::setName(QString const& name) { if (m_name != name) { @@ -24,14 +33,6 @@ void User::setEmailAddress(QString const& emailAddress) } } -void User::setOrganization(QString const& organization) -{ - if (m_organization != organization) { - m_organization = organization; - emit organizationChanged(); - } -} - void User::setRealName(QString const& realName) { if (m_realName != realName) { @@ -48,43 +49,11 @@ void User::setNickName(QString const& nickName) } } -void User::setLang(QString const& lang) -{ - if (m_lang != lang) { - m_lang = lang; - emit langChanged(); - } -} - -void User::setHomePhone(QString const& homePhone) -{ - if (m_homePhone != homePhone) { - m_homePhone = homePhone; - emit homePhoneChanged(); - } -} - -void User::setWorkPhone(QString const& workPhone) -{ - if (m_workPhone != workPhone) { - m_workPhone = workPhone; - emit workPhoneChanged(); - } -} - -void User::setMobilePhone(QString const& mobilePhone) -{ - if (m_mobilePhone != mobilePhone) { - m_mobilePhone = mobilePhone; - emit mobilePhoneChanged(); - } -} - -void User::setPagerPhone(QString const& pagerPhone) +void User::setOrganization(QString const& organization) { - if (m_pagerPhone != pagerPhone) { - m_pagerPhone = pagerPhone; - emit pagerPhoneChanged(); + if (m_organization != organization) { + m_organization = organization; + emit organizationChanged(); } } @@ -136,18 +105,115 @@ void User::setCountry(QString const& country) } } -void User::setTimeZone(QString const& timeZone) +void User::setHomePhone(QString const& homePhone) { - if (m_timeZone != timeZone) { - m_timeZone = timeZone; - emit timeZoneChanged(); + if (m_homePhone != homePhone) { + m_homePhone = homePhone; + emit homePhoneChanged(); } } -void User::setLoggedIn(bool isLoggedIn) +void User::setWorkPhone(QString const& workPhone) { - if (m_isLoggedIn != isLoggedIn) { - m_isLoggedIn = isLoggedIn; + if (m_workPhone != workPhone) { + m_workPhone = workPhone; + emit workPhoneChanged(); + } +} + +void User::setMobilePhone(QString const& mobilePhone) +{ + if (m_mobilePhone != mobilePhone) { + m_mobilePhone = mobilePhone; + emit mobilePhoneChanged(); + } +} + +void User::setPagerPhone(QString const& pagerPhone) +{ + if (m_pagerPhone != pagerPhone) { + m_pagerPhone = pagerPhone; + emit pagerPhoneChanged(); + } +} + +void User::setLang(QString const& lang) +{ + if (m_lang != lang) { + m_lang = lang; + emit langChanged(); + } +} + +void User::setPrivileged(bool privileged) +{ + if (m_privileged != privileged) { + m_privileged = privileged; + emit privilegedChanged(); + } +} + +void User::setDisabled(bool disabled) +{ + if (m_disabled != disabled) { + m_disabled = disabled; + emit disabledChanged(); + } +} + +void User::setLoggedIn(bool loggedIn) +{ + if (m_loggedIn != loggedIn) { + m_loggedIn = loggedIn; emit loggedInChanged(); } } + +void User::update(rt_user* user) +{ + if (user) { + m_id = user->id; + m_emailAddress = user->emailaddress; + m_realName = user->realname; + m_nickName = user->nickname; + m_gecos = user->gecos; + m_organization = user->organization; + m_address1 = user->address1; + m_address2 = user->address2; + m_city = user->city; + m_state = user->state; + m_zip = user->zip; + m_country = user->country; + m_homePhone = user->homephone; + m_workPhone = user->workphone; + m_mobilePhone = user->mobilephone; + m_pagerPhone = user->pagerphone; + m_lang = user->lang; + m_privileged = user->privileged; + m_disabled = user->disabled; + m_loggedIn = true; + rtclient_userfree(user); + } else { + m_id = ""; + m_name = ""; + m_password = ""; + m_emailAddress = ""; + m_realName = ""; + m_nickName = ""; + m_organization = ""; + m_address1 = ""; + m_address2 = ""; + m_city = ""; + m_state = ""; + m_zip = ""; + m_country = ""; + m_homePhone = ""; + m_workPhone = ""; + m_mobilePhone = ""; + m_pagerPhone = ""; + m_lang = ""; + m_privileged = false; + m_disabled = true; + m_loggedIn = false; + } +} @@ -6,115 +6,155 @@ class User : public QObject { Q_OBJECT + Q_PROPERTY(QString id READ id WRITE setId NOTIFY idChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged) Q_PROPERTY(QString emailAddress READ emailAddress WRITE setEmailAddress NOTIFY emailAddressChanged) - Q_PROPERTY(QString organization READ organization WRITE setOrganization NOTIFY organizationChanged) Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged) Q_PROPERTY(QString nickName READ nickName WRITE setNickName NOTIFY nickNameChanged) - Q_PROPERTY(QString lang READ lang WRITE setLang NOTIFY langChanged) - Q_PROPERTY(QString homePhone READ homePhone WRITE setHomePhone NOTIFY homePhoneChanged) - Q_PROPERTY(QString workPhone READ workPhone WRITE setWorkPhone NOTIFY workPhoneChanged) - Q_PROPERTY(QString mobilePhone READ mobilePhone WRITE setMobilePhone NOTIFY mobilePhoneChanged) - Q_PROPERTY(QString pagerPhone READ pagerPhone WRITE setPagerPhone NOTIFY pagerPhoneChanged) + Q_PROPERTY(QString organization READ organization WRITE setOrganization NOTIFY organizationChanged) Q_PROPERTY(QString address1 READ address1 WRITE setAddress1 NOTIFY address1Changed) Q_PROPERTY(QString address2 READ address2 WRITE setAddress2 NOTIFY address2Changed) Q_PROPERTY(QString city READ city WRITE setCity NOTIFY cityChanged) Q_PROPERTY(QString state READ state WRITE setState NOTIFY stateChanged) Q_PROPERTY(QString zip READ zip WRITE setZip NOTIFY zipChanged) Q_PROPERTY(QString country READ country WRITE setCountry NOTIFY countryChanged) - Q_PROPERTY(QString timeZone READ timeZone WRITE setTimeZone NOTIFY timeZoneChanged) - Q_PROPERTY(bool isLoggedIn READ isLoggedIn WRITE setLoggedIn NOTIFY loggedInChanged) + Q_PROPERTY(QString homePhone READ homePhone WRITE setHomePhone NOTIFY homePhoneChanged) + Q_PROPERTY(QString workPhone READ workPhone WRITE setWorkPhone NOTIFY workPhoneChanged) + Q_PROPERTY(QString mobilePhone READ mobilePhone WRITE setMobilePhone NOTIFY mobilePhoneChanged) + Q_PROPERTY(QString pagerPhone READ pagerPhone WRITE setPagerPhone NOTIFY pagerPhoneChanged) + Q_PROPERTY(QString lang READ lang WRITE setLang NOTIFY langChanged) + Q_PROPERTY(bool privileged READ privileged WRITE setPrivileged NOTIFY privilegedChanged) + Q_PROPERTY(bool disabled READ disabled WRITE setDisabled NOTIFY disabledChanged) + Q_PROPERTY(bool loggedIn READ loggedIn WRITE setLoggedIn NOTIFY loggedInChanged) public: - explicit User(bool isLoggedIn = false, QObject* parent = nullptr) : - QObject{parent}, - m_isLoggedIn{isLoggedIn} - {} + explicit User(QObject* parent = nullptr) + : QObject{parent} + , m_id{""} + , m_name{""} + , m_password{""} + , m_emailAddress{""} + , m_realName{""} + , m_nickName{""} + , m_organization{""} + , m_gecos{""} + , m_address1{""} + , m_address2{""} + , m_city{""} + , m_state{""} + , m_zip{""} + , m_country{""} + , m_homePhone{""} + , m_workPhone{""} + , m_mobilePhone{""} + , m_pagerPhone{""} + , m_contactInfo{""} + , m_comments{""} + , m_lang{""} + , m_privileged{false} + , m_disabled{true} + , m_loggedIn{false} + {} ~User() {} inline static int typeId; + QString const& id() const { return m_id; } QString const& name() const { return m_name; } QString const& password() const { return m_password; } 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& organization() const { return m_organization; } 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; } + 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& lang() const { return m_lang; } + bool privileged() const { return m_privileged; } + bool disabled() const { return m_disabled; } + bool loggedIn() const { return m_loggedIn; } + void setId(QString const& id); void setName(QString const& name); void setPassword(QString const& password); void setEmailAddress(QString const& emailAddress); - void setOrganization(QString const& organization); void setRealName(QString const& realName); void setNickName(QString const& nickName); - void setLang(QString const& lang); - void setHomePhone(QString const& homePhone); - void setWorkPhone(QString const& workPhone); - void setMobilePhone(QString const& mobilePhone); - void setPagerPhone(QString const& pagerPhone); + void setOrganization(QString const& organization); void setAddress1(QString const& address1); void setAddress2(QString const& address2); void setCity(QString const& city); void setState(QString const& state); void setZip(QString const& zip); void setCountry(QString const& country); - void setTimeZone(QString const& timeZone); - void setLoggedIn(bool isLoggedIn); + void setHomePhone(QString const& homePhone); + void setWorkPhone(QString const& workPhone); + void setMobilePhone(QString const& mobilePhone); + void setPagerPhone(QString const& pagerPhone); + void setLang(QString const& lang); + void setPrivileged(bool privileged); + void setDisabled(bool disabled); + void setLoggedIn(bool loggedIn); signals: + void idChanged(); void nameChanged(); void passwordChanged(); void emailAddressChanged(); - void organizationChanged(); void realNameChanged(); void nickNameChanged(); - void langChanged(); - void homePhoneChanged(); - void workPhoneChanged(); - void mobilePhoneChanged(); - void pagerPhoneChanged(); + void organizationChanged(); + void gecosChanged(); void address1Changed(); void address2Changed(); void cityChanged(); void stateChanged(); void zipChanged(); void countryChanged(); - void timeZoneChanged(); + void homePhoneChanged(); + void workPhoneChanged(); + void mobilePhoneChanged(); + void pagerPhoneChanged(); + void langChanged(); + void privilegedChanged(); + void disabledChanged(); void loggedInChanged(); + private slots: + void update(struct rt_user* user); + private: + QString m_id; QString m_name; QString m_password; 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_organization; + QString m_gecos; QString m_address1; QString m_address2; QString m_city; QString m_state; QString m_zip; QString m_country; - QString m_timeZone; - bool m_isLoggedIn; + QString m_homePhone; + QString m_workPhone; + QString m_mobilePhone; + QString m_pagerPhone; + QString m_contactInfo; + QString m_comments; + QString m_lang; + bool m_privileged; + bool m_disabled; + bool m_loggedIn; }; #endif // USER_HXX @@ -11,7 +11,7 @@ void Worker::logIn(QString const& name, QString const& password) rtclient_login(name.toLatin1().constData(), password.toLatin1().constData()); struct rt_user *user = NULL; rtclient_userget(&user, name.toLatin1().constData()); - if (user) rtclient_userfree(user); + if (user) emit logged(user); } void Worker::search(QString const& owner) @@ -14,6 +14,9 @@ class Worker : public QObject public slots: void logIn(QString const& name, QString const& password); void search(QString const& owner); + + signals: + void logged(struct rt_user* user); }; #endif // WORKER_HXX |