X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=equipment.c;h=165b9d77cdab94326341e214fb15c54cdf1b9866;hb=77a903a6bb26d60e1736f7d5c118b598916b37f2;hp=b74d85b7b6509ab910620c3c2ffe9d8b2e91f099;hpb=698892329a3f981ff762300427bb43f34b553baf;p=ext%2Fsubsurface.git diff --git a/equipment.c b/equipment.c index b74d85b..165b9d7 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 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; } @@ -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); } /* @@ -744,8 +748,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 },