aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/new_packet_list.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-08-13 21:36:01 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-08-13 21:36:01 +0000
commit96907a7180b94e22036add38d6095a68ce2bc0c0 (patch)
tree541cfb7b39b8b71f53ae70727b1b420acc6c4fe5 /gtk/new_packet_list.c
parent71291d0d17ca2b541733ea420c6819ccfaf9f931 (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.c59
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)){