mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Bug #682660 - Add Account background colour to Account page.
Author: Robert Fewell <14ubobit@gmail.com> git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@22359 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
f48ef78090
commit
f4eac66079
@ -91,6 +91,7 @@ enum
|
||||
#define KEY_TAB_NEXT_RECENT "tab_next_recent"
|
||||
#define KEY_TAB_POSITION "tab_position"
|
||||
#define KEY_TAB_WIDTH "tab_width"
|
||||
#define KEY_TAB_COLOR "show_account_color_tabs"
|
||||
|
||||
#define GNC_MAIN_WINDOW_NAME "GncMainWindow"
|
||||
|
||||
@ -115,6 +116,7 @@ static void gnc_main_window_destroy (GtkObject *object);
|
||||
|
||||
static void gnc_main_window_setup_window (GncMainWindow *window);
|
||||
static void gnc_window_main_window_init (GncWindowIface *iface);
|
||||
static gboolean main_window_find_tab_event (GncMainWindow *window, GncPluginPage *page, GtkWidget **event_p);
|
||||
#ifndef MAC_INTEGRATION
|
||||
static void gnc_main_window_update_all_menu_items (void);
|
||||
#endif
|
||||
@ -165,7 +167,7 @@ static void gnc_quartz_set_menu(GncMainWindow* window);
|
||||
typedef struct GncMainWindowPrivate
|
||||
{
|
||||
/** The dock (vbox) at the top of the window containing the
|
||||
* menubar and toolbar. These items are generated bu the UI
|
||||
* menubar and toolbar. These items are generated by the UI
|
||||
* manager and stored here when the UI manager provides them
|
||||
* to the main window. */
|
||||
GtkWidget *menu_dock;
|
||||
@ -174,6 +176,8 @@ typedef struct GncMainWindowPrivate
|
||||
GtkWidget *toolbar;
|
||||
/** The notebook containing all the pages in this window. */
|
||||
GtkWidget *notebook;
|
||||
/** Show account color as background on tabs */
|
||||
gboolean show_color_tabs;
|
||||
/** A pointer to the status bar at the bottom edge of the
|
||||
* window. This pointer provides easy access for
|
||||
* updating/showing/hiding the status bar. */
|
||||
@ -1750,6 +1754,74 @@ gnc_main_window_update_tab_close (GConfEntry *entry, gpointer user_data)
|
||||
}
|
||||
|
||||
|
||||
/** Show/hide the account color on the tab of a notebook page.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @param page The GncPluginPage whose notebook tab should be updated.
|
||||
*
|
||||
* @param user_data GncMainWindow.
|
||||
*/
|
||||
static void
|
||||
gnc_main_window_update_tab_color_one_page (GncPluginPage *page,
|
||||
gpointer user_data)
|
||||
{
|
||||
GncMainWindow *window = user_data;
|
||||
GncMainWindowPrivate *priv;
|
||||
const gchar *color_string;
|
||||
GdkColor tab_color;
|
||||
GtkWidget *event_box;
|
||||
|
||||
ENTER("page %p", page);
|
||||
|
||||
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
|
||||
|
||||
/* Get the event box to update the tab */
|
||||
main_window_find_tab_event(window, page, &event_box);
|
||||
|
||||
color_string = gnc_plugin_page_get_page_color(page);
|
||||
if (color_string == NULL) color_string = "";
|
||||
if (gdk_color_parse(color_string, &tab_color) && priv->show_color_tabs)
|
||||
{
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, &tab_color);
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_ACTIVE, &tab_color);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, NULL);
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_ACTIVE, NULL);
|
||||
}
|
||||
LEAVE(" ");
|
||||
}
|
||||
|
||||
|
||||
/** Show/hide the account color on tabs.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @param entry A pointer to the GConfEntry which describes the new
|
||||
* state of whether the account color should be visible on notebook tabs.
|
||||
*
|
||||
* @param user_data GncMainWindow.
|
||||
*/
|
||||
static void
|
||||
gnc_main_window_update_tab_color (GConfEntry *entry, gpointer user_data)
|
||||
{
|
||||
GncMainWindowPrivate *priv;
|
||||
GncMainWindow *window;
|
||||
gboolean new_value;
|
||||
|
||||
ENTER(" ");
|
||||
g_return_if_fail(GNC_IS_MAIN_WINDOW(user_data));
|
||||
window = user_data;
|
||||
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
|
||||
new_value = gconf_value_get_bool(entry->value);
|
||||
priv->show_color_tabs = new_value;
|
||||
gnc_main_window_foreach_page (gnc_main_window_update_tab_color_one_page, window);
|
||||
LEAVE(" ");
|
||||
}
|
||||
|
||||
|
||||
/** Update the width of the label in the tab of a notebook page. This
|
||||
* function adjusts both the width and the ellipsize mode so that the tab
|
||||
* label looks correct. The special check for a zero value handles the
|
||||
@ -1983,13 +2055,12 @@ main_window_update_page_color (GncPluginPage *page,
|
||||
const gchar *color_in)
|
||||
{
|
||||
GncMainWindow *window;
|
||||
GncMainWindowPrivate *priv;
|
||||
GtkWidget *event_box;
|
||||
GdkColor tab_color;
|
||||
gchar *color_string;
|
||||
|
||||
|
||||
ENTER(" ");
|
||||
|
||||
if ((color_in == NULL) || (*color_in == '\0'))
|
||||
{
|
||||
LEAVE("no string");
|
||||
@ -2009,10 +2080,12 @@ main_window_update_page_color (GncPluginPage *page,
|
||||
window = GNC_MAIN_WINDOW(page->window);
|
||||
gnc_plugin_page_set_page_color(page, color_string);
|
||||
|
||||
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
|
||||
|
||||
/* Update the notebook tab */
|
||||
main_window_find_tab_event(window, page, &event_box);
|
||||
|
||||
if (gdk_color_parse(color_string, &tab_color))
|
||||
if (gdk_color_parse(color_string, &tab_color) && priv->show_color_tabs)
|
||||
{
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, &tab_color);
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_ACTIVE, &tab_color);
|
||||
@ -2217,6 +2290,7 @@ gnc_main_window_class_init (GncMainWindowClass *klass)
|
||||
gnc_gconf_general_register_cb (KEY_TAB_WIDTH,
|
||||
gnc_main_window_update_tab_width,
|
||||
NULL);
|
||||
|
||||
gnc_hook_add_dangler(HOOK_BOOK_SAVED,
|
||||
(GFunc)gnc_main_window_update_all_titles, NULL);
|
||||
gnc_hook_add_dangler(HOOK_BOOK_OPENED,
|
||||
@ -2246,6 +2320,13 @@ gnc_main_window_init (GncMainWindow *window,
|
||||
priv->event_handler_id =
|
||||
qof_event_register_handler(gnc_main_window_event_handler, window);
|
||||
|
||||
/* Get the show_color_tabs value from gconf */
|
||||
priv->show_color_tabs = gnc_gconf_get_bool(GCONF_GENERAL, KEY_TAB_COLOR, NULL);
|
||||
|
||||
gnc_gconf_general_register_cb (KEY_TAB_COLOR,
|
||||
gnc_main_window_update_tab_color,
|
||||
window);
|
||||
|
||||
gnc_main_window_setup_window (window);
|
||||
gnc_gobject_tracking_remember(G_OBJECT(window),
|
||||
G_OBJECT_CLASS(klass));
|
||||
@ -2553,7 +2634,6 @@ gnc_main_window_open_page (GncMainWindow *window,
|
||||
GdkColor tab_color;
|
||||
|
||||
ENTER("window %p, page %p", window, page);
|
||||
|
||||
if (window)
|
||||
g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
|
||||
g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
|
||||
@ -2588,6 +2668,7 @@ gnc_main_window_open_page (GncMainWindow *window,
|
||||
}
|
||||
|
||||
page->window = GTK_WIDGET(window);
|
||||
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
|
||||
page->notebook_page = gnc_plugin_page_create_widget (page);
|
||||
g_object_set_data (G_OBJECT (page->notebook_page),
|
||||
PLUGIN_PAGE_LABEL, page);
|
||||
@ -2619,16 +2700,12 @@ gnc_main_window_open_page (GncMainWindow *window,
|
||||
gtk_box_pack_start (GTK_BOX (tab_hbox), label, TRUE, TRUE, 0);
|
||||
|
||||
event_box = gtk_event_box_new();
|
||||
/* Note: this doesn't work properly on Windows with gtk+2.18.x (last
|
||||
* with 2.18.7). Setting the eventbox visible with that version results
|
||||
* in the tab's text being invisible. See bug #610675 for more on this.
|
||||
*/
|
||||
gtk_event_box_set_visible_window(GTK_EVENT_BOX(event_box), TRUE);
|
||||
gtk_widget_show(event_box);
|
||||
gtk_container_add(GTK_CONTAINER(event_box), tab_hbox);
|
||||
color_string = gnc_plugin_page_get_page_color(page);
|
||||
if (color_string == NULL) color_string = "";
|
||||
if (gdk_color_parse(color_string, &tab_color))
|
||||
if (gdk_color_parse(color_string, &tab_color) && priv->show_color_tabs)
|
||||
{
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, &tab_color);
|
||||
gtk_widget_modify_bg(event_box, GTK_STATE_ACTIVE, &tab_color);
|
||||
|
@ -416,6 +416,7 @@ gnc_tree_model_account_get_column_type (GtkTreeModel *tree_model,
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM:
|
||||
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT:
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_ACCOUNT:
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE:
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD:
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED:
|
||||
@ -793,6 +794,11 @@ gnc_tree_model_account_get_value (GtkTreeModel *tree_model,
|
||||
g_free (string);
|
||||
break;
|
||||
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_ACCOUNT:
|
||||
g_value_init (value, G_TYPE_STRING);
|
||||
g_value_set_string (value, xaccAccountGetColor (account));
|
||||
break;
|
||||
|
||||
case GNC_TREE_MODEL_ACCOUNT_COL_NOTES:
|
||||
g_value_init (value, G_TYPE_STRING);
|
||||
g_value_set_string (value, xaccAccountGetNotes (account));
|
||||
|
@ -85,6 +85,7 @@ typedef enum
|
||||
|
||||
/* internal hidden columns */
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_ACCOUNT,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED,
|
||||
|
@ -1,26 +1,26 @@
|
||||
/********************************************************************\
|
||||
* gnc-tree-view-account.c -- GtkTreeView implementation to display *
|
||||
* accounts in a GtkTreeView. *
|
||||
/**********************************************************************\
|
||||
* gnc-tree-view-account.c -- GtkTreeView implementation to display *
|
||||
* accounts in a GtkTreeView. *
|
||||
* Copyright (C) 2003,2005,2006 David Hampton <hampton@employees.org> *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation; either version 2 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License*
|
||||
* along with this program; if not, contact: *
|
||||
* *
|
||||
* Free Software Foundation Voice: +1-617-542-5942 *
|
||||
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
|
||||
* Boston, MA 02110-1301, USA gnu@gnu.org *
|
||||
* *
|
||||
\********************************************************************/
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation; either version 2 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, contact: *
|
||||
* *
|
||||
* Free Software Foundation Voice: +1-617-542-5942 *
|
||||
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
|
||||
* Boston, MA 02110-1301, USA gnu@gnu.org *
|
||||
* *
|
||||
\**********************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
@ -40,6 +40,7 @@
|
||||
#include "gnc-engine.h"
|
||||
#include "gnc-glib-utils.h"
|
||||
#include "gnc-gobject-utils.h"
|
||||
#include "gnc-gconf-utils.h"
|
||||
#include "gnc-hooks.h"
|
||||
#include "gnc-session.h"
|
||||
#include "gnc-icons.h"
|
||||
@ -77,6 +78,15 @@ static void tax_info_data_func (GtkTreeViewColumn *col,
|
||||
GtkTreeIter *iter,
|
||||
gpointer view);
|
||||
|
||||
static void acc_color_data_func (GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer view);
|
||||
|
||||
static void gnc_tree_view_account_color_update (GConfEntry *entry, gpointer user_data);
|
||||
|
||||
|
||||
typedef struct GncTreeViewAccountPrivate
|
||||
{
|
||||
AccountViewInfo avi;
|
||||
@ -95,6 +105,9 @@ typedef struct GncTreeViewAccountPrivate
|
||||
GtkTreeViewColumn *future_min_report_column;
|
||||
GtkTreeViewColumn *total_report_column;
|
||||
GtkTreeViewColumn *notes_column;
|
||||
|
||||
gboolean show_account_color;
|
||||
|
||||
} GncTreeViewAccountPrivate;
|
||||
|
||||
#define GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(o) \
|
||||
@ -175,6 +188,11 @@ gnc_tree_view_account_init (GncTreeViewAccount *view)
|
||||
GncTreeViewAccountPrivate *priv;
|
||||
|
||||
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
|
||||
|
||||
gnc_gconf_general_register_cb("show_account_color",
|
||||
gnc_tree_view_account_color_update,
|
||||
view);
|
||||
|
||||
gnc_init_account_view_info(&priv->avi);
|
||||
}
|
||||
|
||||
@ -191,6 +209,10 @@ gnc_tree_view_account_finalize (GObject *object)
|
||||
account_view = GNC_TREE_VIEW_ACCOUNT (object);
|
||||
|
||||
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
|
||||
|
||||
gnc_gconf_general_remove_cb("show_account_color",
|
||||
gnc_tree_view_account_color_update,
|
||||
account_view);
|
||||
if (priv->filter_destroy)
|
||||
{
|
||||
priv->filter_destroy(priv->filter_data);
|
||||
@ -534,6 +556,107 @@ tax_info_data_func (GtkTreeViewColumn *col,
|
||||
gtk_tree_path_free(path);
|
||||
}
|
||||
|
||||
/************************************************************/
|
||||
/* acc_color data function */
|
||||
/************************************************************/
|
||||
/*
|
||||
* The account-color column in the account tree view is obtained
|
||||
* from the GNC_TREE_MODEL_ACCOUNT_COL_COLOR_ACCOUNT which is
|
||||
* checked for a valid color string to set the background color
|
||||
* of the cell.
|
||||
*/
|
||||
static void
|
||||
update_cell_renderers (GList *renderers, gchar *account_color)
|
||||
{
|
||||
GtkCellRenderer *cell;
|
||||
GList *node;
|
||||
|
||||
/* Update the cell background in the list of renderers */
|
||||
for (node = renderers; node; node = node->next)
|
||||
{
|
||||
cell = node->data;
|
||||
g_object_set (cell, "cell-background", account_color, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
acc_color_data_func (GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer view)
|
||||
{
|
||||
GncTreeViewAccountPrivate *priv;
|
||||
gchar *acc_color = NULL;
|
||||
gchar *item;
|
||||
GdkColor color;
|
||||
gchar *column_name;
|
||||
GList *renderers;
|
||||
|
||||
gboolean valid_color = TRUE;
|
||||
|
||||
gtk_tree_model_get(model,
|
||||
iter,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_ACCOUNT,
|
||||
&item,
|
||||
-1);
|
||||
|
||||
/* Check for NULL */
|
||||
if ((item == NULL) || (*item == '\0'))
|
||||
acc_color = g_strdup("Not Set");
|
||||
else
|
||||
acc_color = g_strstrip(g_strdup(item));
|
||||
|
||||
/* Parse the color string for valid color */
|
||||
if (!gdk_color_parse(acc_color, &color))
|
||||
valid_color = FALSE;
|
||||
|
||||
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
|
||||
|
||||
column_name = g_object_get_data(G_OBJECT(col), PREF_NAME);
|
||||
|
||||
renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (col));
|
||||
|
||||
if(valid_color == TRUE)
|
||||
{
|
||||
/* Test for Account Color column and gconf preference. */
|
||||
if (g_strcmp0(column_name, "account-color") == 0)
|
||||
update_cell_renderers (renderers, acc_color);
|
||||
else
|
||||
{
|
||||
if (priv->show_account_color == TRUE)
|
||||
update_cell_renderers (renderers, acc_color);
|
||||
else
|
||||
update_cell_renderers (renderers, NULL);
|
||||
}
|
||||
}
|
||||
else
|
||||
update_cell_renderers (renderers, NULL);
|
||||
|
||||
g_list_free (renderers);
|
||||
g_free (acc_color);
|
||||
g_free (item);
|
||||
}
|
||||
|
||||
/** Tell the GncTreeViewAccount code to show or not show the
|
||||
* Account name column with background in the account color.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
static void
|
||||
gnc_tree_view_account_color_update (GConfEntry *entry, gpointer user_data)
|
||||
{
|
||||
GncTreeViewAccountPrivate *priv;
|
||||
GncTreeViewAccount *view;
|
||||
GConfValue *value;
|
||||
|
||||
g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(user_data));
|
||||
view = user_data;
|
||||
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
|
||||
value = gconf_entry_get_value(entry);
|
||||
priv->show_account_color = gconf_value_get_bool(value);
|
||||
}
|
||||
|
||||
/************************************************************/
|
||||
/* New View Creation */
|
||||
/************************************************************/
|
||||
@ -552,7 +675,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
GtkTreePath *virtual_root_path = NULL;
|
||||
const gchar *sample_type, *sample_commodity;
|
||||
GncTreeViewAccountPrivate *priv;
|
||||
GtkTreeViewColumn *tax_info_column;
|
||||
GtkTreeViewColumn *tax_info_column, *acc_color_column;
|
||||
GtkCellRenderer *renderer;
|
||||
|
||||
ENTER(" ");
|
||||
@ -562,6 +685,9 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
|
||||
priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(GNC_TREE_VIEW_ACCOUNT (view));
|
||||
|
||||
/* Get the show_account_color value from gconf */
|
||||
priv->show_account_color = gnc_gconf_get_bool(GCONF_GENERAL, "show_account_color", NULL);
|
||||
|
||||
/* Create/get a pointer to the existing model for this set of books. */
|
||||
model = gnc_tree_model_account_new (root);
|
||||
|
||||
@ -593,10 +719,20 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_NAME,
|
||||
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
|
||||
sort_by_string);
|
||||
|
||||
renderer = gnc_tree_view_column_get_renderer(priv->name_column);
|
||||
|
||||
gtk_tree_view_column_set_cell_data_func(priv->name_column,
|
||||
renderer,
|
||||
acc_color_data_func,
|
||||
GTK_TREE_VIEW(view),
|
||||
NULL);
|
||||
|
||||
gnc_tree_view_add_text_column(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,
|
||||
sample_commodity,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY,
|
||||
@ -614,11 +750,13 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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_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",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_PRESENT,
|
||||
@ -632,6 +770,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_BALANCE,
|
||||
@ -652,6 +791,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_CLEARED,
|
||||
@ -665,6 +805,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED,
|
||||
@ -678,11 +819,13 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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,
|
||||
"Last Reconcile Date",
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE,
|
||||
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
|
||||
sort_by_string);
|
||||
|
||||
gnc_tree_view_add_numeric_column(view, _("Future Minimum"), "future_min",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN,
|
||||
@ -696,6 +839,7 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_TOTAL,
|
||||
@ -709,12 +853,33 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
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",
|
||||
SAMPLE_ACCOUNT_VALUE,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD,
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD,
|
||||
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
|
||||
sort_by_total_period_value);
|
||||
|
||||
/* 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"), "account-color", NULL,
|
||||
"xx",
|
||||
GNC_TREE_VIEW_COLUMN_DATA_NONE,
|
||||
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
|
||||
NULL);
|
||||
|
||||
renderer = gnc_tree_view_column_get_renderer(acc_color_column);
|
||||
|
||||
/* Add the full title to the object for menu creation */
|
||||
g_object_set_data_full(G_OBJECT(acc_color_column), REAL_TITLE,
|
||||
g_strdup(_("Account Color")), g_free);
|
||||
|
||||
gtk_tree_view_column_set_cell_data_func(acc_color_column,
|
||||
renderer,
|
||||
acc_color_data_func,
|
||||
GTK_TREE_VIEW(view),
|
||||
NULL);
|
||||
priv->notes_column
|
||||
= gnc_tree_view_add_text_column(view, _("Notes"), "notes", NULL,
|
||||
"Sample account notes.",
|
||||
@ -727,12 +892,14 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
|
||||
GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
|
||||
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
|
||||
sort_by_string);
|
||||
|
||||
renderer = gnc_tree_view_column_get_renderer(tax_info_column);
|
||||
gtk_tree_view_column_set_cell_data_func(tax_info_column,
|
||||
renderer,
|
||||
tax_info_data_func,
|
||||
GTK_TREE_VIEW(view),
|
||||
NULL);
|
||||
|
||||
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. */
|
||||
|
@ -1,26 +1,26 @@
|
||||
/********************************************************************\
|
||||
* gnc-tree-view-account.h -- GtkTreeView implementation to display *
|
||||
* accounts in a GtkTreeView. *
|
||||
/**********************************************************************\
|
||||
* gnc-tree-view-account.h -- GtkTreeView implementation to display *
|
||||
* accounts in a GtkTreeView. *
|
||||
* Copyright (C) 2003,2005,2006 David Hampton <hampton@employees.org> *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation; either version 2 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License*
|
||||
* along with this program; if not, contact: *
|
||||
* *
|
||||
* Free Software Foundation Voice: +1-617-542-5942 *
|
||||
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
|
||||
* Boston, MA 02110-1301, USA gnu@gnu.org *
|
||||
* *
|
||||
\********************************************************************/
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation; either version 2 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, contact: *
|
||||
* *
|
||||
* Free Software Foundation Voice: +1-617-542-5942 *
|
||||
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
|
||||
* Boston, MA 02110-1301, USA gnu@gnu.org *
|
||||
* *
|
||||
\**********************************************************************/
|
||||
|
||||
/** @addtogroup GUI
|
||||
@{ */
|
||||
@ -64,8 +64,8 @@ struct AccountViewInfo_s
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GncTreeView gnc_tree_view;
|
||||
int stamp;
|
||||
GncTreeView gnc_tree_view;
|
||||
int stamp;
|
||||
} GncTreeViewAccount;
|
||||
|
||||
typedef struct
|
||||
@ -75,15 +75,15 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkTreeModel *model;
|
||||
GtkWidget *dialog;
|
||||
GtkTreeModel *model;
|
||||
GncTreeViewAccount *tree_view;
|
||||
guint32 visible_types;
|
||||
guint32 original_visible_types;
|
||||
gboolean show_hidden;
|
||||
gboolean original_show_hidden;
|
||||
gboolean show_zero_total;
|
||||
gboolean original_show_zero_total;
|
||||
guint32 visible_types;
|
||||
guint32 original_visible_types;
|
||||
gboolean show_hidden;
|
||||
gboolean original_show_hidden;
|
||||
gboolean show_zero_total;
|
||||
gboolean original_show_zero_total;
|
||||
} AccountFilterDialog;
|
||||
|
||||
void account_filter_dialog_create(AccountFilterDialog *fd,
|
||||
|
@ -45,22 +45,6 @@
|
||||
#include "gnc-gobject-utils.h"
|
||||
#include "gnc-cell-renderer-date.h"
|
||||
|
||||
/* The column id refers to a specific column in the tree model. It is
|
||||
* also attached to the side of the tree column to allow lookup of a
|
||||
* GtkTreeViewColumn when passed a column id from the underlying
|
||||
* model. By convention, negative column numbers are used when the
|
||||
* visible column has no association with the underlying model.*/
|
||||
#define MODEL_COLUMN "model_column"
|
||||
|
||||
/* For checkbox columns, this contains the real title for the column. */
|
||||
#define REAL_TITLE "real_title"
|
||||
|
||||
/* The name of this column as it should appear in gconf. This is
|
||||
* attached to the column when it is created, and used to map back and
|
||||
* forth to gconf keys. The actual gconf keys are built from these
|
||||
* strings. */
|
||||
#define PREF_NAME "pref-name"
|
||||
|
||||
/* The actual gconf key for a particular column visibility. This is
|
||||
* attached to the menu items that are in the column selection menu.
|
||||
* Makes it very easy to update gconf when a menu item is toggled. */
|
||||
|
@ -68,6 +68,22 @@ GType gnc_tree_view_get_type (void);
|
||||
g_object_set_data(col, ATTRIBUTE_NAME, value);
|
||||
*/
|
||||
|
||||
/* The column id refers to a specific column in the tree model. It is
|
||||
* also attached to the side of the tree column to allow lookup of a
|
||||
* GtkTreeViewColumn when passed a column id from the underlying
|
||||
* model. By convention, negative column numbers are used when the
|
||||
* visible column has no association with the underlying model.*/
|
||||
#define MODEL_COLUMN "model_column"
|
||||
|
||||
/* For checkbox columns, this contains the real title for the column. */
|
||||
#define REAL_TITLE "real_title"
|
||||
|
||||
/* The name of this column as it should appear in gconf. This is
|
||||
* attached to the column when it is created, and used to map back and
|
||||
* forth to gconf keys. The actual gconf keys are built from these
|
||||
* strings. */
|
||||
#define PREF_NAME "pref-name"
|
||||
|
||||
/* A column with this attribute set cannot be hidden from view. Valid
|
||||
values: GINT_TO_POINTER(0) and GINT_TO_POINTER(1) */
|
||||
#define ALWAYS_VISIBLE "always-visible"
|
||||
|
@ -742,6 +742,81 @@
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label11">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes"><b>Account Color</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">16</property>
|
||||
<property name="bottom_attach">17</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="gconf/general/show_account_color">
|
||||
<property name="label" translatable="yes">Show the Account Color as background</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="tooltip_markup">Show the Account Color as Account Name Background</property>
|
||||
<property name="tooltip_text" translatable="yes">Show the Account Color as Account Name Background</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">17</property>
|
||||
<property name="bottom_attach">18</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
<property name="x_padding">12</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label13">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">15</property>
|
||||
<property name="bottom_attach">16</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="gconf/general/show_account_color_tabs">
|
||||
<property name="label" translatable="yes">Show the Account Color on tabs</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="tooltip_markup">Show the Account Color as tab background</property>
|
||||
<property name="tooltip_text" translatable="yes">Show the Account Color as tab background</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">18</property>
|
||||
<property name="bottom_attach">19</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
<property name="x_padding">12</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
|
Loading…
Reference in New Issue
Block a user