X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=divelist.c;h=48a9ea99a5030fd679dd773190fa3405b388f263;hb=671f6544ac8b4a6eb68576b37344e84808511eb8;hp=81779f06d25af2a4e10a05dfa62e953cdec0be7c;hpb=4891fa812f04da1f46075433d28fa0f33145e125;p=ext%2Fsubsurface.git diff --git a/divelist.c b/divelist.c index 81779f0..48a9ea9 100644 --- a/divelist.c +++ b/divelist.c @@ -351,8 +351,8 @@ static void get_string(char **str, const char *s) if (!s) s = ""; len = strlen(s); - if (len > 40) - len = 40; + if (len > 60) + len = 60; n = malloc(len+1); memcpy(n, s, len); n[len] = 0; @@ -457,7 +457,8 @@ static void fill_dive_list(void) store = GTK_LIST_STORE(dive_list.model); - for (i = 0; i < dive_table.nr; i++) { + i = dive_table.nr; + while (--i >= 0) { struct dive *dive = dive_table.dives[i]; update_cylinder_related_info(dive); @@ -505,6 +506,20 @@ static void realize_cb(GtkWidget *tree_view, gpointer userdata) gtk_widget_grab_focus(tree_view); } +static void row_activated_cb(GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + GtkTreeModel *model) +{ + int index; + GtkTreeIter iter; + + if (!gtk_tree_model_get_iter(model, &iter, path)) + return; + gtk_tree_model_get(model, &iter, DIVE_INDEX, &index, -1); + edit_dive_info(get_dive(index)); +} + GtkWidget *dive_list_create(void) { GtkTreeSelection *selection; @@ -550,6 +565,7 @@ GtkWidget *dive_list_create(void) NULL); g_signal_connect_after(dive_list.tree_view, "realize", G_CALLBACK(realize_cb), NULL); + g_signal_connect(dive_list.tree_view, "row-activated", G_CALLBACK(row_activated_cb), dive_list.model); g_signal_connect(selection, "changed", G_CALLBACK(selection_cb), dive_list.model); dive_list.container_widget = gtk_scrolled_window_new(NULL, NULL);