Diff of /trunk/src/cache.c

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

revision 156 by harbaum, Tue Nov 3 13:15:35 2009 UTC revision 160 by harbaum, Thu Nov 5 07:00:52 2009 UTC
# Line 100  void overview_coordinate_update(cache_co Line 100  void overview_coordinate_update(cache_co
100    gtk_widget_show_all(context->bearing_hbox);    gtk_widget_show_all(context->bearing_hbox);
101  }  }
102    
103    static void gcvote_set(cache_context_t *context, vote_t *vote) {
104      if(!vote) return;
105    
106      if(context->quality) {
107        gtk_widget_destroy(context->quality);
108        context->quality = NULL;
109      }
110    
111      if(context->votes) {
112        gtk_widget_destroy(context->votes);
113        context->votes = NULL;
114      }
115    
116      /* update/draw the voting */
117    #ifndef USE_MAEMO
118      GtkTooltips *tips = gtk_tooltips_new();
119    #endif
120    
121      char *votes_str = g_strdup_printf(_("Quality (%d %s):"), vote->votes,
122                                          (vote->votes == 1)?_("vote"):_("votes"));
123      context->votes = GTK_LABEL_SMALL(votes_str);
124      gtk_box_pack_start(GTK_BOX(context->votebox),
125                         context->votes, FALSE, FALSE, 0);
126      g_free(votes_str);
127      context->quality = icon_get_widget(ICON_STARS, (int)(vote->quality*2-2));
128      gtk_box_pack_start(GTK_BOX(context->votebox), context->quality,
129                         FALSE, FALSE, 0);
130    
131    #ifndef USE_MAEMO
132      char *str = g_strdup_printf(_("Quality: %d"), vote->quality);
133      gtk_tooltips_set_tip(tips, context->votebox, str, NULL);
134      g_free(str);
135    #endif
136    
137      gtk_widget_show_all(context->votebox);
138    
139      g_free(vote);
140    }
141    
142    static void gcvote_callback(vote_t *vote, gpointer data) {
143      cache_context_t *context = (cache_context_t*)data;
144    
145      /* no vote returned: request failed, just cleanup */
146      if(!vote) {
147        printf("gcvote: callback for failed request\n");
148    
149        gcvote_request_free(context->gcvote_request);
150        context->gcvote_request = NULL;
151        return;
152      }
153    
154      printf("gcvote: callback is being called with a %d/%d\n",
155             vote->quality, vote->votes);
156    
157      gcvote_set(context, vote);
158    
159      gcvote_save(context->appdata, context->cache, &context->gcvote_request->mem);
160    
161      gcvote_request_free(context->gcvote_request);
162      context->gcvote_request = NULL;
163    }
164    
165  static GtkWidget *cache_overview(cache_context_t *context) {  static GtkWidget *cache_overview(cache_context_t *context) {
166    GtkWidget *vbox, *ivbox;    GtkWidget *vbox, *ivbox;
167    GtkWidget *table, *tip;    GtkWidget *table, *tip;
# Line 201  static GtkWidget *cache_overview(cache_c Line 263  static GtkWidget *cache_overview(cache_c
263    }    }
264    
265    /* --------------------- GCVote ------------------------ */    /* --------------------- GCVote ------------------------ */
266    if(1) {  
267      float quality = 2.5;    vote_t *vote = gcvote_restore(appdata, cache);
     int votes = 2;  
268    
269      ivbox = gtk_vbox_new(FALSE, 0);    context->gcvote_request =
270        gcvote_request(appdata, gcvote_callback, cache->url, context);
     char *votes_str = g_strdup_printf(_("Quality (%d votes):"), votes);  
     gtk_box_pack_start(GTK_BOX(ivbox), GTK_LABEL_SMALL(votes_str),  
                        FALSE, FALSE, 0);  
     g_free(votes_str);  
     gtk_box_pack_start(GTK_BOX(ivbox),  
          icon_get_widget(ICON_STARS, (int)(quality*2-2)), FALSE, FALSE, 0);  
271    
272      GtkWidget *align = gtk_alignment_new(0.5, 0.5, 0.0, 0.0);    context->votebox = gtk_vbox_new(FALSE, 0);
273      gtk_container_add(GTK_CONTAINER(align), ivbox);    GtkWidget *align = gtk_alignment_new(0.5, 0.5, 0.0, 0.0);
274      gtk_box_pack_start_defaults(GTK_BOX(ratebox), align);    gtk_container_add(GTK_CONTAINER(align), context->votebox);
275  #ifndef USE_MAEMO    gtk_box_pack_start_defaults(GTK_BOX(ratebox), align);
276      sprintf(str, _("Quality: %.1f"), quality);  
277      gtk_tooltips_set_tip(tips, ivbox, str, NULL);    /* fill with vote if present on disk (will also free vote) */
278  #endif    if(vote)
279    }      gcvote_set(context, vote);
280    
281    gtk_table_attach_defaults(GTK_TABLE(table), ratebox, 2,3,0,2);    gtk_table_attach_defaults(GTK_TABLE(table), ratebox, 2,3,0,2);
282    
# Line 252  static GtkWidget *cache_overview(cache_c Line 307  static GtkWidget *cache_overview(cache_c
307    
308    gtk_table_attach_defaults(GTK_TABLE(table), ivbox, 3,4,0,2);    gtk_table_attach_defaults(GTK_TABLE(table), ivbox, 3,4,0,2);
309    
310      /* ----------------------------------------------------- */
311    
312    gtk_box_pack_start(GTK_BOX(vbox), table, 0,0,0);    gtk_box_pack_start(GTK_BOX(vbox), table, 0,0,0);
313    gtk_box_pack_start(GTK_BOX(vbox), gtk_hseparator_new(),FALSE,FALSE,0);    gtk_box_pack_start(GTK_BOX(vbox), gtk_hseparator_new(),FALSE,FALSE,0);
314    
# Line 666  static void on_notebook_destroy(GtkWidge Line 723  static void on_notebook_destroy(GtkWidge
723    
724    printf("destroying notebook\n");    printf("destroying notebook\n");
725    
726      /* cancel a pending gcvote request */
727      if(context->gcvote_request) {
728        gcvote_request_free(context->gcvote_request);
729        context->gcvote_request = NULL;
730      }
731    
732    notes_destroy_event(NULL, context);    notes_destroy_event(NULL, context);
733    goto_destroy_event(NULL, context);    goto_destroy_event(NULL, context);
734    

Legend:
Removed from v.156  
changed lines
  Added in v.160