diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-02-06 02:11:31 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-02-06 02:11:31 +0800 |
commit | 1d0dc942aaed38ce2d4c4b8c8f078dd945c7e633 (patch) | |
tree | 242254c058e60c1d67d11e5c32c8f13b8200373a | |
parent | 910c902f1c39f703bcbf56a4d98996cb7a76441b (diff) |
Interface for setting order profile
-rw-r--r-- | interchange/ord.hxx | 5 | ||||
-rw-r--r-- | ord.cxx | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/interchange/ord.hxx b/interchange/ord.hxx index 5b14d96..57b1797 100644 --- a/interchange/ord.hxx +++ b/interchange/ord.hxx @@ -39,6 +39,10 @@ namespace QInterchange { m_subtotal{.0}, m_shipping{.0}, m_totalCost{.0} {} + ~Ord() + { + if (m_data->profile) free(m_data->profile); + } int rowCount(QModelIndex const& parent = QModelIndex()) const Q_DECL_OVERRIDE; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; @@ -47,6 +51,7 @@ namespace QInterchange { double subtotal() const { return m_subtotal; } double shipping() const { return m_shipping; } double totalCost() const { return m_totalCost; } + void setProfile(QString const& profile); public slots: // void remove(unsigned int const& indices); void checkout(Member& member); @@ -71,6 +71,14 @@ namespace QInterchange { emit totalCostChanged(); } + void Ord::setProfile(QString const& profile) + { + auto orderProfile = profile.toLatin1().data(); + if (m_data->profile) free(m_data->profile); + m_data->profile = (char*)malloc(strlen(orderProfile) + 1); + strcpy(m_data->profile, orderProfile); + } + void Ord::checkout(Member& member) { interchange_ord_checkout(m_data, member.data()); |