From 4207cba35c67211eef0ab92580573d0c53cfe2e1 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Sun, 11 May 2014 22:04:41 +0100 Subject: [PATCH] Add and use preference in whether a name is requested when creating a new track or route. The name can of course be changed after the track or route is created, so now you are not forced to even think about naming it first if you don't want to. --- src/globals.c | 11 ++++++++++- src/globals.h | 2 ++ src/viktrwlayer.c | 23 ++++++++++++----------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/globals.c b/src/globals.c index 6fcdf35c..9f7f042a 100644 --- a/src/globals.c +++ b/src/globals.c @@ -111,6 +111,7 @@ static VikLayerParamScale params_recent_files[] = { {-1, 25, 1, 0} }; static VikLayerParam prefs_advanced[] = { { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "save_file_reference_mode", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Save File Reference Mode:"), VIK_LAYER_WIDGET_COMBOBOX, params_vik_fileref, NULL, N_("When saving a Viking .vik file, this determines how the directory paths of filenames are written."), NULL, NULL, NULL }, + { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "ask_for_create_track_name", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Ask for Name before Track Creation:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL, NULL, NULL, NULL, NULL }, { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "create_track_tooltip", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Show Tooltip during Track Creation:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL, NULL, NULL, NULL, NULL }, { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "number_recent_files", VIK_LAYER_PARAM_INT, VIK_LAYER_GROUP_NONE, N_("The number of recent files:"), VIK_LAYER_WIDGET_SPINBUTTON, params_recent_files, NULL, N_("Only applies to new windows or on application restart. -1 means all available files."), NULL, NULL, NULL }, @@ -239,8 +240,11 @@ void a_vik_preferences_init () tmp.b = TRUE; a_preferences_register(&prefs_advanced[1], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY); - tmp.i = 10; // Seemingly GTK's default for the number of recent files + tmp.b = TRUE; a_preferences_register(&prefs_advanced[2], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY); + + tmp.i = 10; // Seemingly GTK's default for the number of recent files + a_preferences_register(&prefs_advanced[3], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY); } vik_degree_format_t a_vik_get_degree_format ( ) @@ -340,6 +344,11 @@ vik_file_ref_format_t a_vik_get_file_ref_format ( ) return format; } +gboolean a_vik_get_ask_for_create_track_name ( ) +{ + return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "ask_for_create_track_name")->b; +} + gboolean a_vik_get_create_track_tooltip ( ) { return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "create_track_tooltip")->b; diff --git a/src/globals.h b/src/globals.h index 435892c2..d81bfec3 100644 --- a/src/globals.h +++ b/src/globals.h @@ -174,6 +174,8 @@ typedef enum { vik_file_ref_format_t a_vik_get_file_ref_format ( ); +gboolean a_vik_get_ask_for_create_track_name ( ); + gboolean a_vik_get_create_track_tooltip ( ); gboolean a_vik_get_restore_window_state ( ); diff --git a/src/viktrwlayer.c b/src/viktrwlayer.c index fd616fd1..67dc77f1 100644 --- a/src/viktrwlayer.c +++ b/src/viktrwlayer.c @@ -9700,13 +9700,13 @@ static gboolean tool_new_track_click ( VikTrwLayer *vtl, GdkEventButton *event, if ( event->button == 1 && ( ! vtl->current_track || (vtl->current_track && vtl->current_track->is_route ) )) { gchar *name = trw_layer_new_unique_sublayer_name(vtl, VIK_TRW_LAYER_SUBLAYER_TRACK, _("Track")); - if ( ( name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), name, FALSE ) ) ) - { - new_track_create_common ( vtl, name ); - g_free ( name ); + if ( a_vik_get_ask_for_create_track_name() ) { + name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), name, FALSE ); + if ( !name ) + return FALSE; } - else - return TRUE; + new_track_create_common ( vtl, name ); + g_free ( name ); } return tool_new_track_or_route_click ( vtl, event, vvp ); } @@ -9737,12 +9737,13 @@ static gboolean tool_new_route_click ( VikTrwLayer *vtl, GdkEventButton *event, (vtl->current_track && !vtl->current_track->is_route ) ) ) { gchar *name = trw_layer_new_unique_sublayer_name(vtl, VIK_TRW_LAYER_SUBLAYER_ROUTE, _("Route")); - if ( ( name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), name, TRUE ) ) ) { - new_route_create_common ( vtl, name ); - g_free ( name ); + if ( a_vik_get_ask_for_create_track_name() ) { + name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), name, TRUE ); + if ( !name ) + return FALSE; } - else - return TRUE; + new_route_create_common ( vtl, name ); + g_free ( name ); } return tool_new_track_or_route_click ( vtl, event, vvp ); } -- 2.39.5