Merge Richard Cohwn's 'declare-type-gnc-tree-view' into stable.

This commit is contained in:
John Ralls 2023-06-16 12:41:26 -07:00
commit 915e95e553
11 changed files with 183 additions and 363 deletions

View File

@ -62,7 +62,7 @@ static void gnc_tree_view_account_finalize (GObject *object);
static gboolean gnc_tree_view_search_compare (GtkTreeModel *model, gint column,
const gchar *key, GtkTreeIter *iter, gpointer search_data);
static void gtva_update_column_names (GncTreeView *view);
static void gtva_update_column_names (GncTreeViewAccount *view);
static void gtva_currency_changed_cb (void);
static gboolean gnc_tree_view_account_filter_helper (GtkTreeModel *model,
@ -93,8 +93,11 @@ static gboolean
gnc_tree_view_tooltip_cb (GtkWidget *widget, gint x, gint y, gboolean keyboard_tip,
GtkTooltip *tooltip, gpointer user_data);
typedef struct GncTreeViewAccountPrivate
struct _GncTreeViewAccount
{
GncTreeView gnc_tree_view;
int stamp;
AccountViewInfo avi;
gnc_tree_view_account_filter_func filter_fn;
@ -116,15 +119,12 @@ typedef struct GncTreeViewAccountPrivate
} GncTreeViewAccountPrivate;
#define GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(o) \
((GncTreeViewAccountPrivate*)gnc_tree_view_account_get_instance_private((GncTreeViewAccount*)o))
/************************************************************/
/* g_object required functions */
/************************************************************/
G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewAccount, gnc_tree_view_account, GNC_TYPE_TREE_VIEW)
G_DEFINE_TYPE(GncTreeViewAccount, gnc_tree_view_account, GNC_TYPE_TREE_VIEW)
static void
gnc_tree_view_account_class_init (GncTreeViewAccountClass *klass)
@ -159,42 +159,33 @@ gnc_init_account_view_info(AccountViewInfo *avi)
static void
gnc_tree_view_account_init (GncTreeViewAccount *view)
{
GncTreeViewAccountPrivate *priv;
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
gnc_prefs_register_cb (GNC_PREFS_GROUP_GENERAL,
GNC_PREF_ACCOUNT_COLOR,
gnc_tree_view_account_color_update,
view);
gnc_init_account_view_info(&priv->avi);
gnc_init_account_view_info(&view->avi);
}
static void
gnc_tree_view_account_finalize (GObject *object)
{
GncTreeViewAccount *account_view;
GncTreeViewAccountPrivate *priv;
ENTER("view %p", object);
g_return_if_fail (object != NULL);
g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (object));
account_view = GNC_TREE_VIEW_ACCOUNT (object);
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
GncTreeViewAccount *view = GNC_TREE_VIEW_ACCOUNT (object);
gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL,
GNC_PREF_ACCOUNT_COLOR,
gnc_tree_view_account_color_update,
account_view);
if (priv->filter_destroy)
view);
if (view->filter_destroy)
{
priv->filter_destroy(priv->filter_data);
priv->filter_destroy = NULL;
view->filter_destroy(view->filter_data);
view->filter_destroy = NULL;
}
priv->filter_fn = NULL;
view->filter_fn = NULL;
G_OBJECT_CLASS (gnc_tree_view_account_parent_class)->finalize (object);
LEAVE(" ");
@ -663,9 +654,8 @@ acc_color_data_func (GtkTreeViewColumn *col,
GtkCellRenderer *renderer,
GtkTreeModel *model,
GtkTreeIter *iter,
gpointer view)
gpointer data)
{
GncTreeViewAccountPrivate *priv;
gchar *acc_color = NULL, *acc_cond_color = NULL;
gchar *item;
GdkRGBA color;
@ -692,8 +682,8 @@ acc_color_data_func (GtkTreeViewColumn *col,
/* Determine whether columns other than the
* Account Color column should be colored. */
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
if (priv->show_account_color)
GncTreeViewAccount *view = data;
if (view->show_account_color)
acc_cond_color = acc_color;
column_name = g_object_get_data(G_OBJECT(col), PREF_NAME);
@ -717,14 +707,12 @@ acc_color_data_func (GtkTreeViewColumn *col,
static void
gnc_tree_view_account_color_update (gpointer gsettings, gchar *key, gpointer user_data)
{
GncTreeViewAccountPrivate *priv;
GncTreeViewAccount *view;
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(user_data));
view = user_data;
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
if (g_strcmp0 (key, GNC_PREF_ACCOUNT_COLOR) == 0)
priv->show_account_color = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, key);
view->show_account_color = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, key);
// do a refilter so the tree view background color gets updated
gnc_tree_view_account_refilter (view);
@ -755,25 +743,21 @@ gnc_tree_view_account_column_add_color (GncTreeViewAccount *view, GtkTreeViewCol
GtkTreeView *
gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
{
GncTreeView *view;
GtkTreeModel *model, *f_model, *s_model;
GtkTreePath *virtual_root_path = NULL;
const gchar *sample_type, *sample_commodity;
GncTreeViewAccountPrivate *priv;
GtkTreeViewColumn *tax_info_column, *acc_color_column, *acc_balance_limit_column;
GtkCellRenderer *renderer;
GList *col_list = NULL, *node = NULL;
ENTER(" ");
/* Create our view */
view = g_object_new (GNC_TYPE_TREE_VIEW_ACCOUNT,
"has-tooltip", true,
"name", "gnc-id-account-tree", NULL);
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(GNC_TREE_VIEW_ACCOUNT (view));
GncTreeViewAccount *view = g_object_new (GNC_TYPE_TREE_VIEW_ACCOUNT,
"has-tooltip", true,
"name", "gnc-id-account-tree", NULL);
/* Get the show_account_color value from gsettings */
priv->show_account_color = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_ACCOUNT_COLOR);
view->show_account_color = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_ACCOUNT_COLOR);
/* Create/get a pointer to the existing model for this set of books. */
model = gnc_tree_model_account_new (root);
@ -800,140 +784,140 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
sample_type = xaccAccountGetTypeStr(ACCT_TYPE_CREDIT);
sample_commodity = gnc_commodity_get_fullname(gnc_default_currency());
priv->name_column
= gnc_tree_view_add_text_column(view, _("Account Name"), "name",
view->name_column
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Account Name"), "name",
GNC_ICON_ACCOUNT, "Expenses:Entertainment",
GNC_TREE_MODEL_ACCOUNT_COL_NAME,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Type"), "type", NULL, sample_type,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Type"), "type", NULL, sample_type,
GNC_TREE_MODEL_ACCOUNT_COL_TYPE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Commodity"), "commodity", NULL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Commodity"), "commodity", NULL,
sample_commodity,
GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
priv->code_column
= gnc_tree_view_add_text_column(view, _("Account Code"), "account-code", NULL,
view->code_column
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Account Code"), "account-code", NULL,
"1-123-1234",
GNC_TREE_MODEL_ACCOUNT_COL_CODE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_code);
priv->desc_column
= gnc_tree_view_add_text_column(view, _("Description"), "description", NULL,
view->desc_column
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Description"), "description", NULL,
"Sample account description.",
GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_numeric_column(view, _("Last Num"), "lastnum", "12345",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Last Num"), "lastnum", "12345",
GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM,
GNC_TREE_VIEW_COLUMN_COLOR_NONE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_numeric_column(view, _("Present"), "present",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Present"), "present",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_PRESENT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_present_value);
priv->present_report_column
= gnc_tree_view_add_numeric_column(view, _("Present (Report)"), "present_report",
view->present_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Present (Report)"), "present_report",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_present_value);
gnc_tree_view_add_numeric_column(view, _("Balance"), "balance",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Balance"), "balance",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_BALANCE,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_balance_value);
priv->balance_report_column
= gnc_tree_view_add_numeric_column(view, _("Balance (Report)"), "balance_report",
view->balance_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Balance (Report)"), "balance_report",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_balance_value);
gnc_tree_view_add_numeric_column(view, _("Balance (Period)"), "balance-period",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Balance (Period)"), "balance-period",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_balance_period_value);
gnc_tree_view_add_numeric_column(view, _("Cleared"), "cleared",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Cleared"), "cleared",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_CLEARED,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_cleared_value);
priv->cleared_report_column
= gnc_tree_view_add_numeric_column(view, _("Cleared (Report)"), "cleared_report",
view->cleared_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Cleared (Report)"), "cleared_report",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_cleared_value);
gnc_tree_view_add_numeric_column(view, _("Reconciled"), "reconciled",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Reconciled"), "reconciled",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_reconciled_value);
priv->reconciled_report_column
= gnc_tree_view_add_numeric_column(view, _("Reconciled (Report)"), "reconciled_report",
view->reconciled_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Reconciled (Report)"), "reconciled_report",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_reconciled_value);
gnc_tree_view_add_text_column(view, _("Last Reconcile Date"), "last-recon-date", NULL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Last Reconcile Date"), "last-recon-date", NULL,
"Last Reconcile Date",
GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_last_reconcile_date);
gnc_tree_view_add_numeric_column(view, _("Future Minimum"), "future_min",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Future Minimum"), "future_min",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_future_min_value);
priv->future_min_report_column
= gnc_tree_view_add_numeric_column(view, _("Future Minimum (Report)"), "future_min_report",
view->future_min_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Future Minimum (Report)"), "future_min_report",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_future_min_value);
gnc_tree_view_add_numeric_column(view, _("Total"), "total",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Total"), "total",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_TOTAL,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_total_value);
priv->total_report_column
= gnc_tree_view_add_numeric_column(view, _("Total (Report)"), "total_report",
view->total_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Total (Report)"), "total_report",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_total_value);
gnc_tree_view_add_numeric_column(view, _("Total (Period)"), "total-period",
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Total (Period)"), "total-period",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD,
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD,
@ -942,7 +926,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
/* Translators: The C is the column title and stands for Color, this should be one character */
acc_color_column
= gnc_tree_view_add_text_column(view, C_("Column header for 'Color'", "C"), "account-color", NULL,
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), C_("Column header for 'Color'", "C"), "account-color", NULL,
"xx",
GNC_TREE_VIEW_COLUMN_DATA_NONE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
@ -956,7 +940,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
gtk_widget_set_tooltip_text (gtk_tree_view_column_get_button (acc_color_column), _("Account Color"));
acc_balance_limit_column
= gnc_tree_view_add_pix_column (view,
= gnc_tree_view_add_pix_column (GNC_TREE_VIEW(view),
C_("Column header for 'Balance Limit'", "L"),
"account-balance-limit",
"xx",
@ -971,15 +955,15 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
/* Also add the full title to the column header as a tooltip */
gtk_widget_set_tooltip_text (gtk_tree_view_column_get_button (acc_balance_limit_column), _("Balance Limit"));
priv->notes_column
= gnc_tree_view_add_text_view_column(view, _("Notes"), "notes", NULL,
view->notes_column
= gnc_tree_view_add_text_view_column(GNC_TREE_VIEW(view), _("Notes"), "notes", NULL,
"Sample account notes.",
GNC_TREE_MODEL_ACCOUNT_COL_NOTES,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
tax_info_column
= gnc_tree_view_add_text_column(view, _("Tax Info"), "tax-info", NULL,
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Tax Info"), "tax-info", NULL,
"Sample tax info.",
GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
@ -992,7 +976,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
GTK_TREE_VIEW(view),
NULL);
gnc_tree_view_add_toggle_column (view, _("Hidden"),
gnc_tree_view_add_toggle_column (GNC_TREE_VIEW(view), _("Hidden"),
C_("Column header for 'Hidden'", "H"),
"hidden",
GNC_TREE_MODEL_ACCOUNT_COL_HIDDEN,
@ -1000,7 +984,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
sort_by_hidden,
gnc_tree_view_account_hidden_toggled);
gnc_tree_view_add_toggle_column(view, _("Placeholder"),
gnc_tree_view_add_toggle_column(GNC_TREE_VIEW(view), _("Placeholder"),
C_("Column header for 'Placeholder'", "P"),
"placeholder",
GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
@ -1008,7 +992,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
sort_by_placeholder,
gnc_tree_view_account_placeholder_toggled);
gnc_tree_view_add_toggle_column(view, _("Opening Balance"),
gnc_tree_view_add_toggle_column(GNC_TREE_VIEW(view), _("Opening Balance"),
C_("Column header for 'Opening Balance'", "O"),
"opening-balance",
GNC_TREE_MODEL_ACCOUNT_COL_OPENING_BALANCE,
@ -1033,7 +1017,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
gtva_update_column_names(view);
/* By default only the first column is visible. */
gnc_tree_view_configure_columns(view);
gnc_tree_view_configure_columns(GNC_TREE_VIEW(view));
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
gnc_tree_view_account_filter_helper,
view,
@ -1206,17 +1190,13 @@ gnc_tree_view_account_clear_model_cache (GncTreeViewAccount *view)
* specified tree.
*/
void
gnc_tree_view_account_get_view_info (GncTreeViewAccount *account_view,
gnc_tree_view_account_get_view_info (GncTreeViewAccount *view,
AccountViewInfo *avi)
{
GncTreeViewAccountPrivate *priv;
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
g_return_if_fail(avi != NULL);
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
*avi = priv->avi;
*avi = view->avi;
}
/*
@ -1224,21 +1204,18 @@ gnc_tree_view_account_get_view_info (GncTreeViewAccount *account_view,
* match the callers request.
*/
void
gnc_tree_view_account_set_view_info (GncTreeViewAccount *account_view,
gnc_tree_view_account_set_view_info (GncTreeViewAccount *view,
AccountViewInfo *avi)
{
GncTreeViewAccountPrivate *priv;
ENTER("%p", account_view);
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
ENTER("%p", view);
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
g_return_if_fail(avi != NULL);
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
priv->avi = *avi;
view->avi = *avi;
gnc_tree_view_account_set_filter(
account_view, gnc_tree_view_account_filter_by_view_info,
&priv->avi, NULL);
view, gnc_tree_view_account_filter_by_view_info,
&view->avi, NULL);
LEAVE(" ");
}
@ -1250,7 +1227,6 @@ gnc_tree_view_account_filter_helper (GtkTreeModel *model,
{
Account *account;
GncTreeViewAccount *view = data;
GncTreeViewAccountPrivate *priv;
g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
g_return_val_if_fail (iter != NULL, FALSE);
@ -1258,9 +1234,8 @@ gnc_tree_view_account_filter_helper (GtkTreeModel *model,
account = gnc_tree_model_account_get_account (
GNC_TREE_MODEL_ACCOUNT(model), iter);
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
if (priv->filter_fn)
return priv->filter_fn(account, priv->filter_data);
if (view->filter_fn)
return view->filter_fn(account, view->filter_data);
else return TRUE;
}
@ -1277,21 +1252,18 @@ gnc_tree_view_account_set_filter (GncTreeViewAccount *view,
gpointer data,
GSourceFunc destroy)
{
GncTreeViewAccountPrivate *priv;
ENTER("view %p, filter func %p, data %p, destroy %p",
view, func, data, destroy);
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
if (priv->filter_destroy)
if (view->filter_destroy)
{
priv->filter_destroy(priv->filter_data);
view->filter_destroy(view->filter_data);
}
priv->filter_destroy = destroy;
priv->filter_data = data;
priv->filter_fn = func;
view->filter_destroy = destroy;
view->filter_data = data;
view->filter_fn = func;
gnc_tree_view_account_refilter(view);
LEAVE(" ");
@ -1528,7 +1500,7 @@ gnc_tree_view_account_set_selected_account (GncTreeViewAccount *view,
typedef struct
{
GList* return_list;
GncTreeViewAccountPrivate* priv;
GncTreeViewAccount* view;
} GncTreeViewSelectionInfo;
/*
@ -1556,7 +1528,7 @@ get_selected_accounts_helper (GtkTreeModel *s_model,
account = iter.user_data;
/* Only selected if it passes the filter */
if (gtvsi->priv->filter_fn == NULL || gtvsi->priv->filter_fn(account, gtvsi->priv->filter_data))
if (gtvsi->view->filter_fn == NULL || gtvsi->view->filter_fn(account, gtvsi->view->filter_data))
{
gtvsi->return_list = g_list_prepend (gtvsi->return_list, account);
}
@ -1578,7 +1550,6 @@ gnc_tree_view_account_get_selected_accounts (GncTreeViewAccount *view)
g_return_val_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view), NULL);
info.return_list = NULL;
info.priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
gtk_tree_selection_selected_foreach(selection, get_selected_accounts_helper, &info);
info.return_list = g_list_reverse (info.return_list);
@ -1807,34 +1778,30 @@ gtva_update_column_name (GtkTreeViewColumn *column,
static void
gtva_update_column_names (GncTreeView *view)
gtva_update_column_names (GncTreeViewAccount *view)
{
GncTreeViewAccountPrivate *priv;
const gchar *mnemonic;
const gchar *mnemonic = gnc_commodity_get_mnemonic(gnc_default_report_currency());
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
mnemonic = gnc_commodity_get_mnemonic(gnc_default_report_currency());
gtva_update_column_name(priv->present_report_column,
gtva_update_column_name(view->present_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Present (%s)"), mnemonic);
gtva_update_column_name(priv->balance_report_column,
gtva_update_column_name(view->balance_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Balance (%s)"), mnemonic);
gtva_update_column_name(priv->cleared_report_column,
gtva_update_column_name(view->cleared_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Cleared (%s)"), mnemonic);
gtva_update_column_name(priv->reconciled_report_column,
gtva_update_column_name(view->reconciled_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Reconciled (%s)"), mnemonic);
gtva_update_column_name(priv->future_min_report_column,
gtva_update_column_name(view->future_min_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Future Minimum (%s)"), mnemonic);
gtva_update_column_name(priv->total_report_column,
gtva_update_column_name(view->total_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Total (%s)"), mnemonic);
gnc_tree_view_set_show_column_menu(view, FALSE);
gnc_tree_view_set_show_column_menu(view, TRUE);
gnc_tree_view_set_show_column_menu(GNC_TREE_VIEW(view), FALSE);
gnc_tree_view_set_show_column_menu(GNC_TREE_VIEW(view), TRUE);
}
@ -2788,36 +2755,28 @@ void
gnc_tree_view_account_set_name_edited(GncTreeViewAccount *view,
GncTreeViewAccountColumnTextEdited edited_cb)
{
GncTreeViewAccountPrivate *priv;
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
gtva_set_column_editor(view, priv->name_column, edited_cb);
gtva_set_column_editor(view, view->name_column, edited_cb);
}
void
gnc_tree_view_account_set_code_edited(GncTreeViewAccount *view,
GncTreeViewAccountColumnTextEdited edited_cb)
{
GncTreeViewAccountPrivate *priv;
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
gtva_set_column_editor(view, priv->code_column, edited_cb);
gtva_set_column_editor(view, view->code_column, edited_cb);
}
void
gnc_tree_view_account_set_description_edited(GncTreeViewAccount *view,
GncTreeViewAccountColumnTextEdited edited_cb)
{
GncTreeViewAccountPrivate *priv;
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
gtva_set_column_editor(view, priv->desc_column, edited_cb);
gtva_set_column_editor(view, view->desc_column, edited_cb);
}
void
gnc_tree_view_account_set_notes_edited(GncTreeViewAccount *view,
GncTreeViewAccountColumnTextEdited edited_cb)
{
GncTreeViewAccountPrivate *priv;
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
gtva_set_column_editor(view, priv->notes_column, edited_cb);
gtva_set_column_editor(view, view->notes_column, edited_cb);
}
static

View File

@ -44,11 +44,8 @@ G_BEGIN_DECLS
/* type macros */
#define GNC_TYPE_TREE_VIEW_ACCOUNT (gnc_tree_view_account_get_type ())
#define GNC_TREE_VIEW_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW_ACCOUNT, GncTreeViewAccount))
#define GNC_TREE_VIEW_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW_ACCOUNT, GncTreeViewAccountClass))
#define GNC_IS_TREE_VIEW_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW_ACCOUNT))
#define GNC_IS_TREE_VIEW_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW_ACCOUNT))
#define GNC_TREE_VIEW_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_ACCOUNT, GncTreeViewAccountClass))
G_DECLARE_FINAL_TYPE (GncTreeViewAccount, gnc_tree_view_account, GNC, TREE_VIEW_ACCOUNT, GncTreeView)
#define GNC_TREE_VIEW_ACCOUNT_NAME "GncTreeViewAccount"
/* typedefs & structures */
@ -62,17 +59,6 @@ struct AccountViewInfo_s
};
typedef struct
{
GncTreeView gnc_tree_view;
int stamp;
} GncTreeViewAccount;
typedef struct
{
GncTreeViewClass gnc_tree_view;
} GncTreeViewAccountClass;
typedef struct
{
GtkWidget *dialog;

View File

@ -50,20 +50,17 @@ static QofLogModule log_module = GNC_MOD_GUI;
static void gnc_tree_view_commodity_finalize (GObject *object);
static void gnc_tree_view_commodity_destroy (GtkWidget *widget);
typedef struct GncTreeViewCommodityPrivate
struct _GncTreeViewCommodity
{
gpointer dummy;
} GncTreeViewCommodityPrivate;
#define GNC_TREE_VIEW_COMMODITY_GET_PRIVATE(o) \
((GncTreeViewCommodityPrivate*)gnc_tree_view_commodity_get_instance_private(GncTreeViewCommodity*)o))
GncTreeView gnc_tree_view;
int stamp;
};
/************************************************************/
/* g_object required functions */
/************************************************************/
G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewCommodity, gnc_tree_view_commodity, GNC_TYPE_TREE_VIEW)
G_DEFINE_TYPE(GncTreeViewCommodity, gnc_tree_view_commodity, GNC_TYPE_TREE_VIEW)
static void
gnc_tree_view_commodity_class_init (GncTreeViewCommodityClass *klass)

View File

@ -44,29 +44,7 @@ G_BEGIN_DECLS
/* type macros */
#define GNC_TYPE_TREE_VIEW_COMMODITY (gnc_tree_view_commodity_get_type ())
#define GNC_TREE_VIEW_COMMODITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW_COMMODITY, GncTreeViewCommodity))
#define GNC_TREE_VIEW_COMMODITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW_COMMODITY, GncTreeViewCommodityClass))
#define GNC_IS_TREE_VIEW_COMMODITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW_COMMODITY))
#define GNC_IS_TREE_VIEW_COMMODITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW_COMMODITY))
#define GNC_TREE_VIEW_COMMODITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_COMMODITY, GncTreeViewCommodityClass))
/* typedefs & structures */
typedef struct
{
GncTreeView gnc_tree_view;
int stamp;
} GncTreeViewCommodity;
typedef struct
{
GncTreeViewClass gnc_tree_view;
} GncTreeViewCommodityClass;
/* Get the GType for an GncTreeViewCommodity object. */
GType gnc_tree_view_commodity_get_type (void);
G_DECLARE_FINAL_TYPE (GncTreeViewCommodity, gnc_tree_view_commodity, GNC, TREE_VIEW_COMMODITY, GncTreeView)
/** @name Commodity Tree View Constructors
@{ */

View File

@ -56,7 +56,7 @@ static QofLogModule log_module = GNC_MOD_GUI;
/** Declarations *********************************************************/
static void gnc_tree_view_owner_finalize (GObject *object);
static void gtvo_update_column_names (GncTreeView *view);
static void gtvo_update_column_names (GncTreeViewOwner *view);
static void gtvo_currency_changed_cb (void);
static gboolean gnc_tree_view_owner_filter_helper (GtkTreeModel *model,
@ -70,8 +70,11 @@ static void gtvo_setup_column_renderer_edited_cb(GncTreeViewOwner *owner_view,
GncTreeViewOwnerColumnTextEdited col_edited_cb);
#endif /* Not Used */
typedef struct GncTreeViewOwnerPrivate
struct _GncTreeViewOwner
{
GncTreeView gnc_tree_view;
int stamp;
OwnerViewInfo ovi;
gnc_tree_view_owner_filter_func filter_fn;
@ -82,17 +85,14 @@ typedef struct GncTreeViewOwnerPrivate
GtkTreeViewColumn *id_column;
GtkTreeViewColumn *balance_report_column;
GtkTreeViewColumn *notes_column;
} GncTreeViewOwnerPrivate;
#define GNC_TREE_VIEW_OWNER_GET_PRIVATE(o) \
((GncTreeViewOwnerPrivate*)gnc_tree_view_owner_get_instance_private((GncTreeViewOwner*)o))
};
/************************************************************/
/* g_object required functions */
/************************************************************/
G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewOwner, gnc_tree_view_owner, GNC_TYPE_TREE_VIEW)
G_DEFINE_TYPE(GncTreeViewOwner, gnc_tree_view_owner, GNC_TYPE_TREE_VIEW)
static void
gnc_tree_view_owner_class_init (GncTreeViewOwnerClass *klass)
@ -123,31 +123,24 @@ gnc_init_owner_view_info(OwnerViewInfo *ovi)
static void
gnc_tree_view_owner_init (GncTreeViewOwner *view)
{
GncTreeViewOwnerPrivate *priv;
priv = GNC_TREE_VIEW_OWNER_GET_PRIVATE(view);
gnc_init_owner_view_info(&priv->ovi);
gnc_init_owner_view_info(&view->ovi);
}
static void
gnc_tree_view_owner_finalize (GObject *object)
{
GncTreeViewOwner *owner_view;
GncTreeViewOwnerPrivate *priv;
ENTER("view %p", object);
g_return_if_fail (object != NULL);
g_return_if_fail (GNC_IS_TREE_VIEW_OWNER (object));
owner_view = GNC_TREE_VIEW_OWNER (object);
GncTreeViewOwner *view = GNC_TREE_VIEW_OWNER (object);
priv = GNC_TREE_VIEW_OWNER_GET_PRIVATE(owner_view);
if (priv->filter_destroy)
if (view->filter_destroy)
{
priv->filter_destroy(priv->filter_data);
priv->filter_destroy = NULL;
view->filter_destroy(view->filter_data);
view->filter_destroy = NULL;
}
priv->filter_fn = NULL;
view->filter_fn = NULL;
G_OBJECT_CLASS (gnc_tree_view_owner_parent_class)->finalize (object);
LEAVE(" ");
@ -325,11 +318,9 @@ sort_by_balance_value (GtkTreeModel *f_model,
GtkTreeView *
gnc_tree_view_owner_new (GncOwnerType owner_type)
{
GncTreeView *view;
GtkTreeModel *model, *f_model, *s_model;
const gchar *sample_type, *sample_currency;
const gchar *owner_name = NULL, * owner_id = NULL;
GncTreeViewOwnerPrivate *priv;
ENTER(" ");
@ -359,10 +350,8 @@ gnc_tree_view_owner_new (GncOwnerType owner_type)
break;
}
/* Create our view */
view = g_object_new (GNC_TYPE_TREE_VIEW_OWNER,
"name", "gnc-id-owner-tree", NULL);
priv = GNC_TREE_VIEW_OWNER_GET_PRIVATE(GNC_TREE_VIEW_OWNER (view));
GncTreeViewOwner *view = g_object_new (GNC_TYPE_TREE_VIEW_OWNER,
"name", "gnc-id-owner-tree", NULL);
/* Create/get a pointer to the existing model for this set of books. */
model = gnc_tree_model_owner_new (owner_type);
@ -385,90 +374,90 @@ gnc_tree_view_owner_new (GncOwnerType owner_type)
sample_type = gncOwnerTypeToQofIdType (GNC_OWNER_CUSTOMER);
sample_currency = gnc_commodity_get_fullname(gnc_default_currency());
priv->name_column
= gnc_tree_view_add_text_column(view, owner_name, GNC_OWNER_TREE_NAME_COL,
view->name_column
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), owner_name, GNC_OWNER_TREE_NAME_COL,
NULL, "GnuCash Inc.",
GNC_TREE_MODEL_OWNER_COL_NAME,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Type"), GNC_OWNER_TREE_TYPE_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Type"), GNC_OWNER_TREE_TYPE_COL,
NULL, sample_type,
GNC_TREE_MODEL_OWNER_COL_TYPE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
priv->id_column
= gnc_tree_view_add_text_column(view, owner_id, GNC_OWNER_TREE_ID_COL,
view->id_column
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), owner_id, GNC_OWNER_TREE_ID_COL,
NULL, "1-123-1234",
GNC_TREE_MODEL_OWNER_COL_ID,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Currency"), GNC_OWNER_TREE_CURRENCY_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Currency"), GNC_OWNER_TREE_CURRENCY_COL,
NULL, sample_currency,
GNC_TREE_MODEL_OWNER_COL_CURRENCY,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Address Name"), GNC_OWNER_TREE_ADDRESS_NAME_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Address Name"), GNC_OWNER_TREE_ADDRESS_NAME_COL,
NULL, "GnuCash Inc.",
GNC_TREE_MODEL_OWNER_COL_ADDRESS_NAME,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Address 1"), GNC_OWNER_TREE_ADDRESS_1_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Address 1"), GNC_OWNER_TREE_ADDRESS_1_COL,
NULL, "Free Software Foundation",
GNC_TREE_MODEL_OWNER_COL_ADDRESS_1,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Address 2"), GNC_OWNER_TREE_ADDRESS_2_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Address 2"), GNC_OWNER_TREE_ADDRESS_2_COL,
NULL, "51 Franklin Street, Fifth Floor",
GNC_TREE_MODEL_OWNER_COL_ADDRESS_2,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Address 3"), GNC_OWNER_TREE_ADDRESS_3_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Address 3"), GNC_OWNER_TREE_ADDRESS_3_COL,
NULL, "Boston, MA 02110-1301",
GNC_TREE_MODEL_OWNER_COL_ADDRESS_3,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Address 4"), GNC_OWNER_TREE_ADDRESS_4_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Address 4"), GNC_OWNER_TREE_ADDRESS_4_COL,
NULL, "USA",
GNC_TREE_MODEL_OWNER_COL_ADDRESS_4,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Phone"), GNC_OWNER_TREE_PHONE_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Phone"), GNC_OWNER_TREE_PHONE_COL,
NULL, "+1-617-542-5942",
GNC_TREE_MODEL_OWNER_COL_PHONE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("Fax"), GNC_OWNER_TREE_FAX_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Fax"), GNC_OWNER_TREE_FAX_COL,
NULL, "+1-617-542-2652",
GNC_TREE_MODEL_OWNER_COL_FAX,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_text_column(view, _("E-mail"), GNC_OWNER_TREE_EMAIL_COL,
gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("E-mail"), GNC_OWNER_TREE_EMAIL_COL,
NULL, "gnu@gnu.org",
GNC_TREE_MODEL_OWNER_COL_EMAIL,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_numeric_column(view, _("Balance"), GNC_OWNER_TREE_BALANCE_COL,
gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Balance"), GNC_OWNER_TREE_BALANCE_COL,
SAMPLE_OWNER_VALUE,
GNC_TREE_MODEL_OWNER_COL_BALANCE,
GNC_TREE_MODEL_OWNER_COL_COLOR_BALANCE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_balance_value);
priv->balance_report_column
= gnc_tree_view_add_numeric_column(view, _("Balance"), GNC_OWNER_TREE_BALANCE_REPORT_COL,
view->balance_report_column
= gnc_tree_view_add_numeric_column(GNC_TREE_VIEW(view), _("Balance"), GNC_OWNER_TREE_BALANCE_REPORT_COL,
SAMPLE_OWNER_VALUE,
GNC_TREE_MODEL_OWNER_COL_BALANCE_REPORT,
GNC_TREE_MODEL_OWNER_COL_COLOR_BALANCE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_balance_value);
priv->notes_column
= gnc_tree_view_add_text_column(view, _("Notes"), GNC_OWNER_TREE_NOTES_COL, NULL,
view->notes_column
= gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Notes"), GNC_OWNER_TREE_NOTES_COL, NULL,
"Sample owner notes.",
GNC_TREE_MODEL_OWNER_COL_NOTES,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_toggle_column (view, _("Active"),
gnc_tree_view_add_toggle_column (GNC_TREE_VIEW(view), _("Active"),
C_("Column letter for 'Active'", "A"),
GNC_OWNER_TREE_ACTIVE_COL,
GNC_TREE_MODEL_OWNER_COL_ACTIVE,
@ -480,7 +469,7 @@ gnc_tree_view_owner_new (GncOwnerType owner_type)
gtvo_update_column_names(view);
/* By default only the first column is visible. */
gnc_tree_view_configure_columns(view);
gnc_tree_view_configure_columns(GNC_TREE_VIEW(view));
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
gnc_tree_view_owner_filter_helper,
view,
@ -595,7 +584,6 @@ gnc_tree_view_owner_filter_helper (GtkTreeModel *model,
{
GncOwner *owner;
GncTreeViewOwner *view = data;
GncTreeViewOwnerPrivate *priv;
g_return_val_if_fail (GNC_IS_TREE_MODEL_OWNER (model), FALSE);
g_return_val_if_fail (iter != NULL, FALSE);
@ -603,9 +591,8 @@ gnc_tree_view_owner_filter_helper (GtkTreeModel *model,
owner = gnc_tree_model_owner_get_owner (
GNC_TREE_MODEL_OWNER(model), iter);
priv = GNC_TREE_VIEW_OWNER_GET_PRIVATE(view);
if (priv->filter_fn)
return priv->filter_fn(owner, priv->filter_data);
if (view->filter_fn)
return view->filter_fn(owner, view->filter_data);
else return TRUE;
}
@ -622,21 +609,18 @@ gnc_tree_view_owner_set_filter (GncTreeViewOwner *view,
gpointer data,
GSourceFunc destroy)
{
GncTreeViewOwnerPrivate *priv;
ENTER("view %p, filter func %p, data %p, destroy %p",
view, func, data, destroy);
g_return_if_fail(GNC_IS_TREE_VIEW_OWNER(view));
priv = GNC_TREE_VIEW_OWNER_GET_PRIVATE(view);
if (priv->filter_destroy)
if (view->filter_destroy)
{
priv->filter_destroy(priv->filter_data);
view->filter_destroy(view->filter_data);
}
priv->filter_destroy = destroy;
priv->filter_data = data;
priv->filter_fn = func;
view->filter_destroy = destroy;
view->filter_data = data;
view->filter_fn = func;
gnc_tree_view_owner_refilter(view);
LEAVE(" ");
@ -848,7 +832,7 @@ gnc_tree_view_owner_set_selected_owner (GncTreeViewOwner *view,
typedef struct
{
GList* return_list;
GncTreeViewOwnerPrivate* priv;
GncTreeViewOwner* view;
} GncTreeViewSelectionInfo;
#if 0 /* Not Used */
@ -877,7 +861,7 @@ get_selected_owners_helper (GtkTreeModel *s_model,
owner = iter.user_data;
/* Only selected if it passes the filter */
if (gtvsi->priv->filter_fn == NULL || gtvsi->priv->filter_fn(owner, gtvsi->priv->filter_data))
if (gtvsi->view->filter_fn == NULL || gtvsi->view->filter_fn(owner, gtvsi->view->filter_data))
{
gtvsi->return_list = g_list_append(gtvsi->return_list, owner);
}
@ -904,19 +888,15 @@ gtvo_update_column_name (GtkTreeViewColumn *column,
static void
gtvo_update_column_names (GncTreeView *view)
gtvo_update_column_names (GncTreeViewOwner *view)
{
GncTreeViewOwnerPrivate *priv;
const gchar *mnemonic;
const gchar *mnemonic = gnc_commodity_get_mnemonic(gnc_default_report_currency());
priv = GNC_TREE_VIEW_OWNER_GET_PRIVATE(view);
mnemonic = gnc_commodity_get_mnemonic(gnc_default_report_currency());
gtvo_update_column_name(priv->balance_report_column,
gtvo_update_column_name(view->balance_report_column,
/* Translators: %s is a currency mnemonic.*/
_("Balance (%s)"), mnemonic);
gnc_tree_view_set_show_column_menu(view, FALSE);
gnc_tree_view_set_show_column_menu(view, TRUE);
gnc_tree_view_set_show_column_menu(GNC_TREE_VIEW(view), FALSE);
gnc_tree_view_set_show_column_menu(GNC_TREE_VIEW(view), TRUE);
}

View File

@ -45,11 +45,8 @@ G_BEGIN_DECLS
/* type macros */
#define GNC_TYPE_TREE_VIEW_OWNER (gnc_tree_view_owner_get_type ())
#define GNC_TREE_VIEW_OWNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW_OWNER, GncTreeViewOwner))
#define GNC_TREE_VIEW_OWNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW_OWNER, GncTreeViewOwnerClass))
#define GNC_IS_TREE_VIEW_OWNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW_OWNER))
#define GNC_IS_TREE_VIEW_OWNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW_OWNER))
#define GNC_TREE_VIEW_OWNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_OWNER, GncTreeViewOwnerClass))
G_DECLARE_FINAL_TYPE (GncTreeViewOwner, gnc_tree_view_owner, GNC, TREE_VIEW_OWNER, GncTreeView)
#define GNC_TREE_VIEW_OWNER_NAME "GncTreeViewOwner"
/* typedefs & structures */
@ -62,17 +59,6 @@ struct OwnerViewInfo_s
};
typedef struct
{
GncTreeView gnc_tree_view;
int stamp;
} GncTreeViewOwner;
typedef struct
{
GncTreeViewClass gnc_tree_view;
} GncTreeViewOwnerClass;
typedef struct
{
GtkWidget *dialog;
@ -127,10 +113,6 @@ void gnc_tree_view_owner_restore(GncTreeViewOwner *view,
GncOwnerType owner_type);
/* Get the GType for an GncTreeViewOwner object. */
GType gnc_tree_view_owner_get_type (void);
/** @name Owner Tree View Constructor
@{ */

View File

@ -50,20 +50,18 @@ static QofLogModule log_module = GNC_MOD_GUI;
static void gnc_tree_view_price_finalize (GObject *object);
static void gnc_tree_view_price_destroy (GtkWidget *widget);
typedef struct GncTreeViewPricePrivate
struct _GncTreeViewPrice
{
gpointer dummy;
} GncTreeViewPricePrivate;
#define GNC_TREE_VIEW_PRICE_GET_PRIVATE(o) \
((GncTreeViewPricePrivate*)gnc_tree_view_price_get_instance_private((GncTreeViewPrice*)o))
GncTreeView gnc_tree_view;
int stamp;
};
/************************************************************/
/* g_object required functions */
/************************************************************/
G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewPrice, gnc_tree_view_price, GNC_TYPE_TREE_VIEW)
G_DEFINE_TYPE(GncTreeViewPrice, gnc_tree_view_price, GNC_TYPE_TREE_VIEW)
static void
gnc_tree_view_price_class_init (GncTreeViewPriceClass *klass)

View File

@ -44,29 +44,7 @@ G_BEGIN_DECLS
/* type macros */
#define GNC_TYPE_TREE_VIEW_PRICE (gnc_tree_view_price_get_type ())
#define GNC_TREE_VIEW_PRICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW_PRICE, GncTreeViewPrice))
#define GNC_TREE_VIEW_PRICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW_PRICE, GncTreeViewPriceClass))
#define GNC_IS_TREE_VIEW_PRICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW_PRICE))
#define GNC_IS_TREE_VIEW_PRICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW_PRICE))
#define GNC_TREE_VIEW_PRICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_PRICE, GncTreeViewPriceClass))
/* typedefs & structures */
typedef struct
{
GncTreeView gnc_tree_view;
int stamp;
} GncTreeViewPrice;
typedef struct
{
GncTreeViewClass gnc_tree_view;
} GncTreeViewPriceClass;
/* Standard g_object type */
GType gnc_tree_view_price_get_type (void);
G_DECLARE_FINAL_TYPE (GncTreeViewPrice, gnc_tree_view_price, GNC, TREE_VIEW_PRICE, GncTreeView)
/** @name Price Tree View Constructors
@{ */

View File

@ -50,16 +50,15 @@ static QofLogModule log_module = LOG_MOD;
static void gnc_tree_view_sx_list_dispose(GObject *object);
static void gnc_tree_view_sx_list_finalize(GObject *object);
typedef struct GncTreeViewSxListPrivate
struct _GncTreeViewSxList
{
GncTreeView gnc_tree_view;
GtkTreeModel *tree_model;
gboolean disposed;
} GncTreeViewSxListPrivate;
};
#define GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(o) \
((GncTreeViewSxListPrivate*)gnc_tree_view_sx_list_get_instance_private((GncTreeViewSxList*)o))
G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewSxList, gnc_tree_view_sx_list, GNC_TYPE_TREE_VIEW)
G_DEFINE_TYPE(GncTreeViewSxList, gnc_tree_view_sx_list, GNC_TYPE_TREE_VIEW)
static void
gnc_tree_view_sx_list_class_init(GncTreeViewSxListClass *klass)
@ -83,20 +82,18 @@ static void
gnc_tree_view_sx_list_dispose(GObject *object)
{
GncTreeViewSxList *view;
GncTreeViewSxListPrivate *priv;
gnc_leave_return_if_fail (object != NULL);
gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_SX_LIST (object));
view = GNC_TREE_VIEW_SX_LIST (object);
priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
if (priv->disposed)
if (view->disposed)
return;
priv->disposed = TRUE;
view->disposed = TRUE;
g_object_unref(G_OBJECT(priv->tree_model));
priv->tree_model = NULL;
g_object_unref(G_OBJECT(view->tree_model));
view->tree_model = NULL;
G_OBJECT_CLASS (gnc_tree_view_sx_list_parent_class)->dispose (object);
}
@ -113,46 +110,40 @@ gnc_tree_view_sx_list_finalize(GObject *object)
GtkTreeView*
gnc_tree_view_sx_list_new(GncSxInstanceModel *sx_instances)
{
GncTreeView *view;
GtkTreeViewColumn *col;
GncTreeViewSxListPrivate *priv;
view = (GncTreeView*)g_object_new(GNC_TYPE_TREE_VIEW_SX_LIST, NULL);
GncTreeViewSxList *view = (GncTreeViewSxList*)g_object_new(GNC_TYPE_TREE_VIEW_SX_LIST, NULL);
g_object_set(view, "name", "gnc-id-sx-list-tree", NULL);
priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
view->tree_model = GTK_TREE_MODEL(gnc_sx_list_tree_model_adapter_new(sx_instances));
gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL(view->tree_model));
priv->tree_model = GTK_TREE_MODEL(gnc_sx_list_tree_model_adapter_new(sx_instances));
gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL(priv->tree_model));
col = gnc_tree_view_add_text_column(view, _("Name"), "name", NULL,
GtkTreeViewColumn *col = gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Name"), "name", NULL,
"Semi-Monthly Paycheck",
SXLTMA_COL_NAME, -1, NULL);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_toggle_column(view, _("Enabled"),
col = gnc_tree_view_add_toggle_column(GNC_TREE_VIEW(view), _("Enabled"),
C_("Single-character short column-title form of 'Enabled'", "E"),
"enabled", SXLTMA_COL_ENABLED,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
NULL, NULL);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column(view, _("Frequency"), "frequency", NULL,
col = gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Frequency"), "frequency", NULL,
"Weekly (x3): -------",
SXLTMA_COL_FREQUENCY, -1, NULL);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column(view, _("Last Occur"), "last-occur", NULL,
col = gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Last Occur"), "last-occur", NULL,
"2007-01-02",
SXLTMA_COL_LAST_OCCUR, -1, NULL);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column(view, _("Next Occur"), "next-occur", NULL,
col = gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), _("Next Occur"), "next-occur", NULL,
"2007-01-02",
SXLTMA_COL_NEXT_OCCUR, -1, NULL);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
gnc_tree_view_configure_columns(view);
gnc_tree_view_configure_columns(GNC_TREE_VIEW(view));
gtk_widget_show(GTK_WIDGET(view));
return GTK_TREE_VIEW(view);
@ -162,8 +153,7 @@ SchedXaction*
gnc_tree_view_sx_list_get_sx_from_path(GncTreeViewSxList *view, GtkTreePath *path)
{
GtkTreeIter iter;
GncTreeViewSxListPrivate *priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->tree_model), &iter, path);
gtk_tree_model_get_iter(GTK_TREE_MODEL(view->tree_model), &iter, path);
return gnc_sx_list_tree_model_adapter_get_sx_instances(
GNC_SX_LIST_TREE_MODEL_ADAPTER(priv->tree_model), &iter)->sx;
GNC_SX_LIST_TREE_MODEL_ADAPTER(view->tree_model), &iter)->sx;
}

View File

@ -38,23 +38,7 @@
G_BEGIN_DECLS
#define GNC_TYPE_TREE_VIEW_SX_LIST (gnc_tree_view_sx_list_get_type ())
#define GNC_TREE_VIEW_SX_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxList))
#define GNC_TREE_VIEW_SX_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxListClass))
#define GNC_IS_TREE_VIEW_SX_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW_SX_LIST))
#define GNC_IS_TREE_VIEW_SX_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW_SX_LIST))
#define GNC_TREE_VIEW_SX_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxListClass))
typedef struct
{
GncTreeView gnc_tree_view;
} GncTreeViewSxList;
typedef struct
{
GncTreeViewClass gnc_tree_view;
} GncTreeViewSxListClass;
GType gnc_tree_view_sx_list_get_type(void);
G_DECLARE_FINAL_TYPE (GncTreeViewSxList, gnc_tree_view_sx_list, GNC, TREE_VIEW_SX_LIST, GncTreeView)
GtkTreeView* gnc_tree_view_sx_list_new(GncSxInstanceModel *sx_instances);

View File

@ -38,28 +38,16 @@ G_BEGIN_DECLS
/* type macros */
#define GNC_TYPE_TREE_VIEW (gnc_tree_view_get_type ())
#define GNC_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW, GncTreeView))
#define GNC_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW, GncTreeViewClass))
#define GNC_IS_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW))
#define GNC_IS_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW))
#define GNC_TREE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW, GncTreeViewClass))
G_DECLARE_DERIVABLE_TYPE (GncTreeView, gnc_tree_view, GNC, TREE_VIEW, GtkTreeView)
#define GNC_TREE_VIEW_NAME "GncTreeView"
/* typedefs & structures */
typedef struct
{
GtkTreeView gtk_tree_view;
} GncTreeView;
typedef struct
struct _GncTreeViewClass
{
GtkTreeViewClass gtk_tree_view;
} GncTreeViewClass;
/* Standard g_object type */
GType gnc_tree_view_get_type (void);
};
/* The columns managed by gnc-tree-view can use the following column
attributes. Set them with: