summaryrefslogtreecommitdiffstats
path: root/equipment.c
diff options
context:
space:
mode:
Diffstat (limited to 'equipment.c')
-rw-r--r--equipment.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/equipment.c b/equipment.c
index ccfeb1270..71639c9d1 100644
--- a/equipment.c
+++ b/equipment.c
@@ -309,13 +309,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 if (desc && desc[0]) {
+ 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;
}
@@ -624,6 +626,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;
@@ -639,6 +642,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);
}
/*
@@ -745,8 +749,6 @@ static struct ws_info {
const char *name;
int grams;
} ws_info[100] = {
- /* Need an empty entry for the no weight system case */
- { "", },
{ "integrated", 0 },
{ "belt", 0 },
{ "ankle", 0 },