+/**
+ *
+ */
+static void tpwin_sync_ts_to_tp ( VikTrwLayerTpwin *tpwin )
+{
+ if ( tpwin->cur_tp && (!tpwin->sync_to_tp_block) ) {
+ tpwin->cur_tp->timestamp = gtk_spin_button_get_value_as_int ( tpwin->ts );
+
+ tpwin_update_times ( tpwin, tpwin->cur_tp );
+ }
+}
+
+static time_t last_edit_time = 0;
+
+/**
+ * tpwin_sync_time_to_tp:
+ *
+ */
+static void tpwin_sync_time_to_tp ( VikTrwLayerTpwin *tpwin )
+{
+ if ( !tpwin->cur_tp || tpwin->sync_to_tp_block )
+ return;
+
+ if ( tpwin->cur_tp->has_timestamp )
+ last_edit_time = tpwin->cur_tp->timestamp;
+ else if ( last_edit_time == 0 )
+ time ( &last_edit_time );
+
+ GTimeZone *gtz = g_time_zone_new_local ();
+ time_t mytime = vik_datetime_edit_dialog ( GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(&tpwin->parent))),
+ _("Date/Time Edit"),
+ last_edit_time,
+ gtz );
+ g_time_zone_unref ( gtz );
+
+ // Was the dialog cancelled?
+ if ( mytime == 0 )
+ return;
+
+ // Otherwise use the new value
+ tpwin->cur_tp->timestamp = mytime;
+ tpwin->cur_tp->has_timestamp = TRUE;
+ // TODO: consider warning about unsorted times?
+
+ // Clear the previous 'Add' image as now a time is set
+ if ( gtk_button_get_image ( GTK_BUTTON(tpwin->time) ) )
+ gtk_button_set_image ( GTK_BUTTON(tpwin->time), NULL );
+
+ tpwin_update_times ( tpwin, tpwin->cur_tp );
+}
+
+static gboolean tpwin_set_name ( VikTrwLayerTpwin *tpwin )
+{
+ if ( tpwin->cur_tp && (!tpwin->sync_to_tp_block) ) {
+ vik_trackpoint_set_name ( tpwin->cur_tp, gtk_entry_get_text(GTK_ENTRY(tpwin->trkpt_name)) );
+ }
+ return FALSE;
+}
+