Change the method for specifying and recording the default visibility of

tree-view columns.  There is now a per-column setting, "DEFAULT_VISIBLE",
   similar to "ALWAYS_VISIBLE", that controls the visibility of a column in 
   the absence of, or prior to, gconf management.

   It is no longer necessary for the tree view to store a list of column names
   for default visible columns.

   To faciliate the adaptation of pre-existing tree-views, the 
   view_column_find_by_name() has been publicized as 
   gnc_tree_view_find_column_by_name().

   All callers of gnc_tree_view_configure_columns() have been converted to use
   the DEFAULT_VISIBLE column property.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14037 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/register-rewrite
Chris Shoemaker 20 years ago
parent 3dd0f96c60
commit 4c941fbefb

@ -644,8 +644,7 @@ gnc_tree_view_account_new_with_group (AccountGroup *group, gboolean show_root)
GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
gnc_tree_view_add_toggle_column
(view, _("Placeholder"),
gnc_tree_view_add_toggle_column(view, _("Placeholder"),
/* Translators: This string has a context prefix; the translation
must only contain the part after the | character. */
Q_("Column letter for 'Placeholder'|P"),
@ -659,7 +658,7 @@ gnc_tree_view_account_new_with_group (AccountGroup *group, gboolean show_root)
gtva_update_column_names(view);
/* By default only the first column is visible. */
gnc_tree_view_configure_columns(view, NULL);
gnc_tree_view_configure_columns(view);
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
gnc_tree_view_account_filter_helper,
view,

@ -359,6 +359,7 @@ gnc_tree_view_commodity_new (QofBook *book,
{
GncTreeView *view;
GtkTreeModel *model, *f_model, *s_model;
GtkTreeViewColumn *col;
gnc_commodity_table *ct;
va_list var_args;
@ -389,64 +390,69 @@ gnc_tree_view_commodity_new (QofBook *book,
/* Set default visibilities */
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(view), FALSE);
gnc_tree_view_add_text_column (view, _("Namespace"), "namespace", NULL,
"NASDAQ",
GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_commodity_string);
gnc_tree_view_add_text_column (view, _("Symbol"), "symbol", NULL,
"ACMEACME",
GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_add_text_column (view, _("Name"), "name", NULL,
"Acme Corporation, Inc.",
GNC_TREE_MODEL_COMMODITY_COL_FULLNAME,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_add_text_column (view, _("Print Name"), "printname", NULL,
"ACMEACME (Acme Corporation, Inc.)",
GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_add_text_column (view, _("Unique Name"), "uniquename", NULL,
"NASDAQ::ACMEACME",
GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_add_text_column (view, _("CUSIP code"), "cusip_code", NULL,
"QWERTYUIOP",
GNC_TREE_MODEL_COMMODITY_COL_CUSIP,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_add_numeric_column (view, _("Fraction"), "fraction", "10000",
GNC_TREE_MODEL_COMMODITY_COL_FRACTION,
GNC_TREE_VIEW_COLUMN_COLOR_NONE,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_fraction);
gnc_tree_view_add_toggle_column
(view, _("Get Quotes"),
/* Translators: This string has a context prefix; the translation
must only contain the part after the | character. */
Q_("Column letter for 'Get Quotes'|Q"),
"quote_flag",
GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_quote_flag,
NULL);
gnc_tree_view_add_text_column (view, _("Source"), "quote_source", NULL,
"yahoo",
GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_add_text_column (view, _("Timezone"), "quote_timezone", NULL,
"America/New_York",
GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
gnc_tree_view_configure_columns(view, "symbol", "name", "cusip_code",
"fraction", NULL);
col = gnc_tree_view_add_text_column (
view, _("Namespace"), "namespace", NULL, "NASDAQ",
GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_commodity_string);
col = gnc_tree_view_add_text_column (
view, _("Symbol"), "symbol", NULL, "ACMEACME",
GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column (
view, _("Name"), "name", NULL, "Acme Corporation, Inc.",
GNC_TREE_MODEL_COMMODITY_COL_FULLNAME,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column (
view, _("Print Name"), "printname", NULL,
"ACMEACME (Acme Corporation, Inc.)",
GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
col = gnc_tree_view_add_text_column (
view, _("Unique Name"), "uniquename", NULL,
"NASDAQ::ACMEACME", GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
col = gnc_tree_view_add_text_column (
view, _("CUSIP code"), "cusip_code", NULL, "QWERTYUIOP",
GNC_TREE_MODEL_COMMODITY_COL_CUSIP,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_numeric_column (
view, _("Fraction"), "fraction", "10000",
GNC_TREE_MODEL_COMMODITY_COL_FRACTION,
GNC_TREE_VIEW_COLUMN_COLOR_NONE,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_fraction);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_toggle_column(
view, _("Get Quotes"),
/* Translators: This string has a context prefix; the translation
must only contain the part after the | character. */
Q_("Column letter for 'Get Quotes'|Q"), "quote_flag",
GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_quote_flag,
NULL);
col = gnc_tree_view_add_text_column (
view, _("Source"), "quote_source", NULL, "yahoo",
GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
col = gnc_tree_view_add_text_column (
view, _("Timezone"), "quote_timezone", NULL, "America/New_York",
GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ,
GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
sort_by_commodity_string);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
gnc_tree_view_configure_columns(view);
gtk_widget_show(GTK_WIDGET(view));
LEAVE(" %p", view);

@ -399,6 +399,7 @@ gnc_tree_view_price_new (QofBook *book,
{
GncTreeView *view;
GtkTreeModel *model, *f_model, *s_model;
GtkTreeViewColumn *col;
GNCPriceDB *price_db;
va_list var_args;
const gchar *sample_text;
@ -430,39 +431,45 @@ gnc_tree_view_price_new (QofBook *book,
sample_text = gnc_commodity_get_printname(gnc_default_currency());
sample_text2 = g_strdup_printf("%s%s", sample_text, sample_text);
gnc_tree_view_add_text_column (view, _("Security"), "security", NULL,
sample_text2,
GNC_TREE_MODEL_PRICE_COL_COMMODITY,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_name);
col = gnc_tree_view_add_text_column (
view, _("Security"), "security", NULL, sample_text2,
GNC_TREE_MODEL_PRICE_COL_COMMODITY,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_name);
g_free(sample_text2);
gnc_tree_view_add_text_column (view, _("Currency"), "currency", NULL,
sample_text,
GNC_TREE_MODEL_PRICE_COL_CURRENCY,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_name);
gnc_tree_view_add_text_column (view, _("Date"), "date", NULL,
"2005-05-20",
GNC_TREE_MODEL_PRICE_COL_DATE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_date);
gnc_tree_view_add_text_column (view, _("Source"), "source", NULL,
"Finance::Quote",
GNC_TREE_MODEL_PRICE_COL_SOURCE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_source);
gnc_tree_view_add_text_column (view, _("Type"), "type", NULL, "last",
GNC_TREE_MODEL_PRICE_COL_TYPE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_type);
gnc_tree_view_add_numeric_column (view, _("Price"), "price", "100.00000",
GNC_TREE_MODEL_PRICE_COL_VALUE,
GNC_TREE_VIEW_COLUMN_COLOR_NONE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_value);
gnc_tree_view_configure_columns(view, "commodity", "currency",
"date", "source", "type", "price", NULL);
col = gnc_tree_view_add_text_column (
view, _("Currency"), "currency", NULL, sample_text,
GNC_TREE_MODEL_PRICE_COL_CURRENCY,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_name);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column (
view, _("Date"), "date", NULL, "2005-05-20",
GNC_TREE_MODEL_PRICE_COL_DATE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_date);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column (
view, _("Source"), "source", NULL, "Finance::Quote",
GNC_TREE_MODEL_PRICE_COL_SOURCE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_source);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_text_column (
view, _("Type"), "type", NULL, "last",
GNC_TREE_MODEL_PRICE_COL_TYPE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_type);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_add_numeric_column (
view, _("Price"), "price", "100.00000",
GNC_TREE_MODEL_PRICE_COL_VALUE,
GNC_TREE_VIEW_COLUMN_COLOR_NONE,
GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
sort_by_value);
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
gnc_tree_view_configure_columns(view);
gtk_widget_show(GTK_WIDGET(view));
LEAVE(" %p", view);

@ -117,7 +117,6 @@ static void gnc_tree_view_select_column_cb (GtkTreeViewColumn *column,
typedef struct GncTreeViewPrivate
{
GtkTooltips *title_tips;
GSList *default_visible;
/* Spacer column */
GtkTreeViewColumn *spacer_column;
@ -248,7 +247,6 @@ gnc_tree_view_init (GncTreeView *view, GncTreeViewClass *klass)
gnc_gobject_tracking_remember(G_OBJECT(view), G_OBJECT_CLASS(klass));
priv = GNC_TREE_VIEW_GET_PRIVATE(view);
priv->default_visible = NULL;
priv->column_menu = NULL;
priv->show_column_menu = FALSE;
priv->gconf_section = NULL;
@ -342,7 +340,6 @@ gnc_tree_view_destroy (GtkObject *object)
{
GncTreeView *view;
GncTreeViewPrivate *priv;
GSList *slist;
ENTER("view %p", object);
g_return_if_fail (object != NULL);
@ -353,12 +350,6 @@ gnc_tree_view_destroy (GtkObject *object)
gnc_tree_view_remove_gconf(view);
priv = GNC_TREE_VIEW_GET_PRIVATE(view);
if (priv->default_visible) {
slist = priv->default_visible;
priv->default_visible = NULL;
g_slist_foreach(slist, (GFunc)g_free, NULL);
g_slist_free(slist);
}
if (priv->column_menu) {
DEBUG("removing column selection menu");
@ -499,11 +490,10 @@ view_column_find_by_model_id (GncTreeView *view,
*
* @param id The "pref name" to find.
*
* @internal
*/
static GtkTreeViewColumn *
view_column_find_by_name (GncTreeView *view,
const gchar *wanted)
GtkTreeViewColumn *
gnc_tree_view_find_column_by_name (GncTreeView *view,
const gchar *wanted)
{
GtkTreeViewColumn *column, *found = NULL;
GList *column_list, *tmp;
@ -827,15 +817,15 @@ gnc_tree_view_column_visible (GncTreeView *view,
return visible;
}
visible = (g_slist_find_custom(priv->default_visible, pref_name,
(GCompareFunc)strcmp) != NULL);
visible = column ?
(g_object_get_data(G_OBJECT(column), DEFAULT_VISIBLE) != NULL) : FALSE;
LEAVE("%d, gconf but using defaults", visible);
return visible;
}
/* Check the default columns list */
visible = (g_slist_find_custom(priv->default_visible, pref_name,
(GCompareFunc)strcmp) != NULL);
visible = column ?
(g_object_get_data(G_OBJECT(column), DEFAULT_VISIBLE) != NULL) : FALSE;
LEAVE("defaults says %d", visible);
return visible;
}
@ -943,7 +933,7 @@ gnc_tree_view_set_sort_column (GncTreeView *view,
gint model_column, current;
priv = GNC_TREE_VIEW_GET_PRIVATE(view);
column = view_column_find_by_name(view, name);
column = gnc_tree_view_find_column_by_name(view, name);
if (!column)
return;
@ -992,7 +982,7 @@ gnc_tree_view_set_column_order (GncTreeView *view,
columns = NULL;
for (tmp = column_names; tmp; tmp = g_slist_next(tmp)) {
name = gconf_value_get_string(tmp->data);
column = view_column_find_by_name(view, name);
column = gnc_tree_view_find_column_by_name(view, name);
if (!column)
continue;
columns = g_slist_append(columns, column);
@ -1077,7 +1067,7 @@ gnc_tree_view_gconf_changed (GConfClient *client,
if (strcmp(type_name, GCONF_KEY_VISIBLE) == 0) {
priv->seen_gconf_visibility = TRUE;
column = view_column_find_by_name(view, column_name);
column = gnc_tree_view_find_column_by_name(view, column_name);
if (column) {
known = TRUE;
if (!g_object_get_data(G_OBJECT(column), ALWAYS_VISIBLE)) {
@ -1086,7 +1076,7 @@ gnc_tree_view_gconf_changed (GConfClient *client,
}
} else if (strcmp(type_name, GCONF_KEY_WIDTH) == 0) {
width = gconf_value_get_int(value);
column = view_column_find_by_name(view, column_name);
column = gnc_tree_view_find_column_by_name(view, column_name);
if (column) {
known = TRUE;
if (width && (width != gtk_tree_view_column_get_width(column))) {
@ -1553,7 +1543,7 @@ void gnc_tree_view_expand_columns (GncTreeView *view,
/* Now enable it on the requested columns. */
while (name != NULL) {
column = view_column_find_by_name (view, name);
column = gnc_tree_view_find_column_by_name(view, name);
if (column != NULL) {
gtk_tree_view_column_set_expand(column, TRUE);
hide_spacer = TRUE;
@ -1645,62 +1635,46 @@ gnc_tree_view_set_model(GncTreeView *view, GtkTreeModel *model)
}
}
/** Configure (by name) the default set of visible columns in an gnc
* tree view. This is the list of columns that will be shown if the
* view isn't using gconf to manage column visibility. If gconf is
* used, this list will be used the very first time the view is
* presented to the user, then gconf will be used after that. The
* available list of columns can be found in the file
* gnc-tree-view-xxx.c.
*
* Parameters are defined in gnc-tree-view.h
*/
static gint
gnc_tree_view_count_visible_columns(GncTreeView *view)
{
GList *columns, *node;
gint count = 0;
columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
for (node = columns; node; node = node->next) {
GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN(node->data);
if (gnc_tree_view_column_visible (view, col, NULL))
count++;
}
g_list_free(columns);
return count;
}
void
gnc_tree_view_configure_columns (GncTreeView *view,
gchar *first_column_name,
...)
gnc_tree_view_configure_columns (GncTreeView *view)
{
GncTreeViewPrivate *priv;
GtkTreeViewColumn *column;
GSList *slist;
GList *columns;
gchar *name;
gboolean hide_spacer;
va_list args;
g_return_if_fail(GNC_IS_TREE_VIEW(view));
ENTER(" ");
/* Delete any old list of column names */
priv = GNC_TREE_VIEW_GET_PRIVATE(view);
if (priv->default_visible) {
slist = priv->default_visible;
priv->default_visible = NULL;
g_slist_foreach(slist, (GFunc)g_free, NULL);
g_slist_free(slist);
}
/* Build a new list */
va_start (args, first_column_name);
name = first_column_name;
while (name != NULL) {
priv->default_visible =
g_slist_append(priv->default_visible, g_strdup(name));
name = va_arg(args, gchar*);
}
va_end (args);
/* Update the view and gconf */
columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
g_list_foreach(columns, (GFunc)gnc_tree_view_update_visibility, view);
g_list_free(columns);
priv = GNC_TREE_VIEW_GET_PRIVATE(view);
if (priv->gconf_section)
priv->seen_gconf_visibility = TRUE;
/* If only the first column is visible, hide the spacer and make that
* column expand. */
hide_spacer = (first_column_name == NULL);
hide_spacer = (gnc_tree_view_count_visible_columns(view) == 1);
column = gtk_tree_view_get_column(GTK_TREE_VIEW(view), 0);
gtk_tree_view_column_set_expand(column, hide_spacer);
gtk_tree_view_column_set_visible(priv->spacer_column, !hide_spacer);

@ -70,6 +70,11 @@ GType gnc_tree_view_get_type (void);
values: GINT_TO_POINTER(0) and GINT_TO_POINTER(1) */
#define ALWAYS_VISIBLE "always-visible"
/* This attribute controls visibility of a non-gconf column or a gconf
column before a visibility preference has been recorded. Valid values:
GINT_TO_POINTER(0) and GINT_TO_POINTER(1) */
#define DEFAULT_VISIBLE "default-visible"
#define GNC_TREE_VIEW_COLUMN_DATA_NONE -1
#define GNC_TREE_VIEW_COLUMN_COLOR_NONE -1
#define GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS -1
@ -289,21 +294,27 @@ gint gnc_tree_view_append_column (GncTreeView *view,
*/
void gnc_tree_view_set_model(GncTreeView *view, GtkTreeModel *model);
/** Configure (by name) the default set of visible columns in an gnc
* tree view. This is the list of columns that will be shown if the
* view isn't using gconf to manage column visibility. If gconf is
* used, this list will be used the very first time the view is
* presented to the user, then gconf will be used after that. The
* available list of columns can be found in the file
* gnc-tree-view-xxx.c.
/** Make all the correct columns visible, respecting their default
* visibility setting, their "always" visibility setting, and their
* gconf visibility settings, if managed by gconf.
*
* @param view A pointer to an gnc tree view.
*/
void gnc_tree_view_configure_columns (GncTreeView *view);
/** Find a tree column given the "pref name" used with gconf. This
* function simply runs the list of all (visible and invisible)
* columns looking for a match. Column names were attached to each
* column at the time the column was created.
*
* @param view The visible tree widget.
*
* @param id The "pref name" to find.
*
* @param column_names A list of column names to make visible.
*/
void gnc_tree_view_configure_columns (GncTreeView *view,
gchar *first_column_name,
...);
GtkTreeViewColumn *
gnc_tree_view_find_column_by_name (GncTreeView *view,
const gchar *wanted);
/** This function is called to set up or remove an association between
* a gconf section and the display of a view. It will first remove

@ -866,8 +866,10 @@ on_final_account_prepare (GnomeDruidPage *gnomedruidpage,
gnc_tree_view_account_notes_edited_cb);
gtk_tree_view_set_headers_visible (tree_view, TRUE);
gnc_tree_view_configure_columns (GNC_TREE_VIEW(data->final_account_tree),
"type", /*"placeholder", */ NULL);
column = gnc_tree_view_find_column_by_name (
GNC_TREE_VIEW(data->final_account_tree), "type");
g_object_set_data(G_OBJECT(column), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
gnc_tree_view_configure_columns (GNC_TREE_VIEW(data->final_account_tree));
gnc_tree_view_set_show_column_menu (GNC_TREE_VIEW(data->final_account_tree),
FALSE);

@ -403,6 +403,7 @@ gnc_plugin_page_account_tree_create_widget (GncPluginPage *plugin_page)
GtkTreeSelection *selection;
GtkTreeView *tree_view;
GtkWidget *scrolled_window;
GtkTreeViewColumn *col;
ENTER("page %p", plugin_page);
page = GNC_PLUGIN_PAGE_ACCOUNT_TREE (plugin_page);
@ -423,8 +424,13 @@ gnc_plugin_page_account_tree_create_widget (GncPluginPage *plugin_page)
TRUE, TRUE, 0);
tree_view = gnc_tree_view_account_new(FALSE);
gnc_tree_view_configure_columns(GNC_TREE_VIEW(tree_view),
"description", "total", NULL);
col = gnc_tree_view_find_column_by_name(
GNC_TREE_VIEW(tree_view), "description");
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_find_column_by_name(
GNC_TREE_VIEW(tree_view), "total");
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
gnc_tree_view_configure_columns(GNC_TREE_VIEW(tree_view));
g_object_set(G_OBJECT(tree_view),
"gconf-section", GCONF_SECTION,
"show-column-menu", TRUE,

@ -391,7 +391,7 @@ gnc_plugin_page_budget_create_widget (GncPluginPage *plugin_page)
tree_view = gnc_tree_view_account_new(FALSE);
g_object_set(G_OBJECT(tree_view), "gconf-section", GCONF_SECTION, NULL);
gnc_tree_view_configure_columns(GNC_TREE_VIEW(tree_view), NULL);
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);
@ -1051,8 +1051,7 @@ gnc_plugin_page_budget_view_refresh (GncPluginPageBudget *page)
num_periods_visible = g_list_length(col_list);
}
gnc_tree_view_configure_columns(
GNC_TREE_VIEW(priv->tree_view), NULL);
gnc_tree_view_configure_columns(GNC_TREE_VIEW(priv->tree_view));
/* Create any needed columns */
while (num_periods_visible < num_periods) {

@ -64,6 +64,7 @@ static void
build_acct_tree(struct _accountpickerdialog * picker)
{
GtkTreeView *account_tree;
GtkTreeViewColumn *col;
/* Build a new account tree */
TRACE("Begin");
@ -71,16 +72,23 @@ build_acct_tree(struct _accountpickerdialog * picker)
picker->account_tree = GNC_TREE_VIEW_ACCOUNT(account_tree);
gtk_tree_view_set_headers_visible (account_tree, TRUE);
col = gnc_tree_view_find_column_by_name(GNC_TREE_VIEW(account_tree), "type");
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
/* Add our custom column. */
gnc_tree_view_account_add_kvp_column (picker->account_tree,
col = gnc_tree_view_account_add_kvp_column (picker->account_tree,
_("Account ID"), "online_id");
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
col = gnc_tree_view_find_column_by_name(
GNC_TREE_VIEW(picker->account_tree), "type");
g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
gtk_container_add(GTK_CONTAINER(picker->account_tree_sw),
GTK_WIDGET(picker->account_tree));
/* Configure the columns */
gnc_tree_view_configure_columns (GNC_TREE_VIEW(picker->account_tree),
"type", "description", "online_id", NULL);
gnc_tree_view_configure_columns (GNC_TREE_VIEW(picker->account_tree));
}
/* When user clicks to create a new account */

Loading…
Cancel
Save