]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Add an 'edit' menu item to the dive info text fields
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 19 Nov 2011 17:06:20 +0000 (12:06 -0500)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 19 Nov 2011 17:06:20 +0000 (12:06 -0500)
It just pops up the dive info edit box.  This way you can be in the dive
info tab, and not have to go to the dive list just to double-click on
the dive.

This thing still needs some polish, but it's now usable.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
info.c

diff --git a/info.c b/info.c
index df07c8e660b418660098c2ab76fbdf0cc1db2529..c9522a857509d349a019d9f0882a0ab6c3390b1c 100644 (file)
--- a/info.c
+++ b/info.c
@@ -95,6 +95,19 @@ void show_dive_info(struct dive *dive)
                dive && dive->notes ? dive->notes : "", -1);
 }
 
+static void info_menu_edit_cb(GtkMenuItem *menuitem, gpointer user_data)
+{
+       edit_dive_info(current_dive);
+}
+
+static void populate_popup_cb(GtkTextView *entry, GtkMenu *menu, gpointer user_data)
+{
+       GtkWidget *item = gtk_menu_item_new_with_label("Edit");
+       g_signal_connect(item, "activate", G_CALLBACK(info_menu_edit_cb), NULL);
+       gtk_widget_show(item); /* Yes, really */
+       gtk_menu_prepend(menu, item);
+}
+
 static GtkEntry *text_value(GtkWidget *box, const char *label)
 {
        GtkWidget *widget;
@@ -105,6 +118,7 @@ static GtkEntry *text_value(GtkWidget *box, const char *label)
        gtk_widget_set_can_focus(widget, FALSE);
        gtk_editable_set_editable(GTK_EDITABLE(widget), FALSE);
        gtk_container_add(GTK_CONTAINER(frame), widget);
+       g_signal_connect(widget, "populate-popup", G_CALLBACK(populate_popup_cb), NULL);
        return GTK_ENTRY(widget);
 }
 
@@ -160,6 +174,7 @@ static GtkTextView *text_view(GtkWidget *box, const char *label, enum writable w
                gtk_widget_set_can_focus(view, FALSE);
                gtk_text_view_set_editable(GTK_TEXT_VIEW(view), FALSE);
                gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view), FALSE);
+               g_signal_connect(view, "populate-popup", G_CALLBACK(populate_popup_cb), NULL);
        }
        gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);
        gtk_container_add(GTK_CONTAINER(scrolled_window), view);