Diff of /trunk/src/notes.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 190 by harbaum, Tue Nov 17 10:22:41 2009 UTC revision 226 by harbaum, Wed Dec 2 20:05:52 2009 UTC
# Line 198  static int notes_write_file(cache_contex Line 198  static int notes_write_file(cache_contex
198                        char *text, pos_t pos,                        char *text, pos_t pos,
199                        gboolean override, gboolean found,                        gboolean override, gboolean found,
200                        time_t ftime, gboolean logged) {                        time_t ftime, gboolean logged) {
201    
202      g_assert(context);
203      g_assert(context->cache);
204    
205      printf("write\n");
206    
207    /* build local path */    /* build local path */
208    int path_len = strlen(context->appdata->image_path) +    int path_len = strlen(context->appdata->image_path) +
209      2 * strlen(context->cache->id) + 6;      2 * strlen(context->cache->id) + 6;
210      printf("plen = %d\n", path_len);
211    
212    char *path = malloc(path_len);    char *path = malloc(path_len);
213    snprintf(path, path_len, "%s%s/%s.gpx",    snprintf(path, path_len, "%s%s/%s.gpx",
214             context->appdata->image_path,             context->appdata->image_path,
# Line 212  static int notes_write_file(cache_contex Line 220  static int notes_write_file(cache_contex
220      return -1;      return -1;
221    }    }
222    
223      printf("still al\n");
224    
225    LIBXML_TEST_VERSION;    LIBXML_TEST_VERSION;
226    
227    xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");    xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
# Line 272  static void notes_save(cache_context_t * Line 282  static void notes_save(cache_context_t *
282    /* there is a position which differs from the original one */    /* there is a position which differs from the original one */
283    /* or has been changed */    /* or has been changed */
284    
285      printf("saving notes\n");
286    
287    if(context->notes.modified) {    if(context->notes.modified) {
288      printf("something has been modified, saving notes\n");      printf("something has been modified, saving notes\n");
289    
# Line 283  static void notes_save(cache_context_t * Line 295  static void notes_save(cache_context_t *
295                                            &start, &end, FALSE);                                            &start, &end, FALSE);
296    
297      pos_t pos;      pos_t pos;
298      pos.lat = lat_get(context->notes.latw);      pos.lat = lat_entry_get(context->notes.latw);
299      pos.lon = lon_get(context->notes.lonw);      pos.lon = lon_entry_get(context->notes.lonw);
300    
301      gboolean override =      gboolean override =
302        check_button_get_active(context->notes.overridew);        check_button_get_active(context->notes.overridew);
# Line 293  static void notes_save(cache_context_t * Line 305  static void notes_save(cache_context_t *
305      gboolean logged =      gboolean logged =
306        check_button_get_active(context->notes.loggedw);        check_button_get_active(context->notes.loggedw);
307    
308      /* required accuracy is 1/60000 degree */      if(pos_differ(&pos, &context->cache->pos))
309      if(((int)(pos.lat * 60000 + .5) !=        printf("position is modified\n");
         (int)(context->cache->pos.lat * 60000 + .5)) ||  
        ((int)(pos.lon * 60000 + .5) !=  
         (int)(context->cache->pos.lon * 60000 + .5)))  
       printf("position is modified %f != %f / %f != %f\n",  
              pos.lat * 60000 + .5, context->cache->pos.lat * 60000 + .5,  
              pos.lon * 60000 + .5, context->cache->pos.lon * 60000 + .5);  
310      if(override || found)      if(override || found)
311        printf("flags are set\n");        printf("flags are set\n");
312      if(strlen(text))      if(strlen(text))
313        printf("text is present\n");        printf("text is present\n");
314    
315      /* check if the notes are empty */      /* check if the notes are empty */
316      if(((int)(pos.lat * 60000 + .5) ==      if(!pos_differ(&pos, &context->cache->pos) &&
         (int)(context->cache->pos.lat * 60000 + .5)) &&  
        ((int)(pos.lon * 60000 + .5) ==  
         (int)(context->cache->pos.lon * 60000 + .5)) &&  
317         !override && !found && !logged && (strlen(text) == 0)) {         !override && !found && !logged && (strlen(text) == 0)) {
318        printf("notes are in default state, removing them if present\n");        printf("notes are in default state, removing them if present\n");
319    
# Line 363  static void notes_save(cache_context_t * Line 366  static void notes_save(cache_context_t *
366        /* we have to do two things here: */        /* we have to do two things here: */
367        /* - update the notes.xml file on disk */        /* - update the notes.xml file on disk */
368        /* - update the notes entry in the loaded gpx tree */        /* - update the notes entry in the loaded gpx tree */
369    
370        /* update file on disk */        /* update file on disk */
371        notes_write_file(context, text, pos, override, found,        notes_write_file(context, text, pos, override, found,
372                         context->notes.ftime, logged);                         context->notes.ftime, logged);
373    
374        /* search for matching caches and replace note there */        /* search for matching caches and replace note there */
375        notes_t *note = NULL;        notes_t *note = NULL;
376        gpx_t *gpx = context->appdata->gpx;        gpx_t *gpx = context->appdata->gpx;
# Line 458  static void on_destroy_textview(GtkWidge Line 461  static void on_destroy_textview(GtkWidge
461  static void ftime_update(GtkWidget *widget, cache_context_t *context,  static void ftime_update(GtkWidget *widget, cache_context_t *context,
462                           gboolean update) {                           gboolean update) {
463    /* check if it has been selected */    /* check if it has been selected */
464    if(check_button_get_active(GTK_TOGGLE_BUTTON(widget))) {    if(check_button_get_active(widget)) {
465      printf("set active\n");      printf("set active\n");
466    
467      if(update)      if(update)
# Line 618  GtkWidget *cache_notes(cache_context_t * Line 621  GtkWidget *cache_notes(cache_context_t *
621    GtkWidget *table = gtk_table_new(2, 4, FALSE);    GtkWidget *table = gtk_table_new(2, 4, FALSE);
622  #if !defined(USE_MAEMO) || (MAEMO_VERSION_MAJOR < 5)  #if !defined(USE_MAEMO) || (MAEMO_VERSION_MAJOR < 5)
623    gtk_table_set_col_spacing(GTK_TABLE(table), 0, 16);    gtk_table_set_col_spacing(GTK_TABLE(table), 0, 16);
   gtk_table_set_col_spacing(GTK_TABLE(table), 2, 16);  
624  #endif  #endif
625    
626      gtk_table_set_col_spacing(GTK_TABLE(table), 2, 16);
627    
628    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
629                      gtk_label_new(_("New coordinate:")), 0, 1, 0, 1);                      gtk_label_new(_("New coordinate:")), 0, 1, 0, 1);
630    context->notes.overridew = check_button_new_with_label(_("Override"));    context->notes.overridew = check_button_new_with_label(_("Override"));
631    check_button_set_active(context->notes.overridew,    check_button_set_active(context->notes.overridew,
632                            cache->notes && cache->notes->override);                            cache->notes && cache->notes->override);
633    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
634                              context->notes.overridew, 0, 1, 1, 2);                              context->notes.overridew, 2, 3, 0, 1);
635    
636    GtkWidget *hbox = gtk_hbox_new(FALSE, 2);    GtkWidget *hbox = gtk_hbox_new(FALSE, 2);
637    
# Line 659  GtkWidget *cache_notes(cache_context_t * Line 663  GtkWidget *cache_notes(cache_context_t *
663    if(cache->notes) pos = cache->notes->pos;    if(cache->notes) pos = cache->notes->pos;
664    
665    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
666              context->notes.latw = lat_entry_new(pos.lat), 2, 3, 0, 1);              context->notes.latw = lat_entry_new(pos.lat), 0, 1, 1, 2);
667    g_signal_connect(G_OBJECT(context->notes.latw), "focus-out-event",    g_signal_connect(G_OBJECT(context->notes.latw), "focus-out-event",
668                     G_CALLBACK(focus_out), context);                     G_CALLBACK(focus_out), context);
669    
# Line 696  GtkWidget *cache_notes(cache_context_t * Line 700  GtkWidget *cache_notes(cache_context_t *
700    hildon_text_view_set_buffer(HILDON_TEXT_VIEW(view), context->notes.buffer);    hildon_text_view_set_buffer(HILDON_TEXT_VIEW(view), context->notes.buffer);
701  #endif  #endif
702    
703      /* if the cache has been marked found in the logs already, there's */
704      /* no need/use to be able to change all this */
705      if(cache->found) {
706        gtk_widget_set_sensitive(table, FALSE);
707        gtk_widget_set_sensitive(view, FALSE);
708      }
709    
710    gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);    gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);
711    gtk_text_view_set_editable(GTK_TEXT_VIEW(view), TRUE);    gtk_text_view_set_editable(GTK_TEXT_VIEW(view), TRUE);
712    gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view), 2 );    gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view), 2 );
# Line 755  void notes_free(notes_t *notes) { Line 766  void notes_free(notes_t *notes) {
766  pos_t notes_get_pos(cache_context_t *context) {  pos_t notes_get_pos(cache_context_t *context) {
767    pos_t pos = context->cache->pos;    pos_t pos = context->cache->pos;
768    if(check_button_get_active(context->notes.overridew)) {    if(check_button_get_active(context->notes.overridew)) {
769      pos.lat = lat_get(context->notes.latw);      pos.lat = lat_entry_get(context->notes.latw);
770      pos.lon = lon_get(context->notes.lonw);      pos.lon = lon_entry_get(context->notes.lonw);
771    }    }
772    return pos;    return pos;
773  }  }
# Line 916  void notes_log_export(appdata_t *appdata Line 927  void notes_log_export(appdata_t *appdata
927    gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE,0);    gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE,0);
928    gtk_misc_set_alignment(GTK_MISC(label), 0.f, 0.5f);    gtk_misc_set_alignment(GTK_MISC(label), 0.f, 0.5f);
929    GtkWidget *button = gtk_button_new_with_label(_("Browse"));    GtkWidget *button = gtk_button_new_with_label(_("Browse"));
930    #if defined(USE_MAEMO) && (MAEMO_VERSION_MAJOR == 5)
931      hildon_gtk_widget_set_theme_size(button,
932               (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH));
933    #endif
934    gtk_signal_connect(GTK_OBJECT(button), "clicked",    gtk_signal_connect(GTK_OBJECT(button), "clicked",
935                       GTK_SIGNAL_FUNC(on_browse), (gpointer)&context);                       GTK_SIGNAL_FUNC(on_browse), (gpointer)&context);
936    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE,0);    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE,0);

Legend:
Removed from v.190  
changed lines
  Added in v.226