Now one can just click OK, and get on with creating the track (without needing 
to type anything).
Of course, one can change the suggested name or rename the track after creation 
via the layers panel features.
---
 src/dialog.c              |    5 ++++-
 src/dialog.h              |    2 +-
 src/viktrwlayer.c         |    6 +++---
 src/viktrwlayer_propwin.c |    4 ++--
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/dialog.c b/src/dialog.c
index c5068c8..a1edfe0 100644
--- a/src/dialog.c
+++ b/src/dialog.c
@@ -487,7 +487,7 @@ GList *a_dialog_select_from_list ( GtkWindow *parent, 
GHashTable *tracks, GList
   return NULL;
 }
 
-gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable *tracks )
+gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable *tracks, gchar 
*default_name )
 {
   GtkWidget *dialog = gtk_dialog_new_with_buttons (_("Add Track"),
                                                   parent,
@@ -500,6 +500,9 @@ gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable 
*tracks )
   GtkWidget *label = gtk_label_new ( _("Track Name:") );
   GtkWidget *entry = gtk_entry_new ();
 
+  if (default_name)
+    gtk_entry_set_text ( GTK_ENTRY(entry), default_name );
+
   gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 
0);
   gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), entry, FALSE, FALSE, 
0);
 
diff --git a/src/dialog.h b/src/dialog.h
index 7a8d77f..73a2831 100644
--- a/src/dialog.h
+++ b/src/dialog.h
@@ -53,7 +53,7 @@ gboolean a_dialog_goto_utm ( GtkWindow *parent, struct UTM 
*utm, const struct UT
 /* if *dest is non-null, uses it as a default and frees it */
 gboolean a_dialog_new_waypoint ( GtkWindow *parent, gchar **dest, VikWaypoint 
*wp, GHashTable *waypoints, VikCoordMode coord_mode );
 
-gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable *tracks );
+gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable *tracks, gchar 
*default_name );
 
 gboolean a_dialog_overwrite ( GtkWindow *parent, const gchar *message, const 
gchar *extra );
 gboolean a_dialog_custom_zoom ( GtkWindow *parent, gdouble *xmpp, gdouble 
*ympp );
diff --git a/src/viktrwlayer.c b/src/viktrwlayer.c
index 7ba5297..f6d2440 100644
--- a/src/viktrwlayer.c
+++ b/src/viktrwlayer.c
@@ -2840,7 +2840,7 @@ static void trw_layer_tpwin_response ( VikTrwLayer *vtl, 
gint response )
   else if ( response == VIK_TRW_LAYER_TPWIN_SPLIT && vtl->current_tpl->next && 
vtl->current_tpl->prev )
   {
     gchar *name;
-    if ( ( name = a_dialog_new_track ( GTK_WINDOW(vtl->tpwin), vtl->tracks ) ) 
)
+    if ( ( name = a_dialog_new_track ( GTK_WINDOW(vtl->tpwin), vtl->tracks, 
NULL ) ) )
     {
       VikTrack *tr = vik_track_new ();
       GList *newglist = g_list_alloc ();
@@ -3406,8 +3406,8 @@ static gboolean tool_new_track_click ( VikTrwLayer *vtl, 
GdkEventButton *event,
 
   if ( ! vtl->current_track )
   {
-    gchar *name;
-    if ( ( name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), 
vtl->tracks ) ) )
+    gchar *name = get_new_unique_sublayer_name(vtl, 
VIK_TRW_LAYER_SUBLAYER_TRACK, _("Track"));
+    if ( ( name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), 
vtl->tracks, name ) ) )
     {
       vtl->current_track = vik_track_new();
       vtl->current_track->visible = TRUE;
diff --git a/src/viktrwlayer_propwin.c b/src/viktrwlayer_propwin.c
index 1ca135e..2f17ebe 100644
--- a/src/viktrwlayer_propwin.c
+++ b/src/viktrwlayer_propwin.c
@@ -651,7 +651,7 @@ static void propwin_response_cb( GtkDialog *dialog, gint 
resp, PropWidgets *widg
           if ( vik_trw_layer_get_track(vtl, new_tr_name ) && 
              ( ! a_dialog_overwrite ( VIK_GTK_WINDOW_FROM_LAYER(vtl), "The 
track \"%s\" exists, do you wish to overwrite it?", new_tr_name ) ) )
           {
-            gchar *new_new_tr_name = a_dialog_new_track ( 
VIK_GTK_WINDOW_FROM_LAYER(vtl), vik_trw_layer_get_tracks(vtl) );
+            gchar *new_new_tr_name = a_dialog_new_track ( 
VIK_GTK_WINDOW_FROM_LAYER(vtl), vik_trw_layer_get_tracks(vtl), NULL );
             g_free ( new_tr_name );
             if (new_new_tr_name)
               new_tr_name = new_new_tr_name;
@@ -693,7 +693,7 @@ static void propwin_response_cb( GtkDialog *dialog, gint 
resp, PropWidgets *widg
              ( ! a_dialog_overwrite( VIK_GTK_WINDOW_FROM_LAYER(vtl),
               "The track \"%s\" exists, do you wish to overwrite it?", 
r_name)))
         {
-            gchar *new_r_name = a_dialog_new_track( 
VIK_GTK_WINDOW_FROM_LAYER(vtl), vik_trw_layer_get_tracks(vtl) );
+         gchar *new_r_name = a_dialog_new_track( 
VIK_GTK_WINDOW_FROM_LAYER(vtl), vik_trw_layer_get_tracks(vtl), NULL );
             if (new_r_name) {
               g_free( r_name );
               r_name = new_r_name;
-- 
1.7.1


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Viking-devel mailing list
Viking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viking-devel
Viking home page: http://viking.sf.net/

Reply via email to