summaryrefslogtreecommitdiffstats
path: root/equipment.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2012-08-06 12:55:55 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-08-06 13:03:20 -0700
commit8cdf1ab59fed02d4740c13f0906dbdbc85043a53 (patch)
tree6ee8c6d2513e83a1f3a4d859a728c6ca07fd0d39 /equipment.c
parent7fe652ab5738717ba443ae9de2b8f437103fd71b (diff)
downloadsubsurface-8cdf1ab59fed02d4740c13f0906dbdbc85043a53.tar.gz
Remember the last weight used per weightsystem
With this change, if the user adds a new weightsystem to a dive, on subsequent edits the weight amount for this weightsystem no longer defaults to 0 but to the last weight that was used with this weightsystem. So when the program imports a set of dives from the divecomputer and the user starts editing them, once they enter the weight for the "integrated" weightsystem the first time, for each of the consecutive dives that same weight is the default once "integrated" is selected - which usually will be the correct amount. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'equipment.c')
-rw-r--r--equipment.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/equipment.c b/equipment.c
index b74d85b7b..9c8ee49a9 100644
--- a/equipment.c
+++ b/equipment.c
@@ -308,13 +308,15 @@ static GtkTreeIter *add_weightsystem_type(const char *desc, int weight, GtkTreeI
model = GTK_TREE_MODEL(weightsystem_model);
gtk_tree_model_foreach(model, match_desc, (void *)desc);
- if (!found_match) {
- GtkListStore *store = GTK_LIST_STORE(model);
-
- gtk_list_store_append(store, iter);
- gtk_list_store_set(store, iter,
- 0, desc,
- 1, weight,
+ if (found_match) {
+ gtk_list_store_set(GTK_LIST_STORE(model), found_match,
+ WS_WEIGHT, weight,
+ -1);
+ } else {
+ gtk_list_store_append(GTK_LIST_STORE(model), iter);
+ gtk_list_store_set(GTK_LIST_STORE(model), iter,
+ WS_DESC, desc,
+ WS_WEIGHT, weight,
-1);
return iter;
}
@@ -623,6 +625,7 @@ static void record_weightsystem_changes(weightsystem_t *ws, struct ws_widget *we
GtkComboBox *box;
int grams;
double value;
+ GtkTreeIter iter;
/* Ignore uninitialized cylinder widgets */
box = weightsystem_widget->description;
@@ -638,6 +641,7 @@ static void record_weightsystem_changes(weightsystem_t *ws, struct ws_widget *we
grams = value * 1000;
ws->weight.grams = grams;
ws->description = desc;
+ add_weightsystem_type(desc, grams, &iter);
}
/*