mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
Reformat and fix various minor issues.
2007-08-26 Soren Sandmann <sandmann@daimi.au.dk> * treeviewutils.c (process_iter): Reformat and fix various minor issues. svn path=/trunk/; revision=370
This commit is contained in:
committed by
Søren Sandmann Pedersen
parent
474636c189
commit
4194371d52
@ -1,3 +1,8 @@
|
|||||||
|
2007-08-26 Soren Sandmann <sandmann@daimi.au.dk>
|
||||||
|
|
||||||
|
* treeviewutils.c (process_iter): Reformat and fix various minor
|
||||||
|
issues.
|
||||||
|
|
||||||
2007-08-25 Soren Sandmann <sandmann@daimi.au.dk>
|
2007-08-25 Soren Sandmann <sandmann@daimi.au.dk>
|
||||||
|
|
||||||
* treeviewutils.c (tree_view_set_model_with_default_sort): Work
|
* treeviewutils.c (tree_view_set_model_with_default_sort): Work
|
||||||
|
|||||||
322
treeviewutils.c
322
treeviewutils.c
@ -1,5 +1,3 @@
|
|||||||
/* -*- mode: C; c-file-style: "linux" -*- */
|
|
||||||
|
|
||||||
/* MemProf -- memory profiler and leak detector
|
/* MemProf -- memory profiler and leak detector
|
||||||
* Copyright 2002, Soeren Sandmann (sandmann@daimi.au.dk)
|
* Copyright 2002, Soeren Sandmann (sandmann@daimi.au.dk)
|
||||||
* Copyright 2003, 2004, Red Hat, Inc.
|
* Copyright 2003, 2004, Red Hat, Inc.
|
||||||
@ -29,8 +27,8 @@ static void on_column_clicked (GtkTreeViewColumn *column,
|
|||||||
gpointer data);
|
gpointer data);
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
int model_column;
|
int model_column;
|
||||||
GtkSortType default_order;
|
GtkSortType default_order;
|
||||||
} SortInfo;
|
} SortInfo;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -39,43 +37,43 @@ set_sort_info (GtkTreeView *view,
|
|||||||
int model_column,
|
int model_column,
|
||||||
GtkSortType default_order)
|
GtkSortType default_order)
|
||||||
{
|
{
|
||||||
SortInfo *info;
|
SortInfo *info;
|
||||||
|
|
||||||
info = g_new0 (SortInfo, 1);
|
info = g_new0 (SortInfo, 1);
|
||||||
info->model_column = model_column;
|
info->model_column = model_column;
|
||||||
info->default_order = default_order;
|
info->default_order = default_order;
|
||||||
|
|
||||||
gtk_tree_view_column_set_clickable (column, TRUE);
|
gtk_tree_view_column_set_clickable (column, TRUE);
|
||||||
|
|
||||||
g_object_set_data (G_OBJECT (column), "column_info", info);
|
g_object_set_data (G_OBJECT (column), "column_info", info);
|
||||||
g_signal_connect (column, "clicked", G_CALLBACK (on_column_clicked), view);
|
g_signal_connect (column, "clicked", G_CALLBACK (on_column_clicked), view);
|
||||||
}
|
}
|
||||||
|
|
||||||
static SortInfo *
|
static SortInfo *
|
||||||
get_sort_info (GtkTreeViewColumn *column)
|
get_sort_info (GtkTreeViewColumn *column)
|
||||||
{
|
{
|
||||||
return g_object_get_data (G_OBJECT (column), "column_info");
|
return g_object_get_data (G_OBJECT (column), "column_info");
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkTreeViewColumn *
|
static GtkTreeViewColumn *
|
||||||
find_column_by_model_column (GtkTreeView *view, int model_column)
|
find_column_by_model_column (GtkTreeView *view, int model_column)
|
||||||
{
|
{
|
||||||
GList *columns = gtk_tree_view_get_columns (view);
|
GList *columns = gtk_tree_view_get_columns (view);
|
||||||
GList *list;
|
GList *list;
|
||||||
GtkTreeViewColumn *result = NULL;
|
GtkTreeViewColumn *result = NULL;
|
||||||
|
|
||||||
for (list = columns; list != NULL; list = list->next)
|
for (list = columns; list != NULL; list = list->next)
|
||||||
{
|
{
|
||||||
GtkTreeViewColumn *column = list->data;
|
GtkTreeViewColumn *column = list->data;
|
||||||
SortInfo *info = get_sort_info (column);
|
SortInfo *info = get_sort_info (column);
|
||||||
|
|
||||||
if (info->model_column == model_column)
|
if (info->model_column == model_column)
|
||||||
result = column;
|
result = column;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_list_free (columns);
|
g_list_free (columns);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -83,75 +81,75 @@ tree_view_set_sort_column (GtkTreeView *view,
|
|||||||
int model_column,
|
int model_column,
|
||||||
int sort_type)
|
int sort_type)
|
||||||
{
|
{
|
||||||
GList *columns, *list;
|
GList *columns, *list;
|
||||||
GtkTreeSortable *sortable;
|
GtkTreeSortable *sortable;
|
||||||
GtkTreeViewColumn *column = find_column_by_model_column (view, model_column);
|
GtkTreeViewColumn *column = find_column_by_model_column (view, model_column);
|
||||||
SortInfo *info = get_sort_info (column);
|
SortInfo *info = get_sort_info (column);
|
||||||
|
|
||||||
/* For each column in the view, unset the sort indicator */
|
/* For each column in the view, unset the sort indicator */
|
||||||
columns = gtk_tree_view_get_columns (view);
|
columns = gtk_tree_view_get_columns (view);
|
||||||
for (list = columns; list != NULL; list = list->next)
|
for (list = columns; list != NULL; list = list->next)
|
||||||
{
|
{
|
||||||
GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN (list->data);
|
GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN (list->data);
|
||||||
|
|
||||||
gtk_tree_view_column_set_sort_indicator (col, FALSE);
|
gtk_tree_view_column_set_sort_indicator (col, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set the sort indicator for this column */
|
/* Set the sort indicator for this column */
|
||||||
gtk_tree_view_column_set_sort_indicator (column, TRUE);
|
gtk_tree_view_column_set_sort_indicator (column, TRUE);
|
||||||
gtk_tree_view_column_set_sort_order (column, sort_type);
|
gtk_tree_view_column_set_sort_order (column, sort_type);
|
||||||
|
|
||||||
/* And sort the column */
|
/* And sort the column */
|
||||||
sortable = GTK_TREE_SORTABLE (gtk_tree_view_get_model (view));
|
sortable = GTK_TREE_SORTABLE (gtk_tree_view_get_model (view));
|
||||||
|
|
||||||
gtk_tree_sortable_set_sort_column_id (sortable,
|
gtk_tree_sortable_set_sort_column_id (sortable,
|
||||||
info->model_column,
|
info->model_column,
|
||||||
sort_type);
|
sort_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_column_clicked (GtkTreeViewColumn *column,
|
on_column_clicked (GtkTreeViewColumn *column,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
GtkTreeView *view = data;
|
GtkTreeView *view = data;
|
||||||
GtkSortType sort_type;
|
GtkSortType sort_type;
|
||||||
SortInfo *info = get_sort_info (column);
|
SortInfo *info = get_sort_info (column);
|
||||||
|
|
||||||
/* Find out what our current sort indicator is. If it is NONE, then
|
/* Find out what our current sort indicator is. If it is NONE, then
|
||||||
* select the default for the column, otherwise, select the opposite
|
* select the default for the column, otherwise, select the opposite
|
||||||
*/
|
*/
|
||||||
if (!gtk_tree_view_column_get_sort_indicator (column))
|
if (!gtk_tree_view_column_get_sort_indicator (column))
|
||||||
{
|
{
|
||||||
sort_type = info->default_order;
|
sort_type = info->default_order;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gtk_tree_view_column_get_sort_order (column) == GTK_SORT_ASCENDING)
|
||||||
|
sort_type = GTK_SORT_DESCENDING;
|
||||||
else
|
else
|
||||||
{
|
sort_type = GTK_SORT_ASCENDING;
|
||||||
if (gtk_tree_view_column_get_sort_order (column) == GTK_SORT_ASCENDING)
|
}
|
||||||
sort_type = GTK_SORT_DESCENDING;
|
|
||||||
else
|
|
||||||
sort_type = GTK_SORT_ASCENDING;
|
|
||||||
}
|
|
||||||
|
|
||||||
tree_view_set_sort_column (view, info->model_column, sort_type);
|
tree_view_set_sort_column (view, info->model_column, sort_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkTreeViewColumn *
|
GtkTreeViewColumn *
|
||||||
add_plain_text_column (GtkTreeView *view, const gchar *title, gint model_column)
|
add_plain_text_column (GtkTreeView *view, const gchar *title, gint model_column)
|
||||||
{
|
{
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
|
g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
|
||||||
column = gtk_tree_view_column_new_with_attributes (title, renderer,
|
column = gtk_tree_view_column_new_with_attributes (title, renderer,
|
||||||
"text", model_column,
|
"text", model_column,
|
||||||
NULL);
|
NULL);
|
||||||
gtk_tree_view_column_set_resizable (column, TRUE);
|
gtk_tree_view_column_set_resizable (column, TRUE);
|
||||||
gtk_tree_view_append_column (view, column);
|
gtk_tree_view_append_column (view, column);
|
||||||
|
|
||||||
set_sort_info (view, column, model_column, GTK_SORT_ASCENDING);
|
set_sort_info (view, column, model_column, GTK_SORT_ASCENDING);
|
||||||
|
|
||||||
return column;
|
return column;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -159,19 +157,19 @@ pointer_to_text (GtkTreeViewColumn *tree_column,
|
|||||||
GtkCellRenderer *cell, GtkTreeModel *tree_model,
|
GtkCellRenderer *cell, GtkTreeModel *tree_model,
|
||||||
GtkTreeIter *iter, gpointer data)
|
GtkTreeIter *iter, gpointer data)
|
||||||
{
|
{
|
||||||
gpointer p;
|
gpointer p;
|
||||||
gchar *text;
|
gchar *text;
|
||||||
int column = GPOINTER_TO_INT (data);
|
int column = GPOINTER_TO_INT (data);
|
||||||
|
|
||||||
gtk_tree_model_get (tree_model, iter, column, &p, -1);
|
gtk_tree_model_get (tree_model, iter, column, &p, -1);
|
||||||
text = g_strdup_printf ("%p", p);
|
text = g_strdup_printf ("%p", p);
|
||||||
g_object_set (cell, "text", text, NULL);
|
g_object_set (cell, "text", text, NULL);
|
||||||
g_free (text);
|
g_free (text);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int column;
|
int column;
|
||||||
char *format;
|
char *format;
|
||||||
} ColumnInfo;
|
} ColumnInfo;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -179,107 +177,109 @@ double_to_text (GtkTreeViewColumn *tree_column,
|
|||||||
GtkCellRenderer *cell, GtkTreeModel *tree_model,
|
GtkCellRenderer *cell, GtkTreeModel *tree_model,
|
||||||
GtkTreeIter *iter, gpointer data)
|
GtkTreeIter *iter, gpointer data)
|
||||||
{
|
{
|
||||||
gdouble d;
|
gdouble d;
|
||||||
gchar *text;
|
gchar *text;
|
||||||
ColumnInfo *info = data;
|
ColumnInfo *info = data;
|
||||||
|
|
||||||
gtk_tree_model_get (tree_model, iter, info->column, &d, -1);
|
gtk_tree_model_get (tree_model, iter, info->column, &d, -1);
|
||||||
|
|
||||||
text = g_strdup_printf (info->format, d);
|
text = g_strdup_printf (info->format, d);
|
||||||
|
|
||||||
g_object_set (cell, "text", text, NULL);
|
g_object_set (cell, "text", text, NULL);
|
||||||
g_free (text);
|
g_free (text);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
free_column_info (void *data)
|
free_column_info (void *data)
|
||||||
{
|
{
|
||||||
ColumnInfo *info = data;
|
ColumnInfo *info = data;
|
||||||
g_free (info->format);
|
g_free (info->format);
|
||||||
g_free (info);
|
g_free (info);
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkTreeViewColumn *
|
GtkTreeViewColumn *
|
||||||
add_double_format_column (GtkTreeView *view, const gchar *title, gint model_column, const char *format)
|
add_double_format_column (GtkTreeView *view,
|
||||||
|
const gchar *title,
|
||||||
|
gint model_column,
|
||||||
|
const char *format)
|
||||||
{
|
{
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
ColumnInfo *column_info = g_new (ColumnInfo, 1);
|
ColumnInfo *column_info = g_new (ColumnInfo, 1);
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
g_object_set (renderer, "xalign", 1.0, NULL);
|
g_object_set (renderer, "xalign", 1.0, NULL);
|
||||||
|
|
||||||
column = gtk_tree_view_column_new ();
|
column = gtk_tree_view_column_new ();
|
||||||
gtk_tree_view_column_set_title (column, title);
|
gtk_tree_view_column_set_title (column, title);
|
||||||
gtk_tree_view_column_pack_start (column, renderer, TRUE);
|
gtk_tree_view_column_pack_start (column, renderer, TRUE);
|
||||||
gtk_tree_view_column_set_resizable (column, FALSE);
|
gtk_tree_view_column_set_resizable (column, FALSE);
|
||||||
|
|
||||||
column_info->column = model_column;
|
column_info->column = model_column;
|
||||||
column_info->format = g_strdup (format);
|
column_info->format = g_strdup (format);
|
||||||
|
|
||||||
gtk_tree_view_column_set_cell_data_func (column, renderer,
|
gtk_tree_view_column_set_cell_data_func (
|
||||||
double_to_text, column_info, free_column_info);
|
column, renderer, double_to_text, column_info, free_column_info);
|
||||||
|
|
||||||
gtk_tree_view_append_column (view, column);
|
gtk_tree_view_append_column (view, column);
|
||||||
|
|
||||||
set_sort_info (view, column, model_column, GTK_SORT_DESCENDING);
|
set_sort_info (view, column, model_column, GTK_SORT_DESCENDING);
|
||||||
|
|
||||||
return column;
|
return column;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkTreeViewColumn *
|
GtkTreeViewColumn *
|
||||||
add_pointer_column (GtkTreeView *view, const gchar *title, gint model_column)
|
add_pointer_column (GtkTreeView *view, const gchar *title, gint model_column)
|
||||||
{
|
{
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
|
|
||||||
column = gtk_tree_view_column_new ();
|
column = gtk_tree_view_column_new ();
|
||||||
if (title)
|
if (title)
|
||||||
gtk_tree_view_column_set_title (column, title);
|
gtk_tree_view_column_set_title (column, title);
|
||||||
gtk_tree_view_column_pack_start (column, renderer, TRUE);
|
gtk_tree_view_column_pack_start (column, renderer, TRUE);
|
||||||
gtk_tree_view_column_set_resizable (column, TRUE);
|
gtk_tree_view_column_set_resizable (column, TRUE);
|
||||||
gtk_tree_view_column_set_cell_data_func (column, renderer,
|
gtk_tree_view_column_set_cell_data_func (
|
||||||
pointer_to_text, GINT_TO_POINTER (model_column), NULL);
|
column, renderer, pointer_to_text, GINT_TO_POINTER (model_column), NULL);
|
||||||
|
|
||||||
gtk_tree_view_append_column (view, column);
|
gtk_tree_view_append_column (view, column);
|
||||||
|
|
||||||
return column;
|
return column;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
tree_view_set_model_with_default_sort (GtkTreeView *view,
|
tree_view_set_model_with_default_sort (GtkTreeView *view,
|
||||||
GtkTreeModel *model,
|
GtkTreeModel *model,
|
||||||
int model_column,
|
int model_column,
|
||||||
GtkSortType default_sort)
|
GtkSortType default_sort)
|
||||||
{
|
{
|
||||||
gboolean was_sorted = FALSE;
|
gboolean was_sorted = FALSE;
|
||||||
int old_column;
|
int old_column;
|
||||||
GtkSortType old_type;
|
GtkSortType old_type;
|
||||||
GtkTreeSortable *old_model;
|
GtkTreeSortable *old_model;
|
||||||
GtkAdjustment *adjustment;
|
GtkAdjustment *adjustment;
|
||||||
|
|
||||||
old_model = GTK_TREE_SORTABLE (gtk_tree_view_get_model (view));
|
old_model = GTK_TREE_SORTABLE (gtk_tree_view_get_model (view));
|
||||||
|
|
||||||
if (old_model)
|
if (old_model)
|
||||||
{
|
{
|
||||||
was_sorted = gtk_tree_sortable_get_sort_column_id (
|
was_sorted = gtk_tree_sortable_get_sort_column_id (
|
||||||
GTK_TREE_SORTABLE (gtk_tree_view_get_model (view)),
|
GTK_TREE_SORTABLE (old_model), &old_column, &old_type);
|
||||||
&old_column, &old_type);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
gtk_tree_view_set_model (view, model);
|
gtk_tree_view_set_model (view, model);
|
||||||
|
|
||||||
if (was_sorted)
|
if (was_sorted)
|
||||||
tree_view_set_sort_column (view, old_column, old_type);
|
tree_view_set_sort_column (view, old_column, old_type);
|
||||||
else
|
else
|
||||||
tree_view_set_sort_column (view, model_column, default_sort);
|
tree_view_set_sort_column (view, model_column, default_sort);
|
||||||
|
|
||||||
/* Workaround for GTK+ crack, see bug 405625 */
|
/* Workaround for GTK+ crack, see bug 405625 */
|
||||||
adjustment = gtk_tree_view_get_vadjustment (view);
|
adjustment = gtk_tree_view_get_vadjustment (view);
|
||||||
if (adjustment)
|
if (adjustment)
|
||||||
gtk_adjustment_set_value (adjustment, 0);
|
gtk_adjustment_set_value (adjustment, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -288,23 +288,27 @@ process_iter (GtkTreeView *view,
|
|||||||
VisibleCallback callback,
|
VisibleCallback callback,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
GtkTreeModel *model = gtk_tree_view_get_model (view);
|
GtkTreeModel *model = gtk_tree_view_get_model (view);
|
||||||
GtkTreePath *path;
|
GtkTreePath *path;
|
||||||
GtkTreeIter child;
|
GtkTreeIter child;
|
||||||
|
|
||||||
path = gtk_tree_model_get_path (model, iter);
|
path = gtk_tree_model_get_path (model, iter);
|
||||||
|
|
||||||
callback (view, path, iter, data);
|
callback (view, path, iter, data);
|
||||||
|
|
||||||
if (gtk_tree_view_row_expanded (view, path)) {
|
if (gtk_tree_view_row_expanded (view, path))
|
||||||
if (gtk_tree_model_iter_children (model, &child, iter)) {
|
{
|
||||||
do {
|
if (gtk_tree_model_iter_children (model, &child, iter))
|
||||||
process_iter (view, &child, callback, data);
|
{
|
||||||
} while (gtk_tree_model_iter_next (model, &child));
|
do
|
||||||
}
|
{
|
||||||
|
process_iter (view, &child, callback, data);
|
||||||
|
}
|
||||||
|
while (gtk_tree_model_iter_next (model, &child));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
gtk_tree_path_free (path);
|
gtk_tree_path_free (path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -312,9 +316,9 @@ tree_view_foreach_visible (GtkTreeView *view,
|
|||||||
VisibleCallback callback,
|
VisibleCallback callback,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
GtkTreeModel *model = gtk_tree_view_get_model (view);
|
GtkTreeModel *model = gtk_tree_view_get_model (view);
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
|
||||||
if (model && gtk_tree_model_get_iter_first (model, &iter))
|
if (model && gtk_tree_model_get_iter_first (model, &iter))
|
||||||
process_iter (view, &iter, callback, data);
|
process_iter (view, &iter, callback, data);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user