diff options
| author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-10-01 06:52:42 +0800 | 
|---|---|---|
| committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-10-01 06:52:42 +0800 | 
| commit | d82340151ce274930f42701f5a9a0c4db702cba4 (patch) | |
| tree | ccae79c6970d5650768b22b88a37aa18510e4805 | |
| parent | 451437641aee7771b97ac5e54e1543a2510ce17a (diff) | |
| parent | 0f63d288930a71e9705ce1b48a5e0036a9161b52 (diff) | |
Merge branch 'master' into cmake
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | catalog.cxx | 4 | ||||
| -rw-r--r-- | client.cxx | 9 | ||||
| m--------- | libicclient | 10 | ||||
| -rw-r--r-- | qicclient/catalog.hxx | 6 | ||||
| -rw-r--r-- | qicclient/client.hxx | 43 | ||||
| -rw-r--r-- | qicclient/user.hxx | 147 | ||||
| -rw-r--r-- | user.cxx | 235 | 
8 files changed, 433 insertions, 23 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index 6172f3f..7d4c66b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,8 @@ set(CMAKE_AUTOMOC ON)  find_package(Qt5Core)  add_library(${PROJECT_NAME} STATIC +	user.cxx +	catalog.cxx  	client.cxx)  target_link_libraries(${PROJECT_NAME} Qt5::Core) diff --git a/catalog.cxx b/catalog.cxx index 17702bc..8664cdc 100644 --- a/catalog.cxx +++ b/catalog.cxx @@ -51,11 +51,9 @@ namespace ICClient {  	void Catalog::update(icclient_catalog* catalog)  	{ -		if (catalog) { +		if (catalog)  			for (size_t i = 0; i < catalog->length; i++)  				addProduct(Product{catalog->products[i]}); -			icclient_product_freecatalog(catalog); -		}  		emit updated();  	} @@ -1,3 +1,4 @@ +#include <cstddef>  #include <icclient/client.h>  #include "qicclient/client.hxx" @@ -13,11 +14,11 @@ namespace ICClient {  		icclient_cleanup();  	} -	void Client::productAll(icclient_catalog** catalogptr -			, size_t (*callback)(void*, size_t, size_t, void*)) +	void Client::allProducts(size_t (*handler)(void*, size_t, size_t, void*))  	{ -		icclient_product_all(catalogptr, callback); -		emit gotProductAll(*catalogptr); +		icclient_catalog* catalog = nullptr; +		icclient_allproducts(handler, &catalog); +		emit gotAllProducts(catalog);  	}  	void Client::logIn(QString const& username, QString const& password) diff --git a/libicclient b/libicclient -Subproject de7fefc270ef3fd8552773e8e6424ad5885b306 +Subproject 685d975434d9311e5afebe9f933509f8bb2ad61 diff --git a/qicclient/catalog.hxx b/qicclient/catalog.hxx index 27b4c8e..782c864 100644 --- a/qicclient/catalog.hxx +++ b/qicclient/catalog.hxx @@ -61,15 +61,15 @@ namespace ICClient {  					, int role = Qt::DisplayRole  					) const Q_DECL_OVERRIDE; +		public slots: +			void update(icclient_catalog* catalog); +  		signals:  			void updated();  		protected:  			QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; -		private slots: -			void update(icclient_catalog* catalog); -  		private:  			QList<Product> products;  			void addProduct(Product const& product); diff --git a/qicclient/client.hxx b/qicclient/client.hxx index 27ba2af..bccd665 100644 --- a/qicclient/client.hxx +++ b/qicclient/client.hxx @@ -1,10 +1,11 @@ -#ifndef QRTCLIENT_CLIENT_HXX -#define QRTCLIENT_CLIENT_HXX +#ifndef QICCLIENT_CLIENT_HXX +#define QICCLIENT_CLIENT_HXX  #include <QObject>  #include <icclient/product.h>  struct icclient_catalog; +struct icclient_order;  namespace ICClient { @@ -16,21 +17,47 @@ namespace ICClient {  			Client(char const* url, char const* certificate = nullptr);  			~Client(); -			void productAll(icclient_catalog** catalogptr -					, size_t (*callback)(void* contents +			void allProducts(size_t (*handler)(void* contents  						, size_t size, size_t nmemb  						, void* userdata));  		public slots: -			void logIn(QString const& username, QString const& password); +			/* +			void order(QString const& sku); +			void remove(unsigned int const& indices); +			void checkout(); +			*/ +			void logIn(QString const& username +					, QString const& password); +		/* +			void account(QString const& firstName +					, QString const& lastName +					, QString const& address1 +					, QString const& address2 +					, QString const& city +					, QString const& state +					, QString const& zip +					, QString const& email +					, QString const& phoneDay); +			void changePassword(QString const& passwordOld +					, QString const& password +					, QString const& verify); +					*/  			void logOut(); +			/* +			void newItem(QString const& description +					, QString const& comment, +					QString const& price +					, QString const& imagePath); +					*/  		signals: -			void gotProductAll(icclient_catalog* catalog); -			void loggedIn(QString const& username); +			void gotAllProducts(icclient_catalog* catalog); +			void ordered(icclient_order* order); +			void loggedIn(QString const& userName);  			void loggedOut();  	};  } -#endif // QRTCLIENT_CLIENT_HXX +#endif // QICCLIENT_CLIENT_HXX diff --git a/qicclient/user.hxx b/qicclient/user.hxx new file mode 100644 index 0000000..b554cba --- /dev/null +++ b/qicclient/user.hxx @@ -0,0 +1,147 @@ +#ifndef QICCLIENT_USER_HXX +#define QICCLIENT_USER_HXX + +#include <QObject> +#include <icclient/member.h> + +struct icclient_user; + +namespace ICClient { + +	class User : public QObject +	{ +		Q_OBJECT +		Q_PROPERTY(QString userName READ userName WRITE setUserName NOTIFY userNameChanged) +		Q_PROPERTY(QString userNick READ userNick WRITE setUserNick NOTIFY userNickChanged) +		Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged) +		Q_PROPERTY(QString expiration READ expiration WRITE setExpiration NOTIFY expirationChanged) +		Q_PROPERTY(QString acl READ acl WRITE setAcl NOTIFY aclChanged) +		Q_PROPERTY(QString modTime READ modTime WRITE setModTime NOTIFY modTimeChanged) +		Q_PROPERTY(QString sNickName READ sNickName WRITE setSNickName NOTIFY sNickNameChanged) +		Q_PROPERTY(QString company READ company WRITE setCompany NOTIFY companyChanged) +		Q_PROPERTY(QString fName READ fName WRITE setFName NOTIFY fNameChanged) +		Q_PROPERTY(QString lName READ lName WRITE setLName NOTIFY lNameChanged) +		Q_PROPERTY(QString address1 READ address1 WRITE setAddress1 NOTIFY address1Changed) +		Q_PROPERTY(QString address2 READ address2 WRITE setAddress2 NOTIFY address2Changed) +		Q_PROPERTY(QString address3 READ address3 WRITE setAddress3 NOTIFY address3Changed) +		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 phoneDay READ phoneDay WRITE setPhoneDay NOTIFY phoneDayChanged) +		Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged) + +		public: +			explicit User(QObject* parent = nullptr) +				: QObject{parent} +				, m_userName{""} +				, m_userNick{""} +				, m_password{""} +				, m_expiration{""} +				, m_acl{""} +				, m_modTime{""} +				, m_sNickName{""} +				, m_company{""} +				, m_fName{""} +				, m_lName{""} +				, m_address1{""} +				, m_address2{""} +				, m_address3{""} +				, m_city{""} +				, m_state{""} +				, m_zip{""} +				, m_country{""} +				, m_phoneDay{""} +				, m_email{""} +			{} +			~User() {} + +			QString const& userName() const { return m_userName; } +			QString const& userNick() const { return m_userNick; } +			QString const& password() const { return m_password; } +			QString const& expiration() const { return m_expiration; } +			QString const& acl() const { return m_acl; } +			QString const& modTime() const { return m_modTime; } +			QString const& sNickName() const { return m_sNickName; } +			QString const& company() const { return m_company; } +			QString const& fName() const { return m_fName; } +			QString const& lName() const { return m_lName; } +			QString const& address1() const { return m_address1; } +			QString const& address2() const { return m_address2; } +			QString const& address3() const { return m_address3; } +			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& phoneDay() const { return m_phoneDay; } +			QString const& email() const { return m_email; } + +			void setUserName(QString const& userName); +			void setUserNick(QString const& userNick); +			void setPassword(QString const& password); +			void setExpiration(QString const& expiration); +			void setAcl(QString const& acl); +			void setModTime(QString const& modTime); +			void setSNickName(QString const& sNickName); +			void setCompany(QString const& company); +			void setFName(QString const& fName); +			void setLName(QString const& lName); +			void setAddress1(QString const& address1); +			void setAddress2(QString const& address2); +			void setAddress3(QString const& address3); +			void setCity(QString const& city); +			void setState(QString const& state); +			void setZip(QString const& zip); +			void setCountry(QString const& country); +			void setPhoneDay(QString const& phoneDay); +			void setEmail(QString const& email); + +		public slots: +			void update(icclient_user* user); + +		signals: +			void userNameChanged(); +			void userNickChanged(); +			void passwordChanged(); +			void expirationChanged(); +			void aclChanged(); +			void modTimeChanged(); +			void sNickNameChanged(); +			void companyChanged(); +			void fNameChanged(); +			void lNameChanged(); +			void address1Changed(); +			void address2Changed(); +			void address3Changed(); +			void cityChanged(); +			void stateChanged(); +			void zipChanged(); +			void countryChanged(); +			void phoneDayChanged(); +			void emailChanged(); + +		private: +			QString m_userName; +			QString m_userNick; +			QString m_password; +			QString m_expiration; +			QString m_acl; +			QString m_modTime; +			QString m_sNickName; +			QString m_company; +			QString m_fName; +			QString m_lName; +			QString m_address1; +			QString m_address2; +			QString m_address3; +			QString m_city; +			QString m_state; +			QString m_zip; +			QString m_country; +			QString m_phoneDay; +			QString m_email; +	}; + +} + +#endif // QICCLIENT_USER_HXX diff --git a/user.cxx b/user.cxx new file mode 100644 index 0000000..2834744 --- /dev/null +++ b/user.cxx @@ -0,0 +1,235 @@ +#include <cstddef> +#include <icclient/client.h> +#include "qicclient/user.hxx" + +namespace ICClient { + +	void User::setUserName(QString const& UserName) +	{ +		if (m_userName != UserName) { +			m_userName = UserName; +			emit userNameChanged(); +		} +	} + +	void User::setUserNick(QString const& UserNick) +	{ +		if (m_userNick != UserNick) { +			m_userNick = UserNick; +			emit userNickChanged(); +		} +	} + +	void User::setPassword(QString const& password) +	{ +		if (m_password != password) { +			m_password = password; +			emit passwordChanged(); +		} +	} + +	void User::setExpiration(QString const& expiration) +	{ +		if (m_expiration != expiration) { +			m_expiration = expiration; +			emit expirationChanged(); +		} +	} + +	void User::setAcl(QString const& acl) +	{ +		if (m_acl != acl) { +			m_acl = acl; +			emit aclChanged(); +		} +	} + +	void User::setModTime(QString const& modTime) +	{ +		if (m_modTime != modTime) { +			m_modTime = modTime; +			emit modTimeChanged(); +		} +	} + +	void User::setSNickName(QString const& sNickName) +	{ +		if (m_sNickName != sNickName) { +			m_sNickName = sNickName; +			emit sNickNameChanged(); +		} +	} + +	void User::setCompany(QString const& company) +	{ +		if (m_company != company) { +			m_company = company; +			emit companyChanged(); +		} +	} + +	void User::setFName(QString const& fName) +	{ +		if (m_fName != fName) { +			m_fName = fName; +			emit fNameChanged(); +		} +	} + +	void User::setLName(QString const& lName) +	{ +		if (m_lName != lName) { +			m_lName = lName; +			emit lNameChanged(); +		} +	} + +	void User::setAddress1(QString const& address1) +	{ +		if (m_address1 != address1) { +			m_address1 = address1; +			emit address1Changed(); +		} +	} + +	void User::setAddress2(QString const& address2) +	{ +		if (m_address2 != address2) { +			m_address2 = address2; +			emit address2Changed(); +		} +	} + +	void User::setAddress3(QString const& address3) +	{ +		if (m_address3 != address3) { +			m_address3 = address3; +			emit address3Changed(); +		} +	} + +	void User::setCity(QString const& city) +	{ +		if (m_city != city) { +			m_city = city; +			emit cityChanged(); +		} +	} + +	void User::setState(QString const& state) +	{ +		if (m_state != state) { +			m_state = state; +			emit stateChanged(); +		} +	} + +	void User::setZip(QString const& zip) +	{ +		if (m_zip != zip) { +			m_zip = zip; +			emit zipChanged(); +		} +	} + +	void User::setCountry(QString const& country) +	{ +		if (m_country != country) { +			m_country = country; +			emit countryChanged(); +		} +	} + +	void User::setPhoneDay(QString const& phoneDay) +	{ +		if (m_phoneDay != phoneDay) { +			m_phoneDay = phoneDay; +			emit phoneDayChanged(); +		} +	} + +	void User::setEmail(QString const& email) +	{ +		if (m_email != email) { +			m_email = email; +			emit emailChanged(); +		} +	} + +	void User::update(icclient_user* user) +	{ +		if (user->username) +			m_userName = user->username; +		else +			m_userName = ""; +		if (user->usernick) +			m_userNick = user->usernick; +		else +			m_userNick = ""; +		if (user->fname) +			m_fName = user->fname; +		else +			m_fName = ""; +		if (user->lname) +			m_lName = user->lname; +		else +			m_lName = ""; +		if (user->address1) +			m_address1 = user->address1; +		else +			m_address1 = ""; +		if (user->address2) +			m_address2 = user->address2; +		else +			m_address2 = ""; +		if (user->address3) +			m_address3 = user->address3; +		else +			m_address3 = ""; +		if (user->city) +			m_city = user->city; +		else +			m_city = ""; +		if (user->state) +			m_state = user->state; +		else +			m_state = ""; +		if (user->zip) +			m_zip = user->zip; +		else +			m_zip = ""; +		if (user->country) +			m_country = user->country; +		else +			m_country = ""; +		if (user->phone_day) +			m_phoneDay = user->phone_day; +		else +			m_phoneDay = ""; +		if (user->email) +			m_email = user->email; +		else +			m_email = ""; + +		emit userNameChanged(); +		emit userNickChanged(); +		emit passwordChanged(); +		emit expirationChanged(); +		emit aclChanged(); +		emit modTimeChanged(); +		emit sNickNameChanged(); +		emit companyChanged(); +		emit fNameChanged(); +		emit lNameChanged(); +		emit address1Changed(); +		emit address2Changed(); +		emit address3Changed(); +		emit cityChanged(); +		emit stateChanged(); +		emit zipChanged(); +		emit countryChanged(); +		emit phoneDayChanged(); +		emit emailChanged(); +	} + +} |