summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/column.c28
-rw-r--r--epan/column.h3
-rw-r--r--epan/prefs.c60
-rw-r--r--gtk/menus.c53
-rw-r--r--gtk/menus.h2
-rw-r--r--gtk/new_packet_list.c50
-rw-r--r--gtk/new_packet_list.h3
-rw-r--r--gtk/prefs_column.c101
8 files changed, 279 insertions, 21 deletions
diff --git a/epan/column.c b/epan/column.c
index 03ed22d673..e3ffceade2 100644
--- a/epan/column.c
+++ b/epan/column.c
@@ -655,6 +655,34 @@ get_column_title(const gint col)
return(cfmt->title);
}
+gboolean
+get_column_visible(const gint col)
+{
+ GList *clp = g_list_nth(prefs.col_list, col);
+ fmt_data *cfmt;
+
+ if (!clp) /* Invalid column requested */
+ return TRUE;
+
+ cfmt = (fmt_data *) clp->data;
+
+ return(cfmt->visible);
+}
+
+void
+set_column_visible(const gint col, gboolean visible)
+{
+ GList *clp = g_list_nth(prefs.col_list, col);
+ fmt_data *cfmt;
+
+ if (!clp) /* Invalid column requested */
+ return;
+
+ cfmt = (fmt_data *) clp->data;
+
+ cfmt->visible = visible;
+}
+
const gchar *
get_column_custom_field(const gint col)
{
diff --git a/epan/column.h b/epan/column.h
index 89c0bec4a9..a30a889b42 100644
--- a/epan/column.h
+++ b/epan/column.h
@@ -33,6 +33,7 @@ typedef struct _fmt_data {
gchar *title;
gchar *fmt;
gchar *custom_field;
+ gboolean visible;
} fmt_data;
const gchar *col_format_to_string(const gint);
@@ -41,6 +42,8 @@ gint get_column_format(const gint);
void get_column_format_matches(gboolean *, const gint);
gint get_column_format_from_str(const gchar *);
gchar *get_column_title(const gint);
+gboolean get_column_visible(const gint);
+void set_column_visible(const gint, gboolean);
const gchar *get_column_custom_field(const gint);
const gchar *get_column_width_string(const gint, const gint);
const char *get_column_longest_string(const gint);
diff --git a/epan/prefs.c b/epan/prefs.c
index a2dcd8ab01..107668a265 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -68,6 +68,7 @@ static void free_col_info(e_prefs *);
static gboolean prefs_initialized = FALSE;
static gchar *gpf_path = NULL;
+static gchar *cols_hidden_list = NULL;
/*
* XXX - variables to allow us to attempt to interpret the first
@@ -1083,6 +1084,7 @@ init_prefs(void) {
cfmt = (fmt_data *) g_malloc(sizeof(fmt_data));
cfmt->title = g_strdup(col_fmt[i * 2]);
cfmt->fmt = g_strdup(col_fmt[(i * 2) + 1]);
+ cfmt->visible = TRUE;
cfmt->custom_field = NULL;
prefs.col_list = g_list_append(prefs.col_list, cfmt);
}
@@ -1640,6 +1642,30 @@ prefs_is_capture_device_hidden(const char *name)
}
/*
+ * Returns TRUE if the given column is hidden
+ */
+static gboolean
+prefs_is_column_hidden(const gchar *cols_hidden, const char *fmt)
+{
+ gchar *tok, *cols;
+ size_t len;
+
+ if (cols_hidden && fmt) {
+ cols = g_strdup (cols_hidden);
+ len = strlen (fmt);
+ for (tok = strtok (cols, ","); tok; tok = strtok(NULL, ",")) {
+ if (strlen (tok) == len && strcmp (fmt, tok) == 0) {
+ g_free (cols);
+ return TRUE;
+ }
+ }
+ g_free (cols);
+ }
+
+ return FALSE;
+}
+
+/*
* Returns TRUE if the given device should capture in monitor mode by default
*/
gboolean
@@ -1667,6 +1693,7 @@ prefs_capture_device_monitor_mode(const char *name)
#define PRS_PRINT_DEST "print.destination"
#define PRS_PRINT_FILE "print.file"
#define PRS_PRINT_CMD "print.command"
+#define PRS_COL_HIDDEN "column.hidden"
#define PRS_COL_FMT "column.format"
#define PRS_STREAM_CL_FG "stream.client.fg"
#define PRS_STREAM_CL_BG "stream.client.bg"
@@ -1902,6 +1929,8 @@ set_pref(gchar *pref_name, gchar *value, void *private_data _U_)
} else if (strcmp(pref_name, PRS_PRINT_CMD) == 0) {
g_free(prefs.pr_cmd);
prefs.pr_cmd = g_strdup(value);
+ } else if (strcmp(pref_name, PRS_COL_HIDDEN) == 0) {
+ cols_hidden_list = g_strdup (value);
} else if (strcmp(pref_name, PRS_COL_FMT) == 0) {
col_l = prefs_get_string_list(value);
if (col_l == NULL)
@@ -1946,22 +1975,27 @@ set_pref(gchar *pref_name, gchar *value, void *private_data _U_)
prefs.num_cols = llen / 2;
col_l_elt = g_list_first(col_l);
while(col_l_elt) {
+ gchar *prefs_fmt;
cfmt = (fmt_data *) g_malloc(sizeof(fmt_data));
cfmt->title = g_strdup(col_l_elt->data);
col_l_elt = col_l_elt->next;
if (strncmp(col_l_elt->data, cust_format, cust_format_len) == 0) {
- gchar *fmt = g_strdup(col_l_elt->data);
cfmt->fmt = g_strdup(cust_format);
- cfmt->custom_field = g_strdup(&fmt[cust_format_len+1]); /* add 1 for ':' */
- g_free (fmt);
+ prefs_fmt = g_strdup(col_l_elt->data);
+ cfmt->custom_field = g_strdup(&prefs_fmt[cust_format_len+1]); /* add 1 for ':' */
} else {
cfmt->fmt = g_strdup(col_l_elt->data);
+ prefs_fmt = g_strdup(cfmt->fmt);
cfmt->custom_field = NULL;
}
+ cfmt->visible = prefs_is_column_hidden (cols_hidden_list, prefs_fmt) ? FALSE : TRUE;
+ g_free (prefs_fmt);
col_l_elt = col_l_elt->next;
prefs.col_list = g_list_append(prefs.col_list, cfmt);
}
prefs_clear_string_list(col_l);
+ g_free (cols_hidden_list);
+ cols_hidden_list = NULL;
} else if (strcmp(pref_name, PRS_STREAM_CL_FG) == 0) {
cval = strtoul(value, NULL, 16);
prefs.st_client_fg.pixel = 0;
@@ -2786,6 +2820,7 @@ write_prefs(char **pf_path_return)
GList *clp, *col_l;
fmt_data *cfmt;
const gchar *cust_format = col_format_to_string(COL_CUSTOM);
+ GString *cols_hidden = g_string_new ("");
/* Needed for "-G defaultprefs" */
init_prefs();
@@ -2968,16 +3003,31 @@ write_prefs(char **pf_path_return)
clp = prefs.col_list;
col_l = NULL;
while (clp) {
+ gchar *prefs_fmt;
cfmt = (fmt_data *) clp->data;
col_l = g_list_append(col_l, g_strdup(cfmt->title));
if ((strcmp(cfmt->fmt, cust_format) == 0) && (cfmt->custom_field)) {
- gchar *fmt = g_strdup_printf("%s:%s", cfmt->fmt, cfmt->custom_field);
- col_l = g_list_append(col_l, fmt);
+ prefs_fmt = g_strdup_printf("%s:%s", cfmt->fmt, cfmt->custom_field);
+ col_l = g_list_append(col_l, prefs_fmt);
} else {
+ prefs_fmt = cfmt->fmt;
col_l = g_list_append(col_l, g_strdup(cfmt->fmt));
}
+ if (!cfmt->visible) {
+ if (strlen (cols_hidden->str)) {
+ g_string_append (cols_hidden, ", ");
+ }
+ g_string_append (cols_hidden, prefs_fmt);
+ }
clp = clp->next;
}
+ fprintf (pf, "\n# Packet list hidden columns.\n");
+ fprintf (pf, "# List all columns to hide in the packet list.\n");
+ fprintf (pf, "%s: %s\n", PRS_COL_HIDDEN, cols_hidden->str);
+ /* This frees the list of strings, but not the strings to which it
+ refers; they are free'ed in put_string_list(). */
+ g_string_free (cols_hidden, TRUE);
+
fprintf (pf, "\n# Packet list column format.\n");
fprintf (pf, "# Each pair of strings consists of a column title and its format.\n");
fprintf (pf, "%s: %s\n", PRS_COL_FMT, put_string_list(col_l));
diff --git a/gtk/menus.c b/gtk/menus.c
index 81ddc33d97..a0c7776c09 100644
--- a/gtk/menus.c
+++ b/gtk/menus.c
@@ -43,6 +43,7 @@
#include <epan/strutil.h>
#include <epan/plugins.h>
#include <epan/epan_dissect.h>
+#include <epan/column.h>
#include "../print.h"
#include "../register.h"
@@ -618,6 +619,7 @@ static GtkItemFactoryEntry menu_items[] =
#ifdef NEW_PACKET_LIST
{"/View/Resize All Columns", "<shift><control>R", GTK_MENU_FUNC(new_packet_list_resize_columns_cb),
0, "<StockItem>", WIRESHARK_STOCK_RESIZE_COLUMNS,},
+ {"/View/Visible Columns", NULL, NULL, 0, NULL, NULL,},
#else
{"/View/Resize All Columns", "<shift><control>R", GTK_MENU_FUNC(packet_list_resize_columns_cb),
0, "<StockItem>", WIRESHARK_STOCK_RESIZE_COLUMNS,},
@@ -807,6 +809,7 @@ static GtkItemFactoryEntry packet_list_heading_items[] =
{"/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
+ {"/Hide Column", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_HIDE, NULL, NULL,},
{"/Remove Column", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_REMOVE, "<StockItem>", GTK_STOCK_DELETE,}
#else
{"/Sort Ascending", NULL, GTK_MENU_FUNC(packet_list_column_menu_cb), COLUMN_SELECTED_SORT_ASCENDING, "<StockItem>", GTK_STOCK_SORT_ASCENDING,},
@@ -3326,6 +3329,56 @@ rebuild_protocol_prefs_menu (module_t *prefs_module_p, gboolean preferences)
}
+#ifdef NEW_PACKET_LIST
+static void
+menu_visible_column_toggle (GtkWidget *w _U_, gpointer data)
+{
+ new_packet_list_toggle_visible_column (GPOINTER_TO_INT(data));
+}
+
+static void
+menu_activate_all_columns (GtkWidget *w _U_, gpointer data _U_)
+{
+ new_packet_list_set_all_columns_visible ();
+}
+
+void
+rebuild_visible_columns_menu (void)
+{
+ GtkWidget *menu_columns, *menu_item;
+ GtkWidget *sub_menu;
+ GList *clp;
+ fmt_data *cfmt;
+ gint col_id = 0;
+
+ menu_columns = gtk_item_factory_get_widget(main_menu_factory, "/View/Visible Columns");
+
+ sub_menu = gtk_menu_new();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM(menu_columns), sub_menu);
+
+ clp = g_list_first (prefs.col_list);
+ while (clp) {
+ cfmt = (fmt_data *) clp->data;
+ menu_item = gtk_check_menu_item_new_with_label(cfmt->title);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menu_item), cfmt->visible);
+ g_signal_connect(menu_item, "activate", G_CALLBACK(menu_visible_column_toggle), GINT_TO_POINTER(col_id));
+ gtk_menu_shell_append (GTK_MENU_SHELL(sub_menu), menu_item);
+ gtk_widget_show (menu_item);
+ clp = g_list_next (clp);
+ col_id++;
+ }
+
+ menu_item = gtk_menu_item_new();
+ gtk_menu_shell_append (GTK_MENU_SHELL(sub_menu), menu_item);
+ gtk_widget_show (menu_item);
+
+ menu_item = gtk_menu_item_new_with_label ("Enable All");
+ gtk_menu_shell_append (GTK_MENU_SHELL(sub_menu), menu_item);
+ g_signal_connect(menu_item, "activate", G_CALLBACK(menu_activate_all_columns), NULL);
+ gtk_widget_show (menu_item);
+}
+#endif
+
void
menus_set_column_align_default (gboolean right_justify)
{
diff --git a/gtk/menus.h b/gtk/menus.h
index e87575eb4f..d1e35a8ff1 100644
--- a/gtk/menus.h
+++ b/gtk/menus.h
@@ -65,6 +65,8 @@ extern void menu_colorize_changed(gboolean packet_list_colorize);
/* Reset preferences menu on profile or preference change. */
extern void menu_prefs_reset(void);
+extern void rebuild_visible_columns_menu (void);
+
#ifdef HAVE_LIBPCAP
/** The "Auto Scroll Packet List in Live Capture" option changed. */
extern void menu_auto_scroll_live_changed(gboolean auto_scroll_in);
diff --git a/gtk/new_packet_list.c b/gtk/new_packet_list.c
index 186a0256db..4dbef78ae4 100644
--- a/gtk/new_packet_list.c
+++ b/gtk/new_packet_list.c
@@ -199,6 +199,7 @@ col_title_change_ok (GtkWidget *w, gpointer parent_w)
prefs_main_write();
}
+ rebuild_visible_columns_menu ();
window_destroy(GTK_WIDGET(parent_w));
}
@@ -352,6 +353,49 @@ new_packet_list_xalign_column (gint col_id, GtkTreeViewColumn *col, gchar xalign
}
static void
+new_packet_list_set_visible_column (gint col_id, GtkTreeViewColumn *col, gboolean visible)
+{
+ gtk_tree_view_column_set_visible(col, visible);
+ set_column_visible(col_id, visible);
+
+ if (!prefs.gui_use_pref_save) {
+ prefs_main_write();
+ }
+
+ rebuild_visible_columns_menu ();
+ gtk_widget_queue_draw (packetlist->view);
+}
+
+void
+new_packet_list_toggle_visible_column (gint col_id)
+{
+ GtkTreeViewColumn *col =
+ gtk_tree_view_get_column(GTK_TREE_VIEW(GTK_TREE_VIEW(packetlist->view)), col_id);
+
+ new_packet_list_set_visible_column (col_id, col, get_column_visible(col_id) ? FALSE : TRUE);
+}
+
+void
+new_packet_list_set_all_columns_visible (void)
+{
+ GtkTreeViewColumn *col;
+ int col_id;
+
+ for (col_id = 0; col_id < cfile.cinfo.num_cols; col_id++) {
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(GTK_TREE_VIEW(packetlist->view)), col_id);
+ gtk_tree_view_column_set_visible(col, TRUE);
+ set_column_visible(col_id, TRUE);
+ }
+
+ if (!prefs.gui_use_pref_save) {
+ prefs_main_write();
+ }
+
+ rebuild_visible_columns_menu ();
+ gtk_widget_queue_draw (packetlist->view);
+}
+
+static void
new_packet_list_remove_column (gint col_id, GtkTreeViewColumn *col _U_)
{
column_prefs_remove(col_id);
@@ -399,6 +443,9 @@ new_packet_list_column_menu_cb (GtkWidget *w _U_, gpointer user_data _U_, COLUMN
case COLUMN_SELECTED_RENAME:
col_title_edit_dlg (col);
break;
+ case COLUMN_SELECTED_HIDE:
+ new_packet_list_set_visible_column (col_id, col, FALSE);
+ break;
case COLUMN_SELECTED_REMOVE:
new_packet_list_remove_column (col_id, col);
break;
@@ -494,6 +541,7 @@ create_view_and_model(void)
g_free (escaped_title);
gtk_tree_view_column_set_clickable(col, TRUE);
gtk_tree_view_column_set_resizable(col, TRUE);
+ gtk_tree_view_column_set_visible(col, get_column_visible(i));
gtk_tree_view_column_set_sizing(col,GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_reorderable(col, TRUE); /* XXX - Should this be saved in the prefs? */
@@ -545,6 +593,8 @@ create_view_and_model(void)
}
}
+ rebuild_visible_columns_menu ();
+
return packetlist->view;
}
diff --git a/gtk/new_packet_list.h b/gtk/new_packet_list.h
index 9ed095c13c..6df8f66f4d 100644
--- a/gtk/new_packet_list.h
+++ b/gtk/new_packet_list.h
@@ -40,11 +40,14 @@ typedef enum {
COLUMN_SELECTED_ALIGN_DEFAULT,
COLUMN_SELECTED_RESIZE,
COLUMN_SELECTED_RENAME,
+ COLUMN_SELECTED_HIDE,
COLUMN_SELECTED_REMOVE
} COLUMN_SELECTED_E;
GtkWidget *new_packet_list_create(void);
void new_packet_list_recreate(void);
+void new_packet_list_toggle_visible_column (gint col_id);
+void new_packet_list_set_all_columns_visible (void);
void new_packet_list_column_menu_cb (GtkWidget *w, gpointer data, COLUMN_SELECTED_E action);
void new_packet_list_resize_columns_cb(GtkWidget *widget _U_, gpointer data _U_);
gboolean new_packet_list_get_event_row_column(GdkEventButton *event_button, gint *physical_row, gint *row, gint *column);
diff --git a/gtk/prefs_column.c b/gtk/prefs_column.c
index daaa898cde..f5f754a8d6 100644
--- a/gtk/prefs_column.c
+++ b/gtk/prefs_column.c
@@ -62,6 +62,43 @@ static void column_field_changed_cb(GtkEditable *, gpointer);
static void column_dnd_row_deleted_cb(GtkTreeModel *, GtkTreePath *, gpointer);
static gboolean column_title_changed_cb(GtkCellRendererText *, const gchar *, const gchar *, gpointer);
+enum {
+#ifdef NEW_PACKET_LIST
+ VISIBLE_COLUMN,
+#endif
+ TITLE_COLUMN,
+ FORMAT_COLUMN,
+ DATA_COLUMN,
+ N_COLUMN /* The number of columns */
+};
+
+#ifdef NEW_PACKET_LIST
+/* Visible toggled */
+static void
+visible_toggled(GtkCellRendererToggle *cell _U_, gchar *path_str, gpointer data)
+{
+ GtkTreeModel *model = (GtkTreeModel *)data;
+ GtkTreeIter iter;
+ GtkTreePath *path = gtk_tree_path_new_from_string(path_str);
+ GList *clp;
+ fmt_data *cfmt;
+
+ gtk_tree_model_get_iter(model, &iter, path);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
+
+ cfmt = (fmt_data *) clp->data;
+ if (cfmt->visible)
+ cfmt->visible = FALSE;
+ else
+ cfmt->visible = TRUE;
+
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, VISIBLE_COLUMN, cfmt->visible, -1);
+ cfile.cinfo.columns_changed = TRUE;
+
+ gtk_tree_path_free(path);
+} /* visible_toggled */
+#endif
+
/*
* Create and display the column selection widgets.
* Called as part of the creation of the Preferences notebook ( Edit ! Preferences )
@@ -77,7 +114,11 @@ column_prefs_show(GtkWidget *prefs_window) {
gint i;
gchar *fmt;
gint cur_fmt;
+#ifdef NEW_PACKET_LIST
+ const gchar *column_titles[] = {"Visible", "Title", "Field type"};
+#else
const gchar *column_titles[] = {"Title", "Field type"};
+#endif
GtkListStore *store;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
@@ -107,7 +148,11 @@ column_prefs_show(GtkWidget *prefs_window) {
gtk_container_add(GTK_CONTAINER(list_vb), list_sc);
gtk_widget_show(list_sc);
- store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
+ store = gtk_list_store_new(N_COLUMN,
+#ifdef NEW_PACKET_LIST
+ G_TYPE_BOOLEAN,
+#endif
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
column_row_deleted_handler_id =
g_signal_connect(GTK_TREE_MODEL(store), "row-deleted", G_CALLBACK(column_dnd_row_deleted_cb), NULL);
@@ -118,15 +163,23 @@ column_prefs_show(GtkWidget *prefs_window) {
gtk_tooltips_set_tip (tooltips, column_l,
"Click on a title to change its name.\nDrag an item to change its order.", NULL);
+#ifdef NEW_PACKET_LIST
+ renderer = gtk_cell_renderer_toggle_new();
+ g_signal_connect(renderer, "toggled", G_CALLBACK(visible_toggled), store);
+ column = gtk_tree_view_column_new_with_attributes(column_titles[VISIBLE_COLUMN], renderer, "active", VISIBLE_COLUMN, NULL);
+ gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(column_l), column);
+#endif
+
renderer = gtk_cell_renderer_text_new();
g_object_set(G_OBJECT(renderer), "editable", TRUE, NULL);
g_signal_connect (renderer, "edited", G_CALLBACK(column_title_changed_cb), GTK_TREE_MODEL(store));
- column = gtk_tree_view_column_new_with_attributes(column_titles[0], renderer, "text", 0, NULL);
+ column = gtk_tree_view_column_new_with_attributes(column_titles[TITLE_COLUMN], renderer, "text", TITLE_COLUMN, NULL);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
gtk_tree_view_append_column(GTK_TREE_VIEW(column_l), column);
renderer = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new_with_attributes(column_titles[1], renderer, "text", 1, NULL);
+ column = gtk_tree_view_column_new_with_attributes(column_titles[FORMAT_COLUMN], renderer, "text", FORMAT_COLUMN, NULL);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
gtk_tree_view_append_column(GTK_TREE_VIEW(column_l), column);
@@ -152,8 +205,17 @@ column_prefs_show(GtkWidget *prefs_window) {
}
fmt = g_strdup_printf("%s", col_format_desc(cur_fmt));
}
+#if GTK_CHECK_VERSION(2,6,0)
+ gtk_list_store_insert_with_values(store, &iter, G_MAXINT,
+#else
gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter, 0, cfmt->title, 1, fmt, 2, clp, -1);
+ gtk_list_store_set(store, &iter,
+#endif
+#ifdef NEW_PACKET_LIST
+ VISIBLE_COLUMN, cfmt->visible,
+#endif
+ TITLE_COLUMN, cfmt->title, FORMAT_COLUMN, fmt, DATA_COLUMN, clp, -1);
+
if (first_row) {
first_iter = iter;
first_row = FALSE;
@@ -332,11 +394,18 @@ column_list_new_cb(GtkWidget *w _U_, gpointer data) {
column_prefs_add_custom (cur_fmt, title, NULL);
model = gtk_tree_view_get_model(column_l);
+#if GTK_CHECK_VERSION(2,6,0)
+ gtk_list_store_insert_with_values(GTK_LIST_STORE(model), &iter, G_MAXINT,
+#else
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
gtk_list_store_set(GTK_LIST_STORE(model), &iter,
- 0, title,
- 1, col_format_desc(cur_fmt),
- 2, g_list_last(prefs.col_list),
+#endif
+#ifdef NEW_PACKET_LIST
+ VISIBLE_COLUMN, TRUE,
+#endif
+ TITLE_COLUMN, title,
+ FORMAT_COLUMN, col_format_desc(cur_fmt),
+ DATA_COLUMN, g_list_last(prefs.col_list),
-1);
/* Triggers call to column_list_select_cb() */
@@ -370,7 +439,7 @@ column_list_delete_cb(GtkWidget *w _U_, gpointer data) {
sel = gtk_tree_view_get_selection(column_l);
if (gtk_tree_selection_get_selected(sel, &model, &iter))
{
- gtk_tree_model_get(model, &iter, 2, &clp, -1);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
cfmt = (fmt_data *) clp->data;
g_free(cfmt->title);
@@ -432,9 +501,9 @@ column_title_changed_cb(GtkCellRendererText *cell _U_, const gchar *str_path, co
gtk_tree_model_get_iter(model, &iter, path);
- gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, new_title, -1);
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, TITLE_COLUMN, new_title, -1);
- gtk_tree_model_get(model, &iter, 2, &clp, -1);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
if (clp) {
cfmt = (fmt_data *) clp->data;
g_free(cfmt->title);
@@ -463,7 +532,7 @@ column_list_select_cb(GtkTreeSelection *sel, gpointer data _U_)
/* if something was selected */
if (gtk_tree_selection_get_selected(sel, &model, &iter))
{
- gtk_tree_model_get(model, &iter, 2, &clp, -1);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
g_assert(clp != NULL);
cfmt = (fmt_data *) clp->data;
cur_fmt = get_column_format_from_str(cfmt->fmt);
@@ -532,7 +601,7 @@ column_menu_changed_cb(GtkWidget *w, gpointer data) {
return; /* no column list selection [Can this happen ?]: ignore callback */
cur_cb_fmt = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
- gtk_tree_model_get(model, &iter, 2, &clp, -1);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
cfmt = (fmt_data *) clp->data;
cur_fmt = get_column_format_from_str(cfmt->fmt);
@@ -566,7 +635,7 @@ column_menu_changed_cb(GtkWidget *w, gpointer data) {
}
g_signal_handler_unblock(field_te, column_field_changed_handler_id);
- gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, fmt, -1);
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, FORMAT_COLUMN, fmt, -1);
g_free(fmt);
g_free(cfmt->fmt);
cfmt->fmt = g_strdup(col_format_to_string(cur_cb_fmt));
@@ -600,7 +669,7 @@ column_field_changed_cb(GtkEditable *te, gpointer data) {
}
field = gtk_editable_get_chars(te, 0, -1);
- gtk_tree_model_get(model, &iter, 2, &clp, -1);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
cfmt = (fmt_data *) clp->data;
if (strcmp(cfmt->custom_field, field) == 0) {
return; /* no action req'd */
@@ -610,7 +679,7 @@ column_field_changed_cb(GtkEditable *te, gpointer data) {
cur_fmt = get_column_format_from_str(cfmt->fmt);
fmt = g_strdup_printf("%s (%s)", col_format_desc(cur_fmt), field);
- gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, fmt, -1);
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, FORMAT_COLUMN, fmt, -1);
g_free(fmt);
g_free(cfmt->custom_field);
cfmt->custom_field = field;
@@ -647,7 +716,7 @@ column_dnd_row_deleted_cb(GtkTreeModel *model, GtkTreePath *path _U_, gpointer d
items_left;
items_left = gtk_tree_model_iter_next (model, &iter)) {
- gtk_tree_model_get(model, &iter, 2, &clp, -1);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
if (clp) {
prefs.col_list = g_list_remove_link(prefs.col_list, clp);
new_col_list = g_list_concat(new_col_list, clp);