mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Actually remove cylinders and weightsystems from the data structures
The UI had only stubbed this code out. This adds the implementation of the helpers and calls them. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
d6bee060af
commit
56c58bdd24
3 changed files with 34 additions and 8 deletions
14
dive.h
14
dive.h
|
@ -155,12 +155,6 @@ typedef struct {
|
|||
const char *description; /* "integrated", "belt", "ankle" */
|
||||
} weightsystem_t;
|
||||
|
||||
extern bool cylinder_nodata(cylinder_t *cyl);
|
||||
extern bool cylinder_none(void *_data);
|
||||
extern bool weightsystem_none(void *_data);
|
||||
extern bool no_weightsystems(weightsystem_t *ws);
|
||||
extern bool weightsystems_equal(weightsystem_t *ws1, weightsystem_t *ws2);
|
||||
|
||||
extern int get_pressure_units(unsigned int mb, const char **units);
|
||||
extern double get_depth_units(unsigned int mm, int *frac, const char **units);
|
||||
extern double get_volume_units(unsigned int ml, int *frac, const char **units);
|
||||
|
@ -743,6 +737,14 @@ struct tank_info {
|
|||
int cuft, ml, psi, bar;
|
||||
};
|
||||
|
||||
extern bool cylinder_nodata(cylinder_t *cyl);
|
||||
extern bool cylinder_none(void *_data);
|
||||
extern bool weightsystem_none(void *_data);
|
||||
extern bool no_weightsystems(weightsystem_t *ws);
|
||||
extern bool weightsystems_equal(weightsystem_t *ws1, weightsystem_t *ws2);
|
||||
extern void remove_cylinder(struct dive *dive, int idx);
|
||||
extern void remove_weightsystem(struct dive *dive, int idx);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
19
equipment.c
19
equipment.c
|
@ -1267,7 +1267,26 @@ static void add_cb(GtkWidget *w, int w_idx)
|
|||
cylinder_list[w_idx].max_index++;
|
||||
gtk_widget_set_sensitive(cylinder_list[w_idx].add, cylinder_list[w_idx].max_index < MAX_CYLINDERS);
|
||||
}
|
||||
#endif /* USE_GTK_UI */
|
||||
|
||||
void remove_cylinder(struct dive *dive, int idx)
|
||||
{
|
||||
cylinder_t *cyl = dive->cylinder + idx;
|
||||
int nr = MAX_CYLINDERS - idx - 1;
|
||||
memmove(cyl, cyl + 1, nr * sizeof(*cyl));
|
||||
memset(cyl + nr, 0, sizeof(*cyl));
|
||||
}
|
||||
|
||||
void remove_weightsystem(struct dive *dive, int idx)
|
||||
{
|
||||
weightsystem_t *ws = dive->weightsystem + idx;
|
||||
int nr = MAX_WEIGHTSYSTEMS - idx - 1;
|
||||
memmove(ws, ws + 1, nr * sizeof(*ws));
|
||||
memset(ws + nr, 0, sizeof(*ws));
|
||||
}
|
||||
|
||||
|
||||
#if USE_GTK_UI
|
||||
static void del_cb(GtkButton *button, int w_idx)
|
||||
{
|
||||
int index, nr;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
#include "models.h"
|
||||
#include "../helpers.h"
|
||||
#include "../dive.h"
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QColor>
|
||||
|
@ -226,7 +227,9 @@ void CylindersModel::remove(const QModelIndex& index)
|
|||
return;
|
||||
}
|
||||
beginRemoveRows(QModelIndex(), index.row(), index.row()); // yah, know, ugly.
|
||||
// Remove code should be here.
|
||||
rows--;
|
||||
remove_cylinder(current, index.row());
|
||||
mark_divelist_changed(TRUE);
|
||||
endRemoveRows();
|
||||
}
|
||||
|
||||
|
@ -236,7 +239,9 @@ void WeightModel::remove(const QModelIndex& index)
|
|||
return;
|
||||
}
|
||||
beginRemoveRows(QModelIndex(), index.row(), index.row()); // yah, know, ugly.
|
||||
// Remove code should be here.
|
||||
rows--;
|
||||
remove_weightsystem(current, index.row());
|
||||
mark_divelist_changed(TRUE);
|
||||
endRemoveRows();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue