diff options
-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()); |