gnucash master: Multiple changes pushed
Robert Fewell
bobit at code.gnucash.org
Thu Dec 12 11:56:30 EST 2019
Updated via https://github.com/Gnucash/gnucash/commit/e4ac6b48 (commit)
via https://github.com/Gnucash/gnucash/commit/b372f288 (commit)
via https://github.com/Gnucash/gnucash/commit/67081145 (commit)
via https://github.com/Gnucash/gnucash/commit/1c605a6b (commit)
via https://github.com/Gnucash/gnucash/commit/cac155a9 (commit)
via https://github.com/Gnucash/gnucash/commit/8e155bfc (commit)
via https://github.com/Gnucash/gnucash/commit/1320b79d (commit)
via https://github.com/Gnucash/gnucash/commit/eb781078 (commit)
via https://github.com/Gnucash/gnucash/commit/803d4c51 (commit)
via https://github.com/Gnucash/gnucash/commit/d0727a1b (commit)
via https://github.com/Gnucash/gnucash/commit/dc1881bd (commit)
via https://github.com/Gnucash/gnucash/commit/4a4e0ae5 (commit)
via https://github.com/Gnucash/gnucash/commit/5f6b9946 (commit)
via https://github.com/Gnucash/gnucash/commit/0212537c (commit)
via https://github.com/Gnucash/gnucash/commit/3efb960d (commit)
via https://github.com/Gnucash/gnucash/commit/60765e38 (commit)
via https://github.com/Gnucash/gnucash/commit/e40bee0f (commit)
from https://github.com/Gnucash/gnucash/commit/279a5fcd (commit)
commit e4ac6b480f9b100b98984b42c1815966230529ff
Merge: 279a5fcde b372f2882
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Thu Dec 12 16:33:34 2019 +0000
Merge branch 'maint'
diff --cc gnucash/gnome/gnc-budget-view.c
index caa50ddb1,96d596dd1..c12d3b6d8
--- a/gnucash/gnome/gnc-budget-view.c
+++ b/gnucash/gnome/gnc-budget-view.c
@@@ -111,30 -111,27 +112,31 @@@ This enum is used to specify the specif
* Prototypes *
************************************************************/
/* Plugin Actions */
- static void gnc_budget_view_class_init(GncBudgetViewClass *klass);
- static void gnc_budget_view_init(GncBudgetView *budget_view);
- static void gnc_budget_view_finalize(GObject *object);
+ static void gnc_budget_view_class_init (GncBudgetViewClass *klass);
+ static void gnc_budget_view_init (GncBudgetView *budget_view);
+ static void gnc_budget_view_finalize (GObject *object);
- static void gbv_create_widget(GncBudgetView *view);
+ static void gbv_create_widget (GncBudgetView *budget_view);
#if 0
- static gboolean gbv_button_press_cb(
- GtkWidget *widget, GdkEventButton *event, GncBudgetView *view);
+ static gboolean gbv_button_press_cb (GtkWidget *widget, GdkEventButton *event,
+ GncBudgetView *budget_view);
#endif
- static gboolean gbv_key_press_cb(GtkWidget *treeview, GdkEventKey *event,
- gpointer userdata);
- static void gbv_row_activated_cb(
- GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col,
- GncBudgetView *view);
- static gboolean query_tooltip_tree_view_cb(GtkWidget *widget, gint x, gint y,
- gboolean keyboard_tip,
- GtkTooltip *tooltip, GncBudgetView* view);
+ static gboolean gbv_key_press_cb (GtkWidget *treeview, GdkEventKey *event,
- gpointer userdata);
++ gpointer user_data);
+ static void gbv_row_activated_cb (GtkTreeView *treeview, GtkTreePath *path,
+ GtkTreeViewColumn *col, GncBudgetView *budget_view);
++static gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
++ gboolean keyboard_tip,
++ GtkTooltip *tooltip,
++ GncBudgetView* budget_view);
#if 0
- static void gbv_selection_changed_cb(
- GtkTreeSelection *selection, GncBudgetView *view);
+ static void gbv_selection_changed_cb (GtkTreeSelection *selection,
+ GncBudgetView *budget_view);
#endif
- static void gbv_treeview_resized_cb(GtkWidget* widget, GtkAllocation* allocation, GncBudgetView* view);
- static gnc_numeric gbv_get_accumulated_budget_amount(GncBudget* budget,
- Account* account, guint period_num);
+ static void gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
+ GncBudgetView* budget_view);
+ static gnc_numeric gbv_get_accumulated_budget_amount (GncBudget* budget,
+ Account* account, guint period_num);
/** \brief the private budget view structure
@@@ -217,11 -213,12 +218,9 @@@ gnc_budget_view_class_init (GncBudgetVi
}
static void
- gnc_budget_view_init(GncBudgetView *budget_view)
+ gnc_budget_view_init (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
- Account *root;
-- gint num_top_accounts;
-- gint i;
ENTER("view %p", budget_view);
@@@ -381,22 -413,18 +412,21 @@@ gbv_create_widget (GncBudgetView *budge
// Accounts filter
priv->fd->tree_view = GNC_TREE_VIEW_ACCOUNT(priv->tree_view);
- gnc_tree_view_account_set_filter(
- GNC_TREE_VIEW_ACCOUNT(tree_view),
- gnc_plugin_page_account_tree_filter_accounts,
- priv->fd, NULL);
+ gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT(tree_view),
+ gnc_plugin_page_account_tree_filter_accounts,
+ priv->fd, NULL);
// Add accounts tree view to scroll window
- gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(tree_view));
+ gtk_container_add (GTK_CONTAINER(scrolled_window), GTK_WIDGET(tree_view));
- g_object_set(tree_view, "has-tooltip", TRUE, NULL);
- g_signal_connect(G_OBJECT(tree_view), "query-tooltip",
- G_CALLBACK(query_tooltip_tree_view_cb), view);
- g_signal_connect(G_OBJECT(tree_view), "row-activated",
- G_CALLBACK(gbv_row_activated_cb), view);
++ g_object_set (tree_view, "has-tooltip", TRUE, NULL);
++ g_signal_connect (G_OBJECT(tree_view), "query-tooltip",
++ G_CALLBACK(query_tooltip_tree_view_cb), budget_view);
+ g_signal_connect (G_OBJECT(tree_view), "row-activated",
+ G_CALLBACK(gbv_row_activated_cb), budget_view);
// save the main scrolled window horizontal adjustment
- priv->hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(scrolled_window));
+ priv->hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(scrolled_window));
PINFO("Number of Created Account columns is %d", gtk_tree_view_get_n_columns (tree_view));
@@@ -794,55 -828,16 +830,54 @@@ gbv_row_activated_cb (GtkTreeView *tree
{
Account *account;
- g_return_if_fail(GNC_IS_BUDGET_VIEW(view));
- account = gnc_tree_view_account_get_account_from_path(
+ g_return_if_fail (GNC_IS_BUDGET_VIEW(budget_view));
+
+ account = gnc_tree_view_account_get_account_from_path (
GNC_TREE_VIEW_ACCOUNT(treeview), path);
if (account == NULL)
- {
return;
- }
- g_signal_emit_by_name(view, "account-activated", account);
+ g_signal_emit_by_name (budget_view, "account-activated", account);
}
+static gboolean
+query_tooltip_tree_view_cb(GtkWidget *widget, gint x, gint y,
+ gboolean keyboard_tip, GtkTooltip *tooltip,
+ GncBudgetView* view)
+{
+ GtkTreeView *tree_view = GTK_TREE_VIEW(widget);
+ GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ GtkTreePath *path = NULL;
+ GtkTreeViewColumn *column = NULL;
+ const gchar *note;
+ guint period_num;
+ Account *account;
+
+ gtk_tree_view_convert_widget_to_bin_window_coords(tree_view, x, y, &x, &y);
+
+ if (keyboard_tip || !gtk_tree_view_get_path_at_pos(tree_view, x, y, &path,
+ &column, NULL, NULL))
+ return FALSE;
+
+ if (!column)
+ return FALSE;
+
+ period_num = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "period_num"));
+ if (!period_num && priv->period_col_list->data != column)
+ return FALSE;
+ account = gnc_tree_view_account_get_account_from_path(
+ GNC_TREE_VIEW_ACCOUNT(widget), path);
+ note = gnc_budget_get_account_period_note(priv->budget, account, period_num);
+ if (!note)
+ return FALSE;
+
+ gtk_tooltip_set_text(tooltip, note);
+ gtk_tree_view_set_tooltip_cell(tree_view, tooltip, path, column, NULL);
+ gtk_tree_path_free(path);
+
+ return TRUE;
+}
+
/** \brief Action for when a selection in a gnc budget view is changed
*/
#if 0
@@@ -969,20 -958,16 +998,17 @@@ budget_col_source (Account *account, Gt
guint period_num;
gnc_numeric numeric;
gchar amtbuff[100]; //FIXME: overkill, where's the #define?
+ const gchar *note;
- gboolean red = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
+ gboolean red = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
- budget = GNC_BUDGET(g_object_get_data(G_OBJECT(col), "budget"));
- bview = GTK_TREE_VIEW(g_object_get_data(G_OBJECT(col), "budget_view"));
- period_num = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(col),
- "period_num"));
+ budget = GNC_BUDGET(g_object_get_data (G_OBJECT(col), "budget"));
+ bview = GTK_TREE_VIEW(g_object_get_data (G_OBJECT(col), "budget_tree_view"));
+ period_num = GPOINTER_TO_UINT(g_object_get_data (G_OBJECT(col), "period_num"));
- if (!gnc_budget_is_account_period_value_set(budget, account, period_num))
+ if (!gnc_budget_is_account_period_value_set (budget, account, period_num))
{
- if (gnc_account_n_children(account) == 0)
- {
+ if (gnc_account_n_children (account) == 0)
amtbuff[0] = '\0';
- }
else
{
GdkRGBA color;
@@@ -1029,15 -1012,10 +1053,14 @@@
g_free (color);
}
else
- g_object_set(cell, "foreground", NULL, NULL);
-
+ g_object_set (cell, "foreground", NULL, NULL);
}
}
+
- note = gnc_budget_get_account_period_note(budget, account, period_num);
- g_object_set(cell, "flagged", note != NULL, NULL);
++ note = gnc_budget_get_account_period_note (budget, account, period_num);
++ g_object_set (cell, "flagged", note != NULL, NULL);
+
- return g_strdup(amtbuff);
+ return g_strdup (amtbuff);
}
/** \brief Function to find the total for an account for display in the
@@@ -1407,22 -1380,15 +1425,23 @@@ gnc_budget_view_refresh (GncBudgetView
GtkTreeViewColumn *col;
GList *col_list;
GList *totals_col_list;
+ GdkRGBA *note_color, *note_color_selected;
+ GtkStyleContext *stylectxt;
+
- ENTER("view %p", view);
+ ENTER("view %p", budget_view);
+
+ g_return_if_fail (budget_view != NULL);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
- g_return_if_fail(view != NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
++ stylectxt = gtk_widget_get_style_context (GTK_WIDGET(priv->tree_view));
++ gtk_style_context_get (stylectxt, GTK_STATE_FLAG_SELECTED, "background-color", ¬e_color, NULL);
++ gtk_style_context_get (stylectxt, GTK_STATE_FLAG_NORMAL, "background-color", ¬e_color_selected, NULL);
+
- stylectxt = gtk_widget_get_style_context(GTK_WIDGET(priv->tree_view));
- gtk_style_context_get(stylectxt, GTK_STATE_FLAG_SELECTED, "background-color", ¬e_color, NULL);
- gtk_style_context_get(stylectxt, GTK_STATE_FLAG_NORMAL, "background-color", ¬e_color_selected, NULL);
+ num_periods = gnc_budget_get_num_periods (priv->budget);
+
- num_periods = gnc_budget_get_num_periods(priv->budget);
col_list = priv->period_col_list;
totals_col_list = priv->totals_col_list;
- num_periods_visible = g_list_length(col_list);
+ num_periods_visible = g_list_length (col_list);
/* Hide any unneeded extra columns */
while (num_periods_visible > num_periods)
@@@ -1455,40 -1421,36 +1474,39 @@@
/* Create any needed columns */
while (num_periods_visible < num_periods)
{
- GtkCellRenderer* renderer;
+ GtkCellRenderer *renderer = gnc_cell_renderer_text_flag_new ();
+ g_object_set(renderer, "flag-color-rgba", note_color, NULL);
+ g_object_set(renderer, "flag-color-rgba-selected", note_color_selected, NULL);
- col = gnc_tree_view_account_add_custom_column_renderer(
- col = gnc_tree_view_account_add_custom_column (
++ col = gnc_tree_view_account_add_custom_column_renderer (
GNC_TREE_VIEW_ACCOUNT(priv->tree_view), "",
- budget_col_source, budget_col_edited);
+ budget_col_source, budget_col_edited, renderer);
- g_object_set_data(G_OBJECT(col), "budget", priv->budget);
- g_object_set_data(G_OBJECT(col), "budget_view", priv->tree_view);
- g_object_set_data(G_OBJECT(col), "period_num",
- GUINT_TO_POINTER(num_periods_visible));
- col_list = g_list_append(col_list, col);
+ g_object_set_data (G_OBJECT(col), "budget", priv->budget);
+ g_object_set_data (G_OBJECT(col), "budget_tree_view", priv->tree_view);
+ g_object_set_data (G_OBJECT(col), "period_num", GUINT_TO_POINTER(num_periods_visible));
+ col_list = g_list_append (col_list, col);
- // as we only have one renderer/column, use this function to get it
- renderer = gnc_tree_view_column_get_renderer (col);
-
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- g_signal_connect(G_OBJECT(renderer), "edited", (GCallback)gbv_col_edited_cb, view);
- g_signal_connect(G_OBJECT(renderer), "editing-started",
- (GCallback)gdv_editing_started_cb, view);
- g_signal_connect(G_OBJECT(renderer), "editing-canceled",
- (GCallback)gdv_editing_canceled_cb, view);
- col = gbv_create_totals_column(view, num_periods_visible);
+ g_signal_connect (G_OBJECT(renderer), "edited", (GCallback)gbv_col_edited_cb, budget_view);
+ g_signal_connect (G_OBJECT(renderer), "editing-started",
+ (GCallback)gdv_editing_started_cb, budget_view);
+ g_signal_connect (G_OBJECT(renderer), "editing-canceled",
+ (GCallback)gdv_editing_canceled_cb, budget_view);
+ col = gbv_create_totals_column (budget_view, num_periods_visible);
if (col != NULL)
{
- gtk_tree_view_append_column(priv->totals_tree_view, col);
- totals_col_list = g_list_append(totals_col_list, col);
+ gtk_tree_view_append_column (priv->totals_tree_view, col);
+ totals_col_list = g_list_append (totals_col_list, col);
}
- num_periods_visible = g_list_length(col_list);
+ num_periods_visible = g_list_length (col_list);
}
+
+ gdk_rgba_free (note_color);
+ gdk_rgba_free (note_color_selected);
+
priv->period_col_list = col_list;
priv->totals_col_list = totals_col_list;
diff --cc gnucash/gnome/gnc-plugin-page-budget.c
index 607e265fd,5e5e6dedb..00ed4a004
--- a/gnucash/gnome/gnc-plugin-page-budget.c
+++ b/gnucash/gnome/gnc-plugin-page-budget.c
@@@ -87,43 -86,41 +87,45 @@@ static void gnc_plugin_page_budget_fina
static GtkWidget *
gnc_plugin_page_budget_create_widget (GncPluginPage *plugin_page);
static void gnc_plugin_page_budget_destroy_widget (GncPluginPage *plugin_page);
- static void gnc_plugin_page_budget_save_page (
- GncPluginPage *plugin_page, GKeyFile *file, const gchar *group);
- static GncPluginPage *gnc_plugin_page_budget_recreate_page (
- GtkWidget *window, GKeyFile *file, const gchar *group);
-
-
- static gboolean gppb_button_press_cb(
- GtkWidget *widget, GdkEventButton *event, GncPluginPage *page);
- static void gppb_account_activated_cb(GncBudgetView* view, Account* account,
- GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_save_page (GncPluginPage *plugin_page,
+ GKeyFile *file,
+ const gchar *group);
+ static GncPluginPage *gnc_plugin_page_budget_recreate_page (GtkWidget *window,
+ GKeyFile *file,
+ const gchar *group);
+ static gboolean gppb_button_press_cb (GtkWidget *widget,
+ GdkEventButton *event,
+ GncPluginPage *page);
+ static void gppb_account_activated_cb (GncBudgetView* view,
+ Account* account,
+ GncPluginPageBudget *page);
#if 0
- static void gppb_selection_changed_cb(
- GtkTreeSelection *selection, GncPluginPageBudget *page);
+ static void gppb_selection_changed_cb (GtkTreeSelection *selection,
+ GncPluginPageBudget *page);
#endif
- static void gnc_plugin_page_budget_cmd_view_filter_by (
- GtkAction *action, GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_view_filter_by (GtkAction *action,
+ GncPluginPageBudget *page);
/* Command Callbacks */
- static void gnc_plugin_page_budget_cmd_open_account(
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_open_subaccounts(
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_delete_budget(
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_view_options(
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_estimate_budget(
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_allperiods_budget(
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_refresh (
- GtkAction *action, GncPluginPageBudget *page);
- static void gnc_plugin_page_budget_cmd_budget_note(
- GtkAction *action, GncPluginPageBudget *page);
- static void allperiods_budget_helper(GtkTreeModel *model, GtkTreePath *path,
- GtkTreeIter *iter, gpointer data);
+ static void gnc_plugin_page_budget_cmd_open_account (GtkAction *action,
+ GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_open_subaccounts (GtkAction *action,
+ GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_delete_budget (GtkAction *action,
+ GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_view_options (GtkAction *action,
+ GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_estimate_budget (GtkAction *action,
+ GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_allperiods_budget (GtkAction *action,
+ GncPluginPageBudget *page);
+ static void gnc_plugin_page_budget_cmd_refresh (GtkAction *action,
+ GncPluginPageBudget *page);
++static void gnc_plugin_page_budget_cmd_budget_note (GtkAction *action,
++ GncPluginPageBudget *page);
++static void allperiods_budget_helper (GtkTreeModel *model, GtkTreePath *path,
++ GtkTreeIter *iter, gpointer data);
static GtkActionEntry gnc_plugin_page_budget_actions [] =
{
@@@ -164,14 -161,9 +166,14 @@@
"AllPeriodsBudgetAction", "system-run", N_("All Periods"),
NULL,
N_("Edit budget for all periods for the selected accounts"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_allperiods_budget)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_allperiods_budget)
},
-
+ {
+ "BudgetNoteAction", "system-run", N_("Edit Note"),
+ NULL,
+ N_("Edit note for the selected account and period"),
+ G_CALLBACK (gnc_plugin_page_budget_cmd_budget_note)
+ },
/* View menu */
{
"ViewFilterByAction", NULL, N_("_Filter By..."), NULL, NULL,
@@@ -1151,89 -1138,13 +1149,89 @@@ gnc_plugin_page_budget_cmd_allperiods_b
default:
break;
}
- gtk_widget_destroy(dialog);
- g_object_unref(G_OBJECT(builder));
+ gtk_widget_destroy (dialog);
+ g_object_unref (G_OBJECT(builder));
}
+static void
+gnc_plugin_page_budget_cmd_budget_note(GtkAction *action,
+ GncPluginPageBudget *page)
+{
+ GncPluginPageBudgetPrivate *priv;
+ GtkTreeSelection *sel;
+ GtkWidget *dialog, *note;
+ gint result;
+ GtkBuilder *builder;
+ const gchar *txt;
+ GtkTreeViewColumn *col = NULL;
+ GtkTreePath *path = NULL;
+ guint period_num = 0;
+ Account *acc = NULL;
+
+ g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
+ priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
+ sel = gnc_budget_view_get_selection(priv->budget_view);
+
+ gtk_tree_view_get_cursor(
+ GTK_TREE_VIEW(gnc_budget_view_get_account_tree_view(priv->budget_view)),
+ &path, &col);
+
+ if (path)
+ {
+ period_num = col ? GPOINTER_TO_UINT(
+ g_object_get_data(G_OBJECT(col), "period_num"))
+ : 0;
+
+ acc = gnc_budget_view_get_account_from_path(priv->budget_view, path);
+ gtk_tree_path_free(path);
+ }
+
+ if (!acc)
+ {
+ dialog = gtk_message_dialog_new(
+ GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))),
+ GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
+ GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s",
+ _("You must select one budget cell to edit."));
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
+ return;
+ }
+
+ builder = gtk_builder_new();
+ gnc_builder_add_from_file(builder, "gnc-plugin-page-budget.glade",
+ "budget_note_dialog");
+
+ dialog = GTK_WIDGET(gtk_builder_get_object(builder, "budget_note_dialog"));
+
+ gtk_window_set_transient_for(
+ GTK_WINDOW(dialog),
+ GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))));
+
+ note = GTK_WIDGET(gtk_builder_get_object(builder, "BudgetNote"));
+ txt = gnc_budget_get_account_period_note(priv->budget, acc, period_num);
+ xxxgtk_textview_set_text(GTK_TEXT_VIEW(note), txt);
+
+ gtk_widget_show_all(dialog);
+ result = gtk_dialog_run(GTK_DIALOG(dialog));
+ switch (result)
+ {
+ case GTK_RESPONSE_OK:
+ txt = xxxgtk_textview_get_text(GTK_TEXT_VIEW(note));
+ if (!strlen(txt))
+ txt = NULL;
+ gnc_budget_set_account_period_note(priv->budget, acc, period_num, txt);
+ break;
+ default:
+ break;
+ }
+ gtk_widget_destroy(dialog);
+ g_object_unref(G_OBJECT(builder));
+}
+
static void
gnc_plugin_page_budget_cmd_view_filter_by (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
commit b372f28829f67a3749870a3559374a2929a5af83
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Dec 12 20:20:47 2019 +0800
[test-owner-report] initial tests new-owner-report
mainly tests amounts being displayed are correct
diff --git a/gnucash/report/business-reports/test/test-owner-report.scm b/gnucash/report/business-reports/test/test-owner-report.scm
index df8940bb7..d040fc696 100644
--- a/gnucash/report/business-reports/test/test-owner-report.scm
+++ b/gnucash/report/business-reports/test/test-owner-report.scm
@@ -17,6 +17,7 @@
(list (cons 'employee "08ae9c2e884b4f9787144f47eacd7f44")
(cons 'vendor "d7d1e53505ee4b1b82efad9eacedaea0")
(cons 'customer "c146317be32e4948a561ec7fc89d15c1")
+ (cons 'customer-new "c146317be32e4948a561ec7fc89d15c1-new")
(cons 'job "5518ac227e474f47a34439f2d4d049de")))
(setlocale LC_ALL "C")
@@ -206,13 +207,18 @@
(set-option! options "General"
(case variant
((customer) "Customer")
+ ((customer-new) "Customer")
((job) "Job"))
owner)
(set-option! options "General" "From"
(cons 'absolute (gnc-dmy2time64 1 1 1980)))
(set-option! options "General" "To"
(cons 'absolute (gnc-dmy2time64 1 7 1980)))
- (set-option! options "General" "Account" account)
+ (cond
+ ((eq? variant 'customer-new)
+ (set-option! options "Display Columns" "Links" 'detailed))
+ (else
+ (set-option! options "General" "Account" account)))
options))
;; inv-1 $6, due 18.7.1980 after report-date i.e. "current"
@@ -321,6 +327,42 @@
sxml)))
(test-end "customer-report")
+ (test-begin "new-customer-report")
+ (let* ((options (default-testing-options 'customer-new
+ owner-1 (get-acct "AR-USD")))
+ (sxml (options->sxml 'customer-new options "new-customer-report basic")))
+ (test-equal "inv-descriptions"
+ '("inv >90 $11.50" "inv 60-90 $7.50" "inv 30-60 $8.50"
+ "inv >90 payment" "inv >90 payment" "inv <30days $4.00"
+ "inv $200" "inv $200" "inv current $6.75" "inv $3 CN"
+ "$31.75" "$7.50")
+ ((sxpath `(// (table 3) // tr (td 5) // *text*))
+ sxml))
+ (test-equal "credit-amounts"
+ '("$11.50" "$7.50" "$8.50" "$4.00" "$200.00" "$6.75" "$8.00")
+ ((sxpath `(// (table 3) // tr (td 6) // *text*))
+ sxml))
+ (test-equal "debit-amounts"
+ '("$1.50" "$2.00" "$200.00" "$3.00" "$31.75")
+ ((sxpath `(// (table 3) // tr (td 7) // *text*))
+ sxml))
+ (test-equal "balance-amounts"
+ '("$11.50" "$19.00" "$27.50" "$26.00" "$24.00" "$28.00"
+ "$228.00" "$28.00" "$34.75" "$31.75")
+ ((sxpath `(// (table 3) // tr (td 8) // *text*))
+ sxml))
+ (test-equal "link-amounts"
+ '("$1.50" "$11.50" "$11.50" "$200.00" "$200.00")
+ ((sxpath `(// (table 3) // tr (td 11) // *text*))
+ sxml))
+ ;; from the report, find the 3rd table, last row, find embedded
+ ;; table, retrieve tr contents
+ (test-equal "aging-table"
+ '("$0.00" "$6.75" "$1.00" "$8.50" "$7.50" "$8.00" "$31.75")
+ ((sxpath `(// (table 3) // (tr -1) // table // tbody // tr // *text*))
+ sxml)))
+ (test-end "new-customer-report")
+
(display "job-report tests:\n")
;; inv for job
(let ((inv-2-copy (gncInvoiceCopy inv-2)))
commit 670811455dd24d3b30064dc7d5a1e456c4c1efe4
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Dec 12 21:19:03 2019 +0800
[report-utilities] bugfix: aging-list was incorrect. off-by-1 error.
off-by-1 error in aging-list dates.
diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-system/report-utilities.scm
index 36eacf7c7..5cb4d44e7 100644
--- a/gnucash/report/report-system/report-utilities.scm
+++ b/gnucash/report/report-system/report-utilities.scm
@@ -1136,7 +1136,7 @@ flawed. see report-utilities.scm. please update reports.")
to-date date-type receivable?)
(gnc:msg "processing " (qof-print-date to-date) " date-type " date-type
"receivable? " receivable?)
- (let ((bucket-dates (make-extended-interval-list to-date (- num-buckets 2)))
+ (let ((bucket-dates (make-extended-interval-list to-date (- num-buckets 3)))
(buckets (make-vector num-buckets 0)))
(define (addbucket! idx amt)
(vector-set! buckets idx (+ amt (vector-ref buckets idx))))
commit 1c605a6b10c6203acb3d310dec2f8f4696c90008
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Dec 11 22:14:16 2019 +0800
[report-utilities] bugfix: overpayment works for AP accounts
and fix comment from 5f6b9946d.
diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-system/report-utilities.scm
index 652ab4543..36eacf7c7 100644
--- a/gnucash/report/report-system/report-utilities.scm
+++ b/gnucash/report/report-system/report-utilities.scm
@@ -1166,7 +1166,7 @@ flawed. see report-utilities.scm. please update reports.")
(lp (cdr splits))))
;; next split is a payment. analyse its sister APAR splits. any
- ;; split whose lot-balance is negative is an overpayment.
+ ;; split whose lot has no invoice is an overpayment.
((eqv? (xaccTransGetTxnType (xaccSplitGetParent (car splits)))
TXN-TYPE-PAYMENT)
(let* ((txn (xaccSplitGetParent (car splits)))
@@ -1181,7 +1181,7 @@ flawed. see report-utilities.scm. please update reports.")
0 splitlist)))
(gnc:msg "next " (gnc:strify (car splits)) " payment " payment
" overpayment " overpayment)
- (addbucket! (1- num-buckets) (- overpayment))
+ (addbucket! (1- num-buckets) (if receivable? (- overpayment) overpayment))
(lp (cdr splits))))
;; not invoice/prepayment. regular or payment split.
commit cac155a97c7d7bebf7c5d69a5dd6500ec38a4ecb
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed Dec 11 15:13:08 2019 +0000
Swap the buttons around on the Budget Open dialogue
Swap the OK and Cancel buttons so they conform to the normal layout.
diff --git a/gnucash/gnome/gnc-plugin-budget.c b/gnucash/gnome/gnc-plugin-budget.c
index 6468b2b38..0f767047f 100644
--- a/gnucash/gnome/gnc-plugin-budget.c
+++ b/gnucash/gnome/gnc-plugin-budget.c
@@ -289,8 +289,8 @@ gnc_budget_gui_select_budget (GtkWindow *parent, QofBook *book)
dlg = GTK_DIALOG(gtk_dialog_new_with_buttons (
_("Select a Budget"), parent, GTK_DIALOG_MODAL,
- _("_OK"), GTK_RESPONSE_OK,
- _("_Cancel"), GTK_RESPONSE_CANCEL, NULL));
+ _("_Cancel"), GTK_RESPONSE_CANCEL,
+ _("_OK"), GTK_RESPONSE_OK, NULL));
tv = GTK_TREE_VIEW(gtk_tree_view_new ());
sel = gtk_tree_view_get_selection (tv);
commit 8e155bfccf3a2180755ee19a46380061d20aaffc
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed Dec 11 14:45:59 2019 +0000
Change the spacing in files gnc-plugin-page-budget.*
diff --git a/gnucash/gnome/gnc-plugin-page-budget.c b/gnucash/gnome/gnc-plugin-page-budget.c
index d7ae5352d..5e5e6dedb 100644
--- a/gnucash/gnome/gnc-plugin-page-budget.c
+++ b/gnucash/gnome/gnc-plugin-page-budget.c
@@ -86,39 +86,41 @@ static void gnc_plugin_page_budget_finalize (GObject *object);
static GtkWidget *
gnc_plugin_page_budget_create_widget (GncPluginPage *plugin_page);
static void gnc_plugin_page_budget_destroy_widget (GncPluginPage *plugin_page);
-static void gnc_plugin_page_budget_save_page (
- GncPluginPage *plugin_page, GKeyFile *file, const gchar *group);
-static GncPluginPage *gnc_plugin_page_budget_recreate_page (
- GtkWidget *window, GKeyFile *file, const gchar *group);
-
-
-static gboolean gppb_button_press_cb(
- GtkWidget *widget, GdkEventButton *event, GncPluginPage *page);
-static void gppb_account_activated_cb(GncBudgetView* view, Account* account,
- GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_save_page (GncPluginPage *plugin_page,
+ GKeyFile *file,
+ const gchar *group);
+static GncPluginPage *gnc_plugin_page_budget_recreate_page (GtkWidget *window,
+ GKeyFile *file,
+ const gchar *group);
+static gboolean gppb_button_press_cb (GtkWidget *widget,
+ GdkEventButton *event,
+ GncPluginPage *page);
+static void gppb_account_activated_cb (GncBudgetView* view,
+ Account* account,
+ GncPluginPageBudget *page);
#if 0
-static void gppb_selection_changed_cb(
- GtkTreeSelection *selection, GncPluginPageBudget *page);
+static void gppb_selection_changed_cb (GtkTreeSelection *selection,
+ GncPluginPageBudget *page);
#endif
-static void gnc_plugin_page_budget_cmd_view_filter_by (
- GtkAction *action, GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_view_filter_by (GtkAction *action,
+ GncPluginPageBudget *page);
/* Command Callbacks */
-static void gnc_plugin_page_budget_cmd_open_account(
- GtkAction *action, GncPluginPageBudget *page);
-static void gnc_plugin_page_budget_cmd_open_subaccounts(
- GtkAction *action, GncPluginPageBudget *page);
-static void gnc_plugin_page_budget_cmd_delete_budget(
- GtkAction *action, GncPluginPageBudget *page);
-static void gnc_plugin_page_budget_cmd_view_options(
- GtkAction *action, GncPluginPageBudget *page);
-static void gnc_plugin_page_budget_cmd_estimate_budget(
- GtkAction *action, GncPluginPageBudget *page);
-static void gnc_plugin_page_budget_cmd_allperiods_budget(
- GtkAction *action, GncPluginPageBudget *page);
-static void gnc_plugin_page_budget_cmd_refresh (
- GtkAction *action, GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_open_account (GtkAction *action,
+ GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_open_subaccounts (GtkAction *action,
+ GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_delete_budget (GtkAction *action,
+ GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_view_options (GtkAction *action,
+ GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_estimate_budget (GtkAction *action,
+ GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_allperiods_budget (GtkAction *action,
+ GncPluginPageBudget *page);
+static void gnc_plugin_page_budget_cmd_refresh (GtkAction *action,
+ GncPluginPageBudget *page);
static GtkActionEntry gnc_plugin_page_budget_actions [] =
{
@@ -129,54 +131,54 @@ static GtkActionEntry gnc_plugin_page_budget_actions [] =
{
"OpenAccountAction", GNC_ICON_OPEN_ACCOUNT, N_("Open _Account"), NULL,
N_("Open the selected account"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_open_account)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_open_account)
},
{
"OpenSubaccountsAction", GNC_ICON_OPEN_ACCOUNT,
N_("Open _Subaccounts"), NULL,
N_("Open the selected account and all its subaccounts"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_open_subaccounts)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_open_subaccounts)
},
/* Edit menu */
{
"DeleteBudgetAction", GNC_ICON_DELETE_BUDGET, N_("_Delete Budget"),
NULL, N_("Delete this budget"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_delete_budget)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_delete_budget)
},
{
"OptionsBudgetAction", "document-properties", N_("Budget Options"),
NULL, N_("Edit this budget's options"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_view_options)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_view_options)
},
{
"EstimateBudgetAction", "system-run", N_("Estimate Budget"),
NULL,
N_("Estimate a budget value for the selected accounts from past transactions"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_estimate_budget)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_estimate_budget)
},
{
"AllPeriodsBudgetAction", "system-run", N_("All Periods"),
NULL,
N_("Edit budget for all periods for the selected accounts"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_allperiods_budget)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_allperiods_budget)
},
/* View menu */
{
"ViewFilterByAction", NULL, N_("_Filter By..."), NULL, NULL,
- G_CALLBACK (gnc_plugin_page_budget_cmd_view_filter_by)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_view_filter_by)
},
{
"ViewRefreshAction", "view-refresh", N_("_Refresh"), "<primary>r",
N_("Refresh this window"),
- G_CALLBACK (gnc_plugin_page_budget_cmd_refresh)
+ G_CALLBACK(gnc_plugin_page_budget_cmd_refresh)
},
};
static guint gnc_plugin_page_budget_n_actions =
- G_N_ELEMENTS (gnc_plugin_page_budget_actions);
+ G_N_ELEMENTS(gnc_plugin_page_budget_actions);
#if 0
static const gchar *actions_requiring_account[] =
@@ -198,13 +200,13 @@ static action_toolbar_labels toolbar_labels[] =
{ NULL, NULL },
};
-typedef enum allperiods_action
+typedef enum allperiods_action
{
REPLACE,
ADD,
MULTIPLY,
UNSET
-} allperiods_action;
+} allperiods_action;
typedef struct GncPluginPageBudgetPrivate
{
@@ -239,7 +241,7 @@ typedef struct GncPluginPageBudgetPrivate
G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageBudget, gnc_plugin_page_budget, GNC_TYPE_PLUGIN_PAGE)
#define GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(o) \
- ((GncPluginPageBudgetPrivate*)g_type_instance_get_private((GTypeInstance*)o, GNC_TYPE_PLUGIN_PAGE_BUDGET))
+ ((GncPluginPageBudgetPrivate*)g_type_instance_get_private ((GTypeInstance*)o, GNC_TYPE_PLUGIN_PAGE_BUDGET))
static GObjectClass *parent_class = NULL;
@@ -251,12 +253,12 @@ gnc_plugin_page_budget_new (GncBudget *budget)
gchar* label;
const GList *item;
- g_return_val_if_fail(GNC_IS_BUDGET(budget), NULL);
+ g_return_val_if_fail (GNC_IS_BUDGET(budget), NULL);
ENTER(" ");
/* Is there an existing page? */
- item = gnc_gobject_tracking_get_list(GNC_PLUGIN_PAGE_BUDGET_NAME);
- for ( ; item; item = g_list_next(item))
+ item = gnc_gobject_tracking_get_list (GNC_PLUGIN_PAGE_BUDGET_NAME);
+ for ( ; item; item = g_list_next (item))
{
plugin_page = (GncPluginPageBudget *)item->data;
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
@@ -267,15 +269,15 @@ gnc_plugin_page_budget_new (GncBudget *budget)
}
}
- plugin_page = g_object_new(GNC_TYPE_PLUGIN_PAGE_BUDGET, NULL);
+ plugin_page = g_object_new (GNC_TYPE_PLUGIN_PAGE_BUDGET, NULL);
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
priv->budget = budget;
priv->delete_budget = FALSE;
- priv->key = *gnc_budget_get_guid(budget);
- label = g_strdup_printf("%s: %s", _("Budget"), gnc_budget_get_name(budget));
- g_object_set(G_OBJECT(plugin_page), "page-name", label, NULL);
- g_free(label);
+ priv->key = *gnc_budget_get_guid (budget);
+ label = g_strdup_printf ("%s: %s", _("Budget"), gnc_budget_get_name (budget));
+ g_object_set (G_OBJECT(plugin_page), "page-name", label, NULL);
+ g_free (label);
LEAVE("new budget page %p", plugin_page);
return GNC_PLUGIN_PAGE(plugin_page);
}
@@ -284,7 +286,7 @@ gnc_plugin_page_budget_new (GncBudget *budget)
static void
gnc_plugin_page_budget_class_init (GncPluginPageBudgetClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
parent_class = g_type_class_peek_parent (klass);
@@ -312,19 +314,19 @@ gnc_plugin_page_budget_init (GncPluginPageBudget *plugin_page)
/* Initialize parent declared variables */
parent = GNC_PLUGIN_PAGE(plugin_page);
- g_object_set(G_OBJECT(plugin_page),
- "page-name", _("Budget"),
- "page-uri", "default:",
- "ui-description", "gnc-plugin-page-budget-ui.xml",
- NULL);
+ g_object_set (G_OBJECT(plugin_page),
+ "page-name", _("Budget"),
+ "page-uri", "default:",
+ "ui-description", "gnc-plugin-page-budget-ui.xml",
+ NULL);
/* change me when the system supports multiple books */
- gnc_plugin_page_add_book(parent, gnc_get_current_book());
+ gnc_plugin_page_add_book (parent, gnc_get_current_book());
/* Create menu and toolbar information */
action_group =
- gnc_plugin_page_create_action_group(parent,
- "GncPluginPageBudgetActions");
+ gnc_plugin_page_create_action_group (parent,
+ "GncPluginPageBudgetActions");
gtk_action_group_add_actions (action_group,
gnc_plugin_page_budget_actions,
gnc_plugin_page_budget_n_actions,
@@ -340,7 +342,7 @@ gnc_plugin_page_budget_init (GncPluginPageBudget *plugin_page)
priv->sigFigs = 1;
priv->useAvg = FALSE;
- recurrenceSet(&priv->r, 1, PERIOD_MONTH, NULL, WEEKEND_ADJ_NONE);
+ recurrenceSet (&priv->r, 1, PERIOD_MONTH, NULL, WEEKEND_ADJ_NONE);
LEAVE("page %p, priv %p, action group %p",
plugin_page, priv, action_group);
@@ -353,8 +355,8 @@ gnc_plugin_page_budget_finalize (GObject *object)
GncPluginPageBudget *page;
ENTER("object %p", object);
- page = GNC_PLUGIN_PAGE_BUDGET (object);
- g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
+ page = GNC_PLUGIN_PAGE_BUDGET(object);
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
G_OBJECT_CLASS (parent_class)->finalize (object);
LEAVE(" ");
@@ -387,7 +389,7 @@ gnc_plugin_page_budget_focus (GncPluginPageBudget *page)
static void
-gnc_plugin_page_budget_refresh_cb(GHashTable *changes, gpointer user_data)
+gnc_plugin_page_budget_refresh_cb (GHashTable *changes, gpointer user_data)
{
GncPluginPageBudget *page;
GncPluginPageBudgetPrivate *priv;
@@ -397,7 +399,7 @@ gnc_plugin_page_budget_refresh_cb(GHashTable *changes, gpointer user_data)
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
if (changes)
{
- ei = gnc_gui_get_entity_events(changes, &priv->key);
+ ei = gnc_gui_get_entity_events (changes, &priv->key);
if (ei)
{
if (ei->event_mask & QOF_EVENT_DESTROY)
@@ -408,13 +410,13 @@ gnc_plugin_page_budget_refresh_cb(GHashTable *changes, gpointer user_data)
*/
priv->delete_budget = TRUE;
gnc_budget_view_delete_budget (priv->budget_view);
- gnc_plugin_page_budget_close_cb(user_data);
+ gnc_plugin_page_budget_close_cb (user_data);
return;
}
if (ei->event_mask & QOF_EVENT_MODIFY)
{
DEBUG("refreshing budget view because budget was modified");
- gnc_budget_view_refresh(priv->budget_view);
+ gnc_budget_view_refresh (priv->budget_view);
}
}
}
@@ -431,7 +433,7 @@ gnc_plugin_page_budget_create_widget (GncPluginPage *plugin_page)
GncPluginPageBudgetPrivate *priv;
ENTER("page %p", plugin_page);
- page = GNC_PLUGIN_PAGE_BUDGET (plugin_page);
+ page = GNC_PLUGIN_PAGE_BUDGET(plugin_page);
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
if (priv->budget_view != NULL)
{
@@ -439,28 +441,28 @@ gnc_plugin_page_budget_create_widget (GncPluginPage *plugin_page)
return GTK_WIDGET(priv->budget_view);
}
- priv->budget_view = gnc_budget_view_new(priv->budget, &priv->fd);
+ priv->budget_view = gnc_budget_view_new (priv->budget, &priv->fd);
#if 0
- g_signal_connect(G_OBJECT(selection), "changed",
- G_CALLBACK(gppb_selection_changed_cb), plugin_page);
+ g_signal_connect (G_OBJECT(selection), "changed",
+ G_CALLBACK(gppb_selection_changed_cb), plugin_page);
#endif
- g_signal_connect(G_OBJECT(priv->budget_view), "button-press-event",
- G_CALLBACK(gppb_button_press_cb), plugin_page);
- g_signal_connect(G_OBJECT(priv->budget_view), "account-activated",
- G_CALLBACK(gppb_account_activated_cb), page);
+ g_signal_connect (G_OBJECT(priv->budget_view), "button-press-event",
+ G_CALLBACK(gppb_button_press_cb), plugin_page);
+ g_signal_connect (G_OBJECT(priv->budget_view), "account-activated",
+ G_CALLBACK(gppb_account_activated_cb), page);
priv->component_id =
- gnc_register_gui_component(PLUGIN_PAGE_BUDGET_CM_CLASS,
- gnc_plugin_page_budget_refresh_cb,
- gnc_plugin_page_budget_close_cb,
- page);
+ gnc_register_gui_component (PLUGIN_PAGE_BUDGET_CM_CLASS,
+ gnc_plugin_page_budget_refresh_cb,
+ gnc_plugin_page_budget_close_cb,
+ page);
gnc_gui_component_set_session (priv->component_id,
- gnc_get_current_session());
+ gnc_get_current_session ());
gnc_gui_component_watch_entity (priv->component_id,
- gnc_budget_get_guid(priv->budget),
+ gnc_budget_get_guid (priv->budget),
QOF_EVENT_DESTROY | QOF_EVENT_MODIFY);
LEAVE("widget = %p", priv->budget_view);
@@ -477,7 +479,7 @@ gnc_plugin_page_budget_destroy_widget (GncPluginPage *plugin_page)
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
// Remove the page focus idle function if present
- g_idle_remove_by_data (GNC_PLUGIN_PAGE_BUDGET (plugin_page));
+ g_idle_remove_by_data (GNC_PLUGIN_PAGE_BUDGET(plugin_page));
if (priv->budget_view)
{
@@ -489,18 +491,18 @@ gnc_plugin_page_budget_destroy_widget (GncPluginPage *plugin_page)
gnc_budget_view_delete_budget (priv->budget_view);
}
- g_object_unref(G_OBJECT(priv->budget_view));
+ g_object_unref (G_OBJECT(priv->budget_view));
priv->budget_view = NULL;
}
// Destroy the filter override hash table
- g_hash_table_destroy(priv->fd.filter_override);
+ g_hash_table_destroy (priv->fd.filter_override);
gnc_gui_component_clear_watches (priv->component_id);
if (priv->component_id != NO_COMPONENT)
{
- gnc_unregister_gui_component(priv->component_id);
+ gnc_unregister_gui_component (priv->component_id);
priv->component_id = NO_COMPONENT;
}
@@ -539,11 +541,11 @@ gnc_plugin_page_budget_save_page (GncPluginPage *plugin_page,
budget_page = GNC_PLUGIN_PAGE_BUDGET(plugin_page);
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(budget_page);
- guid_to_string_buff(gnc_budget_get_guid(priv->budget), guid_str);
- g_key_file_set_string(key_file, group_name, BUDGET_GUID, guid_str);
+ guid_to_string_buff (gnc_budget_get_guid (priv->budget), guid_str);
+ g_key_file_set_string (key_file, group_name, BUDGET_GUID, guid_str);
// Save the Budget page information to state file
- gnc_budget_view_save(priv->budget_view, key_file, group_name);
+ gnc_budget_view_save (priv->budget_view, key_file, group_name);
LEAVE(" ");
}
@@ -573,29 +575,29 @@ gnc_plugin_page_budget_recreate_page (GtkWidget *window, GKeyFile *key_file,
GncBudget *bgt;
QofBook *book;
- g_return_val_if_fail(key_file, NULL);
- g_return_val_if_fail(group_name, NULL);
+ g_return_val_if_fail (key_file, NULL);
+ g_return_val_if_fail (group_name, NULL);
ENTER("key_file %p, group_name %s", key_file, group_name);
- guid_str = g_key_file_get_string(key_file, group_name, BUDGET_GUID,
- &error);
+ guid_str = g_key_file_get_string (key_file, group_name, BUDGET_GUID,
+ &error);
if (error)
{
g_warning("error reading group %s key %s: %s",
group_name, BUDGET_GUID, error->message);
- g_error_free(error);
+ g_error_free (error);
error = NULL;
return NULL;
}
- if (!string_to_guid(guid_str, &guid))
+ if (!string_to_guid (guid_str, &guid))
{
- g_free(guid_str);
+ g_free (guid_str);
return NULL;
}
- g_free(guid_str);
+ g_free (guid_str);
- book = qof_session_get_book(gnc_get_current_session());
- bgt = gnc_budget_lookup(&guid, book);
+ book = qof_session_get_book (gnc_get_current_session());
+ bgt = gnc_budget_lookup (&guid, book);
if (!bgt)
{
return NULL;
@@ -607,13 +609,11 @@ gnc_plugin_page_budget_recreate_page (GtkWidget *window, GKeyFile *key_file,
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(budget_page);
/* Install it now so we can then manipulate the created widget */
- gnc_main_window_open_page(GNC_MAIN_WINDOW(window), page);
+ gnc_main_window_open_page (GNC_MAIN_WINDOW(window), page);
//FIXME
- if (!gnc_budget_view_restore(priv->budget_view, key_file, group_name))
- {
+ if (!gnc_budget_view_restore (priv->budget_view, key_file, group_name))
return NULL;
- }
LEAVE(" ");
return page;
@@ -630,63 +630,61 @@ gnc_plugin_page_budget_recreate_page (GtkWidget *window, GKeyFile *key_file,
* registered in gnc-main-window.c.
**********************************************************************/
static gboolean
-gppb_button_press_cb(GtkWidget *widget, GdkEventButton *event,
- GncPluginPage *page)
+gppb_button_press_cb (GtkWidget *widget, GdkEventButton *event,
+ GncPluginPage *page)
{
gboolean result;
- g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), FALSE);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE(page), FALSE);
ENTER("widget %p, event %p, page %p", widget, event, page);
- result = gnc_main_window_button_press_cb(widget, event, page);
+ result = gnc_main_window_button_press_cb (widget, event, page);
LEAVE(" ");
return result;
}
static void
-gppb_account_activated_cb(GncBudgetView* view, Account* account,
- GncPluginPageBudget *page)
+gppb_account_activated_cb (GncBudgetView* view, Account* account,
+ GncPluginPageBudget *page)
{
GtkWidget *window;
GncPluginPage *new_page;
- g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
window = GNC_PLUGIN_PAGE(page)->window;
- new_page = gnc_plugin_page_register_new(account, FALSE);
- gnc_main_window_open_page(GNC_MAIN_WINDOW(window), new_page);
+ new_page = gnc_plugin_page_register_new (account, FALSE);
+ gnc_main_window_open_page (GNC_MAIN_WINDOW(window), new_page);
}
#if 0
static void
-gppb_selection_changed_cb(GtkTreeSelection *selection,
- GncPluginPageBudget *page)
+gppb_selection_changed_cb (GtkTreeSelection *selection,
+ GncPluginPageBudget *page)
{
GtkActionGroup *action_group;
GtkTreeView *view;
GList *acct_list;
gboolean sensitive;
- g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
if (!selection)
- {
sensitive = FALSE;
- }
else
{
- g_return_if_fail(GTK_IS_TREE_SELECTION(selection));
+ g_return_if_fail (GTK_IS_TREE_SELECTION(selection));
view = gtk_tree_selection_get_tree_view (selection);
- acct_list = gnc_tree_view_account_get_selected_accounts(
+ acct_list = gnc_tree_view_account_get_selected_accounts (
GNC_TREE_VIEW_ACCOUNT(view));
/* Check here for placeholder accounts, etc. */
- sensitive = (g_list_length(acct_list) > 0);
- g_list_free(acct_list);
+ sensitive = (g_list_length (acct_list) > 0);
+ g_list_free (acct_list);
}
- action_group = gnc_plugin_page_get_action_group(GNC_PLUGIN_PAGE(page));
+ action_group = gnc_plugin_page_get_action_group (GNC_PLUGIN_PAGE(page));
gnc_plugin_update_actions (action_group, actions_requiring_account,
"sensitive", sensitive);
}
@@ -698,7 +696,7 @@ gppb_selection_changed_cb(GtkTreeSelection *selection,
********************/
static void
gnc_plugin_page_budget_cmd_open_account (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
GtkWidget *window;
@@ -706,24 +704,24 @@ gnc_plugin_page_budget_cmd_open_account (GtkAction *action,
GList *acct_list, *tmp;
Account *account;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- acct_list = gnc_budget_view_get_selected_accounts(priv->budget_view);
+ acct_list = gnc_budget_view_get_selected_accounts (priv->budget_view);
- window = GNC_PLUGIN_PAGE (page)->window;
- for (tmp = acct_list; tmp; tmp = g_list_next(tmp))
+ window = GNC_PLUGIN_PAGE(page)->window;
+ for (tmp = acct_list; tmp; tmp = g_list_next (tmp))
{
account = tmp->data;
new_page = gnc_plugin_page_register_new (account, FALSE);
gnc_main_window_open_page (GNC_MAIN_WINDOW(window), new_page);
}
- g_list_free(acct_list);
+ g_list_free (acct_list);
}
static void
gnc_plugin_page_budget_cmd_open_subaccounts (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
GtkWidget *window;
@@ -731,24 +729,24 @@ gnc_plugin_page_budget_cmd_open_subaccounts (GtkAction *action,
GList *acct_list, *tmp;
Account *account;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- acct_list = gnc_budget_view_get_selected_accounts(priv->budget_view);
+ acct_list = gnc_budget_view_get_selected_accounts (priv->budget_view);
- window = GNC_PLUGIN_PAGE (page)->window;
- for (tmp = acct_list; tmp; tmp = g_list_next(tmp))
+ window = GNC_PLUGIN_PAGE(page)->window;
+ for (tmp = acct_list; tmp; tmp = g_list_next (tmp))
{
account = tmp->data;
new_page = gnc_plugin_page_register_new (account, TRUE);
gnc_main_window_open_page (GNC_MAIN_WINDOW(window), new_page);
}
- g_list_free(acct_list);
+ g_list_free (acct_list);
}
static void
gnc_plugin_page_budget_cmd_delete_budget (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
GncBudget *budget;
@@ -757,7 +755,7 @@ gnc_plugin_page_budget_cmd_delete_budget (GtkAction *action,
budget = priv->budget;
g_return_if_fail (GNC_IS_BUDGET(budget));
priv->delete_budget = TRUE;
- gnc_budget_gui_delete_budget(budget);
+ gnc_budget_gui_delete_budget (budget);
}
@@ -767,7 +765,7 @@ gnc_plugin_page_budget_cmd_delete_budget (GtkAction *action,
/******************************/
static void
gnc_plugin_page_budget_cmd_view_options (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
GncRecurrence *gr;
@@ -782,83 +780,83 @@ gnc_plugin_page_budget_cmd_view_options (GtkAction *action,
GtkTextBuffer *buffer;
GtkTextIter start, end;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
if (!priv->dialog)
{
- builder = gtk_builder_new();
+ builder = gtk_builder_new ();
gnc_builder_add_from_file (builder, "gnc-plugin-page-budget.glade", "NumPeriods_Adj");
gnc_builder_add_from_file (builder, "gnc-plugin-page-budget.glade", "budget_options_container_dialog");
priv->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "budget_options_container_dialog"));
- gtk_window_set_transient_for(GTK_WINDOW(priv->dialog),
- GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))));
+ gtk_window_set_transient_for (GTK_WINDOW(priv->dialog),
+ GTK_WINDOW(gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(page))));
gbname = GTK_WIDGET(gtk_builder_get_object (builder, "BudgetName"));
- gtk_entry_set_text(GTK_ENTRY(gbname), gnc_budget_get_name(priv->budget));
+ gtk_entry_set_text (GTK_ENTRY(gbname), gnc_budget_get_name (priv->budget));
gbtreeview = GTK_WIDGET(gtk_builder_get_object (builder, "BudgetDescription"));
- buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gbtreeview));
- gtk_text_buffer_set_text (buffer, gnc_budget_get_description(priv->budget), -1);
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(gbtreeview));
+ gtk_text_buffer_set_text (buffer, gnc_budget_get_description (priv->budget), -1);
gbhb = GTK_WIDGET(gtk_builder_get_object (builder, "BudgetPeriod"));
- gr = GNC_RECURRENCE(gnc_recurrence_new());
- gnc_recurrence_set(gr, gnc_budget_get_recurrence(priv->budget));
- gtk_box_pack_start (GTK_BOX (gbhb), GTK_WIDGET(gr), TRUE, TRUE, 0);
+ gr = GNC_RECURRENCE(gnc_recurrence_new ());
+ gnc_recurrence_set (gr, gnc_budget_get_recurrence (priv->budget));
+ gtk_box_pack_start (GTK_BOX(gbhb), GTK_WIDGET(gr), TRUE, TRUE, 0);
gtk_widget_show (GTK_WIDGET(gr));
gbnumperiods = GTK_WIDGET(gtk_builder_get_object (builder, "BudgetNumPeriods"));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(gbnumperiods), gnc_budget_get_num_periods(priv->budget));
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(gbnumperiods), gnc_budget_get_num_periods (priv->budget));
gtk_widget_show_all (priv->dialog);
- result = gtk_dialog_run(GTK_DIALOG(priv->dialog));
+ result = gtk_dialog_run (GTK_DIALOG(priv->dialog));
switch (result)
{
case GTK_RESPONSE_OK:
- name = (gchar *) gtk_entry_get_text(GTK_ENTRY(gbname));
+ name = (gchar *) gtk_entry_get_text (GTK_ENTRY(gbname));
DEBUG("%s", name);
if (name)
{
gchar* label;
- gnc_budget_set_name(priv->budget, name);
- label = g_strdup_printf("%s: %s", _("Budget"), name);
- main_window_update_page_name(GNC_PLUGIN_PAGE(page), label);
- g_free(label);
+ gnc_budget_set_name (priv->budget, name);
+ label = g_strdup_printf ("%s: %s", _("Budget"), name);
+ main_window_update_page_name (GNC_PLUGIN_PAGE(page), label);
+ g_free (label);
}
- gtk_text_buffer_get_bounds (gtk_text_view_get_buffer(GTK_TEXT_VIEW (gbtreeview)), &start, &end);
- desc = gtk_text_buffer_get_text (gtk_text_view_get_buffer(GTK_TEXT_VIEW (gbtreeview)), &start, &end, TRUE);
+ gtk_text_buffer_get_bounds (gtk_text_view_get_buffer (GTK_TEXT_VIEW(gbtreeview)), &start, &end);
+ desc = gtk_text_buffer_get_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW(gbtreeview)), &start, &end, TRUE);
- gnc_budget_set_description(priv->budget, desc);
- g_free(desc);
+ gnc_budget_set_description (priv->budget, desc);
+ g_free (desc);
- num_periods = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gbnumperiods));
- gnc_budget_set_num_periods(priv->budget, num_periods);
+ num_periods = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gbnumperiods));
+ gnc_budget_set_num_periods (priv->budget, num_periods);
- r = gnc_recurrence_get(gr);
- gnc_budget_set_recurrence(priv->budget, r);
+ r = gnc_recurrence_get (gr);
+ gnc_budget_set_recurrence (priv->budget, r);
break;
case GTK_RESPONSE_CANCEL:
break;
default:
break;
}
- g_object_unref(G_OBJECT(builder));
- gtk_widget_destroy(priv->dialog);
+ g_object_unref (G_OBJECT(builder));
+ gtk_widget_destroy (priv->dialog);
}
priv->dialog = NULL;
}
void
-gnc_budget_gui_delete_budget(GncBudget *budget)
+gnc_budget_gui_delete_budget (GncBudget *budget)
{
const char *name;
- g_return_if_fail(GNC_IS_BUDGET(budget));
+ g_return_if_fail (GNC_IS_BUDGET(budget));
name = gnc_budget_get_name (budget);
if (!name)
name = _("Unnamed Budget");
@@ -866,7 +864,7 @@ gnc_budget_gui_delete_budget(GncBudget *budget)
if (gnc_verify_dialog (NULL, FALSE, _("Delete %s?"), name))
{
gnc_suspend_gui_refresh ();
- gnc_budget_destroy(budget);
+ gnc_budget_destroy (budget);
// Views should close themselves because the CM will notify them.
gnc_resume_gui_refresh ();
}
@@ -874,8 +872,8 @@ gnc_budget_gui_delete_budget(GncBudget *budget)
static void
-estimate_budget_helper(GtkTreeModel *model, GtkTreePath *path,
- GtkTreeIter *iter, gpointer data)
+estimate_budget_helper (GtkTreeModel *model, GtkTreePath *path,
+ GtkTreeIter *iter, gpointer data)
{
Account *acct;
guint num_periods, i;
@@ -886,28 +884,28 @@ estimate_budget_helper(GtkTreeModel *model, GtkTreePath *path,
g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- acct = gnc_budget_view_get_account_from_path(priv->budget_view, path);
+ acct = gnc_budget_view_get_account_from_path (priv->budget_view, path);
- num_periods = gnc_budget_get_num_periods(priv->budget);
+ num_periods = gnc_budget_get_num_periods (priv->budget);
if (priv->useAvg && num_periods)
{
num = xaccAccountGetNoclosingBalanceChangeForPeriod
- (acct, recurrenceGetPeriodTime(&priv->r, 0, FALSE),
- recurrenceGetPeriodTime(&priv->r, num_periods - 1, TRUE), TRUE);
+ (acct, recurrenceGetPeriodTime (&priv->r, 0, FALSE),
+ recurrenceGetPeriodTime (&priv->r, num_periods - 1, TRUE), TRUE);
- num = gnc_numeric_div(num,
- gnc_numeric_create(num_periods, 1),
- GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
- GNC_HOW_RND_ROUND_HALF_UP);
+ num = gnc_numeric_div (num,
+ gnc_numeric_create (num_periods, 1),
+ GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
+ GNC_HOW_RND_ROUND_HALF_UP);
- if (gnc_reverse_budget_balance(acct, FALSE))
- num = gnc_numeric_neg(num);
+ if (gnc_reverse_budget_balance (acct, FALSE))
+ num = gnc_numeric_neg (num);
for (i = 0; i < num_periods; i++)
{
- gnc_budget_set_account_period_value(priv->budget, acct, i, num);
+ gnc_budget_set_account_period_value (priv->budget, acct, i, num);
}
}
else
@@ -915,18 +913,18 @@ estimate_budget_helper(GtkTreeModel *model, GtkTreePath *path,
for (i = 0; i < num_periods; i++)
{
num = xaccAccountGetNoclosingBalanceChangeForPeriod
- (acct, recurrenceGetPeriodTime(&priv->r, i, FALSE),
- recurrenceGetPeriodTime(&priv->r, i, TRUE), TRUE);
+ (acct, recurrenceGetPeriodTime (&priv->r, i, FALSE),
+ recurrenceGetPeriodTime (&priv->r, i, TRUE), TRUE);
- if (!gnc_numeric_check(num))
+ if (!gnc_numeric_check (num))
{
- if (gnc_reverse_budget_balance(acct, FALSE))
- num = gnc_numeric_neg(num);
+ if (gnc_reverse_budget_balance (acct, FALSE))
+ num = gnc_numeric_neg (num);
- num = gnc_numeric_convert(num, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
- GNC_HOW_RND_ROUND_HALF_UP);
- gnc_budget_set_account_period_value(priv->budget, acct, i, num);
+ num = gnc_numeric_convert (num, GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
+ GNC_HOW_RND_ROUND_HALF_UP);
+ gnc_budget_set_account_period_value (priv->budget, acct, i, num);
}
}
}
@@ -937,8 +935,8 @@ estimate_budget_helper(GtkTreeModel *model, GtkTreePath *path,
/* Estimate Dialog */
/*******************************/
static void
-gnc_plugin_page_budget_cmd_estimate_budget(GtkAction *action,
- GncPluginPageBudget *page)
+gnc_plugin_page_budget_cmd_estimate_budget (GtkAction *action,
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
GtkTreeSelection *sel;
@@ -951,72 +949,72 @@ gnc_plugin_page_budget_cmd_estimate_budget(GtkAction *action,
g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- sel = gnc_budget_view_get_selection(priv->budget_view);
+ sel = gnc_budget_view_get_selection (priv->budget_view);
- if (gtk_tree_selection_count_selected_rows(sel) <= 0)
+ if (gtk_tree_selection_count_selected_rows (sel) <= 0)
{
dialog = gtk_message_dialog_new (
- GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))),
+ GTK_WINDOW(gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(page))),
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s",
_("You must select at least one account to estimate."));
gtk_dialog_run (GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ gtk_widget_destroy (dialog);
return;
}
- builder = gtk_builder_new();
+ builder = gtk_builder_new ();
gnc_builder_add_from_file (builder, "gnc-plugin-page-budget.glade", "DigitsToRound_Adj");
gnc_builder_add_from_file (builder, "gnc-plugin-page-budget.glade", "budget_estimate_dialog");
dialog = GTK_WIDGET(gtk_builder_get_object (builder, "budget_estimate_dialog"));
- gtk_window_set_transient_for(GTK_WINDOW(dialog),
- GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))));
+ gtk_window_set_transient_for (GTK_WINDOW(dialog),
+ GTK_WINDOW(gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(page))));
hb = GTK_WIDGET(gtk_builder_get_object (builder, "StartDate_hbox"));
gde = gnc_date_edit_new (time (NULL), FALSE, FALSE);
- gtk_box_pack_start (GTK_BOX (hb), gde, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(hb), gde, TRUE, TRUE, 0);
gtk_widget_show (gde);
- date = recurrenceGetDate(&priv->r);
- gnc_date_edit_set_gdate(GNC_DATE_EDIT(gde), &date);
+ date = recurrenceGetDate (&priv->r);
+ gnc_date_edit_set_gdate (GNC_DATE_EDIT(gde), &date);
dtr = GTK_WIDGET(gtk_builder_get_object (builder, "DigitsToRound"));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(dtr),
- (gdouble)priv->sigFigs);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(dtr),
+ (gdouble)priv->sigFigs);
- avg = GTK_WIDGET(gtk_builder_get_object(builder, "UseAverage"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(avg), priv->useAvg);
+ avg = GTK_WIDGET(gtk_builder_get_object (builder, "UseAverage"));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(avg), priv->useAvg);
gtk_widget_show_all (dialog);
- result = gtk_dialog_run(GTK_DIALOG(dialog));
+ result = gtk_dialog_run (GTK_DIALOG(dialog));
switch (result)
{
case GTK_RESPONSE_OK:
- r = gnc_budget_get_recurrence(priv->budget);
+ r = gnc_budget_get_recurrence (priv->budget);
- gnc_date_edit_get_gdate(GNC_DATE_EDIT(gde), &date);
- recurrenceSet(&priv->r, recurrenceGetMultiplier(r),
- recurrenceGetPeriodType(r), &date,
- recurrenceGetWeekendAdjust(r));
+ gnc_date_edit_get_gdate (GNC_DATE_EDIT(gde), &date);
+ recurrenceSet (&priv->r, recurrenceGetMultiplier (r),
+ recurrenceGetPeriodType (r), &date,
+ recurrenceGetWeekendAdjust (r));
priv->sigFigs =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dtr));
+ gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(dtr));
+
+ priv->useAvg = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(avg));
- priv->useAvg = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(avg));
-
- gtk_tree_selection_selected_foreach(sel, estimate_budget_helper, page);
+ gtk_tree_selection_selected_foreach (sel, estimate_budget_helper, page);
break;
default:
break;
}
- gtk_widget_destroy(dialog);
- g_object_unref(G_OBJECT(builder));
+ gtk_widget_destroy (dialog);
+ g_object_unref (G_OBJECT(builder));
}
static void
-allperiods_budget_helper(GtkTreeModel *model, GtkTreePath *path,
- GtkTreeIter *iter, gpointer data)
+allperiods_budget_helper (GtkTreeModel *model, GtkTreePath *path,
+ GtkTreeIter *iter, gpointer data)
{
Account *acct;
guint num_periods, i;
@@ -1026,36 +1024,36 @@ allperiods_budget_helper(GtkTreeModel *model, GtkTreePath *path,
g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- acct = gnc_budget_view_get_account_from_path(priv->budget_view, path);
- num_periods = gnc_budget_get_num_periods(priv->budget);
+ acct = gnc_budget_view_get_account_from_path (priv->budget_view, path);
+ num_periods = gnc_budget_get_num_periods (priv->budget);
allvalue = priv->allValue;
- if (gnc_reverse_budget_balance(acct, TRUE))
- allvalue = gnc_numeric_neg(allvalue);
+ if (gnc_reverse_budget_balance (acct, TRUE))
+ allvalue = gnc_numeric_neg (allvalue);
for (i = 0; i < num_periods; i++)
{
switch (priv->action)
{
case ADD:
- num = gnc_budget_get_account_period_value(priv->budget, acct, i);
- num = gnc_numeric_add(num, allvalue, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
- GNC_HOW_RND_ROUND_HALF_UP);
- gnc_budget_set_account_period_value(priv->budget, acct, i, num);
+ num = gnc_budget_get_account_period_value (priv->budget, acct, i);
+ num = gnc_numeric_add (num, allvalue, GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
+ GNC_HOW_RND_ROUND_HALF_UP);
+ gnc_budget_set_account_period_value (priv->budget, acct, i, num);
break;
case MULTIPLY:
- num = gnc_budget_get_account_period_value(priv->budget, acct, i);
- num = gnc_numeric_mul(num, priv->allValue, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
- GNC_HOW_RND_ROUND_HALF_UP);
- gnc_budget_set_account_period_value(priv->budget, acct, i, num);
+ num = gnc_budget_get_account_period_value (priv->budget, acct, i);
+ num = gnc_numeric_mul (num, priv->allValue, GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) |
+ GNC_HOW_RND_ROUND_HALF_UP);
+ gnc_budget_set_account_period_value (priv->budget, acct, i, num);
break;
case UNSET:
- gnc_budget_unset_account_period_value(priv->budget, acct, i);
+ gnc_budget_unset_account_period_value (priv->budget, acct, i);
break;
default:
- gnc_budget_set_account_period_value(priv->budget, acct, i,
- allvalue);
+ gnc_budget_set_account_period_value (priv->budget, acct, i,
+ allvalue);
break;
}
}
@@ -1065,8 +1063,8 @@ allperiods_budget_helper(GtkTreeModel *model, GtkTreePath *path,
/* All Periods Value Dialog */
/*******************************/
static void
-gnc_plugin_page_budget_cmd_allperiods_budget(GtkAction *action,
- GncPluginPageBudget *page)
+gnc_plugin_page_budget_cmd_allperiods_budget (GtkAction *action,
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
GtkTreeSelection *sel;
@@ -1077,76 +1075,76 @@ gnc_plugin_page_budget_cmd_allperiods_budget(GtkAction *action,
g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- sel = gnc_budget_view_get_selection(priv->budget_view);
+ sel = gnc_budget_view_get_selection (priv->budget_view);
- if (gtk_tree_selection_count_selected_rows(sel) <= 0)
+ if (gtk_tree_selection_count_selected_rows (sel) <= 0)
{
- dialog = gtk_message_dialog_new(
- GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))),
+ dialog = gtk_message_dialog_new (
+ GTK_WINDOW(gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(page))),
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s",
_("You must select at least one account to edit."));
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ gtk_dialog_run (GTK_DIALOG(dialog));
+ gtk_widget_destroy (dialog);
return;
}
- builder = gtk_builder_new();
- gnc_builder_add_from_file(builder, "gnc-plugin-page-budget.glade",
- "DigitsToRound_Adj");
- gnc_builder_add_from_file(builder, "gnc-plugin-page-budget.glade",
- "budget_allperiods_dialog");
+ builder = gtk_builder_new ();
+ gnc_builder_add_from_file (builder, "gnc-plugin-page-budget.glade",
+ "DigitsToRound_Adj");
+ gnc_builder_add_from_file (builder, "gnc-plugin-page-budget.glade",
+ "budget_allperiods_dialog");
dialog = GTK_WIDGET(
- gtk_builder_get_object(builder, "budget_allperiods_dialog"));
+ gtk_builder_get_object (builder, "budget_allperiods_dialog"));
- gtk_window_set_transient_for(
+ gtk_window_set_transient_for (
GTK_WINDOW(dialog),
- GTK_WINDOW(gnc_plugin_page_get_window(GNC_PLUGIN_PAGE(page))));
+ GTK_WINDOW(gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(page))));
- val = GTK_WIDGET(gtk_builder_get_object(builder, "Value"));
- gtk_entry_set_text(GTK_ENTRY(val), "");
+ val = GTK_WIDGET(gtk_builder_get_object (builder, "Value"));
+ gtk_entry_set_text (GTK_ENTRY(val), "");
- dtr = GTK_WIDGET(gtk_builder_get_object(builder, "DigitsToRound1"));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(dtr), (gdouble)priv->sigFigs);
+ dtr = GTK_WIDGET(gtk_builder_get_object (builder, "DigitsToRound1"));
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(dtr), (gdouble)priv->sigFigs);
- add = GTK_WIDGET(gtk_builder_get_object(builder, "RB_Add"));
- mult = GTK_WIDGET(gtk_builder_get_object(builder, "RB_Multiply"));
+ add = GTK_WIDGET(gtk_builder_get_object (builder, "RB_Add"));
+ mult = GTK_WIDGET(gtk_builder_get_object (builder, "RB_Multiply"));
- gtk_widget_show_all(dialog);
- result = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_show_all (dialog);
+ result = gtk_dialog_run (GTK_DIALOG(dialog));
switch (result)
{
case GTK_RESPONSE_OK:
- priv->sigFigs = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dtr));
+ priv->sigFigs = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(dtr));
priv->action = REPLACE;
- txt = gtk_entry_get_text(GTK_ENTRY(val));
+ txt = gtk_entry_get_text (GTK_ENTRY(val));
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(add)))
priv->action = ADD;
- else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mult)))
+ else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(mult)))
priv->action = MULTIPLY;
if (priv->action == REPLACE &&
- !gtk_entry_get_text_length(GTK_ENTRY(val)))
+ !gtk_entry_get_text_length (GTK_ENTRY(val)))
priv->action = UNSET;
- if (xaccParseAmount(txt, TRUE, &priv->allValue, NULL) ||
+ if (xaccParseAmount (txt, TRUE, &priv->allValue, NULL) ||
priv->action == UNSET)
- gtk_tree_selection_selected_foreach(sel, allperiods_budget_helper,
- page);
+ gtk_tree_selection_selected_foreach (sel, allperiods_budget_helper,
+ page);
break;
default:
break;
}
- gtk_widget_destroy(dialog);
- g_object_unref(G_OBJECT(builder));
+ gtk_widget_destroy (dialog);
+ g_object_unref (G_OBJECT(builder));
}
static void
gnc_plugin_page_budget_cmd_view_filter_by (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
@@ -1154,14 +1152,14 @@ gnc_plugin_page_budget_cmd_view_filter_by (GtkAction *action,
ENTER("(action %p, page %p)", action, page);
priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
- account_filter_dialog_create(&priv->fd, GNC_PLUGIN_PAGE(page));
+ account_filter_dialog_create (&priv->fd, GNC_PLUGIN_PAGE(page));
LEAVE(" ");
}
static void
gnc_plugin_page_budget_cmd_refresh (GtkAction *action,
- GncPluginPageBudget *page)
+ GncPluginPageBudget *page)
{
GncPluginPageBudgetPrivate *priv;
diff --git a/gnucash/gnome/gnc-plugin-page-budget.h b/gnucash/gnome/gnc-plugin-page-budget.h
index 6b1979cb8..9efe5203b 100644
--- a/gnucash/gnome/gnc-plugin-page-budget.h
+++ b/gnucash/gnome/gnc-plugin-page-budget.h
@@ -66,9 +66,9 @@ GType gnc_plugin_page_budget_get_type (void);
*
* @return The newly created plugin page.
*/
-GncPluginPage *gnc_plugin_page_budget_new (GncBudget *budget);
+GncPluginPage *gnc_plugin_page_budget_new (GncBudget *budget);
-void gnc_budget_gui_delete_budget(GncBudget *budget);
+void gnc_budget_gui_delete_budget (GncBudget *budget);
/** Given a pointer to a budget plugin page, set the focus to
* the Account GtkTreeView. This is used in a g_idle_add so
commit 1320b79dc7749e98fb61b6bd396d489a4d622f67
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed Dec 11 14:45:28 2019 +0000
Change the spacing in files gnc-plugin-budget.*
diff --git a/gnucash/gnome/gnc-plugin-budget.c b/gnucash/gnome/gnc-plugin-budget.c
index 0a86b0dfb..6468b2b38 100644
--- a/gnucash/gnome/gnc-plugin-budget.c
+++ b/gnucash/gnome/gnc-plugin-budget.c
@@ -60,19 +60,19 @@ static GtkActionEntry gnc_plugin_actions [] =
{
"NewBudgetAction", NULL, N_("New Budget"), NULL,
N_("Create a new Budget"),
- G_CALLBACK (gnc_plugin_budget_cmd_new_budget)
+ G_CALLBACK(gnc_plugin_budget_cmd_new_budget)
},
{
"OpenBudgetAction", NULL, N_("Open Budget"), NULL,
N_("Open an existing Budget"),
- G_CALLBACK (gnc_plugin_budget_cmd_open_budget)
+ G_CALLBACK(gnc_plugin_budget_cmd_open_budget)
},
{
"CopyBudgetAction", NULL, N_("Copy Budget"), NULL,
N_("Copy an existing Budget"),
- G_CALLBACK (gnc_plugin_budget_cmd_copy_budget)
+ G_CALLBACK(gnc_plugin_budget_cmd_copy_budget)
},
};
static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
@@ -83,7 +83,7 @@ typedef struct GncPluginBudgetPrivate
} GncPluginBudgetPrivate;
#define GNC_PLUGIN_BUDGET_GET_PRIVATE(o) \
- ((GncPluginBudgetPrivate*)g_type_instance_get_private((GTypeInstance*)o, GNC_TYPE_PLUGIN_BUDGET))
+ ((GncPluginBudgetPrivate*)g_type_instance_get_private ((GTypeInstance*)o, GNC_TYPE_PLUGIN_BUDGET))
static GObjectClass *parent_class = NULL;
@@ -98,12 +98,13 @@ GncPlugin * gnc_plugin_budget_new (void)
plugin = g_object_new (GNC_TYPE_PLUGIN_BUDGET, NULL);
LEAVE(" ");
- return GNC_PLUGIN (plugin);
+ return GNC_PLUGIN(plugin);
}
static void
gnc_plugin_budget_main_window_page_changed (GncMainWindow *window,
- GncPluginPage *plugin_page, gpointer user_data)
+ GncPluginPage *plugin_page,
+ gpointer user_data)
{
// We continue only if the plugin_page is a valid
if (!plugin_page || !GNC_IS_PLUGIN_PAGE(plugin_page))
@@ -116,9 +117,9 @@ gnc_plugin_budget_main_window_page_changed (GncMainWindow *window,
// The page changed signal is emitted multiple times so we need
// to use an idle_add to change the focus to the tree view
- g_idle_remove_by_data (GNC_PLUGIN_PAGE_BUDGET (plugin_page));
+ g_idle_remove_by_data (GNC_PLUGIN_PAGE_BUDGET(plugin_page));
g_idle_add ((GSourceFunc)gnc_plugin_page_budget_focus,
- GNC_PLUGIN_PAGE_BUDGET (plugin_page));
+ GNC_PLUGIN_PAGE_BUDGET(plugin_page));
}
}
@@ -127,8 +128,8 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginBudget, gnc_plugin_budget, GNC_TYPE_PLUGIN)
static void
gnc_plugin_budget_class_init (GncPluginBudgetClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
+ GncPluginClass *plugin_class = GNC_PLUGIN_CLASS(klass);
ENTER (" ");
parent_class = g_type_class_peek_parent (klass);
@@ -147,14 +148,14 @@ gnc_plugin_budget_class_init (GncPluginBudgetClass *klass)
}
static void
-gnc_plugin_budget_init(GncPluginBudget *plugin)
+gnc_plugin_budget_init (GncPluginBudget *plugin)
{
}
static void
-gnc_plugin_budget_finalize(GObject *object)
+gnc_plugin_budget_finalize (GObject *object)
{
- g_return_if_fail(GNC_IS_PLUGIN_BUDGET (object));
+ g_return_if_fail (GNC_IS_PLUGIN_BUDGET(object));
ENTER(" ");
(parent_class->finalize)(object);
@@ -168,12 +169,12 @@ gnc_plugin_budget_finalize(GObject *object)
*
*/
static void gnc_plugin_budget_add_to_window (GncPlugin *plugin,
- GncMainWindow *mainwindow,
- GQuark type)
+ GncMainWindow *mainwindow,
+ GQuark type)
{
- g_signal_connect(mainwindow, "page_changed",
- G_CALLBACK(gnc_plugin_budget_main_window_page_changed),
- plugin);
+ g_signal_connect (mainwindow, "page_changed",
+ G_CALLBACK(gnc_plugin_budget_main_window_page_changed),
+ plugin);
}
/************************************************************
@@ -183,95 +184,84 @@ static void gnc_plugin_budget_add_to_window (GncPlugin *plugin,
/* Make a new budget; put it in a page; open the page. */
static void
gnc_plugin_budget_cmd_new_budget (GtkAction *action,
- GncMainWindowActionData *data)
+ GncMainWindowActionData *user_data)
{
GncBudget *budget;
GncPluginPage *page;
- g_return_if_fail (data != NULL);
+ g_return_if_fail (user_data != NULL);
- budget = gnc_budget_new(gnc_get_current_book());
- page = gnc_plugin_page_budget_new(budget);
- gnc_main_window_open_page (data->window, page);
+ budget = gnc_budget_new (gnc_get_current_book());
+ page = gnc_plugin_page_budget_new (budget);
+ gnc_main_window_open_page (user_data->window, page);
}
/* If only one budget exists, open it; otherwise user selects one to open */
static void
gnc_plugin_budget_cmd_open_budget (GtkAction *action,
- GncMainWindowActionData *data)
+ GncMainWindowActionData *user_data)
{
guint count;
QofBook *book;
GncBudget *bgt = NULL;
QofCollection *col;
- g_return_if_fail (data != NULL);
+ g_return_if_fail (user_data != NULL);
- book = gnc_get_current_book();
- col = qof_book_get_collection(book, GNC_ID_BUDGET);
- count = qof_collection_count(col);
+ book = gnc_get_current_book ();
+ col = qof_book_get_collection (book, GNC_ID_BUDGET);
+ count = qof_collection_count (col);
if (count > 0)
{
if (count == 1)
- {
- bgt = gnc_budget_get_default(book);
- }
+ bgt = gnc_budget_get_default (book);
else
- {
- bgt = gnc_budget_gui_select_budget(GTK_WINDOW(data->window), book);
- }
+ bgt = gnc_budget_gui_select_budget (GTK_WINDOW(user_data->window), book);
- if (bgt) gnc_main_window_open_page(
- data->window, gnc_plugin_page_budget_new(bgt));
+ if (bgt)
+ gnc_main_window_open_page (user_data->window,
+ gnc_plugin_page_budget_new (bgt));
}
else /* if no budgets exist yet, just open a new budget */
- {
- gnc_plugin_budget_cmd_new_budget(action, data);
- }
+ gnc_plugin_budget_cmd_new_budget (action, user_data);
}
/* If only one budget exists, create a copy of it; otherwise user selects one to copy */
static void
gnc_plugin_budget_cmd_copy_budget (GtkAction *action,
- GncMainWindowActionData *data)
+ GncMainWindowActionData *user_data)
{
guint count;
QofBook *book;
GncBudget *bgt = NULL;
QofCollection *col;
- g_return_if_fail (data != NULL);
+ g_return_if_fail (user_data != NULL);
- book = gnc_get_current_book();
- col = qof_book_get_collection(book, GNC_ID_BUDGET);
- count = qof_collection_count(col);
+ book = gnc_get_current_book ();
+ col = qof_book_get_collection (book, GNC_ID_BUDGET);
+ count = qof_collection_count (col);
if (count > 0)
{
if (count == 1)
- {
bgt = gnc_budget_get_default(book);
- }
else
- {
- bgt = gnc_budget_gui_select_budget(GTK_WINDOW(data->window), book);
- }
+ bgt = gnc_budget_gui_select_budget (GTK_WINDOW(user_data->window), book);
if (bgt)
{
GncBudget* copy;
gchar* name;
- copy = gnc_budget_clone(bgt);
- name = g_strdup_printf("Copy of %s", gnc_budget_get_name(bgt));
- gnc_budget_set_name(copy, name);
- g_free(name);
+ copy = gnc_budget_clone (bgt);
+ name = g_strdup_printf ("Copy of %s", gnc_budget_get_name (bgt));
+ gnc_budget_set_name (copy, name);
+ g_free (name);
- gnc_main_window_open_page(
- data->window, gnc_plugin_page_budget_new(copy));
+ gnc_main_window_open_page (user_data->window,
+ gnc_plugin_page_budget_new (copy));
}
}
else /* if no budgets exist yet, just open a new budget */
- {
- gnc_plugin_budget_cmd_new_budget(action, data);
- }
+ gnc_plugin_budget_cmd_new_budget (action, user_data);
}
/************************************************************
@@ -279,14 +269,14 @@ gnc_plugin_budget_cmd_copy_budget (GtkAction *action,
************************************************************/
static void
-row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *column,
- gpointer data)
+row_activated_cb (GtkTreeView *tv, GtkTreePath *path,
+ GtkTreeViewColumn *column, gpointer user_data)
{
- gtk_dialog_response(GTK_DIALOG(data), GTK_RESPONSE_OK);
+ gtk_dialog_response (GTK_DIALOG(user_data), GTK_RESPONSE_OK);
}
GncBudget *
-gnc_budget_gui_select_budget(GtkWindow *parent, QofBook *book)
+gnc_budget_gui_select_budget (GtkWindow *parent, QofBook *book)
{
GncBudget *bgt;
GtkDialog *dlg;
@@ -297,44 +287,41 @@ gnc_budget_gui_select_budget(GtkWindow *parent, QofBook *book)
gint response;
gboolean ok;
- dlg = GTK_DIALOG(gtk_dialog_new_with_buttons(
+ dlg = GTK_DIALOG(gtk_dialog_new_with_buttons (
_("Select a Budget"), parent, GTK_DIALOG_MODAL,
_("_OK"), GTK_RESPONSE_OK,
_("_Cancel"), GTK_RESPONSE_CANCEL, NULL));
- tv = GTK_TREE_VIEW(gtk_tree_view_new());
- sel = gtk_tree_view_get_selection(tv);
- gtk_tree_selection_set_mode(sel, GTK_SELECTION_BROWSE);
- g_signal_connect(tv, "row-activated", G_CALLBACK(row_activated_cb), dlg);
- tm = gnc_tree_model_budget_new(book);
- gnc_tree_view_budget_set_model(tv, tm);
- g_object_unref(tm);
- gtk_container_add(GTK_CONTAINER (gtk_dialog_get_content_area (dlg)), GTK_WIDGET(tv));
- gtk_widget_show_all(GTK_WIDGET(dlg));
+ tv = GTK_TREE_VIEW(gtk_tree_view_new ());
+ sel = gtk_tree_view_get_selection (tv);
+ gtk_tree_selection_set_mode (sel, GTK_SELECTION_BROWSE);
+ g_signal_connect (tv, "row-activated", G_CALLBACK(row_activated_cb), dlg);
+ tm = gnc_tree_model_budget_new (book);
+ gnc_tree_view_budget_set_model (tv, tm);
+ g_object_unref (tm);
+ gtk_container_add (GTK_CONTAINER(gtk_dialog_get_content_area (dlg)), GTK_WIDGET(tv));
+ gtk_widget_show_all (GTK_WIDGET(dlg));
// Preselect the default budget
- bgt = gnc_budget_get_default(book);
- if (bgt && gnc_tree_model_budget_get_iter_for_budget(tm, &iter, bgt))
- {
- gtk_tree_view_set_cursor(tv, gtk_tree_model_get_path(tm, &iter), NULL,
- FALSE);
- }
+ bgt = gnc_budget_get_default (book);
+
+ if (bgt && gnc_tree_model_budget_get_iter_for_budget (tm, &iter, bgt))
+ gtk_tree_view_set_cursor (tv, gtk_tree_model_get_path (tm, &iter), NULL, FALSE);
+
bgt = NULL;
- response = gtk_dialog_run(dlg);
+ response = gtk_dialog_run (dlg);
switch (response)
{
case GTK_RESPONSE_OK:
- ok = gtk_tree_selection_get_selected(sel, &tm, &iter);
+ ok = gtk_tree_selection_get_selected (sel, &tm, &iter);
if (ok)
- {
- bgt = gnc_tree_model_budget_get_budget(tm, &iter);
- }
+ bgt = gnc_tree_model_budget_get_budget (tm, &iter);
break;
default:
break;
}
- gtk_widget_destroy(GTK_WIDGET(dlg));
+ gtk_widget_destroy (GTK_WIDGET(dlg));
return bgt;
}
diff --git a/gnucash/gnome/gnc-plugin-budget.h b/gnucash/gnome/gnc-plugin-budget.h
index 7e63f3587..8c62938ad 100644
--- a/gnucash/gnome/gnc-plugin-budget.h
+++ b/gnucash/gnome/gnc-plugin-budget.h
@@ -55,11 +55,11 @@ typedef struct
} GncPluginBudgetClass;
/* function prototypes */
-GType gnc_plugin_budget_get_type(void);
-GncPlugin *gnc_plugin_budget_new(void);
+GType gnc_plugin_budget_get_type (void);
+GncPlugin *gnc_plugin_budget_new (void);
/* Launch the budget list dialog.*/
-GncBudget * gnc_budget_gui_select_budget(GtkWindow *parent, QofBook *book);
+GncBudget * gnc_budget_gui_select_budget (GtkWindow *parent, QofBook *book);
G_END_DECLS
commit eb7810788bfdc2c39b24280dc3108948e94fa41f
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed Dec 11 13:53:24 2019 +0000
Missing g_strfreev in gnc-plugin-page-report for keys value
diff --git a/gnucash/report/report-gnome/gnc-plugin-page-report.c b/gnucash/report/report-gnome/gnc-plugin-page-report.c
index 163be654b..777c72977 100644
--- a/gnucash/report/report-gnome/gnc-plugin-page-report.c
+++ b/gnucash/report/report-gnome/gnc-plugin-page-report.c
@@ -937,6 +937,7 @@ gnc_plugin_page_report_recreate_page (GtkWidget *window,
g_warning("error reading group %s key %s: %s",
group_name, keys[i], error->message);
g_error_free(error);
+ g_strfreev (keys);
LEAVE("bad value");
return NULL;
}
@@ -946,6 +947,7 @@ gnc_plugin_page_report_recreate_page (GtkWidget *window,
if (!scm_integer_p(scm_id))
{
DEBUG("report id not an integer for key %s", keys[i]);
+ g_strfreev (keys);
return NULL;
}
@@ -957,6 +959,7 @@ gnc_plugin_page_report_recreate_page (GtkWidget *window,
}
}
}
+ g_strfreev (keys);
if (final_id == SCM_BOOL_F)
{
commit 803d4c511eae2b3ebe429d40595657a2f3bf447c
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed Dec 11 12:00:57 2019 +0000
Bug 797489 - No option to use account codes in Budget View - Part1
In the budget view there is no option to add the account code column
which some uses use for sorting their accounts. This commit introduces
a feature flag to be used in version 4.0 but if set in 3.8 will hide
the new account code column so the view is not disrupted.
diff --git a/gnucash/gnome/gnc-budget-view.c b/gnucash/gnome/gnc-budget-view.c
index 6ff9e8b98..96d596dd1 100644
--- a/gnucash/gnome/gnc-budget-view.c
+++ b/gnucash/gnome/gnc-budget-view.c
@@ -47,6 +47,7 @@
#include "gnc-budget-view.h"
#include "gnc-budget.h"
+#include "gnc-features.h"
#include "dialog-options.h"
#include "dialog-utils.h"
@@ -367,6 +368,7 @@ gbv_create_widget (GncBudgetView *budget_view)
GtkTreeViewColumn *totals_title_col;
GtkTreeIter iter;
GtkWidget *h_separator;
+ GKeyFile *state_file = gnc_state_get_current ();
gchar *state_section;
gchar guidstr[GUID_ENCODING_LENGTH+1];
@@ -388,6 +390,17 @@ gbv_create_widget (GncBudgetView *budget_view)
guid_to_string_buff (&priv->key, guidstr);
state_section = g_strjoin (" ", STATE_SECTION_PREFIX, guidstr, NULL);
g_object_set (G_OBJECT(tree_view), "state-section", state_section, NULL);
+
+ // make sure any extra account columns are hidden, there will be an option to
+ // show code and description in 4.0 which will disrupt the display of the table
+ if (gnc_features_check_used (gnc_get_current_book (), GNC_FEATURE_BUDGET_SHOW_EXTRA_ACCOUNT_COLS))
+ {
+ if (g_key_file_has_group (state_file, state_section))
+ {
+ g_key_file_set_boolean (state_file, state_section, "account-code_visible", FALSE);
+ g_key_file_set_boolean (state_file, state_section, "description_visible", FALSE);
+ }
+ }
g_free (state_section);
gnc_tree_view_configure_columns (GNC_TREE_VIEW(tree_view));
diff --git a/libgnucash/engine/gnc-features.c b/libgnucash/engine/gnc-features.c
index 98e8d50b2..163bd36f5 100644
--- a/libgnucash/engine/gnc-features.c
+++ b/libgnucash/engine/gnc-features.c
@@ -50,6 +50,7 @@ static gncFeature known_features[] =
{ GNC_FEATURE_SQLITE3_ISO_DATES, "Use ISO formatted date-time strings in SQLite3 databases (requires at least GnuCash 2.6.20)"},
{ GNC_FEATURE_REG_SORT_FILTER, "Store the register sort and filter settings in .gcm metadata file (requires at least GnuCash 3.3)"},
{ GNC_FEATURE_BUDGET_UNREVERSED, "Store budget amounts unreversed (i.e. natural) signs (requires at least Gnucash 3.8)"},
+ { GNC_FEATURE_BUDGET_SHOW_EXTRA_ACCOUNT_COLS, "Show extra account columns in the Budget View (requires at least Gnucash 3.8)"},
{ NULL },
};
diff --git a/libgnucash/engine/gnc-features.h b/libgnucash/engine/gnc-features.h
index bb2efe10b..0ceeee3eb 100644
--- a/libgnucash/engine/gnc-features.h
+++ b/libgnucash/engine/gnc-features.h
@@ -54,6 +54,7 @@ extern "C" {
#define GNC_FEATURE_SQLITE3_ISO_DATES "ISO-8601 formatted date strings in SQLite3 databases."
#define GNC_FEATURE_REG_SORT_FILTER "Register sort and filter settings stored in .gcm file"
#define GNC_FEATURE_BUDGET_UNREVERSED "Use natural signs in budget amounts"
+#define GNC_FEATURE_BUDGET_SHOW_EXTRA_ACCOUNT_COLS "Show extra account columns in the Budget View"
/** @} */
commit d0727a1bfb2b23fb16ae8bc5f276cffd91caea6e
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Tue Dec 10 14:18:37 2019 +0000
Bug797519 - Budget Viewer Totals do not redraw upon to Sign-Reversal changes
Connect to the 'row-changed' signal for the account tree and do a
redraw on the totals tree view. Also fixes when changing the preference
for using negative amounts in red.
diff --git a/gnucash/gnome/gnc-budget-view.c b/gnucash/gnome/gnc-budget-view.c
index 1d464cf1b..6ff9e8b98 100644
--- a/gnucash/gnome/gnc-budget-view.c
+++ b/gnucash/gnome/gnc-budget-view.c
@@ -322,6 +322,26 @@ gbv_totals_scrollbar_value_changed_cb (GtkAdjustment *adj, GncBudgetView* budget
gtk_adjustment_set_value (priv->hadj, gtk_adjustment_get_value (adj));
}
+static gboolean
+gbv_totals_tree_view_redraw_idle (GtkTreeView *view)
+{
+ gtk_widget_queue_draw (GTK_WIDGET(view));
+ return FALSE;
+}
+
+static void
+gbv_tree_view_model_row_changed_cb (GtkTreeModel *tree_model, GtkTreePath *path,
+ GtkTreeIter *iter, gpointer user_data)
+{
+ GncBudgetView *budget_view = user_data;
+ GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
+
+ // The model row-changed signal can be emmitted multiple times so we
+ // use an idle_add to do a redraw of the totals tree view once
+ g_idle_remove_by_data (priv->totals_tree_view);
+ g_idle_add ((GSourceFunc)gbv_totals_tree_view_redraw_idle, priv->totals_tree_view);
+}
+
/****************************
* GncPluginPage Functions *
***************************/
@@ -470,6 +490,10 @@ gbv_create_widget (GncBudgetView *budget_view)
gnc_tree_view_account_restore_filter (GNC_TREE_VIEW_ACCOUNT(priv->tree_view), priv->fd,
gnc_state_get_current(), gnc_tree_view_get_state_section (GNC_TREE_VIEW(priv->tree_view)));
+ // use the model row-changed signal to do a redraw on the totals tree view
+ g_signal_connect (G_OBJECT(gtk_tree_view_get_model (GTK_TREE_VIEW(tree_view))), "row-changed",
+ G_CALLBACK(gbv_tree_view_model_row_changed_cb), budget_view);
+
gnc_budget_view_refresh (budget_view);
}
commit dc1881bd4b17dbc45780ba615379340bfb950f60
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Tue Dec 10 14:04:52 2019 +0000
Make sure the same variable name is used for GncBudgetView
GncBudgetView was name differently through out the file so change all
uses to be the same.
diff --git a/gnucash/gnome/gnc-budget-view.c b/gnucash/gnome/gnc-budget-view.c
index 82680c3d7..1d464cf1b 100644
--- a/gnucash/gnome/gnc-budget-view.c
+++ b/gnucash/gnome/gnc-budget-view.c
@@ -114,21 +114,21 @@ static void gnc_budget_view_class_init (GncBudgetViewClass *klass);
static void gnc_budget_view_init (GncBudgetView *budget_view);
static void gnc_budget_view_finalize (GObject *object);
-static void gbv_create_widget (GncBudgetView *view);
+static void gbv_create_widget (GncBudgetView *budget_view);
#if 0
static gboolean gbv_button_press_cb (GtkWidget *widget, GdkEventButton *event,
- GncBudgetView *view);
+ GncBudgetView *budget_view);
#endif
static gboolean gbv_key_press_cb (GtkWidget *treeview, GdkEventKey *event,
gpointer userdata);
static void gbv_row_activated_cb (GtkTreeView *treeview, GtkTreePath *path,
- GtkTreeViewColumn *col, GncBudgetView *view);
+ GtkTreeViewColumn *col, GncBudgetView *budget_view);
#if 0
static void gbv_selection_changed_cb (GtkTreeSelection *selection,
- GncBudgetView *view);
+ GncBudgetView *budget_view);
#endif
static void gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
- GncBudgetView* view);
+ GncBudgetView* budget_view);
static gnc_numeric gbv_get_accumulated_budget_amount (GncBudget* budget,
Account* account, guint period_num);
@@ -244,14 +244,14 @@ gbv_treeview_update_grid_lines (gpointer prefs, gchar* pref, gpointer user_data)
static void
gnc_budget_view_finalize (GObject *object)
{
- GncBudgetView *view;
+ GncBudgetView *budget_view;
GncBudgetViewPrivate *priv;
ENTER("object %p", object);
- view = GNC_BUDGET_VIEW(object);
- g_return_if_fail (GNC_IS_BUDGET_VIEW(view));
+ budget_view = GNC_BUDGET_VIEW(object);
+ g_return_if_fail (GNC_IS_BUDGET_VIEW(budget_view));
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL, GNC_PREF_GRID_LINES_HORIZONTAL,
gbv_treeview_update_grid_lines, priv->totals_tree_view);
@@ -268,57 +268,57 @@ gnc_budget_view_finalize (GObject *object)
macro GNC_BUDGET_VIEW_GET_PRIVATE.
*/
GtkTreeSelection*
-gnc_budget_view_get_selection (GncBudgetView* view)
+gnc_budget_view_get_selection (GncBudgetView* budget_view)
{
GncBudgetViewPrivate *priv;
- g_return_val_if_fail (GNC_IS_BUDGET_VIEW(view), NULL);
+ g_return_val_if_fail (GNC_IS_BUDGET_VIEW(budget_view), NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
return gtk_tree_view_get_selection (GTK_TREE_VIEW(priv->tree_view));
}
Account*
-gnc_budget_view_get_account_from_path (GncBudgetView* view, GtkTreePath* path)
+gnc_budget_view_get_account_from_path (GncBudgetView* budget_view, GtkTreePath* path)
{
GncBudgetViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_BUDGET_VIEW(view), NULL);
+ g_return_val_if_fail(GNC_IS_BUDGET_VIEW(budget_view), NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
return gnc_tree_view_account_get_account_from_path (GNC_TREE_VIEW_ACCOUNT(priv->tree_view), path);
}
GtkWidget*
-gnc_budget_view_get_account_tree_view (GncBudgetView* view)
+gnc_budget_view_get_account_tree_view (GncBudgetView* budget_view)
{
GncBudgetViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_BUDGET_VIEW(view), NULL);
+ g_return_val_if_fail(GNC_IS_BUDGET_VIEW(budget_view), NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
return GTK_WIDGET(priv->fd->tree_view);
}
GList*
-gnc_budget_view_get_selected_accounts (GncBudgetView* view)
+gnc_budget_view_get_selected_accounts (GncBudgetView* budget_view)
{
GncBudgetViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_BUDGET_VIEW(view), NULL);
+ g_return_val_if_fail(GNC_IS_BUDGET_VIEW(budget_view), NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
return gnc_tree_view_account_get_selected_accounts (GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
}
static void
-gbv_totals_scrollbar_value_changed_cb (GtkAdjustment *adj, GncBudgetView* view)
+gbv_totals_scrollbar_value_changed_cb (GtkAdjustment *adj, GncBudgetView* budget_view)
{
GncBudgetViewPrivate *priv;
- g_return_if_fail(GNC_IS_BUDGET_VIEW(view));
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ g_return_if_fail(GNC_IS_BUDGET_VIEW(budget_view));
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
gtk_adjustment_set_value (priv->hadj, gtk_adjustment_get_value (adj));
}
@@ -333,7 +333,7 @@ gbv_totals_scrollbar_value_changed_cb (GtkAdjustment *adj, GncBudgetView* view)
creating the links between actions and events etc.
*/
static void
-gbv_create_widget (GncBudgetView *view)
+gbv_create_widget (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
GtkTreeSelection *selection;
@@ -350,8 +350,8 @@ gbv_create_widget (GncBudgetView *view)
gchar *state_section;
gchar guidstr[GUID_ENCODING_LENGTH+1];
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- vbox = GTK_BOX(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
+ vbox = GTK_BOX(budget_view);
// Set the style context for this page so it can be easily manipulated with css
gnc_widget_set_style_context (GTK_WIDGET(vbox), "GncBudgetPage");
@@ -388,7 +388,7 @@ gbv_create_widget (GncBudgetView *view)
gtk_container_add (GTK_CONTAINER(scrolled_window), GTK_WIDGET(tree_view));
g_signal_connect (G_OBJECT(tree_view), "row-activated",
- G_CALLBACK(gbv_row_activated_cb), view);
+ G_CALLBACK(gbv_row_activated_cb), budget_view);
// save the main scrolled window horizontal adjustment
priv->hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(scrolled_window));
@@ -397,10 +397,10 @@ gbv_create_widget (GncBudgetView *view)
#if 0
g_signal_connect (G_OBJECT(selection), "changed",
- G_CALLBACK(gbv_selection_changed_cb), view);
+ G_CALLBACK(gbv_selection_changed_cb), budget_view);
g_signal_connect (G_OBJECT(tree_view), "button-press-event",
- G_CALLBACK(gbv_button_press_cb), view);
- gbv_selection_changed_cb (NULL, view);
+ G_CALLBACK(gbv_button_press_cb), budget_view);
+ gbv_selection_changed_cb (NULL, budget_view);
#endif
// Totals scroll window
@@ -410,7 +410,7 @@ gbv_create_widget (GncBudgetView *view)
h_adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(priv->totals_scroll_window));
g_signal_connect (G_OBJECT(h_adj), "value-changed",
- G_CALLBACK(gbv_totals_scrollbar_value_changed_cb), view);
+ G_CALLBACK(gbv_totals_scrollbar_value_changed_cb), budget_view);
// Create totals tree view
totals_tree_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
@@ -464,13 +464,13 @@ gbv_create_widget (GncBudgetView *view)
gtk_widget_hide (h_scrollbar);
g_signal_connect(G_OBJECT(tree_view), "size-allocate",
- G_CALLBACK(gbv_treeview_resized_cb), view);
+ G_CALLBACK(gbv_treeview_resized_cb), budget_view);
// Read account filter state information from budget section
gnc_tree_view_account_restore_filter (GNC_TREE_VIEW_ACCOUNT(priv->tree_view), priv->fd,
gnc_state_get_current(), gnc_tree_view_get_state_section (GNC_TREE_VIEW(priv->tree_view)));
- gnc_budget_view_refresh (view);
+ gnc_budget_view_refresh (budget_view);
}
@@ -480,7 +480,7 @@ gbv_create_widget (GncBudgetView *view)
* Save enough information about this view that it can *
* be recreated next time the user starts gnucash. *
* *
- * @param view The view to save. *
+ * @param budget_view The view to save. *
* *
* @param key_file A pointer to the GKeyFile data structure where the *
* page information should be written. *
@@ -488,17 +488,17 @@ gbv_create_widget (GncBudgetView *view)
* @param group_name The group name to use when saving data. *
**********************************************************************/
void
-gnc_budget_view_save (GncBudgetView *view, GKeyFile *key_file, const gchar *group_name)
+gnc_budget_view_save (GncBudgetView *budget_view, GKeyFile *key_file, const gchar *group_name)
{
GncBudgetViewPrivate *priv;
- g_return_if_fail (view != NULL);
+ g_return_if_fail (budget_view != NULL);
g_return_if_fail (key_file != NULL);
g_return_if_fail (group_name != NULL);
- ENTER("view %p, key_file %p, group_name %s", view, key_file, group_name);
+ ENTER("view %p, key_file %p, group_name %s", budget_view, key_file, group_name);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
// Save the account filter and page state information to page section
gnc_tree_view_account_save (GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
@@ -511,7 +511,7 @@ gnc_budget_view_save (GncBudgetView *view, GKeyFile *key_file, const gchar *grou
* Create a new plugin page based on the information saved
* during a previous instantiation of gnucash.
*
- * @param view The budget view to be restored
+ * @param budget_view The budget view to be restored
*
* @param key_file A pointer to the GKeyFile data structure where the
* page information should be read.
@@ -521,7 +521,7 @@ gnc_budget_view_save (GncBudgetView *view, GKeyFile *key_file, const gchar *grou
* @return TRUE if successful, FALSE if unsuccessful
**********************************************************************/
gboolean
-gnc_budget_view_restore (GncBudgetView* view, GKeyFile *key_file, const gchar *group_name)
+gnc_budget_view_restore (GncBudgetView* budget_view, GKeyFile *key_file, const gchar *group_name)
{
GncBudgetViewPrivate *priv;
GError *error = NULL;
@@ -558,7 +558,7 @@ gnc_budget_view_restore (GncBudgetView* view, GKeyFile *key_file, const gchar *g
}
/* Create the new view */
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
// Restore the account filter and page state information from page section
gnc_tree_view_account_restore (GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
@@ -572,19 +572,19 @@ gnc_budget_view_restore (GncBudgetView* view, GKeyFile *key_file, const gchar *g
* The budget associated with this view is about to be removed from *
* the book. So drop any saved state we still have. *
* *
- * @param view The view to which the budget is associated. *
+ * @param budget_view The view to which the budget is associated. *
**********************************************************************/
void
-gnc_budget_view_delete_budget (GncBudgetView *view)
+gnc_budget_view_delete_budget (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
gchar guidstr[GUID_ENCODING_LENGTH+1];
- g_return_if_fail (view != NULL);
+ g_return_if_fail (budget_view != NULL);
- ENTER("view %p", view);
+ ENTER("view %p", budget_view);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
guid_to_string_buff (&priv->key, guidstr);
gnc_state_drop_sections_for (guidstr);
@@ -596,18 +596,18 @@ gnc_budget_view_delete_budget (GncBudgetView *view)
/***********************************************************************
* Save the Account filter information for this budget *
* *
- * @param view The view to which the budget is associated. *
+ * @param budget_view The view to which the budget is associated. *
**********************************************************************/
void
-gnc_budget_view_save_account_filter (GncBudgetView *view)
+gnc_budget_view_save_account_filter (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
- g_return_if_fail (view != NULL);
+ g_return_if_fail (budget_view != NULL);
- ENTER("view %p", view);
+ ENTER("view %p", budget_view);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
// Save account filter state information to budget section
gnc_tree_view_account_save_filter (GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
@@ -629,11 +629,11 @@ gnc_budget_view_save_account_filter (GncBudgetView *view)
**********************************************************************/
static gboolean
gbv_button_press_cb (GtkWidget *widget, GdkEventButton *event,
- GncBudgetView *view)
+ GncBudgetView *budget_view)
{
gboolean result;
- g_return_val_if_fail (view != NULL, FALSE);
+ g_return_val_if_fail (budget_view != NULL, FALSE);
ENTER("widget %p, event %p, page %p", widget, event, page);
result = gnc_main_window_button_press_cb (widget, event, page);
@@ -647,11 +647,11 @@ gbv_button_press_cb (GtkWidget *widget, GdkEventButton *event,
* The handler is for the cell-editable, not for the treeview
*/
static gboolean
-gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer userdata)
+gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
{
GtkTreeViewColumn *col;
GtkTreePath *path = NULL;
- GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(userdata);
+ GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(user_data);
GtkTreeView *tv = priv->tree_view;
gboolean shifted;
gint period_num, num_periods;
@@ -744,7 +744,7 @@ gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer userdata)
*/
static void
gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
- GncBudgetView* view)
+ GncBudgetView* budget_view)
{
GncBudgetViewPrivate* priv;
gint ncols;
@@ -753,7 +753,7 @@ gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
GList *columns;
ENTER("");
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
/* There's no easy way to get this number. */
columns = gtk_tree_view_get_columns (GTK_TREE_VIEW(priv->tree_view));
@@ -787,26 +787,25 @@ gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
*/
static void
gbv_row_activated_cb (GtkTreeView *treeview, GtkTreePath *path,
- GtkTreeViewColumn *col, GncBudgetView *view)
+ GtkTreeViewColumn *col, GncBudgetView *budget_view)
{
Account *account;
- g_return_if_fail(GNC_IS_BUDGET_VIEW(view));
+ g_return_if_fail (GNC_IS_BUDGET_VIEW(budget_view));
+
account = gnc_tree_view_account_get_account_from_path (
GNC_TREE_VIEW_ACCOUNT(treeview), path);
if (account == NULL)
- {
return;
- }
- g_signal_emit_by_name (view, "account-activated", account);
+ g_signal_emit_by_name (budget_view, "account-activated", account);
}
/** \brief Action for when a selection in a gnc budget view is changed
*/
#if 0
static void
-gbv_selection_changed_cb (GtkTreeSelection *selection, GncBudgetView *view)
+gbv_selection_changed_cb (GtkTreeSelection *selection, GncBudgetView *budget_view)
{
GtkTreeView *tree_view;
GList *acct_list;
@@ -925,7 +924,7 @@ budget_col_source (Account *account, GtkTreeViewColumn *col,
gboolean red = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
budget = GNC_BUDGET(g_object_get_data (G_OBJECT(col), "budget"));
- bview = GTK_TREE_VIEW(g_object_get_data (G_OBJECT(col), "budget_view"));
+ bview = GTK_TREE_VIEW(g_object_get_data (G_OBJECT(col), "budget_tree_view"));
period_num = GPOINTER_TO_UINT(g_object_get_data (G_OBJECT(col), "period_num"));
if (!gnc_budget_is_account_period_value_set (budget, account, period_num))
@@ -1122,7 +1121,7 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
GtkTreeModel *s_model, GtkTreeIter *s_iter,
gpointer user_data)
{
- GncBudgetView* view;
+ GncBudgetView* budget_view;
GncBudgetViewPrivate* priv;
gint row_type;
GncBudget *budget;
@@ -1139,8 +1138,8 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
gnc_numeric total = gnc_numeric_zero();
- view = GNC_BUDGET_VIEW(user_data);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ budget_view = GNC_BUDGET_VIEW(user_data);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
red = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
gtk_tree_model_get (s_model, s_iter, 1, &row_type, -1);
@@ -1222,7 +1221,7 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
The function steps through the number of periods adding the dates to the first row of each of the columns that are listed as visible.
*/
static void
-gbv_refresh_col_titles (GncBudgetView *view)
+gbv_refresh_col_titles (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
const Recurrence *r;
@@ -1234,8 +1233,8 @@ gbv_refresh_col_titles (GncBudgetView *view)
GList *col_list;
gint i;
- g_return_if_fail (view != NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ g_return_if_fail (budget_view != NULL);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
col_list = priv->period_col_list;
num_periods_visible = g_list_length (col_list);
@@ -1269,14 +1268,14 @@ gbv_renderer_add_padding (GtkCellRenderer *renderer)
/** \brief Function to create the totals column to the right of the view.
*/
static GtkTreeViewColumn*
-gbv_create_totals_column (GncBudgetView* view, gint period_num)
+gbv_create_totals_column (GncBudgetView* budget_view, gint period_num)
{
GncBudgetViewPrivate *priv;
GtkTreeViewColumn *col;
GtkCellRenderer* renderer;
- g_return_val_if_fail (view != NULL, NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ g_return_val_if_fail (budget_view != NULL, NULL);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
renderer = gtk_cell_renderer_text_new ();
col = gtk_tree_view_column_new_with_attributes ("", renderer, NULL);
@@ -1284,7 +1283,7 @@ gbv_create_totals_column (GncBudgetView* view, gint period_num)
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- gtk_tree_view_column_set_cell_data_func (col, renderer, totals_col_source, view, NULL);
+ gtk_tree_view_column_set_cell_data_func (col, renderer, totals_col_source, budget_view, NULL);
g_object_set_data (G_OBJECT(col), "budget", priv->budget);
g_object_set_data (G_OBJECT(col), "period_num", GUINT_TO_POINTER(period_num));
gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
@@ -1300,8 +1299,8 @@ static void
gbv_col_edited_cb (GtkCellRendererText* cell, gchar* path_string,
gchar* new_text, gpointer user_data)
{
- GncBudgetView *view = GNC_BUDGET_VIEW(user_data);
- GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ GncBudgetView *budget_view = GNC_BUDGET_VIEW(user_data);
+ GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
gtk_widget_queue_draw (GTK_WIDGET(priv->totals_tree_view));
}
@@ -1336,7 +1335,7 @@ The function will step through to only display the columns that are set
as visible, and will add any needed columns (e.g. the totals column).
*/
void
-gnc_budget_view_refresh (GncBudgetView *view)
+gnc_budget_view_refresh (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
gint num_periods;
@@ -1344,10 +1343,10 @@ gnc_budget_view_refresh (GncBudgetView *view)
GtkTreeViewColumn *col;
GList *col_list;
GList *totals_col_list;
- ENTER("view %p", view);
+ ENTER("view %p", budget_view);
- g_return_if_fail (view != NULL);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
+ g_return_if_fail (budget_view != NULL);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
num_periods = gnc_budget_get_num_periods (priv->budget);
col_list = priv->period_col_list;
@@ -1391,7 +1390,7 @@ gnc_budget_view_refresh (GncBudgetView *view)
GNC_TREE_VIEW_ACCOUNT(priv->tree_view), "",
budget_col_source, budget_col_edited);
g_object_set_data (G_OBJECT(col), "budget", priv->budget);
- g_object_set_data (G_OBJECT(col), "budget_view", priv->tree_view);
+ g_object_set_data (G_OBJECT(col), "budget_tree_view", priv->tree_view);
g_object_set_data (G_OBJECT(col), "period_num", GUINT_TO_POINTER(num_periods_visible));
col_list = g_list_append (col_list, col);
@@ -1401,12 +1400,12 @@ gnc_budget_view_refresh (GncBudgetView *view)
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- g_signal_connect (G_OBJECT(renderer), "edited", (GCallback)gbv_col_edited_cb, view);
+ g_signal_connect (G_OBJECT(renderer), "edited", (GCallback)gbv_col_edited_cb, budget_view);
g_signal_connect (G_OBJECT(renderer), "editing-started",
- (GCallback)gdv_editing_started_cb, view);
+ (GCallback)gdv_editing_started_cb, budget_view);
g_signal_connect (G_OBJECT(renderer), "editing-canceled",
- (GCallback)gdv_editing_canceled_cb, view);
- col = gbv_create_totals_column (view, num_periods_visible);
+ (GCallback)gdv_editing_canceled_cb, budget_view);
+ col = gbv_create_totals_column (budget_view, num_periods_visible);
if (col != NULL)
{
gtk_tree_view_append_column (priv->totals_tree_view, col);
@@ -1437,7 +1436,7 @@ gnc_budget_view_refresh (GncBudgetView *view)
titlelen = qof_print_gdate (title, MAX_DATE_LENGTH, date);
if (titlelen > 0)
{
- PangoLayout *layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), title);
+ PangoLayout *layout = gtk_widget_create_pango_layout (GTK_WIDGET(budget_view), title);
PangoRectangle logical_rect;
pango_layout_set_width (layout, -1);
pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
@@ -1454,11 +1453,11 @@ gnc_budget_view_refresh (GncBudgetView *view)
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- col = gbv_create_totals_column (view, -1);
+ col = gbv_create_totals_column (budget_view, -1);
if (col != NULL)
gtk_tree_view_append_column (priv->totals_tree_view, col);
}
- gbv_refresh_col_titles (view);
+ gbv_refresh_col_titles (budget_view);
PINFO("Number of columns is %d, totals columns is %d",
gtk_tree_view_get_n_columns (priv->tree_view), gtk_tree_view_get_n_columns (priv->totals_tree_view));
diff --git a/gnucash/gnome/gnc-budget-view.h b/gnucash/gnome/gnc-budget-view.h
index cbe5d4730..2ac525a54 100644
--- a/gnucash/gnome/gnc-budget-view.h
+++ b/gnucash/gnome/gnc-budget-view.h
@@ -60,16 +60,16 @@ GType gnc_budget_view_get_type (void);
*
* @return The newly created widget
*/
-GncBudgetView *gnc_budget_view_new(GncBudget *budget, AccountFilterDialog* fd);
-void gnc_budget_view_save(GncBudgetView* view, GKeyFile *key_file, const gchar* group_name);
-void gnc_budget_view_refresh(GncBudgetView* view);
-void gnc_budget_view_delete_budget(GncBudgetView* view);
-void gnc_budget_view_save_account_filter(GncBudgetView *view);
-gboolean gnc_budget_view_restore(GncBudgetView* view, GKeyFile *key_file, const gchar* group_name);
-GtkTreeSelection* gnc_budget_view_get_selection(GncBudgetView* view);
-Account* gnc_budget_view_get_account_from_path(GncBudgetView* view, GtkTreePath* path);
-GList* gnc_budget_view_get_selected_accounts(GncBudgetView* view);
-GtkWidget *gnc_budget_view_get_account_tree_view (GncBudgetView* view);
+GncBudgetView *gnc_budget_view_new (GncBudget *budget, AccountFilterDialog* fd);
+void gnc_budget_view_save (GncBudgetView* budget_view, GKeyFile *key_file, const gchar* group_name);
+void gnc_budget_view_refresh (GncBudgetView* budget_view);
+void gnc_budget_view_delete_budget (GncBudgetView* budget_view);
+void gnc_budget_view_save_account_filter (GncBudgetView *budget_view);
+gboolean gnc_budget_view_restore (GncBudgetView* budget_view, GKeyFile *key_file, const gchar* group_name);
+GtkTreeSelection* gnc_budget_view_get_selection (GncBudgetView* budget_view);
+Account* gnc_budget_view_get_account_from_path (GncBudgetView* budget_view, GtkTreePath* path);
+GList* gnc_budget_view_get_selected_accounts (GncBudgetView* budget_view);
+GtkWidget *gnc_budget_view_get_account_tree_view (GncBudgetView* budget_view);
G_END_DECLS
commit 4a4e0ae56273c7fbd21c70ab8d67d0a0be0e03ed
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Tue Dec 10 13:40:37 2019 +0000
Change some spacing in source files gnc-budget-view.*
diff --git a/gnucash/gnome/gnc-budget-view.c b/gnucash/gnome/gnc-budget-view.c
index 780a1f062..82680c3d7 100644
--- a/gnucash/gnome/gnc-budget-view.c
+++ b/gnucash/gnome/gnc-budget-view.c
@@ -92,11 +92,11 @@ struct _GncBudgetViewClass
enum
{
- TOTALS_TYPE_INCOME, /**< This total is Income type*/
- TOTALS_TYPE_EXPENSES, /**< This total is Expenses type*/
- TOTALS_TYPE_ASSET, /**< This total is Assets type*/
+ TOTALS_TYPE_INCOME, /**< This total is Income type*/
+ TOTALS_TYPE_EXPENSES, /**< This total is Expenses type*/
+ TOTALS_TYPE_ASSET, /**< This total is Assets type*/
TOTALS_TYPE_LIABILITY, /**< This total is Liabilities type*/
- TOTALS_TYPE_EQUITY /**< This total is for Equity type*/
+ TOTALS_TYPE_EQUITY /**< This total is for Equity type*/
};
/**< \brief ENUM for different budget totals types.
@@ -110,27 +110,27 @@ This enum is used to specify the specific type of account that the
* Prototypes *
************************************************************/
/* Plugin Actions */
-static void gnc_budget_view_class_init(GncBudgetViewClass *klass);
-static void gnc_budget_view_init(GncBudgetView *budget_view);
-static void gnc_budget_view_finalize(GObject *object);
+static void gnc_budget_view_class_init (GncBudgetViewClass *klass);
+static void gnc_budget_view_init (GncBudgetView *budget_view);
+static void gnc_budget_view_finalize (GObject *object);
-static void gbv_create_widget(GncBudgetView *view);
+static void gbv_create_widget (GncBudgetView *view);
#if 0
-static gboolean gbv_button_press_cb(
- GtkWidget *widget, GdkEventButton *event, GncBudgetView *view);
+static gboolean gbv_button_press_cb (GtkWidget *widget, GdkEventButton *event,
+ GncBudgetView *view);
#endif
-static gboolean gbv_key_press_cb(GtkWidget *treeview, GdkEventKey *event,
- gpointer userdata);
-static void gbv_row_activated_cb(
- GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col,
- GncBudgetView *view);
+static gboolean gbv_key_press_cb (GtkWidget *treeview, GdkEventKey *event,
+ gpointer userdata);
+static void gbv_row_activated_cb (GtkTreeView *treeview, GtkTreePath *path,
+ GtkTreeViewColumn *col, GncBudgetView *view);
#if 0
-static void gbv_selection_changed_cb(
- GtkTreeSelection *selection, GncBudgetView *view);
+static void gbv_selection_changed_cb (GtkTreeSelection *selection,
+ GncBudgetView *view);
#endif
-static void gbv_treeview_resized_cb(GtkWidget* widget, GtkAllocation* allocation, GncBudgetView* view);
-static gnc_numeric gbv_get_accumulated_budget_amount(GncBudget* budget,
- Account* account, guint period_num);
+static void gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
+ GncBudgetView* view);
+static gnc_numeric gbv_get_accumulated_budget_amount (GncBudget* budget,
+ Account* account, guint period_num);
/** \brief the private budget view structure
@@ -149,20 +149,19 @@ static gnc_numeric gbv_get_accumulated_budget_amount(GncBudget* budget,
*/
struct GncBudgetViewPrivate
{
- GtkTreeView *tree_view;
- GtkTreeView *totals_tree_view;
- GtkWidget *totals_scroll_window;
+ GtkTreeView *tree_view;
+ GtkTreeView *totals_tree_view;
+ GtkWidget *totals_scroll_window;
GtkAdjustment *hadj;
- GncBudget* budget;
- GncGUID key;
+ GncBudget *budget;
+ GncGUID key;
- GList *period_col_list;
- GList *totals_col_list;
- GtkTreeViewColumn* total_col;
+ GList *period_col_list;
+ GList *totals_col_list;
+ GtkTreeViewColumn *total_col;
AccountFilterDialog *fd;
-
- Account* rootAcct;
+ Account *rootAcct;
GtkCellRenderer *temp_cr;
GtkCellEditable *temp_ce;
@@ -171,52 +170,52 @@ struct GncBudgetViewPrivate
G_DEFINE_TYPE_WITH_PRIVATE(GncBudgetView, gnc_budget_view, GTK_TYPE_BOX)
#define GNC_BUDGET_VIEW_GET_PRIVATE(o) \
- ((GncBudgetViewPrivate*)g_type_instance_get_private((GTypeInstance*)o, GNC_TYPE_BUDGET_VIEW))
+ ((GncBudgetViewPrivate*)g_type_instance_get_private ((GTypeInstance*)o, GNC_TYPE_BUDGET_VIEW))
/** \brief Create new gnc budget view.
As the name suggests, this creates a new gnc budget view.
*/
GncBudgetView *
-gnc_budget_view_new(GncBudget *budget, AccountFilterDialog* fd)
+gnc_budget_view_new (GncBudget *budget, AccountFilterDialog* fd)
{
- GncBudgetView *budget_view;
+ GncBudgetView *budget_view;
GncBudgetViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_BUDGET(budget), NULL);
+ g_return_val_if_fail (GNC_IS_BUDGET(budget), NULL);
ENTER(" ");
- budget_view = g_object_new(GNC_TYPE_BUDGET_VIEW, NULL);
+ budget_view = g_object_new (GNC_TYPE_BUDGET_VIEW, NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
priv->budget = budget;
- priv->key = *gnc_budget_get_guid(budget);
+ priv->key = *gnc_budget_get_guid (budget);
priv->fd = fd;
priv->total_col = NULL;
- gbv_create_widget(budget_view);
+ gbv_create_widget (budget_view);
LEAVE("new budget view %p", budget_view);
return budget_view;
}
static void
-gnc_budget_view_class_init(GncBudgetViewClass *klass)
+gnc_budget_view_class_init (GncBudgetViewClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
- gnc_budget_view_parent_class = g_type_class_peek_parent(klass);
+ gnc_budget_view_parent_class = g_type_class_peek_parent (klass);
object_class->finalize = gnc_budget_view_finalize;
- g_signal_new("account-activated", GNC_TYPE_BUDGET_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
- G_TYPE_NONE, 1, GNC_TYPE_ACCOUNT);
+ g_signal_new ("account-activated", GNC_TYPE_BUDGET_VIEW, G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, NULL, G_TYPE_NONE, 1, GNC_TYPE_ACCOUNT);
}
static void
-gnc_budget_view_init(GncBudgetView *budget_view)
+gnc_budget_view_init (GncBudgetView *budget_view)
{
GncBudgetViewPrivate *priv;
- Account* root;
+ Account *root;
gint num_top_accounts;
gint i;
@@ -227,8 +226,8 @@ gnc_budget_view_init(GncBudgetView *budget_view)
priv = GNC_BUDGET_VIEW_GET_PRIVATE(budget_view);
/* Keep track of the root and top level asset, liability, income and expense accounts */
- root = gnc_book_get_root_account(gnc_get_current_book());
- num_top_accounts = gnc_account_n_children(root);
+ root = gnc_book_get_root_account (gnc_get_current_book());
+ num_top_accounts = gnc_account_n_children (root);
priv->rootAcct = root;
@@ -243,14 +242,14 @@ gbv_treeview_update_grid_lines (gpointer prefs, gchar* pref, gpointer user_data)
}
static void
-gnc_budget_view_finalize(GObject *object)
+gnc_budget_view_finalize (GObject *object)
{
GncBudgetView *view;
GncBudgetViewPrivate *priv;
ENTER("object %p", object);
view = GNC_BUDGET_VIEW(object);
- g_return_if_fail(GNC_IS_BUDGET_VIEW(view));
+ g_return_if_fail (GNC_IS_BUDGET_VIEW(view));
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
@@ -259,7 +258,7 @@ gnc_budget_view_finalize(GObject *object)
gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL, GNC_PREF_GRID_LINES_VERTICAL,
gbv_treeview_update_grid_lines, priv->totals_tree_view);
- G_OBJECT_CLASS(gnc_budget_view_parent_class)->finalize(object);
+ G_OBJECT_CLASS(gnc_budget_view_parent_class)->finalize (object);
LEAVE(" ");
}
@@ -269,25 +268,25 @@ gnc_budget_view_finalize(GObject *object)
macro GNC_BUDGET_VIEW_GET_PRIVATE.
*/
GtkTreeSelection*
-gnc_budget_view_get_selection(GncBudgetView* view)
+gnc_budget_view_get_selection (GncBudgetView* view)
{
GncBudgetViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_BUDGET_VIEW(view), NULL);
+ g_return_val_if_fail (GNC_IS_BUDGET_VIEW(view), NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- return gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->tree_view));
+ return gtk_tree_view_get_selection (GTK_TREE_VIEW(priv->tree_view));
}
Account*
-gnc_budget_view_get_account_from_path(GncBudgetView* view, GtkTreePath* path)
+gnc_budget_view_get_account_from_path (GncBudgetView* view, GtkTreePath* path)
{
GncBudgetViewPrivate *priv;
g_return_val_if_fail(GNC_IS_BUDGET_VIEW(view), NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- return gnc_tree_view_account_get_account_from_path(GNC_TREE_VIEW_ACCOUNT(priv->tree_view), path);
+ return gnc_tree_view_account_get_account_from_path (GNC_TREE_VIEW_ACCOUNT(priv->tree_view), path);
}
GtkWidget*
@@ -302,14 +301,14 @@ gnc_budget_view_get_account_tree_view (GncBudgetView* view)
}
GList*
-gnc_budget_view_get_selected_accounts(GncBudgetView* view)
+gnc_budget_view_get_selected_accounts (GncBudgetView* view)
{
GncBudgetViewPrivate *priv;
g_return_val_if_fail(GNC_IS_BUDGET_VIEW(view), NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- return gnc_tree_view_account_get_selected_accounts(GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
+ return gnc_tree_view_account_get_selected_accounts (GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
}
static void
@@ -334,22 +333,22 @@ gbv_totals_scrollbar_value_changed_cb (GtkAdjustment *adj, GncBudgetView* view)
creating the links between actions and events etc.
*/
static void
-gbv_create_widget(GncBudgetView *view)
+gbv_create_widget (GncBudgetView *view)
{
- GncBudgetViewPrivate* priv;
- GtkTreeSelection *selection;
- GtkTreeView *tree_view;
- GtkWidget *scrolled_window;
- GtkAdjustment* h_adj;
- GtkWidget* h_scrollbar;
- GtkBox* vbox;
- GtkListStore* totals_tree_model;
- GtkTreeView* totals_tree_view;
- GtkTreeViewColumn* totals_title_col;
- GtkTreeIter iter;
- GtkWidget* h_separator;
- gchar *state_section;
- gchar guidstr[GUID_ENCODING_LENGTH+1];
+ GncBudgetViewPrivate *priv;
+ GtkTreeSelection *selection;
+ GtkTreeView *tree_view;
+ GtkWidget *scrolled_window;
+ GtkAdjustment *h_adj;
+ GtkWidget *h_scrollbar;
+ GtkBox *vbox;
+ GtkListStore *totals_tree_model;
+ GtkTreeView *totals_tree_view;
+ GtkTreeViewColumn *totals_title_col;
+ GtkTreeIter iter;
+ GtkWidget *h_separator;
+ gchar *state_section;
+ gchar guidstr[GUID_ENCODING_LENGTH+1];
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
vbox = GTK_BOX(view);
@@ -358,85 +357,84 @@ gbv_create_widget(GncBudgetView *view)
gnc_widget_set_style_context (GTK_WIDGET(vbox), "GncBudgetPage");
// Accounts scroll window
- scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolled_window),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
// Create Accounts tree_view
- tree_view = gnc_tree_view_account_new(FALSE);
- gtk_tree_view_set_headers_visible(tree_view, TRUE);
+ tree_view = gnc_tree_view_account_new (FALSE);
+ gtk_tree_view_set_headers_visible (tree_view, TRUE);
- guid_to_string_buff(&priv->key, guidstr);
- state_section = g_strjoin(" ", STATE_SECTION_PREFIX, guidstr, NULL);
- g_object_set(G_OBJECT(tree_view), "state-section", state_section, NULL);
+ guid_to_string_buff (&priv->key, guidstr);
+ state_section = g_strjoin (" ", STATE_SECTION_PREFIX, guidstr, NULL);
+ g_object_set (G_OBJECT(tree_view), "state-section", state_section, NULL);
g_free (state_section);
- gnc_tree_view_configure_columns(GNC_TREE_VIEW(tree_view));
+ gnc_tree_view_configure_columns (GNC_TREE_VIEW(tree_view));
priv->tree_view = tree_view;
- selection = gtk_tree_view_get_selection(tree_view);
- gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
+ selection = gtk_tree_view_get_selection (tree_view);
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
// make sure the account column is the expand column
gnc_tree_view_expand_columns (GNC_TREE_VIEW(tree_view), "name", NULL);
// Accounts filter
priv->fd->tree_view = GNC_TREE_VIEW_ACCOUNT(priv->tree_view);
- gnc_tree_view_account_set_filter(
- GNC_TREE_VIEW_ACCOUNT(tree_view),
- gnc_plugin_page_account_tree_filter_accounts,
- priv->fd, NULL);
+ gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT(tree_view),
+ gnc_plugin_page_account_tree_filter_accounts,
+ priv->fd, NULL);
// Add accounts tree view to scroll window
- gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(tree_view));
+ gtk_container_add (GTK_CONTAINER(scrolled_window), GTK_WIDGET(tree_view));
- g_signal_connect(G_OBJECT(tree_view), "row-activated",
- G_CALLBACK(gbv_row_activated_cb), view);
+ g_signal_connect (G_OBJECT(tree_view), "row-activated",
+ G_CALLBACK(gbv_row_activated_cb), view);
// save the main scrolled window horizontal adjustment
- priv->hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(scrolled_window));
+ priv->hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(scrolled_window));
PINFO("Number of Created Account columns is %d", gtk_tree_view_get_n_columns (tree_view));
#if 0
- g_signal_connect(G_OBJECT(selection), "changed",
- G_CALLBACK(gbv_selection_changed_cb), view);
- g_signal_connect(G_OBJECT(tree_view), "button-press-event",
- G_CALLBACK(gbv_button_press_cb), view);
- gbv_selection_changed_cb(NULL, view);
+ g_signal_connect (G_OBJECT(selection), "changed",
+ G_CALLBACK(gbv_selection_changed_cb), view);
+ g_signal_connect (G_OBJECT(tree_view), "button-press-event",
+ G_CALLBACK(gbv_button_press_cb), view);
+ gbv_selection_changed_cb (NULL, view);
#endif
// Totals scroll window
- priv->totals_scroll_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(priv->totals_scroll_window),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); // horizontal/vertical
+ priv->totals_scroll_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(priv->totals_scroll_window),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); // horizontal/vertical
- h_adj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(priv->totals_scroll_window));
- g_signal_connect(G_OBJECT(h_adj), "value-changed",
- G_CALLBACK(gbv_totals_scrollbar_value_changed_cb), view);
+ h_adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(priv->totals_scroll_window));
+ g_signal_connect (G_OBJECT(h_adj), "value-changed",
+ G_CALLBACK(gbv_totals_scrollbar_value_changed_cb), view);
// Create totals tree view
- totals_tree_model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
- gtk_list_store_append(totals_tree_model, &iter);
- gtk_list_store_set(totals_tree_model, &iter, 0, _("Income"), 1, TOTALS_TYPE_INCOME, -1);
- gtk_list_store_append(totals_tree_model, &iter);
- gtk_list_store_set(totals_tree_model, &iter, 0, _("Expenses"), 1, TOTALS_TYPE_EXPENSES, -1);
- gtk_list_store_append(totals_tree_model, &iter);
- gtk_list_store_set(totals_tree_model, &iter, 0, _("Assets"), 1, TOTALS_TYPE_ASSET, -1);
- gtk_list_store_append(totals_tree_model, &iter);
- gtk_list_store_set(totals_tree_model, &iter, 0, _("Liabilities"), 1, TOTALS_TYPE_LIABILITY, -1);
- gtk_list_store_append(totals_tree_model, &iter);
- gtk_list_store_set(totals_tree_model, &iter, 0, _("Equity"), 1, TOTALS_TYPE_EQUITY, -1);
+ totals_tree_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
+ gtk_list_store_append (totals_tree_model, &iter);
+ gtk_list_store_set (totals_tree_model, &iter, 0, _("Income"), 1, TOTALS_TYPE_INCOME, -1);
+ gtk_list_store_append (totals_tree_model, &iter);
+ gtk_list_store_set (totals_tree_model, &iter, 0, _("Expenses"), 1, TOTALS_TYPE_EXPENSES, -1);
+ gtk_list_store_append (totals_tree_model, &iter);
+ gtk_list_store_set (totals_tree_model, &iter, 0, _("Assets"), 1, TOTALS_TYPE_ASSET, -1);
+ gtk_list_store_append (totals_tree_model, &iter);
+ gtk_list_store_set (totals_tree_model, &iter, 0, _("Liabilities"), 1, TOTALS_TYPE_LIABILITY, -1);
+ gtk_list_store_append (totals_tree_model, &iter);
+ gtk_list_store_set (totals_tree_model, &iter, 0, _("Equity"), 1, TOTALS_TYPE_EQUITY, -1);
totals_tree_view = GTK_TREE_VIEW(gtk_tree_view_new());
priv->totals_tree_view = totals_tree_view;
- gtk_tree_selection_set_mode(gtk_tree_view_get_selection(totals_tree_view), GTK_SELECTION_NONE);
- gtk_tree_view_set_headers_visible(totals_tree_view, FALSE);
- gtk_tree_view_set_model(totals_tree_view, GTK_TREE_MODEL(totals_tree_model));
+ gtk_tree_selection_set_mode (gtk_tree_view_get_selection (totals_tree_view), GTK_SELECTION_NONE);
+ gtk_tree_view_set_headers_visible (totals_tree_view, FALSE);
+ gtk_tree_view_set_model (totals_tree_view, GTK_TREE_MODEL(totals_tree_model));
- totals_title_col = gtk_tree_view_column_new_with_attributes("", gtk_cell_renderer_text_new(), "text", 0, NULL);
- gtk_tree_view_column_set_expand(totals_title_col, TRUE);
- gtk_tree_view_column_set_sizing(totals_title_col, GTK_TREE_VIEW_COLUMN_FIXED);
- gtk_tree_view_append_column(totals_tree_view, totals_title_col);
+ totals_title_col = gtk_tree_view_column_new_with_attributes ("", gtk_cell_renderer_text_new(), "text", 0, NULL);
+ gtk_tree_view_column_set_expand (totals_title_col, TRUE);
+ gtk_tree_view_column_set_sizing (totals_title_col, GTK_TREE_VIEW_COLUMN_FIXED);
+ gtk_tree_view_append_column (totals_tree_view, totals_title_col);
// Add totals tree view to scroll window
gtk_container_add (GTK_CONTAINER(priv->totals_scroll_window), GTK_WIDGET(totals_tree_view));
@@ -450,14 +448,14 @@ gbv_create_widget(GncBudgetView *view)
PINFO("Number of Created totals columns is %d", gtk_tree_view_get_n_columns (totals_tree_view));
- gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE);
+ gtk_box_set_homogeneous (GTK_BOX(vbox), FALSE);
- gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, /*expand*/TRUE, /*fill*/TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(vbox), scrolled_window, /*expand*/TRUE, /*fill*/TRUE, 0);
h_separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
- gtk_box_pack_end(GTK_BOX(vbox), h_separator, /*expand*/FALSE, /*fill*/TRUE, 0);
+ gtk_box_pack_end (GTK_BOX(vbox), h_separator, /*expand*/FALSE, /*fill*/TRUE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(priv->totals_scroll_window), /*expand*/FALSE, /*fill*/TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(vbox), GTK_WIDGET(priv->totals_scroll_window), /*expand*/FALSE, /*fill*/TRUE, 0);
gtk_widget_show_all (GTK_WIDGET(vbox));
@@ -472,7 +470,7 @@ gbv_create_widget(GncBudgetView *view)
gnc_tree_view_account_restore_filter (GNC_TREE_VIEW_ACCOUNT(priv->tree_view), priv->fd,
gnc_state_get_current(), gnc_tree_view_get_state_section (GNC_TREE_VIEW(priv->tree_view)));
- gnc_budget_view_refresh(view);
+ gnc_budget_view_refresh (view);
}
@@ -490,21 +488,21 @@ gbv_create_widget(GncBudgetView *view)
* @param group_name The group name to use when saving data. *
**********************************************************************/
void
-gnc_budget_view_save(GncBudgetView *view, GKeyFile *key_file, const gchar *group_name)
+gnc_budget_view_save (GncBudgetView *view, GKeyFile *key_file, const gchar *group_name)
{
GncBudgetViewPrivate *priv;
- g_return_if_fail(view != NULL);
- g_return_if_fail(key_file != NULL);
- g_return_if_fail(group_name != NULL);
+ g_return_if_fail (view != NULL);
+ g_return_if_fail (key_file != NULL);
+ g_return_if_fail (group_name != NULL);
ENTER("view %p, key_file %p, group_name %s", view, key_file, group_name);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
// Save the account filter and page state information to page section
- gnc_tree_view_account_save(GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
- priv->fd, key_file, group_name);
+ gnc_tree_view_account_save (GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
+ priv->fd, key_file, group_name);
LEAVE(" ");
}
@@ -523,7 +521,7 @@ gnc_budget_view_save(GncBudgetView *view, GKeyFile *key_file, const gchar *group
* @return TRUE if successful, FALSE if unsuccessful
**********************************************************************/
gboolean
-gnc_budget_view_restore(GncBudgetView* view, GKeyFile *key_file, const gchar *group_name)
+gnc_budget_view_restore (GncBudgetView* view, GKeyFile *key_file, const gchar *group_name)
{
GncBudgetViewPrivate *priv;
GError *error = NULL;
@@ -532,28 +530,28 @@ gnc_budget_view_restore(GncBudgetView* view, GKeyFile *key_file, const gchar *gr
GncBudget *bgt;
QofBook *book;
- g_return_val_if_fail(key_file, FALSE);
- g_return_val_if_fail(group_name, FALSE);
+ g_return_val_if_fail (key_file, FALSE);
+ g_return_val_if_fail (group_name, FALSE);
ENTER("key_file %p, group_name %s", key_file, group_name);
- guid_str = g_key_file_get_string(key_file, group_name, BUDGET_GUID,
- &error);
+ guid_str = g_key_file_get_string (key_file, group_name, BUDGET_GUID,
+ &error);
if (error)
{
- g_warning("error reading group %s key %s: %s",
- group_name, BUDGET_GUID, error->message);
- g_error_free(error);
+ g_warning ("error reading group %s key %s: %s",
+ group_name, BUDGET_GUID, error->message);
+ g_error_free (error);
error = NULL;
return FALSE;
}
- if (!string_to_guid(guid_str, &guid))
+ if (!string_to_guid (guid_str, &guid))
{
return FALSE;
}
- book = qof_session_get_book(gnc_get_current_session());
- bgt = gnc_budget_lookup(&guid, book);
+ book = qof_session_get_book (gnc_get_current_session());
+ bgt = gnc_budget_lookup (&guid, book);
if (!bgt)
{
return FALSE;
@@ -563,8 +561,8 @@ gnc_budget_view_restore(GncBudgetView* view, GKeyFile *key_file, const gchar *gr
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
// Restore the account filter and page state information from page section
- gnc_tree_view_account_restore(GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
- priv->fd, key_file, group_name);
+ gnc_tree_view_account_restore (GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
+ priv->fd, key_file, group_name);
LEAVE(" ");
return TRUE;
@@ -577,20 +575,20 @@ gnc_budget_view_restore(GncBudgetView* view, GKeyFile *key_file, const gchar *gr
* @param view The view to which the budget is associated. *
**********************************************************************/
void
-gnc_budget_view_delete_budget(GncBudgetView *view)
+gnc_budget_view_delete_budget (GncBudgetView *view)
{
GncBudgetViewPrivate *priv;
gchar guidstr[GUID_ENCODING_LENGTH+1];
- g_return_if_fail(view != NULL);
+ g_return_if_fail (view != NULL);
ENTER("view %p", view);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE (view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- guid_to_string_buff(&priv->key, guidstr);
+ guid_to_string_buff (&priv->key, guidstr);
gnc_state_drop_sections_for (guidstr);
- g_object_set (G_OBJECT (priv->tree_view), "state-section", NULL, NULL);
+ g_object_set (G_OBJECT(priv->tree_view), "state-section", NULL, NULL);
LEAVE(" ");
}
@@ -605,16 +603,17 @@ gnc_budget_view_save_account_filter (GncBudgetView *view)
{
GncBudgetViewPrivate *priv;
- g_return_if_fail(view != NULL);
+ g_return_if_fail (view != NULL);
ENTER("view %p", view);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE (view);
+ priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
// Save account filter state information to budget section
gnc_tree_view_account_save_filter (GNC_TREE_VIEW_ACCOUNT(priv->tree_view),
- priv->fd, gnc_state_get_current(), gnc_tree_view_get_state_section (GNC_TREE_VIEW(priv->tree_view)));
-
+ priv->fd, gnc_state_get_current (),
+ gnc_tree_view_get_state_section (
+ GNC_TREE_VIEW(priv->tree_view)));
LEAVE(" ");
}
@@ -629,15 +628,15 @@ gnc_budget_view_save_account_filter (GncBudgetView *view)
* registered in gnc-main-window.c.
**********************************************************************/
static gboolean
-gbv_button_press_cb(GtkWidget *widget, GdkEventButton *event,
- GncBudgetView *view)
+gbv_button_press_cb (GtkWidget *widget, GdkEventButton *event,
+ GncBudgetView *view)
{
gboolean result;
- g_return_val_if_fail(view != NULL, FALSE);
+ g_return_val_if_fail (view != NULL, FALSE);
ENTER("widget %p, event %p, page %p", widget, event, page);
- result = gnc_main_window_button_press_cb(widget, event, page);
+ result = gnc_main_window_button_press_cb (widget, event, page);
LEAVE(" ");
return result;
}
@@ -650,13 +649,13 @@ gbv_button_press_cb(GtkWidget *widget, GdkEventButton *event,
static gboolean
gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer userdata)
{
- GtkTreeViewColumn *col;
- GtkTreePath *path = NULL;
+ GtkTreeViewColumn *col;
+ GtkTreePath *path = NULL;
GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(userdata);
- GtkTreeView *tv = priv->tree_view;
- gboolean shifted;
- gint period_num, num_periods;
- gpointer data;
+ GtkTreeView *tv = priv->tree_view;
+ gboolean shifted;
+ gint period_num, num_periods;
+ gpointer data;
if (event->type != GDK_KEY_PRESS || !priv->temp_cr)
return FALSE;
@@ -667,12 +666,12 @@ gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer userdata)
case GDK_KEY_ISO_Left_Tab:
case GDK_KEY_KP_Tab:
shifted = event->state & GDK_SHIFT_MASK;
- gtk_tree_view_get_cursor(tv, &path, &col);
+ gtk_tree_view_get_cursor (tv, &path, &col);
if (!path)
return TRUE;
- data = g_object_get_data(G_OBJECT(col), "period_num");
+ data = g_object_get_data (G_OBJECT(col), "period_num");
period_num = GPOINTER_TO_UINT(data);
- num_periods = gnc_budget_get_num_periods(priv->budget);
+ num_periods = gnc_budget_get_num_periods (priv->budget);
if (period_num >= num_periods)
period_num = num_periods - 1;
@@ -685,54 +684,54 @@ gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer userdata)
if (period_num >= num_periods)
{
period_num = 0;
- if (gtk_tree_view_row_expanded(tv, path))
+ if (gtk_tree_view_row_expanded (tv, path))
{
- gtk_tree_path_down(path);
+ gtk_tree_path_down (path);
}
else
{
- gtk_tree_path_next(path);
- while (!gnc_tree_view_path_is_valid(GNC_TREE_VIEW(tv), path) &&
- gtk_tree_path_get_depth(path) > 1)
+ gtk_tree_path_next (path);
+ while (!gnc_tree_view_path_is_valid (GNC_TREE_VIEW(tv), path) &&
+ gtk_tree_path_get_depth (path) > 1)
{
- gtk_tree_path_up(path);
- gtk_tree_path_next(path);
+ gtk_tree_path_up (path);
+ gtk_tree_path_next (path);
}
}
}
else if (period_num < 0)
{
period_num = num_periods - 1;
- if (!gtk_tree_path_prev(path))
- gtk_tree_path_up(path);
+ if (!gtk_tree_path_prev (path))
+ gtk_tree_path_up (path);
else
- while (gtk_tree_view_row_expanded(tv, path))
+ while (gtk_tree_view_row_expanded (tv, path))
{
- gtk_tree_path_down(path);
+ gtk_tree_path_down (path);
do
{
- gtk_tree_path_next(path);
+ gtk_tree_path_next (path);
} while (
- gnc_tree_view_path_is_valid(GNC_TREE_VIEW(tv), path));
- gtk_tree_path_prev(path);
+ gnc_tree_view_path_is_valid (GNC_TREE_VIEW(tv), path));
+ gtk_tree_path_prev (path);
}
}
- col = g_list_nth_data(priv->period_col_list, period_num);
+ col = g_list_nth_data (priv->period_col_list, period_num);
// finish editing
if (priv->temp_ce)
{
- gtk_cell_editable_editing_done(priv->temp_ce);
- gtk_cell_editable_remove_widget(priv->temp_ce);
+ gtk_cell_editable_editing_done (priv->temp_ce);
+ gtk_cell_editable_remove_widget (priv->temp_ce);
while (gtk_events_pending())
- gtk_main_iteration();
+ gtk_main_iteration ();
}
- if (gnc_tree_view_path_is_valid(GNC_TREE_VIEW(tv), path))
- gtk_tree_view_set_cursor(tv, path, col, TRUE);
- gtk_tree_path_free(path);
+ if (gnc_tree_view_path_is_valid (GNC_TREE_VIEW(tv), path))
+ gtk_tree_view_set_cursor (tv, path, col, TRUE);
+ gtk_tree_path_free (path);
break;
default:
return FALSE;
@@ -744,10 +743,11 @@ gbv_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer userdata)
/** \brief gnc budget view actions for resize of treeview.
*/
static void
-gbv_treeview_resized_cb(GtkWidget* widget, GtkAllocation* allocation, GncBudgetView* view)
+gbv_treeview_resized_cb (GtkWidget* widget, GtkAllocation* allocation,
+ GncBudgetView* view)
{
- gint ncols;
GncBudgetViewPrivate* priv;
+ gint ncols;
gint i;
gint j;
GList *columns;
@@ -756,25 +756,25 @@ gbv_treeview_resized_cb(GtkWidget* widget, GtkAllocation* allocation, GncBudgetV
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
/* There's no easy way to get this number. */
- columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(priv->tree_view));
- ncols = g_list_length(columns);
- g_list_free(columns);
+ columns = gtk_tree_view_get_columns (GTK_TREE_VIEW(priv->tree_view));
+ ncols = g_list_length (columns);
+ g_list_free (columns);
/* i is the column we are examining
* j is the corresponding column in totals_tree_view */
for (i = 0, j = 0; i < ncols; ++i)
{
gint col_width;
- GtkTreeViewColumn* tree_view_col;
- GtkTreeViewColumn* totals_view_col;
+ GtkTreeViewColumn *tree_view_col;
+ GtkTreeViewColumn *totals_view_col;
- tree_view_col = gtk_tree_view_get_column(priv->tree_view, i);
+ tree_view_col = gtk_tree_view_get_column (priv->tree_view, i);
- if (gtk_tree_view_column_get_visible(tree_view_col))
+ if (gtk_tree_view_column_get_visible (tree_view_col))
{
- col_width = gtk_tree_view_column_get_width(tree_view_col);
- totals_view_col = gtk_tree_view_get_column(priv->totals_tree_view, j);
+ col_width = gtk_tree_view_column_get_width (tree_view_col);
+ totals_view_col = gtk_tree_view_get_column (priv->totals_tree_view, j);
if(GTK_IS_TREE_VIEW_COLUMN(totals_view_col))
- gtk_tree_view_column_set_fixed_width(totals_view_col, col_width);
+ gtk_tree_view_column_set_fixed_width (totals_view_col, col_width);
j++;
}
}
@@ -786,46 +786,44 @@ gbv_treeview_resized_cb(GtkWidget* widget, GtkAllocation* allocation, GncBudgetV
/** \brief Actions for when a Gnc budget view row is activated.
*/
static void
-gbv_row_activated_cb(GtkTreeView *treeview, GtkTreePath *path,
- GtkTreeViewColumn *col, GncBudgetView *view)
+gbv_row_activated_cb (GtkTreeView *treeview, GtkTreePath *path,
+ GtkTreeViewColumn *col, GncBudgetView *view)
{
Account *account;
g_return_if_fail(GNC_IS_BUDGET_VIEW(view));
- account = gnc_tree_view_account_get_account_from_path(
+ account = gnc_tree_view_account_get_account_from_path (
GNC_TREE_VIEW_ACCOUNT(treeview), path);
if (account == NULL)
{
return;
}
- g_signal_emit_by_name(view, "account-activated", account);
+ g_signal_emit_by_name (view, "account-activated", account);
}
/** \brief Action for when a selection in a gnc budget view is changed
*/
#if 0
static void
-gbv_selection_changed_cb(GtkTreeSelection *selection, GncBudgetView *view)
+gbv_selection_changed_cb (GtkTreeSelection *selection, GncBudgetView *view)
{
GtkTreeView *tree_view;
- GList *acct_list;
- gboolean sensitive;
+ GList *acct_list;
+ gboolean sensitive;
if (!selection)
- {
sensitive = FALSE;
- }
else
{
- g_return_if_fail(GTK_IS_TREE_SELECTION(selection));
+ g_return_if_fail (GTK_IS_TREE_SELECTION(selection));
tree_view = gtk_tree_selection_get_tree_view (selection);
- acct_list = gnc_tree_view_account_get_selected_accounts(
+ acct_list = gnc_tree_view_account_get_selected_accounts (
GNC_TREE_VIEW_ACCOUNT(tree_view));
/* Check here for placeholder accounts, etc. */
- sensitive = (g_list_length(acct_list) > 0);
- g_list_free(acct_list);
+ sensitive = (g_list_length (acct_list) > 0);
+ g_list_free (acct_list);
}
}
#endif
@@ -839,10 +837,10 @@ This structure is utilised by the functions \ref budget_accum_helper and \ref gb
*/
typedef struct
{
- gnc_numeric total;
- GncBudget* budget;
- guint period_num;
- GNCPriceDB *pdb;
+ gnc_numeric total;
+ GncBudget *budget;
+ guint period_num;
+ GNCPriceDB *pdb;
gnc_commodity *total_currency;
} BudgetAccumulationInfo;
@@ -851,33 +849,33 @@ typedef struct
This function is used in conjunction with the function \ref gbv_get_accumulated_budget_amount to find the total of sub accounts. \ref gbv_get_accumulated_budget_amount passes this function to \ref gnc_account_foreach_child function in order to perform this operation. The latter method then calls \ref budget_accum_helper on all of the sub accounts of the main account passed in order to calculate the accumulated total.
*/
static void
-budget_accum_helper(Account* account, gpointer data)
+budget_accum_helper (Account* account, gpointer data)
{
BudgetAccumulationInfo* info = (BudgetAccumulationInfo*)data;
gnc_numeric numeric;
gnc_commodity *currency;
- currency = gnc_account_get_currency_or_parent(account);
+ currency = gnc_account_get_currency_or_parent (account);
- if (gnc_budget_is_account_period_value_set(info->budget, account, info->period_num))
+ if (gnc_budget_is_account_period_value_set (info->budget, account, info->period_num))
{
- numeric = gnc_budget_get_account_period_value(info->budget, account,
- info->period_num);
- numeric = gnc_pricedb_convert_balance_nearest_price_t64(
+ numeric = gnc_budget_get_account_period_value (info->budget, account,
+ info->period_num);
+ numeric = gnc_pricedb_convert_balance_nearest_price_t64 (
info->pdb, numeric, currency, info->total_currency,
- gnc_budget_get_period_start_date(info->budget, info->period_num));
- info->total = gnc_numeric_add(info->total, numeric, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_LCD);
+ gnc_budget_get_period_start_date (info->budget, info->period_num));
+ info->total = gnc_numeric_add (info->total, numeric, GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_LCD);
}
- else if (gnc_account_n_children(account) != 0)
+ else if (gnc_account_n_children (account) != 0)
{
- numeric = gbv_get_accumulated_budget_amount(info->budget, account,
- info->period_num);
- numeric = gnc_pricedb_convert_balance_nearest_price_t64(
+ numeric = gbv_get_accumulated_budget_amount (info->budget, account,
+ info->period_num);
+ numeric = gnc_pricedb_convert_balance_nearest_price_t64 (
info->pdb, numeric, currency, info->total_currency,
- gnc_budget_get_period_start_date(info->budget, info->period_num));
- info->total = gnc_numeric_add(info->total, numeric, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_LCD);
+ gnc_budget_get_period_start_date (info->budget, info->period_num));
+ info->total = gnc_numeric_add (info->total, numeric, GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_LCD);
}
}
@@ -886,7 +884,7 @@ budget_accum_helper(Account* account, gpointer data)
This function uses the \ref budget_accum_helper to calculate the accumulated budget amount in a given budget account for a specified period number. If the account does not have children, then it simply returns the balance of the account.
*/
static gnc_numeric
-gbv_get_accumulated_budget_amount(GncBudget* budget, Account* account, guint period_num)
+gbv_get_accumulated_budget_amount (GncBudget* budget, Account* account, guint period_num)
{
BudgetAccumulationInfo info;
@@ -894,17 +892,13 @@ gbv_get_accumulated_budget_amount(GncBudget* budget, Account* account, guint per
info.budget = budget;
info.period_num = period_num;
info.pdb = gnc_pricedb_get_db (gnc_account_get_book (account));
- info.total_currency = gnc_account_get_currency_or_parent(account);
-
- if (!gnc_budget_is_account_period_value_set(budget, account, period_num))
- {
- gnc_account_foreach_child(account, budget_accum_helper, &info);
- }
- else
- {
- info.total = gnc_budget_get_account_period_value(budget, account, period_num);
- }
+ info.total_currency = gnc_account_get_currency_or_parent (account);
+ if (!gnc_budget_is_account_period_value_set (budget, account, period_num))
+ gnc_account_foreach_child (account, budget_accum_helper, &info);
+ else
+ info.total = gnc_budget_get_account_period_value (budget, account, period_num);
+
if (gnc_reverse_budget_balance (account, TRUE))
info.total = gnc_numeric_neg (info.total);
@@ -920,138 +914,132 @@ gbv_get_accumulated_budget_amount(GncBudget* budget, Account* account, guint per
budget amounts (if any) is displayed in dark grey.
*/
static gchar *
-budget_col_source(Account *account, GtkTreeViewColumn *col,
- GtkCellRenderer *cell)
+budget_col_source (Account *account, GtkTreeViewColumn *col,
+ GtkCellRenderer *cell)
{
GtkTreeView *bview;
GncBudget *budget;
guint period_num;
gnc_numeric numeric;
gchar amtbuff[100]; //FIXME: overkill, where's the #define?
- gboolean red = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
+ gboolean red = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
- budget = GNC_BUDGET(g_object_get_data(G_OBJECT(col), "budget"));
- bview = GTK_TREE_VIEW(g_object_get_data(G_OBJECT(col), "budget_view"));
- period_num = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(col),
- "period_num"));
+ budget = GNC_BUDGET(g_object_get_data (G_OBJECT(col), "budget"));
+ bview = GTK_TREE_VIEW(g_object_get_data (G_OBJECT(col), "budget_view"));
+ period_num = GPOINTER_TO_UINT(g_object_get_data (G_OBJECT(col), "period_num"));
- if (!gnc_budget_is_account_period_value_set(budget, account, period_num))
+ if (!gnc_budget_is_account_period_value_set (budget, account, period_num))
{
- if (gnc_account_n_children(account) == 0)
- {
+ if (gnc_account_n_children (account) == 0)
amtbuff[0] = '\0';
- }
else
{
GdkRGBA color;
GtkStyleContext *stylectxt = gtk_widget_get_style_context (GTK_WIDGET(bview));
gtk_style_context_get_color (stylectxt, GTK_STATE_FLAG_NORMAL, &color);
- numeric = gbv_get_accumulated_budget_amount(budget, account, period_num);
- xaccSPrintAmount(amtbuff, numeric,
- gnc_account_print_info(account, FALSE));
- if (gnc_is_dark_theme(&color))
- g_object_set(cell, "foreground",
- red && gnc_numeric_negative_p(numeric)
- ? "darkred"
- : "darkgray",
- NULL);
+ numeric = gbv_get_accumulated_budget_amount (budget, account, period_num);
+ xaccSPrintAmount (amtbuff, numeric,
+ gnc_account_print_info (account, FALSE));
+ if (gnc_is_dark_theme (&color))
+ g_object_set (cell, "foreground",
+ red && gnc_numeric_negative_p (numeric)
+ ? "darkred"
+ : "darkgray",
+ NULL);
else
- g_object_set(cell, "foreground",
- red && gnc_numeric_negative_p(numeric)
- ? "PaleVioletRed"
- : "dimgray",
- NULL);
+ g_object_set (cell, "foreground",
+ red && gnc_numeric_negative_p (numeric)
+ ? "PaleVioletRed"
+ : "dimgray",
+ NULL);
}
}
else
{
- numeric = gnc_budget_get_account_period_value(budget, account,
- period_num);
- if (gnc_numeric_check(numeric))
- {
- strcpy(amtbuff, "error");
- }
+ numeric = gnc_budget_get_account_period_value (budget, account,
+ period_num);
+ if (gnc_numeric_check (numeric))
+ strcpy (amtbuff, "error");
else
{
if (gnc_reverse_budget_balance (account, TRUE))
numeric = gnc_numeric_neg (numeric);
- xaccSPrintAmount(amtbuff, numeric,
- gnc_account_print_info(account, FALSE));
+ xaccSPrintAmount (amtbuff, numeric,
+ gnc_account_print_info (account, FALSE));
- if (red && gnc_numeric_negative_p(numeric))
+ if (red && gnc_numeric_negative_p (numeric))
{
gchar *color = get_negative_color ();
- g_object_set(cell, "foreground", color, NULL);
+ g_object_set (cell, "foreground", color, NULL);
g_free (color);
}
else
- g_object_set(cell, "foreground", NULL, NULL);
-
+ g_object_set (cell, "foreground", NULL, NULL);
}
}
- return g_strdup(amtbuff);
+ return g_strdup (amtbuff);
}
/** \brief Function to find the total for an account for display in the
totals column to the right.
*/
static gnc_numeric
-bgv_get_total_for_account(Account* account, GncBudget* budget, gnc_commodity *new_currency)
+bgv_get_total_for_account (Account* account, GncBudget* budget, gnc_commodity *new_currency)
{
guint num_periods;
int period_num;
gnc_numeric numeric;
- gnc_numeric total = gnc_numeric_zero();
+ gnc_numeric total = gnc_numeric_zero ();
GNCPriceDB *pdb;
gnc_commodity *currency;
if (new_currency)
{
- pdb = gnc_pricedb_get_db(gnc_get_current_book());
- currency = gnc_account_get_currency_or_parent(account);
+ pdb = gnc_pricedb_get_db (gnc_get_current_book ());
+ currency = gnc_account_get_currency_or_parent (account);
}
- num_periods = gnc_budget_get_num_periods(budget);
+ num_periods = gnc_budget_get_num_periods (budget);
for (period_num = 0; period_num < num_periods; ++period_num)
{
- if (!gnc_budget_is_account_period_value_set(budget, account, period_num))
+ if (!gnc_budget_is_account_period_value_set (budget, account, period_num))
{
- if (gnc_account_n_children(account) != 0)
+ if (gnc_account_n_children (account) != 0)
{
- numeric = gbv_get_accumulated_budget_amount(budget, account, period_num);
+ numeric = gbv_get_accumulated_budget_amount (budget, account, period_num);
if (gnc_reverse_budget_balance (account, TRUE))
numeric = gnc_numeric_neg (numeric);
if (new_currency)
{
- numeric = gnc_pricedb_convert_balance_nearest_price_t64(
+ numeric = gnc_pricedb_convert_balance_nearest_price_t64 (
pdb, numeric, currency, new_currency,
- gnc_budget_get_period_start_date(budget, period_num));
+ gnc_budget_get_period_start_date (budget, period_num));
}
- total = gnc_numeric_add(total, numeric, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
+ total = gnc_numeric_add (total, numeric, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
}
}
else
{
- numeric = gnc_budget_get_account_period_value(budget, account, period_num);
- if (!gnc_numeric_check(numeric))
+ numeric = gnc_budget_get_account_period_value (budget, account, period_num);
+ if (!gnc_numeric_check (numeric))
{
if (new_currency)
{
- numeric = gnc_pricedb_convert_balance_nearest_price_t64(
+ numeric = gnc_pricedb_convert_balance_nearest_price_t64 (
pdb, numeric, currency, new_currency,
- gnc_budget_get_period_start_date(budget, period_num));
+ gnc_budget_get_period_start_date (budget, period_num));
}
- total = gnc_numeric_add(total, numeric, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
+ total = gnc_numeric_add (total, numeric, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
}
}
}
if (gnc_reverse_budget_balance (account, TRUE))
- total = gnc_numeric_neg(total);
+ total = gnc_numeric_neg (total);
return total;
}
@@ -1059,29 +1047,28 @@ bgv_get_total_for_account(Account* account, GncBudget* budget, gnc_commodity *ne
/** \brief Function to find and display the total for a specified account.
*/
static gchar *
-budget_total_col_source(Account *account, GtkTreeViewColumn *col,
- GtkCellRenderer *cell)
+budget_total_col_source (Account *account, GtkTreeViewColumn *col,
+ GtkCellRenderer *cell)
{
GncBudget *budget;
gnc_numeric total;
gchar amtbuff[100]; //FIXME: overkill, where's the #define?
- gboolean red = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
+ gboolean red = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
- budget = GNC_BUDGET(g_object_get_data(G_OBJECT(col), "budget"));
- total = bgv_get_total_for_account(account, budget, NULL);
- xaccSPrintAmount(amtbuff, total,
- gnc_account_print_info(account, TRUE));
+ budget = GNC_BUDGET(g_object_get_data (G_OBJECT(col), "budget"));
+ total = bgv_get_total_for_account (account, budget, NULL);
+ xaccSPrintAmount (amtbuff, total, gnc_account_print_info (account, TRUE));
- if (red && gnc_numeric_negative_p(total))
+ if (red && gnc_numeric_negative_p (total))
{
gchar *color = get_negative_color ();
- g_object_set(cell, "foreground", color, NULL);
+ g_object_set (cell, "foreground", color, NULL);
g_free (color);
}
else
- g_object_set(cell, "foreground", NULL, NULL);
+ g_object_set (cell, "foreground", NULL, NULL);
- return g_strdup(amtbuff);
+ return g_strdup (amtbuff);
}
/** \brief Function to perform actions if an account has been edited
@@ -1092,30 +1079,29 @@ budget_total_col_source(Account *account, GtkTreeViewColumn *col,
can then be tallied for the value.
*/
static void
-budget_col_edited(Account *account, GtkTreeViewColumn *col,
- const gchar *new_text)
+budget_col_edited (Account *account, GtkTreeViewColumn *col,
+ const gchar *new_text)
{
GncBudget *budget;
guint period_num;
- gnc_numeric numeric = gnc_numeric_error(GNC_ERROR_ARG);
+ gnc_numeric numeric = gnc_numeric_error (GNC_ERROR_ARG);
- if (!xaccParseAmount(new_text, TRUE, &numeric, NULL) &&
- !(new_text && *new_text == '\0'))
+ if (!xaccParseAmount (new_text, TRUE, &numeric, NULL) &&
+ !(new_text && *new_text == '\0'))
return;
- period_num = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(col),
- "period_num"));
+ period_num = GPOINTER_TO_UINT(g_object_get_data (G_OBJECT(col), "period_num"));
- budget = GNC_BUDGET(g_object_get_data(G_OBJECT(col), "budget"));
+ budget = GNC_BUDGET(g_object_get_data (G_OBJECT(col), "budget"));
if (new_text && *new_text == '\0')
- gnc_budget_unset_account_period_value(budget, account, period_num);
+ gnc_budget_unset_account_period_value (budget, account, period_num);
else
{
if (gnc_reverse_budget_balance (account, TRUE))
- numeric = gnc_numeric_neg(numeric);
- gnc_budget_set_account_period_value(budget, account, period_num,
- numeric);
+ numeric = gnc_numeric_neg (numeric);
+ gnc_budget_set_account_period_value (budget, account, period_num,
+ numeric);
}
}
@@ -1132,9 +1118,9 @@ This function is called on each row within the totals tree
on this information in the totals tree widget.
*/
static void
-totals_col_source(GtkTreeViewColumn *col, GtkCellRenderer *cell,
- GtkTreeModel *s_model, GtkTreeIter *s_iter,
- gpointer user_data)
+totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
+ GtkTreeModel *s_model, GtkTreeIter *s_iter,
+ gpointer user_data)
{
GncBudgetView* view;
GncBudgetViewPrivate* priv;
@@ -1155,25 +1141,24 @@ totals_col_source(GtkTreeViewColumn *col, GtkCellRenderer *cell,
view = GNC_BUDGET_VIEW(user_data);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- red = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
+ red = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED);
- gtk_tree_model_get(s_model, s_iter, 1, &row_type, -1);
- budget = GNC_BUDGET(g_object_get_data(G_OBJECT(col), "budget"));
- period_num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(col),
- "period_num"));
+ gtk_tree_model_get (s_model, s_iter, 1, &row_type, -1);
+ budget = GNC_BUDGET(g_object_get_data (G_OBJECT(col), "budget"));
+ period_num = GPOINTER_TO_INT(g_object_get_data (G_OBJECT(col), "period_num"));
- pdb = gnc_pricedb_get_db (gnc_get_current_book());
- total_currency = gnc_default_currency();
- num_top_accounts = gnc_account_n_children(priv->rootAcct);
+ pdb = gnc_pricedb_get_db (gnc_get_current_book ());
+ total_currency = gnc_default_currency ();
+ num_top_accounts = gnc_account_n_children (priv->rootAcct);
// step through each child account of the root, find the total income, expenses, liabilities, and assets.
for (i = 0; i < num_top_accounts; ++i)
{
- account = gnc_account_nth_child(priv->rootAcct, i);
- currency = gnc_account_get_currency_or_parent(account);
+ account = gnc_account_nth_child (priv->rootAcct, i);
+ currency = gnc_account_get_currency_or_parent (account);
- switch (xaccAccountGetType(account))
+ switch (xaccAccountGetType (account))
{
case ACCT_TYPE_INCOME:
if (row_type != TOTALS_TYPE_INCOME)
@@ -1202,33 +1187,33 @@ totals_col_source(GtkTreeViewColumn *col, GtkCellRenderer *cell,
if (period_num < 0)
{
- value = bgv_get_total_for_account(account, budget, total_currency);
+ value = bgv_get_total_for_account (account, budget, total_currency);
}
else
{
- value = gbv_get_accumulated_budget_amount(budget, account, period_num);
+ value = gbv_get_accumulated_budget_amount (budget, account, period_num);
- value = gnc_pricedb_convert_balance_nearest_price_t64(
+ value = gnc_pricedb_convert_balance_nearest_price_t64 (
pdb, value, currency, total_currency,
- gnc_budget_get_period_start_date(budget, period_num));
+ gnc_budget_get_period_start_date (budget, period_num));
}
- total = gnc_numeric_add(total, value, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
+ total = gnc_numeric_add (total, value, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
}
- xaccSPrintAmount(amtbuff, total,
- gnc_commodity_print_info(total_currency,
- period_num < 0 ? TRUE : FALSE));
- if (red && gnc_numeric_negative_p(total))
+ xaccSPrintAmount (amtbuff, total,
+ gnc_commodity_print_info (total_currency,
+ period_num < 0 ? TRUE : FALSE));
+ if (red && gnc_numeric_negative_p (total))
{
gchar *color = get_negative_color ();
- g_object_set(cell, "foreground", color, NULL);
+ g_object_set (cell, "foreground", color, NULL);
g_free (color);
}
else
- g_object_set(cell, "foreground", NULL, NULL);
+ g_object_set (cell, "foreground", NULL, NULL);
- g_object_set(G_OBJECT(cell), "text", amtbuff, "xalign", 1.0, NULL);
+ g_object_set (G_OBJECT(cell), "text", amtbuff, "xalign", 1.0, NULL);
}
/**
@@ -1237,7 +1222,7 @@ totals_col_source(GtkTreeViewColumn *col, GtkCellRenderer *cell,
The function steps through the number of periods adding the dates to the first row of each of the columns that are listed as visible.
*/
static void
-gbv_refresh_col_titles(GncBudgetView *view)
+gbv_refresh_col_titles (GncBudgetView *view)
{
GncBudgetViewPrivate *priv;
const Recurrence *r;
@@ -1249,24 +1234,24 @@ gbv_refresh_col_titles(GncBudgetView *view)
GList *col_list;
gint i;
- g_return_if_fail(view != NULL);
+ g_return_if_fail (view != NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
col_list = priv->period_col_list;
- num_periods_visible = g_list_length(col_list);
+ num_periods_visible = g_list_length (col_list);
/* Show the dates in column titles */
- r = gnc_budget_get_recurrence(priv->budget);
+ r = gnc_budget_get_recurrence (priv->budget);
date = r->start;
for (i = 0; i < num_periods_visible; i++)
{
- col = GTK_TREE_VIEW_COLUMN(g_list_nth_data(col_list, i));
- titlelen = qof_print_gdate(title, MAX_DATE_LENGTH, &date);
+ col = GTK_TREE_VIEW_COLUMN(g_list_nth_data (col_list, i));
+ titlelen = qof_print_gdate (title, MAX_DATE_LENGTH, &date);
+
if (titlelen > 0)
- {
- gtk_tree_view_column_set_title(col, title);
- }
- recurrenceNextInstance(r, &date, &nextdate);
+ gtk_tree_view_column_set_title (col, title);
+
+ recurrenceNextInstance (r, &date, &nextdate);
date = nextdate;
}
}
@@ -1284,25 +1269,25 @@ gbv_renderer_add_padding (GtkCellRenderer *renderer)
/** \brief Function to create the totals column to the right of the view.
*/
static GtkTreeViewColumn*
-gbv_create_totals_column(GncBudgetView* view, gint period_num)
+gbv_create_totals_column (GncBudgetView* view, gint period_num)
{
GncBudgetViewPrivate *priv;
GtkTreeViewColumn *col;
GtkCellRenderer* renderer;
- g_return_val_if_fail(view != NULL, NULL);
+ g_return_val_if_fail (view != NULL, NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- renderer = gtk_cell_renderer_text_new();
- col = gtk_tree_view_column_new_with_attributes("", renderer, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ col = gtk_tree_view_column_new_with_attributes ("", renderer, NULL);
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- gtk_tree_view_column_set_cell_data_func(col, renderer, totals_col_source, view, NULL);
- g_object_set_data(G_OBJECT(col), "budget", priv->budget);
- g_object_set_data(G_OBJECT(col), "period_num", GUINT_TO_POINTER(period_num));
- gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
+ gtk_tree_view_column_set_cell_data_func (col, renderer, totals_col_source, view, NULL);
+ g_object_set_data (G_OBJECT(col), "budget", priv->budget);
+ g_object_set_data (G_OBJECT(col), "period_num", GUINT_TO_POINTER(period_num));
+ gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
return col;
}
@@ -1312,34 +1297,32 @@ gbv_create_totals_column(GncBudgetView* view, gint period_num)
The function simply calls \ref gtk_widget_queue_draw on the current totals_tree_view.
*/
static void
-gbv_col_edited_cb(GtkCellRendererText* cell, gchar* path_string, gchar* new_text, gpointer user_data)
+gbv_col_edited_cb (GtkCellRendererText* cell, gchar* path_string,
+ gchar* new_text, gpointer user_data)
{
- GncBudgetView *view;
- GncBudgetViewPrivate *priv;
+ GncBudgetView *view = GNC_BUDGET_VIEW(user_data);
+ GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- view = GNC_BUDGET_VIEW(user_data);
- priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
-
- gtk_widget_queue_draw(GTK_WIDGET(priv->totals_tree_view));
+ gtk_widget_queue_draw (GTK_WIDGET(priv->totals_tree_view));
}
/* The main Start Editing Call back for the budget columns, for key navigation
*/
static void
-gdv_editing_started_cb(GtkCellRenderer *cr, GtkCellEditable *editable,
- const gchar *path_string, gpointer user_data)
+gdv_editing_started_cb (GtkCellRenderer *cr, GtkCellEditable *editable,
+ const gchar *path_string, gpointer user_data)
{
GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(user_data);
priv->temp_cr = cr;
priv->temp_ce = editable;
- g_signal_connect(G_OBJECT(editable), "key-press-event",
- G_CALLBACK(gbv_key_press_cb), user_data);
+ g_signal_connect (G_OBJECT(editable), "key-press-event",
+ G_CALLBACK(gbv_key_press_cb), user_data);
}
static void
-gdv_editing_canceled_cb(GtkCellRenderer *cr, gpointer user_data)
+gdv_editing_canceled_cb (GtkCellRenderer *cr, gpointer user_data)
{
GncBudgetViewPrivate *priv = GNC_BUDGET_VIEW_GET_PRIVATE(user_data);
@@ -1353,7 +1336,7 @@ The function will step through to only display the columns that are set
as visible, and will add any needed columns (e.g. the totals column).
*/
void
-gnc_budget_view_refresh(GncBudgetView *view)
+gnc_budget_view_refresh (GncBudgetView *view)
{
GncBudgetViewPrivate *priv;
gint num_periods;
@@ -1363,28 +1346,28 @@ gnc_budget_view_refresh(GncBudgetView *view)
GList *totals_col_list;
ENTER("view %p", view);
- g_return_if_fail(view != NULL);
+ g_return_if_fail (view != NULL);
priv = GNC_BUDGET_VIEW_GET_PRIVATE(view);
- num_periods = gnc_budget_get_num_periods(priv->budget);
+ num_periods = gnc_budget_get_num_periods (priv->budget);
col_list = priv->period_col_list;
totals_col_list = priv->totals_col_list;
- num_periods_visible = g_list_length(col_list);
+ num_periods_visible = g_list_length (col_list);
/* Hide any unneeded extra columns */
while (num_periods_visible > num_periods)
{
- col = GTK_TREE_VIEW_COLUMN((g_list_last(col_list))->data);
- gtk_tree_view_remove_column(GTK_TREE_VIEW(priv->tree_view), col);
- col_list = g_list_delete_link(col_list, g_list_last(col_list));
- num_periods_visible = g_list_length(col_list);
-
- col = GTK_TREE_VIEW_COLUMN((g_list_last(totals_col_list))->data);
- gtk_tree_view_remove_column(GTK_TREE_VIEW(priv->totals_tree_view), col);
- totals_col_list = g_list_delete_link(totals_col_list, g_list_last(totals_col_list));
+ col = GTK_TREE_VIEW_COLUMN((g_list_last (col_list))->data);
+ gtk_tree_view_remove_column (GTK_TREE_VIEW(priv->tree_view), col);
+ col_list = g_list_delete_link (col_list, g_list_last (col_list));
+ num_periods_visible = g_list_length (col_list);
+
+ col = GTK_TREE_VIEW_COLUMN((g_list_last (totals_col_list))->data);
+ gtk_tree_view_remove_column (GTK_TREE_VIEW(priv->totals_tree_view), col);
+ totals_col_list = g_list_delete_link (totals_col_list, g_list_last (totals_col_list));
}
- gnc_tree_view_configure_columns(GNC_TREE_VIEW(priv->tree_view));
+ gnc_tree_view_configure_columns (GNC_TREE_VIEW(priv->tree_view));
/* If we're creating new columns to be appended to already existing
* columns, first delete the total column. (Then regenerate after
@@ -1393,10 +1376,10 @@ gnc_budget_view_refresh(GncBudgetView *view)
{
/* Delete the totals column */
col = priv->total_col;
- gtk_tree_view_remove_column(GTK_TREE_VIEW(priv->tree_view), col);
+ gtk_tree_view_remove_column (GTK_TREE_VIEW(priv->tree_view), col);
priv->total_col = NULL;
- col = gtk_tree_view_get_column(GTK_TREE_VIEW(priv->totals_tree_view), num_periods_visible+1);
- gtk_tree_view_remove_column(GTK_TREE_VIEW(priv->totals_tree_view), col);
+ col = gtk_tree_view_get_column (GTK_TREE_VIEW(priv->totals_tree_view), num_periods_visible+1);
+ gtk_tree_view_remove_column (GTK_TREE_VIEW(priv->totals_tree_view), col);
}
/* Create any needed columns */
@@ -1404,14 +1387,13 @@ gnc_budget_view_refresh(GncBudgetView *view)
{
GtkCellRenderer* renderer;
- col = gnc_tree_view_account_add_custom_column(
+ col = gnc_tree_view_account_add_custom_column (
GNC_TREE_VIEW_ACCOUNT(priv->tree_view), "",
budget_col_source, budget_col_edited);
- g_object_set_data(G_OBJECT(col), "budget", priv->budget);
- g_object_set_data(G_OBJECT(col), "budget_view", priv->tree_view);
- g_object_set_data(G_OBJECT(col), "period_num",
- GUINT_TO_POINTER(num_periods_visible));
- col_list = g_list_append(col_list, col);
+ g_object_set_data (G_OBJECT(col), "budget", priv->budget);
+ g_object_set_data (G_OBJECT(col), "budget_view", priv->tree_view);
+ g_object_set_data (G_OBJECT(col), "period_num", GUINT_TO_POINTER(num_periods_visible));
+ col_list = g_list_append (col_list, col);
// as we only have one renderer/column, use this function to get it
renderer = gnc_tree_view_column_get_renderer (col);
@@ -1419,19 +1401,19 @@ gnc_budget_view_refresh(GncBudgetView *view)
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- g_signal_connect(G_OBJECT(renderer), "edited", (GCallback)gbv_col_edited_cb, view);
- g_signal_connect(G_OBJECT(renderer), "editing-started",
- (GCallback)gdv_editing_started_cb, view);
- g_signal_connect(G_OBJECT(renderer), "editing-canceled",
- (GCallback)gdv_editing_canceled_cb, view);
- col = gbv_create_totals_column(view, num_periods_visible);
+ g_signal_connect (G_OBJECT(renderer), "edited", (GCallback)gbv_col_edited_cb, view);
+ g_signal_connect (G_OBJECT(renderer), "editing-started",
+ (GCallback)gdv_editing_started_cb, view);
+ g_signal_connect (G_OBJECT(renderer), "editing-canceled",
+ (GCallback)gdv_editing_canceled_cb, view);
+ col = gbv_create_totals_column (view, num_periods_visible);
if (col != NULL)
{
- gtk_tree_view_append_column(priv->totals_tree_view, col);
- totals_col_list = g_list_append(totals_col_list, col);
+ gtk_tree_view_append_column (priv->totals_tree_view, col);
+ totals_col_list = g_list_append (totals_col_list, col);
}
- num_periods_visible = g_list_length(col_list);
+ num_periods_visible = g_list_length (col_list);
}
priv->period_col_list = col_list;
priv->totals_col_list = totals_col_list;
@@ -1443,7 +1425,7 @@ gnc_budget_view_refresh(GncBudgetView *view)
GDate *date;
GtkCellRenderer* renderer;
- priv->total_col = gnc_tree_view_account_add_custom_column(
+ priv->total_col = gnc_tree_view_account_add_custom_column (
GNC_TREE_VIEW_ACCOUNT(priv->tree_view), _("Total"),
budget_total_col_source, NULL);
@@ -1455,7 +1437,7 @@ gnc_budget_view_refresh(GncBudgetView *view)
titlelen = qof_print_gdate (title, MAX_DATE_LENGTH, date);
if (titlelen > 0)
{
- PangoLayout *layout = gtk_widget_create_pango_layout (GTK_WIDGET (view), title);
+ PangoLayout *layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), title);
PangoRectangle logical_rect;
pango_layout_set_width (layout, -1);
pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
@@ -1464,7 +1446,7 @@ gnc_budget_view_refresh(GncBudgetView *view)
gtk_tree_view_column_set_min_width (priv->total_col, logical_rect.width);
}
g_date_free (date);
- g_object_set_data(G_OBJECT(priv->total_col), "budget", priv->budget);
+ g_object_set_data (G_OBJECT(priv->total_col), "budget", priv->budget);
// as we only have one renderer/column, use this function to get it
renderer = gnc_tree_view_column_get_renderer (priv->total_col);
@@ -1472,13 +1454,11 @@ gnc_budget_view_refresh(GncBudgetView *view)
// add some padding to the right of the numbers
gbv_renderer_add_padding (renderer);
- col = gbv_create_totals_column(view, -1);
+ col = gbv_create_totals_column (view, -1);
if (col != NULL)
- {
- gtk_tree_view_append_column(priv->totals_tree_view, col);
- }
+ gtk_tree_view_append_column (priv->totals_tree_view, col);
}
- gbv_refresh_col_titles(view);
+ gbv_refresh_col_titles (view);
PINFO("Number of columns is %d, totals columns is %d",
gtk_tree_view_get_n_columns (priv->tree_view), gtk_tree_view_get_n_columns (priv->totals_tree_view));
commit 5f6b9946d470636dba99ca6acd78c5ea34e9593e
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Dec 11 19:54:08 2019 +0800
[report-utilities] bugfix: fix overpayment detection
For 1 payment to >1 invoices, previous would miscalculate overpayment.
Old overpayment definition -- from the payment amount, successively
subtract the invoice totals. If remaining is >0, then this is
overpayment. But this fails whereby invoice was partially paid
elsewhere because the overpayment would miss them.
New overpayment definition -- the payment txn is analysed, and all
APAR-splits' lots are analysed. Any lot with no invoice is a
prepayment.
This is a simpler algorithm and does not require the creation and
searching of invoices-and-splits.
diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-system/report-utilities.scm
index 459609e9b..652ab4543 100644
--- a/gnucash/report/report-system/report-utilities.scm
+++ b/gnucash/report/report-system/report-utilities.scm
@@ -1140,19 +1140,17 @@ flawed. see report-utilities.scm. please update reports.")
(buckets (make-vector num-buckets 0)))
(define (addbucket! idx amt)
(vector-set! buckets idx (+ amt (vector-ref buckets idx))))
- (let lp ((splits splits)
- (invoices-and-splits '()))
+ (let lp ((splits splits))
(cond
((null? splits)
(vector->list buckets))
;; next split is an invoice posting split. add its balance to
- ;; bucket, and add splits to invoices-and-splits for payments.
+ ;; bucket
((eqv? (xaccTransGetTxnType (xaccSplitGetParent (car splits)))
TXN-TYPE-INVOICE)
(let* ((invoice (gncInvoiceGetInvoiceFromTxn
(xaccSplitGetParent (car splits))))
- (inv-splits (gnc-lot-get-split-list (gncInvoiceGetPostedLot invoice)))
(lot (gncInvoiceGetPostedLot invoice))
(bal (gnc-lot-get-balance lot))
(bal (if receivable? bal (- bal)))
@@ -1165,33 +1163,31 @@ flawed. see report-utilities.scm. please update reports.")
(if (< date (car bucket-dates))
(addbucket! idx bal)
(loop (1+ idx) (cdr bucket-dates))))
- (lp (cdr splits)
- (cons (cons invoice inv-splits) invoices-and-splits))))
+ (lp (cdr splits))))
- ;; next split is a payment. find the associated invoices,
- ;; deduct their totals. the remaining is an overpayment.
+ ;; next split is a payment. analyse its sister APAR splits. any
+ ;; split whose lot-balance is negative is an overpayment.
((eqv? (xaccTransGetTxnType (xaccSplitGetParent (car splits)))
TXN-TYPE-PAYMENT)
(let* ((txn (xaccSplitGetParent (car splits)))
- (payment (apply + (map xaccSplitGetAmount
- (xaccTransGetAPARAcctSplitList txn #f))))
+ (splitlist (xaccTransGetAPARAcctSplitList txn #f))
+ (payment (apply + (map xaccSplitGetAmount splitlist)))
(overpayment
(fold
- (lambda (inv-and-splits payment-left)
- (if (member txn (map xaccSplitGetParent (cdr inv-and-splits)))
- (- payment-left (gncInvoiceGetTotal (car inv-and-splits)))
- payment-left))
- (if receivable? (- payment) payment) invoices-and-splits)))
+ (lambda (a b)
+ (if (null? (gncInvoiceGetInvoiceFromLot (xaccSplitGetLot a)))
+ (- b (xaccSplitGetAmount a))
+ b))
+ 0 splitlist)))
(gnc:msg "next " (gnc:strify (car splits)) " payment " payment
" overpayment " overpayment)
- (when (positive? overpayment)
- (addbucket! (1- num-buckets) (- overpayment)))
- (lp (cdr splits) invoices-and-splits)))
+ (addbucket! (1- num-buckets) (- overpayment))
+ (lp (cdr splits))))
;; not invoice/prepayment. regular or payment split.
(else
(gnc:msg "next " (gnc:strify (car splits)) " skipped")
- (lp (cdr splits) invoices-and-splits))))))
+ (lp (cdr splits)))))))
;; ***************************************************************************
commit 0212537cca6bf941f09c61dd34c4072d5ed3caba
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Dec 11 19:54:00 2019 +0800
[new-owner-report] bugfix: fix overpayment detection
For 1 payment to >1 invoices, previous would miscalculate overpayment.
Old overpayment definition -- from the payment amount, successively
subtract the invoice totals. If remaining is >0, then this is
overpayment. But this fails whereby invoice was partially paid
elsewhere because the overpayment would miss them.
New overpayment definition -- the payment txn is analysed, and all
APAR-splits' lots are analysed. Any lot with no invoice is a
prepayment.
diff --git a/gnucash/report/business-reports/new-owner-report.scm b/gnucash/report/business-reports/new-owner-report.scm
index 257e077ee..9366b889c 100644
--- a/gnucash/report/business-reports/new-owner-report.scm
+++ b/gnucash/report/business-reports/new-owner-report.scm
@@ -359,24 +359,29 @@
#f)))
payment-splits)))))
- (define (make-payment->invoices-table amount payment-splits currency)
+ (define (make-payment->invoices-table txn payment-splits currency)
(let lp ((payment-splits payment-splits)
- (amount (- amount))
(result '()))
(cond
((null? payment-splits)
- (reverse
- (if (positive? amount)
- (cons (list (gnc:make-html-table-cell/size 1 2 (_ "Prepayments"))
- (make-cell (gnc:make-gnc-monetary currency amount)))
- result)
- result)))
+ (let ((overpayment
+ (fold
+ (lambda (a b)
+ (if (null? (gncInvoiceGetInvoiceFromLot (xaccSplitGetLot a)))
+ (- b (xaccSplitGetAmount a))
+ b))
+ 0 (xaccTransGetAPARAcctSplitList txn #f))))
+ (reverse
+ (if (positive? overpayment)
+ (cons (list (gnc:make-html-table-cell/size 1 2 (_ "Prepayments"))
+ (make-cell (gnc:make-gnc-monetary currency overpayment)))
+ result)
+ result))))
(else
(let* ((payment-split (car payment-splits))
(inv (car payment-split))
(inv-amount (gncInvoiceGetTotal inv)))
(lp (cdr payment-splits)
- (- amount inv-amount)
(cons (list
(qof-print-date (gncInvoiceGetDatePosted inv))
(gnc:make-html-text
@@ -510,7 +515,7 @@
((and payment-splits (eq? link-option 'simple))
(make-payment->invoices-list invoice payment-splits))
((and payment-splits (eq? link-option 'detailed))
- (make-payment->invoices-table value payment-splits currency))
+ (make-payment->invoices-table txn payment-splits currency))
;; some error occurred, show 1 line containing empty-list
(else '(()))))
commit 3efb960daf319f72b6108ca6632f2a42f19591ff
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Tue Dec 10 18:23:30 2019 +0800
Bug 797521 - Receivable Aging (beta): prepayments logic doesn't work, appears to use incorrect absolute value logic
Overpayments create at least 2 APAR splits (1 for each invoice, and 1
for the overpayment), they were processed multiple times.
Modify query to return unique transactions, thereby ensuring a payment
gets processed once only.
diff --git a/gnucash/report/business-reports/new-aging.scm b/gnucash/report/business-reports/new-aging.scm
index 5f0f8ba5a..a9bb0a045 100644
--- a/gnucash/report/business-reports/new-aging.scm
+++ b/gnucash/report/business-reports/new-aging.scm
@@ -235,7 +235,7 @@ exist but have no suitable transactions."))
(else
(setup-query query accounts report-date)
- (let* ((splits (qof-query-run query))
+ (let* ((splits (xaccQueryGetSplitsUniqueTrans query))
(accounts (sort-and-delete-duplicates (map xaccSplitGetAccount splits)
gnc:account-path-less-p equal?)))
(qof-query-destroy query)
commit 60765e388ac69c4ae95223562de1108bc1a9f43e
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Mon Dec 9 19:31:31 2019 +0800
Bug 797279 - Reports RTL do not support RTL
RTL autodetect seems to rely on the report-title being RTL.
diff --git a/gnucash/report/business-reports/new-owner-report.scm b/gnucash/report/business-reports/new-owner-report.scm
index 5b40d0b7b..257e077ee 100644
--- a/gnucash/report/business-reports/new-owner-report.scm
+++ b/gnucash/report/business-reports/new-owner-report.scm
@@ -725,7 +725,7 @@ invoices and amounts.")))))
(document (gnc:make-html-document))
(table (gnc:make-html-table))
(headings (make-heading-list used-columns link-option))
- (report-title (string-append (owner-string type) " " (_ "Report"))))
+ (report-title (string-append (_ (owner-string type)) " " (_ "Report"))))
(cond
((not (gncOwnerIsValid owner))
@@ -751,7 +751,7 @@ invoices and amounts.")))))
(gnc:html-document-set-headline!
document (gnc:html-markup
- "span" (owner-string type) " " (_ "Report:") " "
+ "span" report-title ": "
(gnc:html-markup-anchor
(if (eqv? GNC-OWNER-JOB type)
(gnc:job-anchor-text (gncOwnerGetJob owner))
commit e40bee0ff6ba884fa4d0dfd8c2a93a87124939ed
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Mon Dec 9 18:20:57 2019 +0800
[Bug 797520] Balance Sheet (Multicolumn) the retained earnings amount in the equity section has its sign reversed
c21bb66d6 had a regression: income-expense-balances was originally
negated, only to be negated again for use in retained-earnings-fn. The
previous change forgot to negate income-expense-balances.
This commit removes the negation before use of income-expense-balances
in retained-earnings-fn, thereby simplifying code.
diff --git a/gnucash/report/standard-reports/balsheet-pnl.scm b/gnucash/report/standard-reports/balsheet-pnl.scm
index ac616febc..c7d40b6fa 100644
--- a/gnucash/report/standard-reports/balsheet-pnl.scm
+++ b/gnucash/report/standard-reports/balsheet-pnl.scm
@@ -1034,12 +1034,9 @@ also show overall period profit & loss."))
(if (and common-currency
(every has-price?
(gnc:accounts-get-commodities income-expense #f)))
- (gnc:monetary-neg
- (monetaries->exchanged income-expense-balance
- common-currency price-source date))
- (map
- gnc:monetary-neg
- (income-expense-balance 'format gnc:make-gnc-monetary #f))))))
+ (monetaries->exchanged income-expense-balance
+ common-currency price-source date)
+ (income-expense-balance 'format gnc:make-gnc-monetary #f)))))
(chart (and-let* (include-chart?
incr
diff --git a/gnucash/report/standard-reports/test/test-balsheet-pnl.scm b/gnucash/report/standard-reports/test/test-balsheet-pnl.scm
index 98e272c35..96b5f7c9b 100644
--- a/gnucash/report/standard-reports/test/test-balsheet-pnl.scm
+++ b/gnucash/report/standard-reports/test/test-balsheet-pnl.scm
@@ -535,7 +535,22 @@
"$320.00" "#200.00 " "$100,000.00" "$117,529.00" "$9,500.00" "$9,500.00"
"$500.00" "$9,000.00" "$9,500.00" "$103,600.00" "$4,429.00" "$0.00"
"$108,029.00" "1 FUNDS $350.00" "#1.00 $1.60")
- (sxml->table-row-col sxml 1 #f 4)))))
+ (sxml->table-row-col sxml 1 #f 4)))
+
+ ;; the following includes non-zero retained earnings of $1,270
+ (set-option! multi-bs-options "General" "End Date"
+ (cons 'absolute (gnc-dmy2time64 1 3 1980)))
+ (set-option! multi-bs-options "General" "Period duration" #f)
+ (let ((sxml (options->sxml multicol-balsheet-uuid multi-bs-options
+ "multicol-balsheet-retained")))
+ (test-equal "bal-1/3/80"
+ '("$123,319.00" "$123,319.00" "$5,129.00" "$2,000.00" "$3,029.00"
+ "$0.00" "$100.00" "$17,000.00" "$2,000.00" "$15,000.00" "30 FUNDS "
+ "$1,190.00" "$1,190.00" "#700.00 " "$100,000.00" "$123,319.00"
+ "$9,500.00" "$9,500.00" "$500.00" "$9,000.00" "$9,500.00"
+ "$103,600.00" "$8,949.00" "$1,270.00" "$113,819.00" "1 FUNDS $500.00"
+ "#1.00 $1.70")
+ (sxml->table-row-col sxml 1 #f 2)))))
(define (multicol-pnl-tests)
(define (default-testing-options)
Summary of changes:
gnucash/gnome/gnc-budget-view.c | 944 +++++++++++----------
gnucash/gnome/gnc-budget-view.h | 20 +-
gnucash/gnome/gnc-plugin-budget.c | 161 ++--
gnucash/gnome/gnc-plugin-budget.h | 6 +-
gnucash/gnome/gnc-plugin-page-budget.c | 546 ++++++------
gnucash/gnome/gnc-plugin-page-budget.h | 4 +-
gnucash/gnome/gnc-plugin-page-report.c | 3 +
gnucash/report/report-utilities.scm | 36 +-
gnucash/report/reports/standard/balsheet-pnl.scm | 9 +-
gnucash/report/reports/standard/new-aging.scm | 2 +-
.../report/reports/standard/new-owner-report.scm | 29 +-
.../reports/standard/test/test-balsheet-pnl.scm | 17 +-
.../reports/standard/test/test-owner-report.scm | 44 +-
libgnucash/engine/gnc-features.c | 1 +
libgnucash/engine/gnc-features.h | 1 +
15 files changed, 942 insertions(+), 881 deletions(-)
More information about the gnucash-changes
mailing list