X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=equipment.c;h=9c8ee49a9aea146ce65c76e6af37bb314d97fae6;hb=8cdf1ab59fed02d4740c13f0906dbdbc85043a53;hp=d537cf7b13f64e3ed81d5e3f9be7ef6dafcb1af1;hpb=3a7d577ff1109c701656854ceb23ed690c340fbc;p=ext%2Fsubsurface.git diff --git a/equipment.c b/equipment.c index d537cf7..9c8ee49 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); } /* @@ -1343,6 +1347,14 @@ static void row_activated_cb(GtkTreeView *tree_view, edit_cb(NULL, tree_view); } +static void ws_row_activated_cb(GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + GtkTreeModel *model) +{ + ws_edit_cb(NULL, tree_view); +} + GtkWidget *cylinder_list_widget(void) { GtkListStore *model = cylinder_list.model; @@ -1380,7 +1392,7 @@ GtkWidget *weightsystem_list_widget(void) tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); gtk_widget_set_can_focus(tree_view, FALSE); - g_signal_connect(tree_view, "row-activated", G_CALLBACK(row_activated_cb), model); + g_signal_connect(tree_view, "row-activated", G_CALLBACK(ws_row_activated_cb), model); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_BROWSE);