summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2023-02-06 02:11:31 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2023-02-06 02:11:31 +0800
commit1d0dc942aaed38ce2d4c4b8c8f078dd945c7e633 (patch)
tree242254c058e60c1d67d11e5c32c8f13b8200373a
parent910c902f1c39f703bcbf56a4d98996cb7a76441b (diff)
Interface for setting order profile
-rw-r--r--interchange/ord.hxx5
-rw-r--r--ord.cxx8
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);
diff --git a/ord.cxx b/ord.cxx
index 8d76dce..35b496c 100644
--- a/ord.cxx
+++ b/ord.cxx
@@ -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());