diff options
| author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-10-05 18:09:48 +0800 | 
|---|---|---|
| committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-10-05 18:09:48 +0800 | 
| commit | 61e8ac95e621544b32ae324d7aec44b4e15bc81d (patch) | |
| tree | f8526bf6e34f226c1bce1969a07b97903cffa258 /qicclient | |
| parent | 5d36cbe8062af072958c37bb9c71b1e158074d3a (diff) | |
Separate the product structure
so the catalog doesn't have to included when not needed.
Diffstat (limited to 'qicclient')
| -rw-r--r-- | qicclient/catalog.hxx | 43 | ||||
| -rw-r--r-- | qicclient/client.hxx | 1 | ||||
| -rw-r--r-- | qicclient/product.hxx | 40 | 
3 files changed, 42 insertions, 42 deletions
| diff --git a/qicclient/catalog.hxx b/qicclient/catalog.hxx index 782c864..d539149 100644 --- a/qicclient/catalog.hxx +++ b/qicclient/catalog.hxx @@ -2,56 +2,17 @@  #define QICCLIENT_CATALOG_HXX  #include <QAbstractListModel> -#include <icclient/product.h> +#include <qicclient/product.hxx>  struct icclient_catalog;  namespace ICClient { -	class Product -	{ -		public: -			Product(icclient_product* product) : m_sku{product->sku} -			{ -				if (product->description) -					m_description -						= QString{product->description}; -				if (product->comment) -					m_comment = QString{product->comment}; -				if (product->image) -					m_image = QString{product->image}; -				m_price = product->price; -			} -			QString const& sku() const { return m_sku; } -			QString const& description() const -			{ -				return m_description; -			} -			QString const& comment() const { return m_comment; } -			QString const& image() const { return m_image; } -			double price() const { return m_price; } - -		private: -			QString m_sku; -			QString m_description; -			QString m_comment; -			QString m_image; -			double m_price; -	}; -  	class Catalog : public QAbstractListModel  	{  		Q_OBJECT  		public: -			enum ProductRoles { -				SkuRole = Qt::UserRole + 1, -				DescriptionRole, -				CommentRole, -				ImageRole, -				PriceRole -			}; -  			explicit Catalog(QObject* parent = nullptr)  				: QAbstractListModel{parent} {} @@ -71,8 +32,8 @@ namespace ICClient {  			QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;  		private: -			QList<Product> products;  			void addProduct(Product const& product); +			QList<Product> products;  	};  } diff --git a/qicclient/client.hxx b/qicclient/client.hxx index bccd665..9af124d 100644 --- a/qicclient/client.hxx +++ b/qicclient/client.hxx @@ -2,7 +2,6 @@  #define QICCLIENT_CLIENT_HXX  #include <QObject> -#include <icclient/product.h>  struct icclient_catalog;  struct icclient_order; diff --git a/qicclient/product.hxx b/qicclient/product.hxx new file mode 100644 index 0000000..7271fe9 --- /dev/null +++ b/qicclient/product.hxx @@ -0,0 +1,40 @@ +#ifndef QICCLIENT_PRODUCT_HXX +#define QICCLIENT_PRODUCT_HXX + +#include <icclient/product.h> + +namespace ICClient { + +	struct Product +	{ +		enum ProductRoles { +			SkuRole = Qt::UserRole + 1, +			DescriptionRole, +			CommentRole, +			ImageRole, +			PriceRole +		}; + +		Product(icclient_product* product) +			: sku{product->sku} +			, price{product->price} +		{ +			if (product->description) +				description +					= QString{product->description}; +			if (product->comment) +				comment = QString{product->comment}; +			if (product->image) +				image = QString{product->image}; +		} + +		QString sku; +		QString description; +		QString comment; +		QString image; +		double price; +	}; + +} + +#endif // QICCLIENT_PRODUCT_HXX |