Added the code to remove a dive computer.

Added the code to remove a dive computer, plus a few fixes

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-06-07 15:25:29 -03:00
parent 478c24d797
commit 54128aa52f
5 changed files with 21 additions and 5 deletions

View file

@ -9,6 +9,11 @@ struct device_info *head_of_device_info_list(void)
return device_info_list; 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) static int match_device_info(struct device_info *entry, const char *model, uint32_t deviceid)
{ {
return !strcmp(entry->model, model) && entry->deviceid == deviceid; return !strcmp(entry->model, model) && entry->deviceid == deviceid;

View file

@ -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 *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 *remove_device_info(const char *model, uint32_t deviceid);
extern struct device_info *head_of_device_info_list(void); extern struct device_info *head_of_device_info_list(void);
extern void remove_dive_computer(const char *model, uint32_t deviceid);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -101,11 +101,6 @@ static void remember_dc(const char *model, uint32_t deviceid, const char *nickna
nn_entry->nickname = strdup(nickname); 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; static GtkWidget *dive_profile;
GtkActionGroup *action_group; GtkActionGroup *action_group;

View file

@ -8,6 +8,7 @@
#include "../helpers.h" #include "../helpers.h"
#include "../dive.h" #include "../dive.h"
#include "../device.h" #include "../device.h"
#include <QCoreApplication> #include <QCoreApplication>
#include <QDebug> #include <QDebug>
#include <QColor> #include <QColor>
@ -1203,7 +1204,18 @@ bool DiveComputerModel::setData(const QModelIndex& index, const QVariant& value,
nnl = nnl->next; nnl = nnl->next;
} }
QByteArray v = value.toByteArray(); QByteArray v = value.toByteArray();
nnl->nickname = strdup(v.data()); // how should I free this before setting a new one? nnl->nickname = strdup(v.data()); // how should I free this before setting a new one?
// set_dc_nickname(dive); -> should this be used instead? // 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();
} }

View file

@ -180,6 +180,9 @@ public:
virtual Qt::ItemFlags flags(const QModelIndex& index) const; virtual Qt::ItemFlags flags(const QModelIndex& index) const;
virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
void update(); void update();
public slots:
void remove(const QModelIndex& index);
private: private:
int numRows; int numRows;