diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-08-13 21:36:01 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-08-13 21:36:01 +0000 |
commit | 96907a7180b94e22036add38d6095a68ce2bc0c0 (patch) | |
tree | 541cfb7b39b8b71f53ae70727b1b420acc6c4fe5 /gtk/new_packet_list.c | |
parent | 71291d0d17ca2b541733ea420c6819ccfaf9f931 (diff) |
Get the pointer to the packet list record and use the data directly.
svn path=/trunk/; revision=29406
Diffstat (limited to 'gtk/new_packet_list.c')
-rw-r--r-- | gtk/new_packet_list.c | 59 |
1 files changed, 21 insertions, 38 deletions
diff --git a/gtk/new_packet_list.c b/gtk/new_packet_list.c index bccf5daa2e..1701ee6155 100644 --- a/gtk/new_packet_list.c +++ b/gtk/new_packet_list.c @@ -441,36 +441,6 @@ row_from_iter(GtkTreeIter *iter) return record->pos; } -static gboolean -get_dissected_flag_from_iter(GtkTreeIter *iter) -{ - PacketListRecord *record; - - record = iter->user_data; - - return record->dissected; -} - -static gboolean -col_text_present_from_iter(GtkTreeIter *iter) -{ - PacketListRecord *record; - - record = iter->user_data; - - return record->col_text != NULL; -} - -static void -set_dissected_flag_from_iter(GtkTreeIter *iter, gboolean dissected) -{ - PacketListRecord *record; - - record = iter->user_data; - - record->dissected = dissected; -} - /* XXX: will this work with display filters? */ static gboolean iter_from_row(GtkTreeIter *iter, guint row) @@ -543,22 +513,37 @@ static void show_cell_data_func(GtkTreeViewColumn *col _U_, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { - guint row = row_from_iter(iter); + guint row; guint col_num = GPOINTER_TO_INT(data); - frame_data *fdata = new_packet_list_get_row_data(row); + frame_data *fdata; color_filter_t *color_filter; color_t fg_color_t; color_t bg_color_t; GdkColor fg_gdk; GdkColor bg_gdk; gchar *cell_text; + PacketListRecord *record; - if (get_dissected_flag_from_iter(iter)) + /* XXX column zero is a temp hack + * Get the pointer to the record that makes the data for all columns + * avalable. + */ + gtk_tree_model_get(model, iter, + 0, (PacketListRecord*) &record, + -1); + + fdata = record->fdata; + row = record->pos; + + if (record->dissected) color_filter = fdata->color_filter; else { - gboolean col_text_present = col_text_present_from_iter(iter); + gboolean col_text_present = FALSE; + if(record->col_text != NULL) + col_text_present = TRUE; + new_packet_list_dissect(fdata, col_text_present); - set_dissected_flag_from_iter(iter, TRUE); + record->dissected = TRUE; cache_columns(fdata, row, col_text_present); color_filter = fdata->color_filter; } @@ -567,9 +552,7 @@ show_cell_data_func(GtkTreeViewColumn *col _U_, GtkCellRenderer *renderer, col_fill_in_frame_data(fdata, &cfile.cinfo, col_num); cell_text = g_strdup(cfile.cinfo.col_data[col_num]); }else{ - gtk_tree_model_get(model, iter, - col_num, &cell_text, - -1); + cell_text = g_strdup(record->col_text[col_num]); } if((fdata->color_filter)||(fdata->flags.marked)){ |