diff options
-rw-r--r-- | device.c | 5 | ||||
-rw-r--r-- | device.h | 1 | ||||
-rw-r--r-- | gtk-gui.c | 5 | ||||
-rw-r--r-- | qt-ui/models.cpp | 12 | ||||
-rw-r--r-- | qt-ui/models.h | 3 |
5 files changed, 21 insertions, 5 deletions
@@ -9,6 +9,11 @@ struct device_info *head_of_device_info_list(void) return device_info_list; } +void remove_dive_computer(const char *model, uint32_t deviceid) +{ + free(remove_device_info(model, deviceid)); +} + static int match_device_info(struct device_info *entry, const char *model, uint32_t deviceid) { return !strcmp(entry->model, model) && entry->deviceid == deviceid; @@ -20,6 +20,7 @@ extern struct device_info *get_different_device_info(const char *model, uint32_t extern struct device_info *create_device_info(const char *model, uint32_t deviceid); extern struct device_info *remove_device_info(const char *model, uint32_t deviceid); extern struct device_info *head_of_device_info_list(void); +extern void remove_dive_computer(const char *model, uint32_t deviceid); #ifdef __cplusplus } @@ -101,11 +101,6 @@ static void remember_dc(const char *model, uint32_t deviceid, const char *nickna nn_entry->nickname = strdup(nickname); } -static void remove_dc(const char *model, uint32_t deviceid) -{ - free(remove_device_info(model, deviceid)); -} - static GtkWidget *dive_profile; GtkActionGroup *action_group; diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index 6cb1fa079..868cba952 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -8,6 +8,7 @@ #include "../helpers.h" #include "../dive.h" #include "../device.h" + #include <QCoreApplication> #include <QDebug> #include <QColor> @@ -1203,7 +1204,18 @@ bool DiveComputerModel::setData(const QModelIndex& index, const QVariant& value, nnl = nnl->next; } + QByteArray v = value.toByteArray(); nnl->nickname = strdup(v.data()); // how should I free this before setting a new one? // set_dc_nickname(dive); -> should this be used instead? + + return true; +} + +void DiveComputerModel::remove(const QModelIndex& i) +{ + QByteArray model = data(index(i.row(), (int)MODEL)).toByteArray(); + uint32_t deviceid = data(index(i.row(), (int) ID)).toUInt(); + remove_dive_computer(model.data(), deviceid); + update(); } diff --git a/qt-ui/models.h b/qt-ui/models.h index 7a32998ce..5a7d2b214 100644 --- a/qt-ui/models.h +++ b/qt-ui/models.h @@ -180,6 +180,9 @@ public: virtual Qt::ItemFlags flags(const QModelIndex& index) const; virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); void update(); + +public slots: + void remove(const QModelIndex& index); private: int numRows; |