mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add autogen menu command
This adds the ability to auto create trips from the menu. It's a toggle entry (and while at it, we made the zoom toggle a toggle entry as well). We can therfore switch back and forth between auto generated trips. There is one bug. Assume you have no trips. You manually create a trip from some dives out of a group of trips that autogen would turn into a trip. Now you turn on autogen and this trip gets expanded with all the dives that would normally be grouped together. If you turn off autogen again, all those dives are still part of the remaining (initially manually created) trip. Working around this issue seemed a lot more work than the likelihood of anyone running into it seemed worth. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
22ff8df880
commit
f6e8903a52
3 changed files with 55 additions and 3 deletions
17
gtk-gui.c
17
gtk-gui.c
|
@ -634,6 +634,14 @@ static void selectevents_dialog(GtkWidget *w, gpointer data)
|
|||
gtk_widget_destroy(dialog);
|
||||
}
|
||||
|
||||
static void autogroup_cb(GtkWidget *w, gpointer data)
|
||||
{
|
||||
autogroup = !autogroup;
|
||||
if (! autogroup)
|
||||
remove_autogen_trips();
|
||||
dive_list_update_dives();
|
||||
}
|
||||
|
||||
static void renumber_dialog(GtkWidget *w, gpointer data)
|
||||
{
|
||||
int result;
|
||||
|
@ -757,10 +765,15 @@ static GtkActionEntry menu_items[] = {
|
|||
{ "ViewProfile", NULL, "Profile", CTRLCHAR "2", NULL, G_CALLBACK(view_profile) },
|
||||
{ "ViewInfo", NULL, "Info", CTRLCHAR "3", NULL, G_CALLBACK(view_info) },
|
||||
{ "ViewThree", NULL, "Three", CTRLCHAR "4", NULL, G_CALLBACK(view_three) },
|
||||
{ "ToggleZoom", NULL, "Toggle Zoom", CTRLCHAR "0", NULL, G_CALLBACK(toggle_zoom) },
|
||||
};
|
||||
static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]);
|
||||
|
||||
static GtkToggleActionEntry toggle_items[] = {
|
||||
{ "Autogroup", NULL, "Autogroup", NULL, NULL, G_CALLBACK(autogroup_cb), FALSE },
|
||||
{ "ToggleZoom", NULL, "Toggle Zoom", CTRLCHAR "0", NULL, G_CALLBACK(toggle_zoom), FALSE },
|
||||
};
|
||||
static gint ntoggle_items = sizeof (toggle_items) / sizeof (toggle_items[0]);
|
||||
|
||||
static const gchar* ui_string = " \
|
||||
<ui> \
|
||||
<menubar name=\"MainMenu\"> \
|
||||
|
@ -779,6 +792,7 @@ static const gchar* ui_string = " \
|
|||
<menuitem name=\"Add Dive\" action=\"AddDive\" /> \
|
||||
<separator name=\"Separator\"/> \
|
||||
<menuitem name=\"Renumber\" action=\"Renumber\" /> \
|
||||
<menuitem name=\"Autogroup\" action=\"Autogroup\" /> \
|
||||
<menuitem name=\"Toggle Zoom\" action=\"ToggleZoom\" /> \
|
||||
<menu name=\"View\" action=\"ViewMenuAction\"> \
|
||||
<menuitem name=\"List\" action=\"ViewList\" /> \
|
||||
|
@ -801,6 +815,7 @@ static GtkWidget *get_menubar_menu(GtkWidget *window, GtkUIManager *ui_manager)
|
|||
{
|
||||
GtkActionGroup *action_group = gtk_action_group_new("Menu");
|
||||
gtk_action_group_add_actions(action_group, menu_items, nmenu_items, 0);
|
||||
gtk_action_group_add_toggle_actions(action_group, toggle_items, ntoggle_items, 0);
|
||||
|
||||
gtk_ui_manager_insert_action_group(ui_manager, action_group, 0);
|
||||
GError* error = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue