Change source files gnc-query-view.* for space and tabs

This commit is contained in:
Robert Fewell 2022-02-04 11:21:55 +00:00
parent 2aed5c9f46
commit b92b546f42
2 changed files with 162 additions and 174 deletions

View File

@ -63,7 +63,8 @@ static guint query_view_signals[LAST_SIGNAL] = {0};
static void gnc_query_view_init (GNCQueryView *qview); static void gnc_query_view_init (GNCQueryView *qview);
static void gnc_query_view_init_view (GNCQueryView *qview); static void gnc_query_view_init_view (GNCQueryView *qview);
static void gnc_query_view_class_init (GNCQueryViewClass *klass); static void gnc_query_view_class_init (GNCQueryViewClass *klass);
static void gnc_query_view_select_row_cb (GtkTreeSelection *selection, gpointer user_data); static void gnc_query_view_select_row_cb (GtkTreeSelection *selection,
gpointer user_data);
static void gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer, static void gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer,
gchar *path, gpointer user_data); gchar *path, gpointer user_data);
static void gnc_query_view_double_click_cb (GtkTreeView *tree_view, static void gnc_query_view_double_click_cb (GtkTreeView *tree_view,
@ -73,7 +74,8 @@ static void gnc_query_view_double_click_cb (GtkTreeView *tree_view,
static void gnc_query_view_destroy (GtkWidget *widget); static void gnc_query_view_destroy (GtkWidget *widget);
static void gnc_query_view_fill (GNCQueryView *qview); static void gnc_query_view_fill (GNCQueryView *qview);
static void gnc_query_view_set_query_sort (GNCQueryView *qview, gboolean new_column); static void gnc_query_view_set_query_sort (GNCQueryView *qview,
gboolean new_column);
/********************************************************************\ /********************************************************************\
@ -99,9 +101,9 @@ gnc_query_view_construct (GNCQueryView *qview, GList *param_list, Query *query)
qview->column_params = param_list; qview->column_params = param_list;
/* cache the function to get the guid of this query type */ /* cache the function to get the guid of this query type */
priv = GNC_QUERY_VIEW_GET_PRIVATE (qview); priv = GNC_QUERY_VIEW_GET_PRIVATE(qview);
priv->get_guid = priv->get_guid = qof_class_get_parameter (qof_query_get_search_for (query),
qof_class_get_parameter (qof_query_get_search_for (query), QOF_PARAM_GUID); QOF_PARAM_GUID);
/* Initialize the Tree View */ /* Initialize the Tree View */
gnc_query_view_init_view (qview); gnc_query_view_init_view (qview);
@ -125,10 +127,10 @@ gnc_query_view_new (GList *param_list, Query *query)
/* Add 1 to param_list length for extra pointer column */ /* Add 1 to param_list length for extra pointer column */
columns = g_list_length (param_list) + 1; columns = g_list_length (param_list) + 1;
qview = GNC_QUERY_VIEW (g_object_new (gnc_query_view_get_type(), NULL)); qview = GNC_QUERY_VIEW(g_object_new (gnc_query_view_get_type (), NULL));
array_size = sizeof( GType ) * columns; array_size = sizeof(GType) * columns;
types = g_slice_alloc ( array_size ); types = g_slice_alloc (array_size);
types[0] = G_TYPE_POINTER; types[0] = G_TYPE_POINTER;
@ -138,7 +140,8 @@ gnc_query_view_new (GList *param_list, Query *query)
GNCSearchParamSimple *param = node->data; GNCSearchParamSimple *param = node->data;
const char *type; const char *type;
g_assert (GNC_IS_SEARCH_PARAM_SIMPLE (param)); g_assert (GNC_IS_SEARCH_PARAM_SIMPLE(param));
type = gnc_search_param_get_param_type ((GNCSearchParam *) param); type = gnc_search_param_get_param_type ((GNCSearchParam *) param);
if (g_strcmp0 (type, QOF_TYPE_BOOLEAN) == 0) if (g_strcmp0 (type, QOF_TYPE_BOOLEAN) == 0)
@ -149,23 +152,22 @@ gnc_query_view_new (GList *param_list, Query *query)
/* Create the list store and add to treeview */ /* Create the list store and add to treeview */
liststore = gtk_list_store_newv (columns, types ); liststore = gtk_list_store_newv (columns, types );
gtk_tree_view_set_model (GTK_TREE_VIEW (qview), GTK_TREE_MODEL (liststore)); gtk_tree_view_set_model (GTK_TREE_VIEW(qview), GTK_TREE_MODEL(liststore));
g_object_unref (liststore); g_object_unref (liststore);
/* Free array */ /* Free array */
g_slice_free1( array_size, types ); g_slice_free1 (array_size, types);
gnc_query_view_construct (qview, param_list, query); gnc_query_view_construct (qview, param_list, query);
return GTK_WIDGET (qview); return GTK_WIDGET(qview);
} }
void gnc_query_view_reset_query (GNCQueryView *qview, Query *query) void gnc_query_view_reset_query (GNCQueryView *qview, Query *query)
{ {
g_return_if_fail (qview); g_return_if_fail (qview);
g_return_if_fail (query); g_return_if_fail (query);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
qof_query_destroy (qview->query); qof_query_destroy (qview->query);
qview->query = qof_query_copy (query); qview->query = qof_query_copy (query);
@ -173,13 +175,12 @@ void gnc_query_view_reset_query (GNCQueryView *qview, Query *query)
gnc_query_view_set_query_sort (qview, TRUE); gnc_query_view_set_query_sort (qview, TRUE);
} }
static void static void
gnc_query_view_refresh_handler (GHashTable *changes, gpointer user_data) gnc_query_view_refresh_handler (GHashTable *changes, gpointer user_data)
{ {
GNCQueryView *qview = (GNCQueryView *)user_data; GNCQueryView *qview = (GNCQueryView *)user_data;
g_return_if_fail (qview); g_return_if_fail (qview);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
gnc_query_view_set_query_sort (qview, TRUE); gnc_query_view_set_query_sort (qview, TRUE);
} }
@ -205,14 +206,12 @@ gnc_query_view_init (GNCQueryView *qview)
qview->numeric_abs = FALSE; qview->numeric_abs = FALSE;
qview->numeric_inv_sort = FALSE; qview->numeric_inv_sort = FALSE;
priv = GNC_QUERY_VIEW_GET_PRIVATE (qview); priv = GNC_QUERY_VIEW_GET_PRIVATE(qview);
priv->component_id = priv->component_id = gnc_register_gui_component ("gnc-query-view-cm-class",
gnc_register_gui_component ("gnc-query-view-cm-class",
gnc_query_view_refresh_handler, gnc_query_view_refresh_handler,
NULL, qview); NULL, qview);
} }
static gint static gint
sort_iter_compare_func (GtkTreeModel *model, sort_iter_compare_func (GtkTreeModel *model,
GtkTreeIter *a, GtkTreeIter *a,
@ -223,7 +222,6 @@ sort_iter_compare_func (GtkTreeModel *model,
return 0; return 0;
} }
/********************************************************************\ /********************************************************************\
* gnc_query_sort_order * * gnc_query_sort_order *
* allows the sort order to be specified * * allows the sort order to be specified *
@ -233,15 +231,15 @@ sort_iter_compare_func (GtkTreeModel *model,
* order - GTK_SORT_ASCENDING or GTK_SORT_DESCENDING * * order - GTK_SORT_ASCENDING or GTK_SORT_DESCENDING *
\********************************************************************/ \********************************************************************/
void void
gnc_query_sort_order ( GNCQueryView *qview, gint column, GtkSortType order) gnc_query_sort_order (GNCQueryView *qview, gint column, GtkSortType order)
{ {
GtkTreeSortable *sortable; GtkTreeSortable *sortable;
gint sortcol; gint sortcol;
g_return_if_fail (qview != NULL); g_return_if_fail (qview != NULL);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
sortable = GTK_TREE_SORTABLE (gtk_tree_view_get_model (GTK_TREE_VIEW (qview))); sortable = GTK_TREE_SORTABLE(gtk_tree_view_get_model (GTK_TREE_VIEW(qview)));
if((column > qview->num_columns) || (column == 0) ) if((column > qview->num_columns) || (column == 0) )
sortcol = 1; sortcol = 1;
@ -251,17 +249,16 @@ gnc_query_sort_order ( GNCQueryView *qview, gint column, GtkSortType order)
gtk_tree_sortable_set_sort_column_id (sortable, sortcol, order); gtk_tree_sortable_set_sort_column_id (sortable, sortcol, order);
} }
static void static void
gnc_query_sort_cb (GtkTreeSortable *sortable, gpointer user_data) gnc_query_sort_cb (GtkTreeSortable *sortable, gpointer user_data)
{ {
GNCQueryView *qview = GNC_QUERY_VIEW (user_data); GNCQueryView *qview = GNC_QUERY_VIEW(user_data);
GtkSortType type; GtkSortType type;
gint sortcol; gint sortcol;
gboolean new_column = FALSE; gboolean new_column = FALSE;
g_return_if_fail (qview != NULL); g_return_if_fail (qview != NULL);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
g_return_if_fail (qview->query != NULL); g_return_if_fail (qview->query != NULL);
gtk_tree_sortable_get_sort_column_id (sortable, &sortcol, &type); gtk_tree_sortable_get_sort_column_id (sortable, &sortcol, &type);
@ -284,11 +281,10 @@ gnc_query_sort_cb (GtkTreeSortable *sortable, gpointer user_data)
gnc_query_view_set_query_sort (qview, new_column); gnc_query_view_set_query_sort (qview, new_column);
} }
static void static void
gnc_query_view_init_view (GNCQueryView *qview) gnc_query_view_init_view (GNCQueryView *qview)
{ {
GtkTreeView *view = GTK_TREE_VIEW (qview); GtkTreeView *view = GTK_TREE_VIEW(qview);
GtkTreeSortable *sortable; GtkTreeSortable *sortable;
GtkTreeSelection *selection; GtkTreeSelection *selection;
GtkTreeViewColumn *col; GtkTreeViewColumn *col;
@ -296,7 +292,7 @@ gnc_query_view_init_view (GNCQueryView *qview)
GList *node; GList *node;
gint i; gint i;
sortable = GTK_TREE_SORTABLE (gtk_tree_view_get_model (GTK_TREE_VIEW (view))); sortable = GTK_TREE_SORTABLE(gtk_tree_view_get_model (GTK_TREE_VIEW(view)));
/* compute the number of columns and fill in the rest of the view */ /* compute the number of columns and fill in the rest of the view */
qview->num_columns = g_list_length (qview->column_params); qview->num_columns = g_list_length (qview->column_params);
@ -310,7 +306,7 @@ gnc_query_view_init_view (GNCQueryView *qview)
gfloat algn = 0; gfloat algn = 0;
GNCSearchParamSimple *param = node->data; GNCSearchParamSimple *param = node->data;
g_assert (GNC_IS_SEARCH_PARAM_SIMPLE (param)); g_assert (GNC_IS_SEARCH_PARAM_SIMPLE(param));
col = gtk_tree_view_column_new (); col = gtk_tree_view_column_new ();
@ -351,8 +347,9 @@ gnc_query_view_init_view (GNCQueryView *qview)
gtk_tree_view_column_set_clickable (col, TRUE); gtk_tree_view_column_set_clickable (col, TRUE);
/* Add sortable columns */ /* Add sortable columns */
gtk_tree_view_column_set_sort_column_id (col, i+1); gtk_tree_view_column_set_sort_column_id (col, i+1);
gtk_tree_sortable_set_sort_func (sortable, i+1, sort_iter_compare_func, gtk_tree_sortable_set_sort_func (sortable, i+1,
GINT_TO_POINTER (i+1), NULL); sort_iter_compare_func,
GINT_TO_POINTER(i+1), NULL);
} }
type = gnc_search_param_get_param_type (((GNCSearchParam *) param)); type = gnc_search_param_get_param_type (((GNCSearchParam *) param));
@ -364,9 +361,10 @@ gnc_query_view_init_view (GNCQueryView *qview)
/* pack cell renderer toggle into tree view column */ /* pack cell renderer toggle into tree view column */
gtk_tree_view_column_pack_start (col, renderer, TRUE); gtk_tree_view_column_pack_start (col, renderer, TRUE);
gtk_tree_view_column_add_attribute (col, renderer, "active", i+1); gtk_tree_view_column_add_attribute (col, renderer, "active", i+1);
g_object_set (renderer, "xalign", algn, NULL ); g_object_set (renderer, "xalign", algn, NULL);
g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (i+1) ); g_object_set_data (G_OBJECT(renderer), "column", GINT_TO_POINTER(i+1));
g_signal_connect (renderer, "toggled", G_CALLBACK (gnc_query_view_toggled_cb), view); g_signal_connect (renderer, "toggled",
G_CALLBACK(gnc_query_view_toggled_cb), view);
} }
else else
{ {
@ -375,8 +373,8 @@ gnc_query_view_init_view (GNCQueryView *qview)
/* pack cell renderer text into tree view column */ /* pack cell renderer text into tree view column */
gtk_tree_view_column_pack_start (col, renderer, TRUE); gtk_tree_view_column_pack_start (col, renderer, TRUE);
gtk_tree_view_column_add_attribute (col, renderer, "text", i+1); gtk_tree_view_column_add_attribute (col, renderer, "text", i+1);
g_object_set (renderer, "xalign", algn, NULL ); g_object_set (renderer, "xalign", algn, NULL);
g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (i+1) ); g_object_set_data (G_OBJECT(renderer), "column", GINT_TO_POINTER(i+1));
} }
} }
@ -385,20 +383,19 @@ gnc_query_view_init_view (GNCQueryView *qview)
gtk_tree_sortable_set_sort_column_id (sortable, 1, GTK_SORT_DESCENDING); gtk_tree_sortable_set_sort_column_id (sortable, 1, GTK_SORT_DESCENDING);
g_signal_connect (sortable, "sort-column-changed", g_signal_connect (sortable, "sort-column-changed",
G_CALLBACK (gnc_query_sort_cb), G_CALLBACK(gnc_query_sort_cb),
view); view);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
g_signal_connect (selection, "changed", g_signal_connect (selection, "changed",
G_CALLBACK (gnc_query_view_select_row_cb), G_CALLBACK(gnc_query_view_select_row_cb),
NULL); NULL);
g_signal_connect (view, "row-activated", g_signal_connect (view, "row-activated",
G_CALLBACK (gnc_query_view_double_click_cb), G_CALLBACK(gnc_query_view_double_click_cb),
NULL); NULL);
} }
static void static void
gnc_query_view_class_init (GNCQueryViewClass *klass) gnc_query_view_class_init (GNCQueryViewClass *klass)
{ {
@ -408,9 +405,9 @@ gnc_query_view_class_init (GNCQueryViewClass *klass)
query_view_signals[COLUMN_TOGGLED] = query_view_signals[COLUMN_TOGGLED] =
g_signal_new("column_toggled", g_signal_new("column_toggled",
G_TYPE_FROM_CLASS (widget_class), G_TYPE_FROM_CLASS(widget_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GNCQueryViewClass, column_toggled), G_STRUCT_OFFSET(GNCQueryViewClass, column_toggled),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__POINTER, g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, G_TYPE_NONE,
@ -419,9 +416,9 @@ gnc_query_view_class_init (GNCQueryViewClass *klass)
query_view_signals[ROW_SELECTED] = query_view_signals[ROW_SELECTED] =
g_signal_new("row_selected", g_signal_new("row_selected",
G_TYPE_FROM_CLASS (widget_class), G_TYPE_FROM_CLASS(widget_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GNCQueryViewClass, row_selected), G_STRUCT_OFFSET(GNCQueryViewClass, row_selected),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__POINTER, g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, G_TYPE_NONE,
@ -430,9 +427,9 @@ gnc_query_view_class_init (GNCQueryViewClass *klass)
query_view_signals[DOUBLE_CLICK_ENTRY] = query_view_signals[DOUBLE_CLICK_ENTRY] =
g_signal_new("double_click_entry", g_signal_new("double_click_entry",
G_TYPE_FROM_CLASS (widget_class), G_TYPE_FROM_CLASS(widget_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GNCQueryViewClass, double_click_entry), G_STRUCT_OFFSET(GNCQueryViewClass, double_click_entry),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__POINTER, g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, G_TYPE_NONE,
@ -446,18 +443,16 @@ gnc_query_view_class_init (GNCQueryViewClass *klass)
klass->double_click_entry = NULL; klass->double_click_entry = NULL;
} }
static void static void
gnc_query_view_select_row_cb (GtkTreeSelection *selection, gpointer user_data) gnc_query_view_select_row_cb (GtkTreeSelection *selection, gpointer user_data)
{ {
GNCQueryView *qview = GNC_QUERY_VIEW (gtk_tree_selection_get_tree_view (selection)); GNCQueryView *qview = GNC_QUERY_VIEW(gtk_tree_selection_get_tree_view (selection));
gint number_of_rows = gtk_tree_selection_count_selected_rows (selection); gint number_of_rows = gtk_tree_selection_count_selected_rows (selection);
g_signal_emit (qview, query_view_signals[ROW_SELECTED], 0, g_signal_emit (qview, query_view_signals[ROW_SELECTED], 0,
GINT_TO_POINTER(number_of_rows)); GINT_TO_POINTER(number_of_rows));
} }
static void static void
gnc_query_view_double_click_cb (GtkTreeView *view, gnc_query_view_double_click_cb (GtkTreeView *view,
GtkTreePath *path, GtkTreePath *path,
@ -469,7 +464,7 @@ gnc_query_view_double_click_cb (GtkTreeView *view,
GtkTreeIter iter; GtkTreeIter iter;
gpointer entry = NULL; gpointer entry = NULL;
model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
if (gtk_tree_model_get_iter (model, &iter, path)) if (gtk_tree_model_get_iter (model, &iter, path))
gtk_tree_model_get (model, &iter, 0, &entry, -1); gtk_tree_model_get (model, &iter, 0, &entry, -1);
@ -477,13 +472,12 @@ gnc_query_view_double_click_cb (GtkTreeView *view,
g_signal_emit (qview, query_view_signals[DOUBLE_CLICK_ENTRY], 0, entry); g_signal_emit (qview, query_view_signals[DOUBLE_CLICK_ENTRY], 0, entry);
} }
static void static void
gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer, gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer,
gchar *path, gchar *path,
gpointer user_data) gpointer user_data)
{ {
GNCQueryView *qview = GNC_QUERY_VIEW (user_data); GNCQueryView *qview = GNC_QUERY_VIEW(user_data);
GtkTreeModel *model; GtkTreeModel *model;
GtkTreeIter iter; GtkTreeIter iter;
GtkTreePath *treepath; GtkTreePath *treepath;
@ -492,15 +486,15 @@ gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer,
gboolean toggled; gboolean toggled;
gint column; gint column;
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(qview));
column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell_renderer),"column")); column = GPOINTER_TO_INT(g_object_get_data (G_OBJECT(cell_renderer), "column"));
toggled = gtk_cell_renderer_toggle_get_active (cell_renderer); toggled = gtk_cell_renderer_toggle_get_active (cell_renderer);
treepath = gtk_tree_path_new_from_string (path); treepath = gtk_tree_path_new_from_string (path);
if (gtk_tree_model_get_iter(model, &iter, treepath)) if (gtk_tree_model_get_iter (model, &iter, treepath))
{ {
gtk_tree_model_get (model, &iter, 0, &entry, -1); gtk_tree_model_get (model, &iter, 0, &entry, -1);
indices = gtk_tree_path_get_indices (treepath); indices = gtk_tree_path_get_indices (treepath);
@ -512,16 +506,16 @@ gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer,
else else
g_signal_emit (qview, query_view_signals[COLUMN_TOGGLED], 0, GINT_TO_POINTER(1)); g_signal_emit (qview, query_view_signals[COLUMN_TOGGLED], 0, GINT_TO_POINTER(1));
} }
gtk_tree_path_free (treepath);
} }
static void static void
gnc_query_view_destroy (GtkWidget *widget) gnc_query_view_destroy (GtkWidget *widget)
{ {
GNCQueryView *qview = GNC_QUERY_VIEW (widget); GNCQueryView *qview = GNC_QUERY_VIEW(widget);
GNCQueryViewPrivate *priv; GNCQueryViewPrivate *priv;
priv = GNC_QUERY_VIEW_GET_PRIVATE (qview); priv = GNC_QUERY_VIEW_GET_PRIVATE(qview);
if (priv->component_id > 0) if (priv->component_id > 0)
{ {
gnc_unregister_gui_component (priv->component_id); gnc_unregister_gui_component (priv->component_id);
@ -534,24 +528,22 @@ gnc_query_view_destroy (GtkWidget *widget)
qof_query_destroy (qview->query); qof_query_destroy (qview->query);
qview->query = NULL; qview->query = NULL;
} }
if (GTK_WIDGET_CLASS (parent_class)->destroy) if (GTK_WIDGET_CLASS(parent_class)->destroy)
GTK_WIDGET_CLASS (parent_class)->destroy (widget); GTK_WIDGET_CLASS(parent_class)->destroy (widget);
} }
gint gint
gnc_query_view_get_num_entries (GNCQueryView *qview) gnc_query_view_get_num_entries (GNCQueryView *qview)
{ {
GtkTreeModel *model; GtkTreeModel *model;
g_return_val_if_fail (qview != NULL, 0); g_return_val_if_fail (qview != NULL, 0);
g_return_val_if_fail (GNC_IS_QUERY_VIEW (qview), 0); g_return_val_if_fail (GNC_IS_QUERY_VIEW(qview), 0);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(qview));
return gtk_tree_model_iter_n_children (model, NULL); return gtk_tree_model_iter_n_children (model, NULL);
} }
gpointer gpointer
gnc_query_view_get_selected_entry (GNCQueryView *qview) gnc_query_view_get_selected_entry (GNCQueryView *qview)
{ {
@ -560,7 +552,7 @@ gnc_query_view_get_selected_entry (GNCQueryView *qview)
gint num_entries = 0; gint num_entries = 0;
g_return_val_if_fail (qview != NULL, NULL); g_return_val_if_fail (qview != NULL, NULL);
g_return_val_if_fail (GNC_IS_QUERY_VIEW (qview), NULL); g_return_val_if_fail (GNC_IS_QUERY_VIEW(qview), NULL);
entries = gnc_query_view_get_selected_entry_list (qview); entries = gnc_query_view_get_selected_entry_list (qview);
if (entries) if (entries)
@ -602,17 +594,16 @@ gnc_query_view_get_selected_entry_list (GNCQueryView *qview)
GList *entries = NULL; GList *entries = NULL;
g_return_val_if_fail (qview != NULL, NULL); g_return_val_if_fail (qview != NULL, NULL);
g_return_val_if_fail (GNC_IS_QUERY_VIEW (qview), NULL); g_return_val_if_fail (GNC_IS_QUERY_VIEW(qview), NULL);
acc_entries.entries = NULL; acc_entries.entries = NULL;
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (qview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(qview));
gtk_tree_selection_selected_foreach (selection, accumulate_entries, gtk_tree_selection_selected_foreach (selection, accumulate_entries,
&acc_entries); &acc_entries);
acc_entries.entries = g_list_reverse (acc_entries.entries); acc_entries.entries = g_list_reverse (acc_entries.entries);
return acc_entries.entries; return acc_entries.entries;
} }
static void static void
gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry) gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry)
{ {
@ -623,15 +614,15 @@ gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry)
gboolean valid; gboolean valid;
g_return_if_fail (qview != NULL); g_return_if_fail (qview != NULL);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(qview));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (qview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(qview));
if(g_list_length (old_entry) > 0) if (g_list_length (old_entry) > 0)
{ {
/* Walk the list of old entries */ /* Walk the list of old entries */
for(node = old_entry; node; node = node->next) for (node = old_entry; node; node = node->next)
{ {
gpointer pointer; gpointer pointer;
@ -642,7 +633,7 @@ gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry)
// Walk through the liststore, reading each row // Walk through the liststore, reading each row
gtk_tree_model_get (model, &iter, 0, &pointer, -1); gtk_tree_model_get (model, &iter, 0, &pointer, -1);
if(pointer == node->data) if (pointer == node->data)
{ {
gtk_tree_selection_select_iter (selection, &iter); gtk_tree_selection_select_iter (selection, &iter);
break; break;
@ -653,7 +644,6 @@ gnc_query_view_refresh_selected (GNCQueryView *qview, GList *old_entry)
} }
} }
/********************************************************************\ /********************************************************************\
* gnc_query_view_refresh * * gnc_query_view_refresh *
* refreshes the view * * refreshes the view *
@ -668,18 +658,17 @@ gnc_query_view_refresh (GNCQueryView *qview)
GList *selected_entries; GList *selected_entries;
g_return_if_fail (qview != NULL); g_return_if_fail (qview != NULL);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
selected_entries = gnc_query_view_get_selected_entry_list (qview); selected_entries = gnc_query_view_get_selected_entry_list (qview);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(qview));
gtk_list_store_clear (GTK_LIST_STORE (model)); gtk_list_store_clear (GTK_LIST_STORE(model));
gnc_query_view_fill (qview); gnc_query_view_fill (qview);
gnc_query_view_refresh_selected (qview, selected_entries); gnc_query_view_refresh_selected (qview, selected_entries);
g_list_free (selected_entries); g_list_free (selected_entries);
} }
/********************************************************************\ /********************************************************************\
* gnc_query_view_set_query_sort * * gnc_query_view_set_query_sort *
* sets the sorting order of entries in the view * * sets the sorting order of entries in the view *
@ -699,7 +688,8 @@ gnc_query_view_set_query_sort (GNCQueryView *qview, gboolean new_column)
/* Find the column parameter definition */ /* Find the column parameter definition */
node = g_list_nth (qview->column_params, qview->sort_column); node = g_list_nth (qview->column_params, qview->sort_column);
param = node->data; param = node->data;
g_assert (GNC_IS_SEARCH_PARAM_SIMPLE (param));
g_assert (GNC_IS_SEARCH_PARAM_SIMPLE(param));
/* If we're asked to invert numerics, and if this is a numeric or /* If we're asked to invert numerics, and if this is a numeric or
* debred column, then invert the sort order. * debred column, then invert the sort order.
@ -730,7 +720,6 @@ gnc_query_view_set_query_sort (GNCQueryView *qview, gboolean new_column)
gnc_query_view_refresh (qview); gnc_query_view_refresh (qview);
} }
/********************************************************************\ /********************************************************************\
* gnc_query_view_fill * * gnc_query_view_fill *
* Add all items to the list store * * Add all items to the list store *
@ -749,12 +738,12 @@ gnc_query_view_fill (GNCQueryView *qview)
gint i; gint i;
/* Clear all watches */ /* Clear all watches */
priv = GNC_QUERY_VIEW_GET_PRIVATE (qview); priv = GNC_QUERY_VIEW_GET_PRIVATE(qview);
gnc_gui_component_clear_watches (priv->component_id); gnc_gui_component_clear_watches (priv->component_id);
entries = qof_query_run (qview->query); entries = qof_query_run (qview->query);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(qview));
for (item = entries; item; item = item->next) for (item = entries; item; item = item->next)
{ {
@ -764,9 +753,9 @@ gnc_query_view_fill (GNCQueryView *qview)
QofParam *qp = NULL; QofParam *qp = NULL;
/* Add a row to the list store */ /* Add a row to the list store */
gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_append (GTK_LIST_STORE(model), &iter);
/* Add a pointer to the data in the first column of the list store */ /* Add a pointer to the data in the first column of the list store */
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, item->data, -1); gtk_list_store_set (GTK_LIST_STORE(model), &iter, 0, item->data, -1);
for (i = 0, node = qview->column_params; node; node = node->next) for (i = 0, node = qview->column_params; node; node = node->next)
{ {
@ -777,14 +766,14 @@ gnc_query_view_fill (GNCQueryView *qview)
gpointer res = item->data; gpointer res = item->data;
gchar *qofstring; gchar *qofstring;
g_assert (GNC_IS_SEARCH_PARAM_SIMPLE (param)); g_assert (GNC_IS_SEARCH_PARAM_SIMPLE(param));
converters = gnc_search_param_get_converters (param); converters = gnc_search_param_get_converters (param);
/* Test for boolean type */ /* Test for boolean type */
if (g_strcmp0 (type, QOF_TYPE_BOOLEAN) == 0) if (g_strcmp0 (type, QOF_TYPE_BOOLEAN) == 0)
{ {
result = (gboolean) GPOINTER_TO_INT (gnc_search_param_compute_value (param, res)); result = (gboolean) GPOINTER_TO_INT(gnc_search_param_compute_value (param, res));
gtk_list_store_set (GTK_LIST_STORE (model), &iter, i + 1, result, -1); gtk_list_store_set (GTK_LIST_STORE(model), &iter, i + 1, result, -1);
i++; i++;
continue; continue;
} }
@ -798,23 +787,24 @@ gnc_query_view_fill (GNCQueryView *qview)
} }
/* Now convert this to a text value for the row */ /* Now convert this to a text value for the row */
if (qp && (g_strcmp0(type, QOF_TYPE_DEBCRED) == 0 || g_strcmp0(type, QOF_TYPE_NUMERIC) == 0)) if (qp && (g_strcmp0 (type, QOF_TYPE_DEBCRED) == 0 ||
g_strcmp0 (type, QOF_TYPE_NUMERIC) == 0))
{ {
gnc_numeric (*nfcn)(gpointer, QofParam *) = gnc_numeric (*nfcn)(gpointer, QofParam *) =
(gnc_numeric(*)(gpointer, QofParam *))(qp->param_getfcn); (gnc_numeric(*)(gpointer, QofParam *))(qp->param_getfcn);
gnc_numeric value = nfcn(res, qp); gnc_numeric value = nfcn (res, qp);
if (qview->numeric_abs) if (qview->numeric_abs)
value = gnc_numeric_abs (value); value = gnc_numeric_abs (value);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, i + 1, gtk_list_store_set (GTK_LIST_STORE(model), &iter, i + 1,
xaccPrintAmount (value, gnc_default_print_info (FALSE)), -1); xaccPrintAmount (value, gnc_default_print_info (FALSE)), -1);
} }
else else
{ {
qofstring = qof_query_core_to_string (type, res, qp); qofstring = qof_query_core_to_string (type, res, qp);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, i + 1, qofstring , -1); gtk_list_store_set (GTK_LIST_STORE(model), &iter, i + 1, qofstring , -1);
g_free(qofstring); g_free (qofstring);
} }
i++; i++;
} }
@ -827,7 +817,6 @@ gnc_query_view_fill (GNCQueryView *qview)
} }
} }
/********************************************************************\ /********************************************************************\
* gnc_query_view_unselect_all * * gnc_query_view_unselect_all *
* unselect all items in the view * * unselect all items in the view *
@ -841,13 +830,12 @@ gnc_query_view_unselect_all (GNCQueryView *qview)
GtkTreeSelection *selection; GtkTreeSelection *selection;
g_return_if_fail (qview != NULL); g_return_if_fail (qview != NULL);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (qview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(qview));
gtk_tree_selection_unselect_all (selection); gtk_tree_selection_unselect_all (selection);
} }
gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item) gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item)
{ {
GtkTreeModel *model; GtkTreeModel *model;
@ -857,9 +845,9 @@ gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item)
g_return_val_if_fail (qview, FALSE); g_return_val_if_fail (qview, FALSE);
g_return_val_if_fail (item, FALSE); g_return_val_if_fail (item, FALSE);
g_return_val_if_fail (GNC_IS_QUERY_VIEW (qview), FALSE); g_return_val_if_fail (GNC_IS_QUERY_VIEW(qview), FALSE);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW(qview));
valid = gtk_tree_model_get_iter_first (model, &iter); valid = gtk_tree_model_get_iter_first (model, &iter);
while (valid) while (valid)
@ -867,7 +855,7 @@ gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item)
// Walk through the list, reading each row // Walk through the list, reading each row
gtk_tree_model_get (model, &iter, 0, &pointer, -1); gtk_tree_model_get (model, &iter, 0, &pointer, -1);
if(pointer == item) if (pointer == item)
return TRUE; return TRUE;
valid = gtk_tree_model_iter_next (model, &iter); valid = gtk_tree_model_iter_next (model, &iter);
@ -875,12 +863,11 @@ gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item)
return FALSE; return FALSE;
} }
void void
gnc_query_view_set_numerics (GNCQueryView *qview, gboolean abs, gboolean inv_sort) gnc_query_view_set_numerics (GNCQueryView *qview, gboolean abs, gboolean inv_sort)
{ {
g_return_if_fail (qview); g_return_if_fail (qview);
g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); g_return_if_fail (GNC_IS_QUERY_VIEW(qview));
qview->numeric_abs = abs; qview->numeric_abs = abs;
qview->numeric_inv_sort = inv_sort; qview->numeric_inv_sort = inv_sort;

View File

@ -29,7 +29,8 @@
#include "Query.h" #include "Query.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif /* __cplusplus */ #endif /* __cplusplus */
#define GNC_TYPE_QUERY_VIEW (gnc_query_view_get_type ()) #define GNC_TYPE_QUERY_VIEW (gnc_query_view_get_type ())
@ -38,11 +39,11 @@ extern "C" {
#define GNC_IS_QUERY_VIEW(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_QUERY_VIEW) #define GNC_IS_QUERY_VIEW(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_QUERY_VIEW)
#define GNC_IS_QUERY_VIEW_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_QUERY_VIEW) #define GNC_IS_QUERY_VIEW_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_QUERY_VIEW)
typedef struct _GNCQueryView GNCQueryView; typedef struct _GNCQueryView GNCQueryView;
typedef struct _GNCQueryViewClass GNCQueryViewClass; typedef struct _GNCQueryViewClass GNCQueryViewClass;
struct _GNCQueryView struct _GNCQueryView
{ {
GtkTreeView qview; GtkTreeView qview;
/* Query information */ /* Query information */
@ -63,10 +64,10 @@ extern "C" {
/* Sorting info */ /* Sorting info */
gint sort_column; gint sort_column;
gboolean increasing; gboolean increasing;
}; };
struct _GNCQueryViewClass struct _GNCQueryViewClass
{ {
GtkTreeViewClass view_class; GtkTreeViewClass view_class;
/* This signal is emitted when a toggle happens, the pointer has /* This signal is emitted when a toggle happens, the pointer has
@ -80,42 +81,42 @@ extern "C" {
/* This signal is emitted when a row is double clicked, the pointer has /* This signal is emitted when a row is double clicked, the pointer has
a pointer to the entry */ a pointer to the entry */
void (*double_click_entry) (GNCQueryView *qview, gpointer entry); void (*double_click_entry) (GNCQueryView *qview, gpointer entry);
}; };
/*********************************************************** /***********************************************************
* public functions * * public functions *
***********************************************************/ ***********************************************************/
GType gnc_query_view_get_type (void); GType gnc_query_view_get_type (void);
/* The param_list remains owned by the caller but is used by the /* The param_list remains owned by the caller but is used by the
* query-view; do not destroy it until you destroy this query-view. * query-view; do not destroy it until you destroy this query-view.
* The query will be copied by the query-view so the caller may do * The query will be copied by the query-view so the caller may do
* whatever they want. * whatever they want.
*/ */
GtkWidget * gnc_query_view_new (GList *param_list, Query *query); GtkWidget * gnc_query_view_new (GList *param_list, Query *query);
void gnc_query_view_construct (GNCQueryView *qview, GList *param_list, Query *query); void gnc_query_view_construct (GNCQueryView *qview, GList *param_list, Query *query);
void gnc_query_view_reset_query (GNCQueryView *view, Query *query); void gnc_query_view_reset_query (GNCQueryView *view, Query *query);
void gnc_query_view_set_numerics (GNCQueryView *qview, gboolean abs, gboolean inv_sort); void gnc_query_view_set_numerics (GNCQueryView *qview, gboolean abs, gboolean inv_sort);
gint gnc_query_view_get_num_entries (GNCQueryView *qview); gint gnc_query_view_get_num_entries (GNCQueryView *qview);
gpointer gnc_query_view_get_selected_entry (GNCQueryView *qview); gpointer gnc_query_view_get_selected_entry (GNCQueryView *qview);
/** Returns a list of selected entries in the query view. /** Returns a list of selected entries in the query view.
* The returned GList should be freed by the caller */ * The returned GList should be freed by the caller */
GList * gnc_query_view_get_selected_entry_list (GNCQueryView *qview); GList * gnc_query_view_get_selected_entry_list (GNCQueryView *qview);
void gnc_query_view_refresh (GNCQueryView *qview); void gnc_query_view_refresh (GNCQueryView *qview);
void gnc_query_view_unselect_all (GNCQueryView *qview); void gnc_query_view_unselect_all (GNCQueryView *qview);
gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item); gboolean gnc_query_view_item_in_view (GNCQueryView *qview, gpointer item);
void gnc_query_sort_order (GNCQueryView *qview, gint column, GtkSortType order); void gnc_query_sort_order (GNCQueryView *qview, gint column, GtkSortType order);
#ifdef __cplusplus #ifdef __cplusplus
} }