]> git.street.me.uk Git - andy/viking.git/commitdiff
When manually creating a track, automatically give it a default name.
authorRob Norris <rw_norris@hotmail.com>
Mon, 19 Jul 2010 22:15:22 +0000 (23:15 +0100)
committerGuilhem Bonnefille <guilhem.bonnefille@gmail.com>
Tue, 17 Aug 2010 09:19:48 +0000 (11:19 +0200)
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.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
src/dialog.c
src/dialog.h
src/viktrwlayer.c
src/viktrwlayer_propwin.c

index c5068c817005e781fcae9144d7d867cef8a3b057..a1edfe0caf4f2c9f1d502c4cb04e28c9a4d525bd 100644 (file)
@@ -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);
 
index 7a8d77f975754e22ecd3a2fdafdce188aa01be68..73a2831639ed7e26ea450191663d0e272e3b748f 100644 (file)
@@ -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 );
index 6d3fe82712f64384285d9c1e911939225768b132..05dc83fec6ff2fa257840befec1c782712a65586 100644 (file)
@@ -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;
index 1ca135e4e85c3ef80f724c1f35c9a3b4e81efffd..2f17ebed88a3667b0f4fc3c8cd476db6182871b2 100644 (file)
@@ -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;