summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interchange/ord.hxx3
-rw-r--r--ord.cxx14
2 files changed, 13 insertions, 4 deletions
diff --git a/interchange/ord.hxx b/interchange/ord.hxx
index a0cb885..422d634 100644
--- a/interchange/ord.hxx
+++ b/interchange/ord.hxx
@@ -48,7 +48,8 @@ namespace QInterchange {
void setProfile(QString const& profile);
public slots:
void remove(const QString &name,
- const QString &nextPage);
+ const QString &orderPage = "",
+ const QString &nextPage = "");
void checkout(const Member& member);
signals:
void rowCountChanged();
diff --git a/ord.cxx b/ord.cxx
index e5463ee..e4f4ec0 100644
--- a/ord.cxx
+++ b/ord.cxx
@@ -6,7 +6,7 @@
namespace QInterchange {
static Ord* ord;
- static char *item_name, *next_page;
+ static char *item_name, *order_page, *next_page;
static char* order_profile;
static char *fname, *lname, *address1, *address2, *city, *state, *zip,
*phone_day, *email;
@@ -89,19 +89,27 @@ namespace QInterchange {
if (this->profile != profile) this->profile = profile;
}
- void Ord::remove(const QString &name, const QString &nextPage)
+ void Ord::remove(const QString &name, const QString &orderPage,
+ const QString &nextPage)
{
item_name = (char *)malloc(name.size() + 1);
strcpy(item_name, name.toLatin1().constData());
+ if (orderPage.isEmpty())
+ order_page = nullptr;
+ else {
+ order_page = (char *)malloc(orderPage.size() + 1);
+ strcpy(order_page, orderPage.toLatin1().constData());
+ }
if (nextPage.isEmpty())
next_page = nullptr;
else {
next_page = (char *)malloc(nextPage.size() + 1);
strcpy(next_page, nextPage.toLatin1().constData());
}
- interchange_ord_remove(item_name, next_page,
+ interchange_ord_remove(item_name, order_page, next_page,
[](interchange_response *response) {
free(item_name);
+ if (order_page) free(order_page);
if (next_page) free(next_page);
ord->emitRemoval(QString{response->data});
interchange_free_response(response);