r18791 - gnucash/trunk/src/gnome-utils - Re-indentation of source code, next batch: src/gnome-utils/*
Christian Stimming
cstim at code.gnucash.org
Tue Mar 2 16:42:14 EST 2010
Author: cstim
Date: 2010-03-02 16:42:11 -0500 (Tue, 02 Mar 2010)
New Revision: 18791
Trac: http://svn.gnucash.org/trac/changeset/18791
Modified:
gnucash/trunk/src/gnome-utils/QuickFill.c
gnucash/trunk/src/gnome-utils/QuickFill.h
gnucash/trunk/src/gnome-utils/account-quickfill.c
gnucash/trunk/src/gnome-utils/account-quickfill.h
gnucash/trunk/src/gnome-utils/cursors.c
gnucash/trunk/src/gnome-utils/dialog-account.c
gnucash/trunk/src/gnome-utils/dialog-account.h
gnucash/trunk/src/gnome-utils/dialog-book-close.c
gnucash/trunk/src/gnome-utils/dialog-commodity.c
gnucash/trunk/src/gnome-utils/dialog-commodity.h
gnucash/trunk/src/gnome-utils/dialog-file-access.c
gnucash/trunk/src/gnome-utils/dialog-options.c
gnucash/trunk/src/gnome-utils/dialog-options.h
gnucash/trunk/src/gnome-utils/dialog-preferences.c
gnucash/trunk/src/gnome-utils/dialog-preferences.h
gnucash/trunk/src/gnome-utils/dialog-query-list.c
gnucash/trunk/src/gnome-utils/dialog-query-list.h
gnucash/trunk/src/gnome-utils/dialog-reset-warnings.c
gnucash/trunk/src/gnome-utils/dialog-totd.c
gnucash/trunk/src/gnome-utils/dialog-totd.h
gnucash/trunk/src/gnome-utils/dialog-transfer.c
gnucash/trunk/src/gnome-utils/dialog-transfer.h
gnucash/trunk/src/gnome-utils/dialog-utils.c
gnucash/trunk/src/gnome-utils/dialog-utils.h
gnucash/trunk/src/gnome-utils/druid-gconf-setup.c
gnucash/trunk/src/gnome-utils/druid-gnc-xml-import.c
gnucash/trunk/src/gnome-utils/druid-utils.c
gnucash/trunk/src/gnome-utils/druid-utils.h
gnucash/trunk/src/gnome-utils/gnc-account-sel.c
gnucash/trunk/src/gnome-utils/gnc-account-sel.h
gnucash/trunk/src/gnome-utils/gnc-amount-edit.c
gnucash/trunk/src/gnome-utils/gnc-amount-edit.h
gnucash/trunk/src/gnome-utils/gnc-autosave.c
gnucash/trunk/src/gnome-utils/gnc-autosave.h
gnucash/trunk/src/gnome-utils/gnc-commodity-edit.c
gnucash/trunk/src/gnome-utils/gnc-commodity-edit.h
gnucash/trunk/src/gnome-utils/gnc-currency-edit.c
gnucash/trunk/src/gnome-utils/gnc-currency-edit.h
gnucash/trunk/src/gnome-utils/gnc-date-delta.c
gnucash/trunk/src/gnome-utils/gnc-date-delta.h
gnucash/trunk/src/gnome-utils/gnc-date-edit.c
gnucash/trunk/src/gnome-utils/gnc-date-edit.h
gnucash/trunk/src/gnome-utils/gnc-date-format.c
gnucash/trunk/src/gnome-utils/gnc-date-format.h
gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.c
gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.h
gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.c
gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.h
gnucash/trunk/src/gnome-utils/gnc-dense-cal.c
gnucash/trunk/src/gnome-utils/gnc-dense-cal.h
gnucash/trunk/src/gnome-utils/gnc-dialog.c
gnucash/trunk/src/gnome-utils/gnc-dialog.h
gnucash/trunk/src/gnome-utils/gnc-druid-gnome.c
gnucash/trunk/src/gnome-utils/gnc-druid-gnome.h
gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.c
gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.h
gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c
gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h
gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c
gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h
gnucash/trunk/src/gnome-utils/gnc-embedded-window.c
gnucash/trunk/src/gnome-utils/gnc-embedded-window.h
gnucash/trunk/src/gnome-utils/gnc-file.c
gnucash/trunk/src/gnome-utils/gnc-file.h
gnucash/trunk/src/gnome-utils/gnc-frequency.c
gnucash/trunk/src/gnome-utils/gnc-frequency.h
gnucash/trunk/src/gnome-utils/gnc-general-select.c
gnucash/trunk/src/gnome-utils/gnc-general-select.h
gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c
gnucash/trunk/src/gnome-utils/gnc-gnome-utils.h
gnucash/trunk/src/gnome-utils/gnc-gui-query.c
gnucash/trunk/src/gnome-utils/gnc-gui-query.h
gnucash/trunk/src/gnome-utils/gnc-icons.c
gnucash/trunk/src/gnome-utils/gnc-main-window.c
gnucash/trunk/src/gnome-utils/gnc-main-window.h
gnucash/trunk/src/gnome-utils/gnc-menu-extensions.c
gnucash/trunk/src/gnome-utils/gnc-menu-extensions.h
gnucash/trunk/src/gnome-utils/gnc-period-select.c
gnucash/trunk/src/gnome-utils/gnc-period-select.h
gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c
gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h
gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c
gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h
gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c
gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h
gnucash/trunk/src/gnome-utils/gnc-plugin-page.c
gnucash/trunk/src/gnome-utils/gnc-plugin-page.h
gnucash/trunk/src/gnome-utils/gnc-plugin.c
gnucash/trunk/src/gnome-utils/gnc-plugin.h
gnucash/trunk/src/gnome-utils/gnc-query-list.c
gnucash/trunk/src/gnome-utils/gnc-query-list.h
gnucash/trunk/src/gnome-utils/gnc-recurrence.c
gnucash/trunk/src/gnome-utils/gnc-splash.c
gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h
gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.c
gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.h
gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c
gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h
gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c
gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h
gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.c
gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.h
gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c
gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h
gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c
gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h
gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c
gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h
gnucash/trunk/src/gnome-utils/gnc-tree-model.c
gnucash/trunk/src/gnome-utils/gnc-tree-model.h
gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h
gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c
gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h
gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c
gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h
gnucash/trunk/src/gnome-utils/gnc-tree-view-sx-list.c
gnucash/trunk/src/gnome-utils/gnc-tree-view.c
gnucash/trunk/src/gnome-utils/gnc-tree-view.h
gnucash/trunk/src/gnome-utils/gnc-window.c
gnucash/trunk/src/gnome-utils/gnc-window.h
gnucash/trunk/src/gnome-utils/gnctreemodelsort.c
gnucash/trunk/src/gnome-utils/gnctreemodelsort.h
gnucash/trunk/src/gnome-utils/gtktreedatalist.c
gnucash/trunk/src/gnome-utils/gtktreedatalist.h
gnucash/trunk/src/gnome-utils/misc-gnome-utils.c
gnucash/trunk/src/gnome-utils/print-session.c
gnucash/trunk/src/gnome-utils/search-param.c
gnucash/trunk/src/gnome-utils/search-param.h
gnucash/trunk/src/gnome-utils/test/test-gnc-dialog.c
gnucash/trunk/src/gnome-utils/test/test-link-module.c
gnucash/trunk/src/gnome-utils/window-main-summarybar.c
Log:
Re-indentation of source code, next batch: src/gnome-utils/*
This also strips trailing whitespaces from lines where they existed.
This re-indentation was done using astyle-1.24 using the following options:
astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
Modified: gnucash/trunk/src/gnome-utils/QuickFill.c
===================================================================
--- gnucash/trunk/src/gnome-utils/QuickFill.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/QuickFill.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -34,9 +34,9 @@
struct _QuickFill
{
- char *text; /* the first matching text string */
- int len; /* number of chars in text string */
- GHashTable *matches; /* array of children in the tree */
+ char *text; /* the first matching text string */
+ int len; /* number of chars in text string */
+ GHashTable *matches; /* array of children in the tree */
};
@@ -45,7 +45,7 @@
int depth, QuickFillSort sort);
static void gnc_quickfill_remove_recursive (QuickFill *qf, const gchar *text,
- gint depth, QuickFillSort sort);
+ gint depth, QuickFillSort sort);
/* This static indicates the debugging module that this .o belongs to. */
static QofLogModule log_module = GNC_MOD_REGISTER;
@@ -56,22 +56,22 @@
QuickFill *
gnc_quickfill_new (void)
{
- QuickFill *qf;
+ QuickFill *qf;
- if (sizeof (guint) < sizeof (gunichar))
- {
- PWARN ("Can't use quickfill");
- return NULL;
- }
+ if (sizeof (guint) < sizeof (gunichar))
+ {
+ PWARN ("Can't use quickfill");
+ return NULL;
+ }
- qf = g_new (QuickFill, 1);
+ qf = g_new (QuickFill, 1);
- qf->text = NULL;
- qf->len = 0;
+ qf->text = NULL;
+ qf->len = 0;
- qf->matches = g_hash_table_new (g_direct_hash, g_direct_equal);
+ qf->matches = g_hash_table_new (g_direct_hash, g_direct_equal);
- return qf;
+ return qf;
}
/********************************************************************\
@@ -80,40 +80,40 @@
static gboolean
destroy_helper (gpointer key, gpointer value, gpointer data)
{
- gnc_quickfill_destroy (value);
- return TRUE;
+ gnc_quickfill_destroy (value);
+ return TRUE;
}
void
gnc_quickfill_destroy (QuickFill *qf)
{
- if (qf == NULL)
- return;
+ if (qf == NULL)
+ return;
- g_hash_table_foreach (qf->matches, (GHFunc)destroy_helper, NULL);
- g_hash_table_destroy (qf->matches);
- qf->matches = NULL;
+ g_hash_table_foreach (qf->matches, (GHFunc)destroy_helper, NULL);
+ g_hash_table_destroy (qf->matches);
+ qf->matches = NULL;
- if (qf->text)
- CACHE_REMOVE(qf->text);
- qf->text = NULL;
- qf->len = 0;
+ if (qf->text)
+ CACHE_REMOVE(qf->text);
+ qf->text = NULL;
+ qf->len = 0;
- g_free (qf);
+ g_free (qf);
}
void
gnc_quickfill_purge (QuickFill *qf)
{
- if (qf == NULL)
- return;
+ if (qf == NULL)
+ return;
- g_hash_table_foreach_remove (qf->matches, destroy_helper, NULL);
+ g_hash_table_foreach_remove (qf->matches, destroy_helper, NULL);
- if (qf->text)
- CACHE_REMOVE (qf->text);
- qf->text = NULL;
- qf->len = 0;
+ if (qf->text)
+ CACHE_REMOVE (qf->text);
+ qf->text = NULL;
+ qf->len = 0;
}
/********************************************************************\
@@ -122,10 +122,10 @@
const char *
gnc_quickfill_string (QuickFill *qf)
{
- if (qf == NULL)
- return NULL;
+ if (qf == NULL)
+ return NULL;
- return qf->text;
+ return qf->text;
}
/********************************************************************\
@@ -134,13 +134,13 @@
QuickFill *
gnc_quickfill_get_char_match (QuickFill *qf, gunichar uc)
{
- guint key = g_unichar_toupper (uc);
+ guint key = g_unichar_toupper (uc);
- if (NULL == qf) return NULL;
+ if (NULL == qf) return NULL;
- DEBUG ("xaccGetQuickFill(): index = %u\n", key);
+ DEBUG ("xaccGetQuickFill(): index = %u\n", key);
- return g_hash_table_lookup (qf->matches, GUINT_TO_POINTER (key));
+ return g_hash_table_lookup (qf->matches, GUINT_TO_POINTER (key));
}
/********************************************************************\
@@ -150,26 +150,26 @@
gnc_quickfill_get_string_len_match (QuickFill *qf,
const char *str, int len)
{
- const char *c;
- gunichar uc;
+ const char *c;
+ gunichar uc;
- if (NULL == qf) return NULL;
- if (NULL == str) return NULL;
+ if (NULL == qf) return NULL;
+ if (NULL == str) return NULL;
- c = str;
- while (*c && (len > 0))
- {
- if (qf == NULL)
- return NULL;
+ c = str;
+ while (*c && (len > 0))
+ {
+ if (qf == NULL)
+ return NULL;
- uc = g_utf8_get_char (c);
- qf = gnc_quickfill_get_char_match (qf, uc);
+ uc = g_utf8_get_char (c);
+ qf = gnc_quickfill_get_char_match (qf, uc);
- c = g_utf8_next_char (c);
- len--;
- }
+ c = g_utf8_next_char (c);
+ len--;
+ }
- return qf;
+ return qf;
}
/********************************************************************\
@@ -178,10 +178,10 @@
QuickFill *
gnc_quickfill_get_string_match (QuickFill *qf, const char *str)
{
- if (NULL == qf) return NULL;
- if (NULL == str) return NULL;
+ if (NULL == qf) return NULL;
+ if (NULL == str) return NULL;
- return gnc_quickfill_get_string_len_match (qf, str, g_utf8_strlen (str, -1));
+ return gnc_quickfill_get_string_len_match (qf, str, g_utf8_strlen (str, -1));
}
/********************************************************************\
@@ -190,36 +190,36 @@
static void
unique_len_helper (gpointer key, gpointer value, gpointer data)
{
- QuickFill **qf_p = data;
+ QuickFill **qf_p = data;
- *qf_p = value;
+ *qf_p = value;
}
QuickFill *
gnc_quickfill_get_unique_len_match (QuickFill *qf, int *length)
{
- if (length != NULL)
- *length = 0;
+ if (length != NULL)
+ *length = 0;
- if (qf == NULL)
- return NULL;
+ if (qf == NULL)
+ return NULL;
- while (1)
- {
- guint count;
+ while (1)
+ {
+ guint count;
- count = g_hash_table_size (qf->matches);
+ count = g_hash_table_size (qf->matches);
- if (count != 1)
- {
- return qf;
- }
+ if (count != 1)
+ {
+ return qf;
+ }
- g_hash_table_foreach (qf->matches, unique_len_helper, &qf);
+ g_hash_table_foreach (qf->matches, unique_len_helper, &qf);
- if (length != NULL)
- (*length)++;
- }
+ if (length != NULL)
+ (*length)++;
+ }
}
/********************************************************************\
@@ -228,15 +228,15 @@
void
gnc_quickfill_insert (QuickFill *qf, const char *text, QuickFillSort sort)
{
- gchar *normalized_str;
+ gchar *normalized_str;
- if (NULL == qf) return;
- if (NULL == text) return;
+ if (NULL == qf) return;
+ if (NULL == text) return;
- normalized_str = g_utf8_normalize (text, -1, G_NORMALIZE_NFC);
- quickfill_insert_recursive (qf, normalized_str, 0, sort);
- g_free (normalized_str);
+ normalized_str = g_utf8_normalize (text, -1, G_NORMALIZE_NFC);
+ quickfill_insert_recursive (qf, normalized_str, 0, sort);
+ g_free (normalized_str);
}
/********************************************************************\
@@ -246,63 +246,63 @@
quickfill_insert_recursive (QuickFill *qf, const char *text, int depth,
QuickFillSort sort)
{
- guint key;
- char *old_text;
- QuickFill *match_qf;
- int len;
- char *key_char;
- gunichar key_char_uc;
+ guint key;
+ char *old_text;
+ QuickFill *match_qf;
+ int len;
+ char *key_char;
+ gunichar key_char_uc;
- if (qf == NULL)
- return;
+ if (qf == NULL)
+ return;
- if ((text == NULL) || (g_utf8_strlen (text, -1) <= depth))
- return;
+ if ((text == NULL) || (g_utf8_strlen (text, -1) <= depth))
+ return;
- key_char = g_utf8_offset_to_pointer (text, depth);
+ key_char = g_utf8_offset_to_pointer (text, depth);
- key_char_uc = g_utf8_get_char (key_char);
- key = g_unichar_toupper (key_char_uc);
+ key_char_uc = g_utf8_get_char (key_char);
+ key = g_unichar_toupper (key_char_uc);
- match_qf = g_hash_table_lookup (qf->matches, GUINT_TO_POINTER (key));
- if (match_qf == NULL)
- {
- match_qf = gnc_quickfill_new ();
- g_hash_table_insert (qf->matches, GUINT_TO_POINTER (key), match_qf);
- }
+ match_qf = g_hash_table_lookup (qf->matches, GUINT_TO_POINTER (key));
+ if (match_qf == NULL)
+ {
+ match_qf = gnc_quickfill_new ();
+ g_hash_table_insert (qf->matches, GUINT_TO_POINTER (key), match_qf);
+ }
- old_text = match_qf->text;
+ old_text = match_qf->text;
- switch (sort)
- {
+ switch (sort)
+ {
case QUICKFILL_ALPHA:
- if (old_text && (g_utf8_collate (text, old_text) >= 0))
- break;
+ if (old_text && (g_utf8_collate (text, old_text) >= 0))
+ break;
case QUICKFILL_LIFO:
default:
- len = g_utf8_strlen (text, -1);
+ len = g_utf8_strlen (text, -1);
- /* If there's no string there already, just put the new one in. */
- if (old_text == NULL)
- {
+ /* If there's no string there already, just put the new one in. */
+ if (old_text == NULL)
+ {
+ match_qf->text = CACHE_INSERT((gpointer) text);
+ match_qf->len = len;
+ break;
+ }
+
+ /* Leave prefixes in place */
+ if ((len > match_qf->len) &&
+ (strncmp(text, old_text, strlen(old_text)) == 0))
+ break;
+
+ CACHE_REMOVE(old_text);
match_qf->text = CACHE_INSERT((gpointer) text);
match_qf->len = len;
break;
- }
+ }
- /* Leave prefixes in place */
- if ((len > match_qf->len) &&
- (strncmp(text, old_text, strlen(old_text)) == 0))
- break;
-
- CACHE_REMOVE(old_text);
- match_qf->text = CACHE_INSERT((gpointer) text);
- match_qf->len = len;
- break;
- }
-
- quickfill_insert_recursive (match_qf, text, ++depth, sort);
+ quickfill_insert_recursive (match_qf, text, ++depth, sort);
}
/********************************************************************\
@@ -311,14 +311,14 @@
void
gnc_quickfill_remove (QuickFill *qf, const gchar *text, QuickFillSort sort)
{
- gchar *normalized_str;
+ gchar *normalized_str;
- if (qf == NULL) return;
- if (text == NULL) return;
+ if (qf == NULL) return;
+ if (text == NULL) return;
- normalized_str = g_utf8_normalize (text, -1, G_NORMALIZE_NFC);
- gnc_quickfill_remove_recursive (qf, normalized_str, 0, sort);
- g_free (normalized_str);
+ normalized_str = g_utf8_normalize (text, -1, G_NORMALIZE_NFC);
+ gnc_quickfill_remove_recursive (qf, normalized_str, 0, sort);
+ g_free (normalized_str);
}
/********************************************************************\
@@ -326,28 +326,33 @@
struct _BestText
{
- gchar *text;
- QuickFillSort sort;
+ gchar *text;
+ QuickFillSort sort;
};
static void
best_text_helper (gpointer key, gpointer value, gpointer user_data)
{
- QuickFill *qf = value;
- struct _BestText *best = user_data;
+ QuickFill *qf = value;
+ struct _BestText *best = user_data;
- if (best->text == NULL) {
- /* start with the first text */
- best->text = qf->text;
+ if (best->text == NULL)
+ {
+ /* start with the first text */
+ best->text = qf->text;
- } else if (best->text == QUICKFILL_LIFO) {
- /* we do not track history, so ignore it */
- return;
+ }
+ else if (best->text == QUICKFILL_LIFO)
+ {
+ /* we do not track history, so ignore it */
+ return;
- } else if (g_utf8_collate (qf->text, best->text) < 0) {
- /* even better text */
- best->text = qf->text;
- }
+ }
+ else if (g_utf8_collate (qf->text, best->text) < 0)
+ {
+ /* even better text */
+ best->text = qf->text;
+ }
}
@@ -356,79 +361,92 @@
gnc_quickfill_remove_recursive (QuickFill *qf, const gchar *text, gint depth,
QuickFillSort sort)
{
- QuickFill *match_qf;
- gchar *child_text;
- gint child_len;
+ QuickFill *match_qf;
+ gchar *child_text;
+ gint child_len;
- child_text = NULL;
- child_len = 0;
+ child_text = NULL;
+ child_len = 0;
- if (depth < g_utf8_strlen (text, -1)) {
- /* process next letter */
+ if (depth < g_utf8_strlen (text, -1))
+ {
+ /* process next letter */
- gchar *key_char;
- gunichar key_char_uc;
- guint key;
+ gchar *key_char;
+ gunichar key_char_uc;
+ guint key;
- key_char = g_utf8_offset_to_pointer (text, depth);
- key_char_uc = g_utf8_get_char (key_char);
- key = g_unichar_toupper (key_char_uc);
+ key_char = g_utf8_offset_to_pointer (text, depth);
+ key_char_uc = g_utf8_get_char (key_char);
+ key = g_unichar_toupper (key_char_uc);
- match_qf = g_hash_table_lookup (qf->matches, GUINT_TO_POINTER (key));
- if (match_qf) {
- /* remove text from child qf */
- gnc_quickfill_remove_recursive (match_qf, text, depth + 1, sort);
+ match_qf = g_hash_table_lookup (qf->matches, GUINT_TO_POINTER (key));
+ if (match_qf)
+ {
+ /* remove text from child qf */
+ gnc_quickfill_remove_recursive (match_qf, text, depth + 1, sort);
- if (match_qf->text == NULL) {
- /* text was the only word with a prefix up to match_qf */
- g_hash_table_remove (qf->matches, GUINT_TO_POINTER (key));
- gnc_quickfill_destroy (match_qf);
+ if (match_qf->text == NULL)
+ {
+ /* text was the only word with a prefix up to match_qf */
+ g_hash_table_remove (qf->matches, GUINT_TO_POINTER (key));
+ gnc_quickfill_destroy (match_qf);
- } else {
- /* remember remaining best child string */
- child_text = match_qf->text;
- child_len = match_qf->len;
- }
+ }
+ else
+ {
+ /* remember remaining best child string */
+ child_text = match_qf->text;
+ child_len = match_qf->len;
+ }
+ }
}
- }
- if (qf->text == NULL)
- return;
+ if (qf->text == NULL)
+ return;
- if (strcmp (text, qf->text) == 0) {
- /* the currently best text is about to be removed */
+ if (strcmp (text, qf->text) == 0)
+ {
+ /* the currently best text is about to be removed */
- gchar *best_text = NULL;
- gint best_len = 0;
+ gchar *best_text = NULL;
+ gint best_len = 0;
- if (child_text != NULL) {
- /* other children are pretty good as well */
- best_text = child_text;
- best_len = child_len;
+ if (child_text != NULL)
+ {
+ /* other children are pretty good as well */
+ best_text = child_text;
+ best_len = child_len;
- } else {
- if (g_hash_table_size (qf->matches) != 0) {
- /* otherwise search for another good text */
- struct _BestText bts;
- bts.text = NULL;
- bts.sort = sort;
+ }
+ else
+ {
+ if (g_hash_table_size (qf->matches) != 0)
+ {
+ /* otherwise search for another good text */
+ struct _BestText bts;
+ bts.text = NULL;
+ bts.sort = sort;
- g_hash_table_foreach (qf->matches, (GHFunc) best_text_helper, &bts);
- best_text = bts.text;
- best_len = (best_text == NULL) ? 0 : g_utf8_strlen (best_text, -1);
- }
- }
+ g_hash_table_foreach (qf->matches, (GHFunc) best_text_helper, &bts);
+ best_text = bts.text;
+ best_len = (best_text == NULL) ? 0 : g_utf8_strlen (best_text, -1);
+ }
+ }
- /* now replace or clear text */
- CACHE_REMOVE(qf->text);
- if (best_text != NULL) {
- qf->text = CACHE_INSERT((gpointer) best_text);
- qf->len = best_len;
- } else {
- qf->text = NULL;
- qf->len = 0;
+ /* now replace or clear text */
+ CACHE_REMOVE(qf->text);
+ if (best_text != NULL)
+ {
+ qf->text = CACHE_INSERT((gpointer) best_text);
+ qf->len = best_len;
+ }
+ else
+ {
+ qf->text = NULL;
+ qf->len = 0;
+ }
}
- }
}
/********************** END OF FILE ********************************* \
Modified: gnucash/trunk/src/gnome-utils/QuickFill.h
===================================================================
--- gnucash/trunk/src/gnome-utils/QuickFill.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/QuickFill.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -55,8 +55,8 @@
typedef enum
{
- QUICKFILL_LIFO,
- QUICKFILL_ALPHA
+ QUICKFILL_LIFO,
+ QUICKFILL_ALPHA
} QuickFillSort;
typedef struct _QuickFill QuickFill;
@@ -96,13 +96,13 @@
* use the gnc_mbstowcs() routine.
*/
QuickFill * gnc_quickfill_get_string_match (QuickFill *qf,
- const char *str);
+ const char *str);
/** Same as gnc_quickfill_get_string_match(), except that the
* string length is explicitly specified.
*/
QuickFill * gnc_quickfill_get_string_len_match (QuickFill *qf,
- const char *str, int len);
+ const char *str, int len);
/** Walk a 'unique' part of the QuickFill tree. This routine is
* typically used to assist in the tab-completion of strings.
Modified: gnucash/trunk/src/gnome-utils/account-quickfill.c
===================================================================
--- gnucash/trunk/src/gnome-utils/account-quickfill.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/account-quickfill.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -32,7 +32,7 @@
static void shared_quickfill_gconf_changed (GConfEntry *entry, gpointer qfb);
static void listen_for_account_events (QofInstance *entity, QofEventId event_type,
- gpointer user_data, gpointer event_data);
+ gpointer user_data, gpointer event_data);
/* Column indices for the list store */
#define ACCOUNT_NAME 0
@@ -42,68 +42,72 @@
/* ===================================================================== */
/* In order to speed up register starts for registers that have a huge
* number of accounts in them (where 'huge' is >500) we build a quickfill
- * cache of account names. This cache is needed because some users on
+ * cache of account names. This cache is needed because some users on
* some machines experience register open times in the tens of seconds
* type timescales. Building the quickfill list accounts for almost
- * all of that cpu time (about 90% of the xfer_cell build time for 600
+ * all of that cpu time (about 90% of the xfer_cell build time for 600
* accounts).
*/
-typedef struct {
- QuickFill *qf;
- gboolean load_list_store;
- GtkListStore *list_store;
- QofBook *book;
- Account *root;
- gint listener;
- AccountBoolCB dont_add_cb;
- gpointer dont_add_data;
+typedef struct
+{
+ QuickFill *qf;
+ gboolean load_list_store;
+ GtkListStore *list_store;
+ QofBook *book;
+ Account *root;
+ gint listener;
+ AccountBoolCB dont_add_cb;
+ gpointer dont_add_data;
} QFB;
-static void
+static void
shared_quickfill_destroy (QofBook *book, gpointer key, gpointer user_data)
{
- QFB *qfb = user_data;
- gnc_gconf_general_remove_cb(KEY_ACCOUNT_SEPARATOR,
- shared_quickfill_gconf_changed,
- qfb);
- gnc_gconf_general_remove_cb(KEY_SHOW_LEAF_ACCOUNT_NAMES,
- shared_quickfill_gconf_changed,
- qfb);
- gnc_quickfill_destroy (qfb->qf);
- g_object_unref(qfb->list_store);
- qof_event_unregister_handler (qfb->listener);
- g_free (qfb);
+ QFB *qfb = user_data;
+ gnc_gconf_general_remove_cb(KEY_ACCOUNT_SEPARATOR,
+ shared_quickfill_gconf_changed,
+ qfb);
+ gnc_gconf_general_remove_cb(KEY_SHOW_LEAF_ACCOUNT_NAMES,
+ shared_quickfill_gconf_changed,
+ qfb);
+ gnc_quickfill_destroy (qfb->qf);
+ g_object_unref(qfb->list_store);
+ qof_event_unregister_handler (qfb->listener);
+ g_free (qfb);
}
-typedef struct find_data {
- GList *accounts;
- GList *refs;
+typedef struct find_data
+{
+ GList *accounts;
+ GList *refs;
} find_data;
static gboolean
shared_quickfill_find_accounts (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer user_data)
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer user_data)
{
- Account *account = NULL;
- find_data *data = user_data;
- GtkTreeRowReference* ref;
- GList *tmp;
+ Account *account = NULL;
+ find_data *data = user_data;
+ GtkTreeRowReference* ref;
+ GList *tmp;
- gtk_tree_model_get(model, iter, ACCOUNT_POINTER, &account, -1);
- for (tmp = data->accounts; tmp; tmp = g_list_next(tmp)) {
- if (tmp->data == account) {
- ref = gtk_tree_row_reference_new(model, path);
- data->refs = g_list_append(data->refs, ref);
- data->accounts = g_list_remove_link(data->accounts, tmp);
- return (data->accounts == NULL);
+ gtk_tree_model_get(model, iter, ACCOUNT_POINTER, &account, -1);
+ for (tmp = data->accounts; tmp; tmp = g_list_next(tmp))
+ {
+ if (tmp->data == account)
+ {
+ ref = gtk_tree_row_reference_new(model, path);
+ data->refs = g_list_append(data->refs, ref);
+ data->accounts = g_list_remove_link(data->accounts, tmp);
+ return (data->accounts == NULL);
+ }
}
- }
- return FALSE;
+ return FALSE;
}
@@ -111,271 +115,287 @@
static void
load_shared_qf_cb (Account *account, gpointer data)
{
- QFB *qfb = data;
- char *name;
- GtkTreeIter iter;
+ QFB *qfb = data;
+ char *name;
+ GtkTreeIter iter;
- if (qfb->dont_add_cb)
- {
- gboolean skip = (qfb->dont_add_cb) (account, qfb->dont_add_data);
- if (skip) return;
- }
+ if (qfb->dont_add_cb)
+ {
+ gboolean skip = (qfb->dont_add_cb) (account, qfb->dont_add_data);
+ if (skip) return;
+ }
- name = gnc_get_account_name_for_register (account);
- if (NULL == name) return;
- gnc_quickfill_insert (qfb->qf, name, QUICKFILL_ALPHA);
- if (qfb->load_list_store) {
- gtk_list_store_append (qfb->list_store, &iter);
- gtk_list_store_set (qfb->list_store, &iter,
- ACCOUNT_NAME, name,
- ACCOUNT_POINTER, account,
- -1);
- }
- g_free(name);
+ name = gnc_get_account_name_for_register (account);
+ if (NULL == name) return;
+ gnc_quickfill_insert (qfb->qf, name, QUICKFILL_ALPHA);
+ if (qfb->load_list_store)
+ {
+ gtk_list_store_append (qfb->list_store, &iter);
+ gtk_list_store_set (qfb->list_store, &iter,
+ ACCOUNT_NAME, name,
+ ACCOUNT_POINTER, account,
+ -1);
+ }
+ g_free(name);
}
static void
shared_quickfill_gconf_changed (GConfEntry *entry, gpointer user_data)
{
- QFB *qfb = user_data;
+ QFB *qfb = user_data;
- /* Reload the quickfill */
- gnc_quickfill_purge(qfb->qf);
- gtk_list_store_clear(qfb->list_store);
- qfb->load_list_store = TRUE;
- gnc_account_foreach_descendant(qfb->root, load_shared_qf_cb, qfb);
- qfb->load_list_store = FALSE;
+ /* Reload the quickfill */
+ gnc_quickfill_purge(qfb->qf);
+ gtk_list_store_clear(qfb->list_store);
+ qfb->load_list_store = TRUE;
+ gnc_account_foreach_descendant(qfb->root, load_shared_qf_cb, qfb);
+ qfb->load_list_store = FALSE;
}
-/* Build the quickfill list out of account names.
+/* Build the quickfill list out of account names.
* Essentially same loop as in gnc_load_xfer_cell() above.
*/
static QFB *
build_shared_quickfill (QofBook *book, Account *root, const char * key,
AccountBoolCB cb, gpointer data)
{
- QFB *qfb;
+ QFB *qfb;
- qfb = g_new0(QFB, 1);
- qfb->qf = gnc_quickfill_new ();
- qfb->book = book;
- qfb->root = root;
- qfb->listener = 0;
- qfb->dont_add_cb = cb;
- qfb->dont_add_data = data;
- qfb->load_list_store = TRUE;
- qfb->list_store =
- gtk_list_store_new (NUM_ACCOUNT_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER);
+ qfb = g_new0(QFB, 1);
+ qfb->qf = gnc_quickfill_new ();
+ qfb->book = book;
+ qfb->root = root;
+ qfb->listener = 0;
+ qfb->dont_add_cb = cb;
+ qfb->dont_add_data = data;
+ qfb->load_list_store = TRUE;
+ qfb->list_store =
+ gtk_list_store_new (NUM_ACCOUNT_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER);
- gnc_gconf_general_register_cb(KEY_ACCOUNT_SEPARATOR,
- shared_quickfill_gconf_changed,
- qfb);
+ gnc_gconf_general_register_cb(KEY_ACCOUNT_SEPARATOR,
+ shared_quickfill_gconf_changed,
+ qfb);
- gnc_gconf_general_register_cb(KEY_SHOW_LEAF_ACCOUNT_NAMES,
- shared_quickfill_gconf_changed,
- qfb);
+ gnc_gconf_general_register_cb(KEY_SHOW_LEAF_ACCOUNT_NAMES,
+ shared_quickfill_gconf_changed,
+ qfb);
- gnc_account_foreach_descendant(root, load_shared_qf_cb, qfb);
- qfb->load_list_store = FALSE;
+ gnc_account_foreach_descendant(root, load_shared_qf_cb, qfb);
+ qfb->load_list_store = FALSE;
- qfb->listener =
- qof_event_register_handler (listen_for_account_events, qfb);
+ qfb->listener =
+ qof_event_register_handler (listen_for_account_events, qfb);
- qof_book_set_data_fin (book, key, qfb, shared_quickfill_destroy);
+ qof_book_set_data_fin (book, key, qfb, shared_quickfill_destroy);
- return qfb;
+ return qfb;
}
QuickFill *
-gnc_get_shared_account_name_quickfill (Account *root,
- const char * key,
+gnc_get_shared_account_name_quickfill (Account *root,
+ const char * key,
AccountBoolCB cb, gpointer cb_data)
{
- QFB *qfb;
- QofBook *book;
+ QFB *qfb;
+ QofBook *book;
- book = gnc_account_get_book (root);
- qfb = qof_book_get_data (book, key);
+ book = gnc_account_get_book (root);
+ qfb = qof_book_get_data (book, key);
- if (qfb) return qfb->qf;
+ if (qfb) return qfb->qf;
- qfb = build_shared_quickfill (book, root, key, cb, cb_data);
- return qfb->qf;
+ qfb = build_shared_quickfill (book, root, key, cb, cb_data);
+ return qfb->qf;
}
GtkListStore *
-gnc_get_shared_account_name_list_store (Account *root,
- const char * key,
- AccountBoolCB cb, gpointer cb_data)
+gnc_get_shared_account_name_list_store (Account *root,
+ const char * key,
+ AccountBoolCB cb, gpointer cb_data)
{
- QFB *qfb;
- QofBook *book;
+ QFB *qfb;
+ QofBook *book;
- book = gnc_account_get_book (root);
- qfb = qof_book_get_data (book, key);
+ book = gnc_account_get_book (root);
+ qfb = qof_book_get_data (book, key);
- if (qfb) return qfb->list_store;
+ if (qfb) return qfb->list_store;
- qfb = build_shared_quickfill (book, root, key, cb, cb_data);
- return qfb->list_store;
+ qfb = build_shared_quickfill (book, root, key, cb, cb_data);
+ return qfb->list_store;
}
-/* Since we are maintaining a 'global' quickfill list, we need to
+/* Since we are maintaining a 'global' quickfill list, we need to
* update it whenever the user creates a new account. So listen
* for account modification events, and add new accounts.
*/
static void
listen_for_account_events (QofInstance *entity, QofEventId event_type,
- gpointer user_data, gpointer event_data)
+ gpointer user_data, gpointer event_data)
{
- QFB *qfb = user_data;
- QuickFill *qf = qfb->qf;
- QuickFill *match;
- char * name;
- const char *match_str;
- Account *account;
- GtkTreeIter iter;
- find_data data = { 0 };
- GtkTreePath *path;
- GList *tmp;
+ QFB *qfb = user_data;
+ QuickFill *qf = qfb->qf;
+ QuickFill *match;
+ char * name;
+ const char *match_str;
+ Account *account;
+ GtkTreeIter iter;
+ find_data data = { 0 };
+ GtkTreePath *path;
+ GList *tmp;
- if (0 == (event_type & (QOF_EVENT_MODIFY | QOF_EVENT_ADD | QOF_EVENT_REMOVE)))
- return;
+ if (0 == (event_type & (QOF_EVENT_MODIFY | QOF_EVENT_ADD | QOF_EVENT_REMOVE)))
+ return;
- if (!GNC_IS_ACCOUNT (entity))
- return;
- account = GNC_ACCOUNT (entity);
+ if (!GNC_IS_ACCOUNT (entity))
+ return;
+ account = GNC_ACCOUNT (entity);
- ENTER("entity %p, event type %x, user data %p, ecent data %p",
- entity, event_type, user_data, event_data);
+ ENTER("entity %p, event type %x, user data %p, ecent data %p",
+ entity, event_type, user_data, event_data);
- if (gnc_account_get_root(account) != qfb->root) {
- LEAVE("root account mismatch");
- return;
- }
+ if (gnc_account_get_root(account) != qfb->root)
+ {
+ LEAVE("root account mismatch");
+ return;
+ }
- name = gnc_get_account_name_for_register(account);
- if (NULL == name) {
- LEAVE("account has no name");
- return;
- }
+ name = gnc_get_account_name_for_register(account);
+ if (NULL == name)
+ {
+ LEAVE("account has no name");
+ return;
+ }
- switch (event_type) {
+ switch (event_type)
+ {
case QOF_EVENT_MODIFY:
- DEBUG("modify %s", name);
+ DEBUG("modify %s", name);
- /* Find the account (and all its descendants) in the model. The
- * full name of all these accounts has changed. */
- data.accounts = gnc_account_get_descendants(account);
- data.accounts = g_list_prepend(data.accounts, account);
- gtk_tree_model_foreach(GTK_TREE_MODEL(qfb->list_store),
- shared_quickfill_find_accounts, &data);
+ /* Find the account (and all its descendants) in the model. The
+ * full name of all these accounts has changed. */
+ data.accounts = gnc_account_get_descendants(account);
+ data.accounts = g_list_prepend(data.accounts, account);
+ gtk_tree_model_foreach(GTK_TREE_MODEL(qfb->list_store),
+ shared_quickfill_find_accounts, &data);
- /* Update the existing items in the list store. Its possible
- * that the change has caused an existing item to now become
- * hidden, in which case it needs to be removed from the list
- * store. Otherwise its a simple update of the name string. */
- for (tmp = data.refs; tmp; tmp = g_list_next(tmp)) {
- path = gtk_tree_row_reference_get_path(tmp->data);
- gtk_tree_row_reference_free(tmp->data);
- if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(qfb->list_store),
- &iter, path)) {
- gtk_tree_path_free(path);
- continue;
- }
- gtk_tree_path_free(path);
- gtk_tree_model_get(GTK_TREE_MODEL(qfb->list_store), &iter,
- ACCOUNT_POINTER, &account,
- -1);
- if (qfb->dont_add_cb &&
- qfb->dont_add_cb(account, qfb->dont_add_data)) {
- gtk_list_store_remove(qfb->list_store, &iter);
- } else {
- gchar *aname = gnc_get_account_name_for_register(account);
- gtk_list_store_set(qfb->list_store, &iter,
- ACCOUNT_NAME, aname,
- -1);
- g_free(aname);
- }
- }
+ /* Update the existing items in the list store. Its possible
+ * that the change has caused an existing item to now become
+ * hidden, in which case it needs to be removed from the list
+ * store. Otherwise its a simple update of the name string. */
+ for (tmp = data.refs; tmp; tmp = g_list_next(tmp))
+ {
+ path = gtk_tree_row_reference_get_path(tmp->data);
+ gtk_tree_row_reference_free(tmp->data);
+ if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(qfb->list_store),
+ &iter, path))
+ {
+ gtk_tree_path_free(path);
+ continue;
+ }
+ gtk_tree_path_free(path);
+ gtk_tree_model_get(GTK_TREE_MODEL(qfb->list_store), &iter,
+ ACCOUNT_POINTER, &account,
+ -1);
+ if (qfb->dont_add_cb &&
+ qfb->dont_add_cb(account, qfb->dont_add_data))
+ {
+ gtk_list_store_remove(qfb->list_store, &iter);
+ }
+ else
+ {
+ gchar *aname = gnc_get_account_name_for_register(account);
+ gtk_list_store_set(qfb->list_store, &iter,
+ ACCOUNT_NAME, aname,
+ -1);
+ g_free(aname);
+ }
+ }
- /* Any accounts that weren't found in the tree are accounts that
- * were hidden but have now become visible. Add them to the list
- * store. */
- for (tmp = data.accounts; tmp; tmp = g_list_next(tmp)) {
- account = tmp->data;
- if (qfb->dont_add_cb) {
- if (qfb->dont_add_cb(account, qfb->dont_add_data)) {
- continue;
- }
- }
- gtk_list_store_append (qfb->list_store, &iter);
- gtk_list_store_set (qfb->list_store, &iter,
- ACCOUNT_NAME, name,
- ACCOUNT_POINTER, account,
- -1);
- }
- break;
+ /* Any accounts that weren't found in the tree are accounts that
+ * were hidden but have now become visible. Add them to the list
+ * store. */
+ for (tmp = data.accounts; tmp; tmp = g_list_next(tmp))
+ {
+ account = tmp->data;
+ if (qfb->dont_add_cb)
+ {
+ if (qfb->dont_add_cb(account, qfb->dont_add_data))
+ {
+ continue;
+ }
+ }
+ gtk_list_store_append (qfb->list_store, &iter);
+ gtk_list_store_set (qfb->list_store, &iter,
+ ACCOUNT_NAME, name,
+ ACCOUNT_POINTER, account,
+ -1);
+ }
+ break;
case QOF_EVENT_REMOVE:
- DEBUG("remove %s", name);
+ DEBUG("remove %s", name);
- /* Remove from qf */
- gnc_quickfill_remove(qfb->qf, name, QUICKFILL_ALPHA);
+ /* Remove from qf */
+ gnc_quickfill_remove(qfb->qf, name, QUICKFILL_ALPHA);
- /* Does the account exist in the model? */
- data.accounts = g_list_append(NULL, account);
- gtk_tree_model_foreach(GTK_TREE_MODEL(qfb->list_store),
- shared_quickfill_find_accounts, &data);
+ /* Does the account exist in the model? */
+ data.accounts = g_list_append(NULL, account);
+ gtk_tree_model_foreach(GTK_TREE_MODEL(qfb->list_store),
+ shared_quickfill_find_accounts, &data);
- /* Remove from list store */
- for (tmp = data.refs; tmp; tmp = g_list_next(tmp)) {
- path = gtk_tree_row_reference_get_path (tmp->data);
- gtk_tree_row_reference_free (tmp->data);
- if (gtk_tree_model_get_iter(GTK_TREE_MODEL(qfb->list_store),
- &iter, path)) {
- gtk_list_store_remove(qfb->list_store, &iter);
- }
- gtk_tree_path_free(path);
- }
- break;
+ /* Remove from list store */
+ for (tmp = data.refs; tmp; tmp = g_list_next(tmp))
+ {
+ path = gtk_tree_row_reference_get_path (tmp->data);
+ gtk_tree_row_reference_free (tmp->data);
+ if (gtk_tree_model_get_iter(GTK_TREE_MODEL(qfb->list_store),
+ &iter, path))
+ {
+ gtk_list_store_remove(qfb->list_store, &iter);
+ }
+ gtk_tree_path_free(path);
+ }
+ break;
case QOF_EVENT_ADD:
- DEBUG("add %s", name);
- if (qfb->dont_add_cb &&
- qfb->dont_add_cb(account, qfb->dont_add_data))
- break;
+ DEBUG("add %s", name);
+ if (qfb->dont_add_cb &&
+ qfb->dont_add_cb(account, qfb->dont_add_data))
+ break;
- match = gnc_quickfill_get_string_match (qf, name);
- if (match) {
- match_str = gnc_quickfill_string (match);
- if (match_str && (safe_strcmp(match_str, name) != 0)) {
- PINFO ("got match for %s", name);
- break;
- }
- }
+ match = gnc_quickfill_get_string_match (qf, name);
+ if (match)
+ {
+ match_str = gnc_quickfill_string (match);
+ if (match_str && (safe_strcmp(match_str, name) != 0))
+ {
+ PINFO ("got match for %s", name);
+ break;
+ }
+ }
- PINFO ("insert new account %s into qf=%p", name, qf);
- gnc_quickfill_insert (qf, name, QUICKFILL_ALPHA);
- gtk_list_store_append (qfb->list_store, &iter);
- gtk_list_store_set (qfb->list_store, &iter,
- ACCOUNT_NAME, name,
- ACCOUNT_POINTER, account,
- -1);
- break;
+ PINFO ("insert new account %s into qf=%p", name, qf);
+ gnc_quickfill_insert (qf, name, QUICKFILL_ALPHA);
+ gtk_list_store_append (qfb->list_store, &iter);
+ gtk_list_store_set (qfb->list_store, &iter,
+ ACCOUNT_NAME, name,
+ ACCOUNT_POINTER, account,
+ -1);
+ break;
default:
- DEBUG("other %s", name);
- break;
- }
+ DEBUG("other %s", name);
+ break;
+ }
- if (data.accounts)
- g_list_free(data.accounts);
- if (data.refs)
- g_list_free(data.refs);
- g_free(name);
- LEAVE(" ");
+ if (data.accounts)
+ g_list_free(data.accounts);
+ if (data.refs)
+ g_list_free(data.refs);
+ g_free(name);
+ LEAVE(" ");
}
/* ====================== END OF FILE ================================== */
Modified: gnucash/trunk/src/gnome-utils/account-quickfill.h
===================================================================
--- gnucash/trunk/src/gnome-utils/account-quickfill.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/account-quickfill.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -69,13 +69,13 @@
* events.
*/
QuickFill * gnc_get_shared_account_name_quickfill (Account *root,
- const char * key,
- AccountBoolCB skip_cb,
- gpointer cb_data);
+ const char * key,
+ AccountBoolCB skip_cb,
+ gpointer cb_data);
GtkListStore *
gnc_get_shared_account_name_list_store (Account *root,
- const char * key,
- AccountBoolCB cb, gpointer cb_data);
+ const char * key,
+ AccountBoolCB cb, gpointer cb_data);
#endif
Modified: gnucash/trunk/src/gnome-utils/cursors.c
===================================================================
--- gnucash/trunk/src/gnome-utils/cursors.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/cursors.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -38,40 +38,40 @@
typedef enum
{
- GNC_CURSOR_NORMAL = -1,
- GNC_CURSOR_BUSY = GDK_WATCH
+ GNC_CURSOR_NORMAL = -1,
+ GNC_CURSOR_BUSY = GDK_WATCH
} GNCCursorType;
/********************************************************************\
- * gnc_ui_set_cursor *
- * sets the cursor to the specified type *
- * *
+ * gnc_ui_set_cursor *
+ * sets the cursor to the specified type *
+ * *
* Args: w - the widget over which to change the cursor *
* type - the type of cursor to make *
- * Return: none *
+ * Return: none *
\********************************************************************/
static void
gnc_ui_set_cursor (GdkWindow *win, GNCCursorType type, gboolean update_now)
{
- GdkCursor *cursor = NULL;
+ GdkCursor *cursor = NULL;
- if (win == NULL)
- return;
+ if (win == NULL)
+ return;
- if (type != GNC_CURSOR_NORMAL)
- cursor = gdk_cursor_new (type);
+ if (type != GNC_CURSOR_NORMAL)
+ cursor = gdk_cursor_new (type);
- gdk_window_set_cursor (win, cursor);
+ gdk_window_set_cursor (win, cursor);
- if (update_now && type != GNC_CURSOR_NORMAL)
- {
- while (gtk_events_pending ())
- gtk_main_iteration ();
- }
+ if (update_now && type != GNC_CURSOR_NORMAL)
+ {
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+ }
- if (type != GNC_CURSOR_NORMAL)
- gdk_cursor_unref (cursor);
+ if (type != GNC_CURSOR_NORMAL)
+ gdk_cursor_unref (cursor);
}
@@ -85,56 +85,56 @@
* call returns. *
* Return: none *
\********************************************************************/
-void
+void
gnc_set_busy_cursor (GtkWidget *w, gboolean update_now)
{
- if (w != NULL)
- gnc_ui_set_cursor (w->window, GNC_CURSOR_BUSY, update_now);
- else
- {
- GList *containerstop, *node;
-
- for (containerstop = node = gtk_window_list_toplevels (); node; node = node->next)
+ if (w != NULL)
+ gnc_ui_set_cursor (w->window, GNC_CURSOR_BUSY, update_now);
+ else
{
- w = node->data;
+ GList *containerstop, *node;
- if (!w || !GTK_IS_WIDGET (w) || !w->window)
- continue;
+ for (containerstop = node = gtk_window_list_toplevels (); node; node = node->next)
+ {
+ w = node->data;
- gnc_ui_set_cursor (w->window, GNC_CURSOR_BUSY, update_now);
+ if (!w || !GTK_IS_WIDGET (w) || !w->window)
+ continue;
+
+ gnc_ui_set_cursor (w->window, GNC_CURSOR_BUSY, update_now);
+ }
+ g_list_free (containerstop);
}
- g_list_free (containerstop);
- }
}
/********************************************************************\
- * gnc_unset_busy_cursor *
- * sets the cursor to the default cursor for the given window. *
+ * gnc_unset_busy_cursor *
+ * sets the cursor to the default cursor for the given window. *
* if the window is null, sets the cursor for all toplevel windows*
- * *
- * Args: w - the widget over which to make cursor normal *
- * Return: none *
+ * *
+ * Args: w - the widget over which to make cursor normal *
+ * Return: none *
\********************************************************************/
-void
+void
gnc_unset_busy_cursor (GtkWidget *w)
{
- if (w != NULL)
- gnc_ui_set_cursor (w->window, GNC_CURSOR_NORMAL, FALSE);
- else
- {
- GList *containerstop, *node;
-
- for (containerstop = node = gtk_window_list_toplevels (); node; node = node->next)
+ if (w != NULL)
+ gnc_ui_set_cursor (w->window, GNC_CURSOR_NORMAL, FALSE);
+ else
{
- w = GTK_WIDGET (node->data);
+ GList *containerstop, *node;
- if (!w || !GTK_IS_WIDGET (w) || GTK_WIDGET_NO_WINDOW(w))
- continue;
+ for (containerstop = node = gtk_window_list_toplevels (); node; node = node->next)
+ {
+ w = GTK_WIDGET (node->data);
- gnc_ui_set_cursor (w->window, GNC_CURSOR_NORMAL, FALSE);
+ if (!w || !GTK_IS_WIDGET (w) || GTK_WIDGET_NO_WINDOW(w))
+ continue;
+
+ gnc_ui_set_cursor (w->window, GNC_CURSOR_NORMAL, FALSE);
+ }
+ g_list_free (containerstop);
}
- g_list_free (containerstop);
- }
}
Modified: gnucash/trunk/src/gnome-utils/dialog-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-account.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-account.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -55,79 +55,80 @@
#define GCONF_SECTION "dialogs/account"
#define DEFAULT_COLOR "#ededececebeb"
-enum account_cols {
- ACCOUNT_COL_FULLNAME = 0,
- ACCOUNT_COL_FIELDNAME,
- ACCOUNT_COL_OLD_VALUE,
- ACCOUNT_COL_NEW_VALUE,
- NUM_ACCOUNT_COLS
+enum account_cols
+{
+ ACCOUNT_COL_FULLNAME = 0,
+ ACCOUNT_COL_FIELDNAME,
+ ACCOUNT_COL_OLD_VALUE,
+ ACCOUNT_COL_NEW_VALUE,
+ NUM_ACCOUNT_COLS
};
typedef enum
{
- NEW_ACCOUNT,
- EDIT_ACCOUNT
+ NEW_ACCOUNT,
+ EDIT_ACCOUNT
} AccountDialogType;
typedef struct _AccountWindow
{
- QofBook *book;
- gboolean modal;
- GtkWidget *dialog;
+ QofBook *book;
+ gboolean modal;
+ GtkWidget *dialog;
- AccountDialogType dialog_type;
+ AccountDialogType dialog_type;
- GUID account;
- Account *created_account;
+ GUID account;
+ Account *created_account;
- gchar **subaccount_names;
- gchar **next_name;
+ gchar **subaccount_names;
+ gchar **next_name;
- GNCAccountType type;
+ GNCAccountType type;
- GtkWidget * notebook;
+ GtkWidget * notebook;
- GtkWidget * name_entry;
- GtkWidget * description_entry;
- GtkWidget * color_entry_button;
- GtkWidget * color_default_button;
- GtkWidget * code_entry;
- GtkTextBuffer * notes_text_buffer;
+ GtkWidget * name_entry;
+ GtkWidget * description_entry;
+ GtkWidget * color_entry_button;
+ GtkWidget * color_default_button;
+ GtkWidget * code_entry;
+ GtkTextBuffer * notes_text_buffer;
- GtkWidget * commodity_edit;
- dialog_commodity_mode commodity_mode;
- GtkWidget * account_scu;
+ GtkWidget * commodity_edit;
+ dialog_commodity_mode commodity_mode;
+ GtkWidget * account_scu;
- guint32 valid_types;
- GNCAccountType preferred_account_type;
- GtkWidget * type_view;
- GtkTreeView * parent_tree;
+ guint32 valid_types;
+ GNCAccountType preferred_account_type;
+ GtkWidget * type_view;
+ GtkTreeView * parent_tree;
- GtkWidget * opening_balance_edit;
- GtkWidget * opening_balance_date_edit;
- GtkWidget * opening_balance_page;
+ GtkWidget * opening_balance_edit;
+ GtkWidget * opening_balance_date_edit;
+ GtkWidget * opening_balance_page;
- GtkWidget * opening_equity_radio;
- GtkWidget * transfer_account_scroll;
- GtkWidget * transfer_tree;
+ GtkWidget * opening_equity_radio;
+ GtkWidget * transfer_account_scroll;
+ GtkWidget * transfer_tree;
- GtkWidget * tax_related_button;
- GtkWidget * placeholder_button;
- GtkWidget * hidden_button;
+ GtkWidget * tax_related_button;
+ GtkWidget * placeholder_button;
+ GtkWidget * hidden_button;
- gint component_id;
+ gint component_id;
} AccountWindow;
typedef struct _RenumberDialog
{
- GtkWidget *dialog;
- GtkWidget *prefix;
- GtkWidget *interval;
- GtkWidget *example1;
- GtkWidget *example2;
+ GtkWidget *dialog;
+ GtkWidget *prefix;
+ GtkWidget *interval;
+ GtkWidget *example1;
+ GtkWidget *example2;
- Account *parent;
- gint num_children;
+ Account *parent;
+ gint num_children;
} RenumberDialog;
/** Static Globals *******************************************************/
@@ -149,111 +150,118 @@
static void
aw_call_destroy_callbacks (Account* acc)
{
- GList *node;
- void (*cb)(Account*);
+ GList *node;
+ void (*cb)(Account*);
- for (node = ac_destroy_cb_list; node; node = node->next) {
- cb = node->data;
- (cb)(acc);
- }
+ for (node = ac_destroy_cb_list; node; node = node->next)
+ {
+ cb = node->data;
+ (cb)(acc);
+ }
}
static Account *
aw_get_account (AccountWindow *aw)
{
- if (!aw)
- return NULL;
+ if (!aw)
+ return NULL;
- return xaccAccountLookup (&aw->account, aw->book);
+ return xaccAccountLookup (&aw->account, aw->book);
}
static void
gnc_account_commodity_from_type (AccountWindow * aw, gboolean update)
{
- dialog_commodity_mode new_mode;
+ dialog_commodity_mode new_mode;
- if (aw->type == ACCT_TYPE_TRADING)
- new_mode = DIAG_COMM_ALL;
- else if ((aw->type == ACCT_TYPE_STOCK) || (aw->type == ACCT_TYPE_MUTUAL))
- new_mode = DIAG_COMM_NON_CURRENCY;
- else
- new_mode = DIAG_COMM_CURRENCY;
+ if (aw->type == ACCT_TYPE_TRADING)
+ new_mode = DIAG_COMM_ALL;
+ else if ((aw->type == ACCT_TYPE_STOCK) || (aw->type == ACCT_TYPE_MUTUAL))
+ new_mode = DIAG_COMM_NON_CURRENCY;
+ else
+ new_mode = DIAG_COMM_CURRENCY;
- if (update && (new_mode != aw->commodity_mode)) {
- gnc_general_select_set_selected(GNC_GENERAL_SELECT (aw->commodity_edit),
- NULL);
- }
+ if (update && (new_mode != aw->commodity_mode))
+ {
+ gnc_general_select_set_selected(GNC_GENERAL_SELECT (aw->commodity_edit),
+ NULL);
+ }
- aw->commodity_mode = new_mode;
+ aw->commodity_mode = new_mode;
}
/* Copy the account values to the GUI widgets */
static void
gnc_account_to_ui(AccountWindow *aw)
{
- Account *account;
- gnc_commodity * commodity;
- const char *string;
- GdkColor color;
- gboolean flag, nonstd_scu;
- gint index;
+ Account *account;
+ gnc_commodity * commodity;
+ const char *string;
+ GdkColor color;
+ gboolean flag, nonstd_scu;
+ gint index;
- ENTER("%p", aw);
- account = aw_get_account (aw);
- if (!account) {
- LEAVE("no account");
- return;
- }
+ ENTER("%p", aw);
+ account = aw_get_account (aw);
+ if (!account)
+ {
+ LEAVE("no account");
+ return;
+ }
- string = xaccAccountGetName (account);
- if (string == NULL) string = "";
- gtk_entry_set_text(GTK_ENTRY(aw->name_entry), string);
+ string = xaccAccountGetName (account);
+ if (string == NULL) string = "";
+ gtk_entry_set_text(GTK_ENTRY(aw->name_entry), string);
- string = xaccAccountGetDescription (account);
- if (string == NULL) string = "";
- gtk_entry_set_text(GTK_ENTRY(aw->description_entry), string);
+ string = xaccAccountGetDescription (account);
+ if (string == NULL) string = "";
+ gtk_entry_set_text(GTK_ENTRY(aw->description_entry), string);
- string = xaccAccountGetColor (account);
- if (string == NULL) string = "";
- if (gdk_color_parse(string, &color)) {
- gtk_color_button_set_color(GTK_COLOR_BUTTON(aw->color_entry_button), &color);
- }
+ string = xaccAccountGetColor (account);
+ if (string == NULL) string = "";
+ if (gdk_color_parse(string, &color))
+ {
+ gtk_color_button_set_color(GTK_COLOR_BUTTON(aw->color_entry_button), &color);
+ }
- commodity = xaccAccountGetCommodity (account);
- gnc_general_select_set_selected (GNC_GENERAL_SELECT (aw->commodity_edit),
- commodity);
- gnc_account_commodity_from_type (aw, FALSE);
+ commodity = xaccAccountGetCommodity (account);
+ gnc_general_select_set_selected (GNC_GENERAL_SELECT (aw->commodity_edit),
+ commodity);
+ gnc_account_commodity_from_type (aw, FALSE);
- nonstd_scu = xaccAccountGetNonStdSCU (account);
- if (nonstd_scu) {
- index = xaccAccountGetCommoditySCUi(account);
- index = log10(index) + 1;
- } else {
- index = 0;
- }
- gtk_combo_box_set_active(GTK_COMBO_BOX(aw->account_scu), index);
+ nonstd_scu = xaccAccountGetNonStdSCU (account);
+ if (nonstd_scu)
+ {
+ index = xaccAccountGetCommoditySCUi(account);
+ index = log10(index) + 1;
+ }
+ else
+ {
+ index = 0;
+ }
+ gtk_combo_box_set_active(GTK_COMBO_BOX(aw->account_scu), index);
- string = xaccAccountGetCode (account);
- if (string == NULL) string = "";
- gtk_entry_set_text(GTK_ENTRY(aw->code_entry), string);
+ string = xaccAccountGetCode (account);
+ if (string == NULL) string = "";
+ gtk_entry_set_text(GTK_ENTRY(aw->code_entry), string);
- string = xaccAccountGetNotes (account);
- if (string == NULL) string = "";
+ string = xaccAccountGetNotes (account);
+ if (string == NULL) string = "";
- gtk_text_buffer_set_text (aw->notes_text_buffer, string, strlen(string));
+ gtk_text_buffer_set_text (aw->notes_text_buffer, string, strlen(string));
- flag = xaccAccountGetTaxRelated (account);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->tax_related_button),
- flag);
+ flag = xaccAccountGetTaxRelated (account);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->tax_related_button),
+ flag);
- flag = xaccAccountGetPlaceholder (account);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->placeholder_button),
- flag);
+ flag = xaccAccountGetPlaceholder (account);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->placeholder_button),
+ flag);
- flag = xaccAccountGetHidden (account);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->hidden_button),
- flag);
- LEAVE(" ");
+ flag = xaccAccountGetHidden (account);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->hidden_button),
+ flag);
+ LEAVE(" ");
}
@@ -264,191 +272,198 @@
gnc_numeric balance,
time_t date)
{
- Transaction *trans;
- Split *split;
+ Transaction *trans;
+ Split *split;
- if (gnc_numeric_zero_p (balance))
- return TRUE;
+ if (gnc_numeric_zero_p (balance))
+ return TRUE;
- g_return_val_if_fail (account != NULL, FALSE);
- g_return_val_if_fail (transfer != NULL, FALSE);
+ g_return_val_if_fail (account != NULL, FALSE);
+ g_return_val_if_fail (transfer != NULL, FALSE);
- xaccAccountBeginEdit (account);
- xaccAccountBeginEdit (transfer);
+ xaccAccountBeginEdit (account);
+ xaccAccountBeginEdit (transfer);
- trans = xaccMallocTransaction (book);
+ trans = xaccMallocTransaction (book);
- xaccTransBeginEdit (trans);
+ xaccTransBeginEdit (trans);
- xaccTransSetCurrency (trans, xaccAccountGetCommodity (account));
- xaccTransSetDateSecs (trans, date);
- xaccTransSetDescription (trans, _("Opening Balance"));
+ xaccTransSetCurrency (trans, xaccAccountGetCommodity (account));
+ xaccTransSetDateSecs (trans, date);
+ xaccTransSetDescription (trans, _("Opening Balance"));
- split = xaccMallocSplit (book);
+ split = xaccMallocSplit (book);
- xaccTransAppendSplit (trans, split);
- xaccAccountInsertSplit (account, split);
+ xaccTransAppendSplit (trans, split);
+ xaccAccountInsertSplit (account, split);
- xaccSplitSetAmount (split, balance);
- xaccSplitSetValue (split, balance);
+ xaccSplitSetAmount (split, balance);
+ xaccSplitSetValue (split, balance);
- balance = gnc_numeric_neg (balance);
+ balance = gnc_numeric_neg (balance);
- split = xaccMallocSplit (book);
+ split = xaccMallocSplit (book);
- xaccTransAppendSplit (trans, split);
- xaccAccountInsertSplit (transfer, split);
+ xaccTransAppendSplit (trans, split);
+ xaccAccountInsertSplit (transfer, split);
- xaccSplitSetAmount (split, balance);
- xaccSplitSetValue (split, balance);
+ xaccSplitSetAmount (split, balance);
+ xaccSplitSetValue (split, balance);
- xaccTransCommitEdit (trans);
- xaccAccountCommitEdit (transfer);
- xaccAccountCommitEdit (account);
+ xaccTransCommitEdit (trans);
+ xaccAccountCommitEdit (transfer);
+ xaccAccountCommitEdit (account);
- return TRUE;
+ return TRUE;
}
/* Record the GUI values into the Account structure */
static void
gnc_ui_to_account(AccountWindow *aw)
{
- Account *account;
- gnc_commodity *commodity;
- Account *parent_account;
- const char *old_string;
- const char *string;
- GdkColor color;
- gboolean flag;
- gnc_numeric balance;
- gboolean use_equity, nonstd;
- time_t date;
- gint index, old_scu, new_scu;
- GtkTextIter start, end;
+ Account *account;
+ gnc_commodity *commodity;
+ Account *parent_account;
+ const char *old_string;
+ const char *string;
+ GdkColor color;
+ gboolean flag;
+ gnc_numeric balance;
+ gboolean use_equity, nonstd;
+ time_t date;
+ gint index, old_scu, new_scu;
+ GtkTextIter start, end;
- account = aw_get_account (aw);
- if (!account) {
- LEAVE("no account");
- return;
- }
+ account = aw_get_account (aw);
+ if (!account)
+ {
+ LEAVE("no account");
+ return;
+ }
- if (aw->dialog_type == EDIT_ACCOUNT
- && aw->type != xaccAccountGetType (account)) {
- /* Just refreshing won't work. */
- aw_call_destroy_callbacks (account);
- }
+ if (aw->dialog_type == EDIT_ACCOUNT
+ && aw->type != xaccAccountGetType (account))
+ {
+ /* Just refreshing won't work. */
+ aw_call_destroy_callbacks (account);
+ }
- xaccAccountBeginEdit (account);
+ xaccAccountBeginEdit (account);
- if (aw->type != xaccAccountGetType (account))
- xaccAccountSetType (account, aw->type);
+ if (aw->type != xaccAccountGetType (account))
+ xaccAccountSetType (account, aw->type);
- last_used_account_type = aw->type;
+ last_used_account_type = aw->type;
- string = gtk_entry_get_text (GTK_ENTRY(aw->name_entry));
- old_string = xaccAccountGetName (account);
- if (safe_strcmp (string, old_string) != 0)
- xaccAccountSetName (account, string);
+ string = gtk_entry_get_text (GTK_ENTRY(aw->name_entry));
+ old_string = xaccAccountGetName (account);
+ if (safe_strcmp (string, old_string) != 0)
+ xaccAccountSetName (account, string);
- string = gtk_entry_get_text (GTK_ENTRY(aw->description_entry));
- old_string = xaccAccountGetDescription (account);
- if (safe_strcmp (string, old_string) != 0)
- xaccAccountSetDescription (account, string);
+ string = gtk_entry_get_text (GTK_ENTRY(aw->description_entry));
+ old_string = xaccAccountGetDescription (account);
+ if (safe_strcmp (string, old_string) != 0)
+ xaccAccountSetDescription (account, string);
- gtk_color_button_get_color(GTK_COLOR_BUTTON(aw->color_entry_button), &color );
- string = gdk_color_to_string(&color);
- old_string = xaccAccountGetColor (account);
- if (safe_strcmp (string, old_string) != 0)
- xaccAccountSetColor (account, string);
+ gtk_color_button_get_color(GTK_COLOR_BUTTON(aw->color_entry_button), &color );
+ string = gdk_color_to_string(&color);
+ old_string = xaccAccountGetColor (account);
+ if (safe_strcmp (string, old_string) != 0)
+ xaccAccountSetColor (account, string);
- commodity = (gnc_commodity *)
- gnc_general_select_get_selected (GNC_GENERAL_SELECT (aw->commodity_edit));
- if (commodity &&
- !gnc_commodity_equiv(commodity, xaccAccountGetCommodity (account))) {
- xaccAccountSetCommodity (account, commodity);
- old_scu = 0;
- } else {
- old_scu = xaccAccountGetCommoditySCU(account);
- }
+ commodity = (gnc_commodity *)
+ gnc_general_select_get_selected (GNC_GENERAL_SELECT (aw->commodity_edit));
+ if (commodity &&
+ !gnc_commodity_equiv(commodity, xaccAccountGetCommodity (account)))
+ {
+ xaccAccountSetCommodity (account, commodity);
+ old_scu = 0;
+ }
+ else
+ {
+ old_scu = xaccAccountGetCommoditySCU(account);
+ }
- index = gtk_combo_box_get_active(GTK_COMBO_BOX(aw->account_scu));
- nonstd = (index != 0);
- if (nonstd != xaccAccountGetNonStdSCU(account))
- xaccAccountSetNonStdSCU(account, nonstd);
- new_scu = (nonstd ? pow(10,index-1) : gnc_commodity_get_fraction(commodity));
- if (old_scu != new_scu)
- xaccAccountSetCommoditySCU(account, new_scu);
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(aw->account_scu));
+ nonstd = (index != 0);
+ if (nonstd != xaccAccountGetNonStdSCU(account))
+ xaccAccountSetNonStdSCU(account, nonstd);
+ new_scu = (nonstd ? pow(10, index - 1) : gnc_commodity_get_fraction(commodity));
+ if (old_scu != new_scu)
+ xaccAccountSetCommoditySCU(account, new_scu);
- string = gtk_entry_get_text (GTK_ENTRY(aw->code_entry));
- old_string = xaccAccountGetCode (account);
- if (safe_strcmp (string, old_string) != 0)
- xaccAccountSetCode (account, string);
+ string = gtk_entry_get_text (GTK_ENTRY(aw->code_entry));
+ old_string = xaccAccountGetCode (account);
+ if (safe_strcmp (string, old_string) != 0)
+ xaccAccountSetCode (account, string);
- gtk_text_buffer_get_start_iter (aw->notes_text_buffer, &start);
- gtk_text_buffer_get_end_iter (aw->notes_text_buffer, &end);
- string = gtk_text_buffer_get_text (aw->notes_text_buffer, &start, &end, FALSE);
- old_string = xaccAccountGetNotes (account);
- if (safe_strcmp (string, old_string) != 0)
- xaccAccountSetNotes (account, string);
+ gtk_text_buffer_get_start_iter (aw->notes_text_buffer, &start);
+ gtk_text_buffer_get_end_iter (aw->notes_text_buffer, &end);
+ string = gtk_text_buffer_get_text (aw->notes_text_buffer, &start, &end, FALSE);
+ old_string = xaccAccountGetNotes (account);
+ if (safe_strcmp (string, old_string) != 0)
+ xaccAccountSetNotes (account, string);
- flag =
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->tax_related_button));
- xaccAccountSetTaxRelated (account, flag);
+ flag =
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->tax_related_button));
+ xaccAccountSetTaxRelated (account, flag);
- flag =
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->placeholder_button));
- xaccAccountSetPlaceholder (account, flag);
+ flag =
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->placeholder_button));
+ xaccAccountSetPlaceholder (account, flag);
- flag =
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->hidden_button));
- xaccAccountSetHidden (account, flag);
+ flag =
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->hidden_button));
+ xaccAccountSetHidden (account, flag);
- parent_account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
+ parent_account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
- if (parent_account == NULL)
- parent_account = gnc_book_get_root_account(aw->book);
- if (parent_account != gnc_account_get_parent (account))
- gnc_account_append_child (parent_account, account);
+ if (parent_account == NULL)
+ parent_account = gnc_book_get_root_account(aw->book);
+ if (parent_account != gnc_account_get_parent (account))
+ gnc_account_append_child (parent_account, account);
- xaccAccountCommitEdit (account);
+ xaccAccountCommitEdit (account);
- balance = gnc_amount_edit_get_amount
- (GNC_AMOUNT_EDIT (aw->opening_balance_edit));
+ balance = gnc_amount_edit_get_amount
+ (GNC_AMOUNT_EDIT (aw->opening_balance_edit));
- if (gnc_numeric_zero_p (balance)) {
- LEAVE("zero balance");
- return;
- }
+ if (gnc_numeric_zero_p (balance))
+ {
+ LEAVE("zero balance");
+ return;
+ }
- if (gnc_reverse_balance (account))
- balance = gnc_numeric_neg (balance);
+ if (gnc_reverse_balance (account))
+ balance = gnc_numeric_neg (balance);
- date = gnome_date_edit_get_time (
- GNOME_DATE_EDIT (aw->opening_balance_date_edit));
+ date = gnome_date_edit_get_time (
+ GNOME_DATE_EDIT (aw->opening_balance_date_edit));
- use_equity = gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON (aw->opening_equity_radio));
+ use_equity = gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (aw->opening_equity_radio));
- if (use_equity)
- {
- if (!gnc_account_create_opening_balance (account, balance, date, aw->book))
+ if (use_equity)
{
- const char *message = _("Could not create opening balance.");
- gnc_error_dialog(aw->dialog, "%s", message);
+ if (!gnc_account_create_opening_balance (account, balance, date, aw->book))
+ {
+ const char *message = _("Could not create opening balance.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ }
}
- }
- else
- {
- Account *transfer = NULL;
+ else
+ {
+ Account *transfer = NULL;
- transfer = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->transfer_tree));
- if (!transfer) {
- LEAVE("no transfer account");
- return;
+ transfer = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->transfer_tree));
+ if (!transfer)
+ {
+ LEAVE("no transfer account");
+ return;
+ }
+
+ gnc_account_create_transfer_balance (aw->book, account, transfer, balance, date);
}
-
- gnc_account_create_transfer_balance (aw->book, account, transfer, balance, date);
- }
LEAVE(" ");
}
@@ -456,129 +471,131 @@
static void
set_children_types (Account *account, GNCAccountType type)
{
- GList *children, *iter;
+ GList *children, *iter;
- children = gnc_account_get_children(account);
- if (children == NULL)
- return;
+ children = gnc_account_get_children(account);
+ if (children == NULL)
+ return;
- for (iter=children; iter; iter=iter->next) {
- account = iter->data;
- if (type == xaccAccountGetType(account))
- continue;
+ for (iter = children; iter; iter = iter->next)
+ {
+ account = iter->data;
+ if (type == xaccAccountGetType(account))
+ continue;
- /* Just refreshing won't work. */
- aw_call_destroy_callbacks (account);
+ /* Just refreshing won't work. */
+ aw_call_destroy_callbacks (account);
- xaccAccountBeginEdit (account);
- xaccAccountSetType (account, type);
- xaccAccountCommitEdit (account);
+ xaccAccountBeginEdit (account);
+ xaccAccountSetType (account, type);
+ xaccAccountCommitEdit (account);
- set_children_types (account, type);
- }
- g_list_free(children);
+ set_children_types (account, type);
+ }
+ g_list_free(children);
}
static void
make_children_compatible (AccountWindow *aw)
{
- Account *account;
+ Account *account;
- g_return_if_fail (aw);
+ g_return_if_fail (aw);
- if (aw->dialog_type == NEW_ACCOUNT)
- return;
+ if (aw->dialog_type == NEW_ACCOUNT)
+ return;
- account = aw_get_account (aw);
- g_return_if_fail (account);
+ account = aw_get_account (aw);
+ g_return_if_fail (account);
- if (xaccAccountTypesCompatible (xaccAccountGetType (account), aw->type))
- return;
+ if (xaccAccountTypesCompatible (xaccAccountGetType (account), aw->type))
+ return;
- set_children_types (account, aw->type);
+ set_children_types (account, aw->type);
}
static void
gnc_finish_ok (AccountWindow *aw)
{
- ENTER("aw %p", aw);
- gnc_suspend_gui_refresh ();
+ ENTER("aw %p", aw);
+ gnc_suspend_gui_refresh ();
- /* make the account changes */
- make_children_compatible (aw);
- gnc_ui_to_account (aw);
+ /* make the account changes */
+ make_children_compatible (aw);
+ gnc_ui_to_account (aw);
- gnc_resume_gui_refresh ();
+ gnc_resume_gui_refresh ();
- /* do it all again, if needed */
- if ((aw->dialog_type == NEW_ACCOUNT) && aw->next_name && *aw->next_name)
- {
- gnc_commodity *commodity;
- Account *parent;
- Account *account;
+ /* do it all again, if needed */
+ if ((aw->dialog_type == NEW_ACCOUNT) && aw->next_name && *aw->next_name)
+ {
+ gnc_commodity *commodity;
+ Account *parent;
+ Account *account;
- gnc_suspend_gui_refresh ();
+ gnc_suspend_gui_refresh ();
- parent = aw_get_account (aw);
- account = xaccMallocAccount (aw->book);
- aw->account = *xaccAccountGetGUID (account);
- aw->type = xaccAccountGetType (parent);
+ parent = aw_get_account (aw);
+ account = xaccMallocAccount (aw->book);
+ aw->account = *xaccAccountGetGUID (account);
+ aw->type = xaccAccountGetType (parent);
- xaccAccountSetName (account, *aw->next_name);
- aw->next_name++;
+ xaccAccountSetName (account, *aw->next_name);
+ aw->next_name++;
- gnc_account_to_ui (aw);
+ gnc_account_to_ui (aw);
- gnc_account_window_set_name (aw);
+ gnc_account_window_set_name (aw);
- commodity = xaccAccountGetCommodity (parent);
- gnc_general_select_set_selected (GNC_GENERAL_SELECT (aw->commodity_edit),
- commodity);
- gnc_account_commodity_from_type (aw, FALSE);
+ commodity = xaccAccountGetCommodity (parent);
+ gnc_general_select_set_selected (GNC_GENERAL_SELECT (aw->commodity_edit),
+ commodity);
+ gnc_account_commodity_from_type (aw, FALSE);
- gnc_tree_view_account_set_selected_account (
- GNC_TREE_VIEW_ACCOUNT (aw->parent_tree), parent);
+ gnc_tree_view_account_set_selected_account (
+ GNC_TREE_VIEW_ACCOUNT (aw->parent_tree), parent);
- gnc_resume_gui_refresh ();
- LEAVE("1");
- return;
- }
+ gnc_resume_gui_refresh ();
+ LEAVE("1");
+ return;
+ }
- /* save for posterity */
- aw->created_account = aw_get_account (aw);
+ /* save for posterity */
+ aw->created_account = aw_get_account (aw);
- /* so it doesn't get freed on close */
- aw->account = *xaccGUIDNULL ();
+ /* so it doesn't get freed on close */
+ aw->account = *xaccGUIDNULL ();
- gnc_close_gui_component (aw->component_id);
- LEAVE("2");
+ gnc_close_gui_component (aw->component_id);
+ LEAVE("2");
}
static void
add_children_to_expander (GObject *object, GParamSpec *param_spec, gpointer data)
{
- GtkExpander *expander = GTK_EXPANDER (object);
- Account *account = data;
- GtkWidget *scrolled_window;
- GtkTreeView *view;
+ GtkExpander *expander = GTK_EXPANDER (object);
+ Account *account = data;
+ GtkWidget *scrolled_window;
+ GtkTreeView *view;
- if (gtk_expander_get_expanded (expander) &&
- !gtk_bin_get_child (GTK_BIN (expander))) {
+ if (gtk_expander_get_expanded (expander) &&
+ !gtk_bin_get_child (GTK_BIN (expander)))
+ {
- view = gnc_tree_view_account_new_with_root (account, FALSE);
+ view = gnc_tree_view_account_new_with_root (account, FALSE);
- scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
- GTK_SHADOW_IN);
- gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (view));
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_SHADOW_IN);
+ gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (view));
- gtk_container_add (GTK_CONTAINER (expander), scrolled_window);
- gtk_widget_show_all (scrolled_window);
- }
+ gtk_container_add (GTK_CONTAINER (expander), scrolled_window);
+ gtk_widget_show_all (scrolled_window);
+ }
}
/* Check whether there are children needing a type adjustment because of a
@@ -587,811 +604,846 @@
static gboolean
verify_children_compatible (AccountWindow *aw)
{
- Account *account;
- GtkWidget *dialog, *vbox, *hbox, *label, *expander;
- gchar *str;
- gboolean result;
+ Account *account;
+ GtkWidget *dialog, *vbox, *hbox, *label, *expander;
+ gchar *str;
+ gboolean result;
- if (aw == NULL)
- return FALSE;
+ if (aw == NULL)
+ return FALSE;
- account = aw_get_account (aw);
- if (!account)
- return FALSE;
+ account = aw_get_account (aw);
+ if (!account)
+ return FALSE;
- if (xaccAccountTypesCompatible (xaccAccountGetType (account), aw->type))
- return TRUE;
+ if (xaccAccountTypesCompatible (xaccAccountGetType (account), aw->type))
+ return TRUE;
- if (gnc_account_n_children(account) == 0)
- return TRUE;
+ if (gnc_account_n_children(account) == 0)
+ return TRUE;
- dialog = gtk_dialog_new_with_buttons ("",
- GTK_WINDOW(aw->dialog),
- GTK_DIALOG_DESTROY_WITH_PARENT |
- GTK_DIALOG_MODAL,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- NULL);
+ dialog = gtk_dialog_new_with_buttons ("",
+ GTK_WINDOW(aw->dialog),
+ GTK_DIALOG_DESTROY_WITH_PARENT |
+ GTK_DIALOG_MODAL,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
+ NULL);
- gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), TRUE);
+ gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), TRUE);
- hbox = gtk_hbox_new (FALSE, 12);
- vbox = gtk_vbox_new (FALSE, 12);
+ hbox = gtk_hbox_new (FALSE, 12);
+ vbox = gtk_vbox_new (FALSE, 12);
- gtk_box_pack_start (
- GTK_BOX (hbox),
- gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG),
- FALSE, FALSE, 0);
+ gtk_box_pack_start (
+ GTK_BOX (hbox),
+ gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG),
+ FALSE, FALSE, 0);
- /* primary label */
- label = gtk_label_new (_("Give the children the same type?"));
- gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
- gtk_label_set_selectable (GTK_LABEL (label), TRUE);
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
- {
- gint size;
- PangoFontDescription *font_desc;
+ /* primary label */
+ label = gtk_label_new (_("Give the children the same type?"));
+ gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+ gtk_label_set_selectable (GTK_LABEL (label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+ {
+ gint size;
+ PangoFontDescription *font_desc;
- size = pango_font_description_get_size (label->style->font_desc);
- font_desc = pango_font_description_new ();
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
- pango_font_description_set_size (font_desc, size * PANGO_SCALE_LARGE);
- gtk_widget_modify_font (label, font_desc);
- pango_font_description_free (font_desc);
- }
- gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+ size = pango_font_description_get_size (label->style->font_desc);
+ font_desc = pango_font_description_new ();
+ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
+ pango_font_description_set_size (font_desc, size * PANGO_SCALE_LARGE);
+ gtk_widget_modify_font (label, font_desc);
+ pango_font_description_free (font_desc);
+ }
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
- /* secondary label */
- str = g_strdup_printf (_("The children of the edited account have to be "
- "changed to type \"%s\" to make them compatible."),
- xaccAccountGetTypeStr (aw->type));
- label = gtk_label_new (str);
- g_free (str);
- gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
- gtk_label_set_selectable (GTK_LABEL (label), TRUE);
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
- gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+ /* secondary label */
+ str = g_strdup_printf (_("The children of the edited account have to be "
+ "changed to type \"%s\" to make them compatible."),
+ xaccAccountGetTypeStr (aw->type));
+ label = gtk_label_new (str);
+ g_free (str);
+ gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+ gtk_label_set_selectable (GTK_LABEL (label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
- /* children */
- expander = gtk_expander_new_with_mnemonic (_("_Show children accounts"));
- gtk_expander_set_spacing (GTK_EXPANDER (expander), 6);
- g_signal_connect (G_OBJECT (expander), "notify::expanded",
- G_CALLBACK (add_children_to_expander), account);
- gtk_box_pack_start (GTK_BOX (vbox), expander, TRUE, TRUE, 0);
+ /* children */
+ expander = gtk_expander_new_with_mnemonic (_("_Show children accounts"));
+ gtk_expander_set_spacing (GTK_EXPANDER (expander), 6);
+ g_signal_connect (G_OBJECT (expander), "notify::expanded",
+ G_CALLBACK (add_children_to_expander), account);
+ gtk_box_pack_start (GTK_BOX (vbox), expander, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox,
- TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox,
+ TRUE, TRUE, 0);
- /* spacings */
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
- gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14);
- gtk_container_set_border_width (
- GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 5);
- gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 6);
+ /* spacings */
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+ gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14);
+ gtk_container_set_border_width (
+ GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 5);
+ gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 6);
- gtk_widget_show_all (hbox);
+ gtk_widget_show_all (hbox);
- gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
- result = (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK);
+ result = (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK);
- gtk_widget_destroy(dialog);
+ gtk_widget_destroy(dialog);
- return result;
+ return result;
}
static gboolean
gnc_filter_parent_accounts (Account *account, gpointer data)
{
- AccountWindow *aw = data;
- Account *aw_account = aw_get_account (aw);
+ AccountWindow *aw = data;
+ Account *aw_account = aw_get_account (aw);
- if (account == NULL)
- return FALSE;
+ if (account == NULL)
+ return FALSE;
- if (aw_account == NULL)
- return FALSE;
+ if (aw_account == NULL)
+ return FALSE;
- if (gnc_account_is_root(account))
- return TRUE;
+ if (gnc_account_is_root(account))
+ return TRUE;
- if (account == aw_account)
- return FALSE;
+ if (account == aw_account)
+ return FALSE;
- if (xaccAccountHasAncestor(account, aw_account))
- return FALSE;
+ if (xaccAccountHasAncestor(account, aw_account))
+ return FALSE;
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_common_ok (AccountWindow *aw)
{
- Account *root, *account, *parent;
- gnc_commodity * commodity;
- gchar *fullname, *fullname_parent;
- const gchar *name, *separator;
+ Account *root, *account, *parent;
+ gnc_commodity * commodity;
+ gchar *fullname, *fullname_parent;
+ const gchar *name, *separator;
- ENTER("aw %p", aw);
- root = gnc_book_get_root_account (aw->book);
+ ENTER("aw %p", aw);
+ root = gnc_book_get_root_account (aw->book);
- separator = gnc_get_account_separator_string();
+ separator = gnc_get_account_separator_string();
- /* check for valid name */
- name = gtk_entry_get_text(GTK_ENTRY(aw->name_entry));
- if (safe_strcmp(name, "") == 0) {
- const char *message = _("The account must be given a name.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE("bad name");
- return FALSE;
- }
+ /* check for valid name */
+ name = gtk_entry_get_text(GTK_ENTRY(aw->name_entry));
+ if (safe_strcmp(name, "") == 0)
+ {
+ const char *message = _("The account must be given a name.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE("bad name");
+ return FALSE;
+ }
- /* check for a duplicate name */
- parent = gnc_tree_view_account_get_selected_account
- (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
- if (parent == NULL) {
- account = gnc_account_lookup_by_full_name(root, name);
- } else {
- fullname_parent = gnc_account_get_full_name(parent);
- fullname = g_strconcat(fullname_parent, separator, name, NULL);
+ /* check for a duplicate name */
+ parent = gnc_tree_view_account_get_selected_account
+ (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
+ if (parent == NULL)
+ {
+ account = gnc_account_lookup_by_full_name(root, name);
+ }
+ else
+ {
+ fullname_parent = gnc_account_get_full_name(parent);
+ fullname = g_strconcat(fullname_parent, separator, name, NULL);
- account = gnc_account_lookup_by_full_name(root, fullname);
+ account = gnc_account_lookup_by_full_name(root, fullname);
- g_free(fullname_parent);
- g_free(fullname);
- }
- if ((account != NULL) &&
- !guid_equal(&aw->account, xaccAccountGetGUID (account))) {
- const char *message = _("There is already an account with that name.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE("duplicate name");
- return FALSE;
- }
+ g_free(fullname_parent);
+ g_free(fullname);
+ }
+ if ((account != NULL) &&
+ !guid_equal(&aw->account, xaccAccountGetGUID (account)))
+ {
+ const char *message = _("There is already an account with that name.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE("duplicate name");
+ return FALSE;
+ }
- /* Parent check, probably not needed, but be safe */
- if (!gnc_filter_parent_accounts(parent, aw)) {
- const char *message = _("You must choose a valid parent account.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE("invalid parent");
- return FALSE;
- }
+ /* Parent check, probably not needed, but be safe */
+ if (!gnc_filter_parent_accounts(parent, aw))
+ {
+ const char *message = _("You must choose a valid parent account.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE("invalid parent");
+ return FALSE;
+ }
- /* check for valid type */
- if (aw->type == ACCT_TYPE_INVALID) {
- const char *message = _("You must select an account type.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE("invalid type");
- return FALSE;
- }
+ /* check for valid type */
+ if (aw->type == ACCT_TYPE_INVALID)
+ {
+ const char *message = _("You must select an account type.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE("invalid type");
+ return FALSE;
+ }
- /* check whether the types of child and parent are compatible */
- if (!xaccAccountTypesCompatible (aw->type, xaccAccountGetType (parent))) {
- const char *message = _("The selected account type is incompatible with "
- "the one of the selected parent.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE("incompatible types");
- return FALSE;
- }
+ /* check whether the types of child and parent are compatible */
+ if (!xaccAccountTypesCompatible (aw->type, xaccAccountGetType (parent)))
+ {
+ const char *message = _("The selected account type is incompatible with "
+ "the one of the selected parent.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE("incompatible types");
+ return FALSE;
+ }
- /* check for commodity */
- commodity = (gnc_commodity *)
- gnc_general_select_get_selected (GNC_GENERAL_SELECT (aw->commodity_edit));
- if (!commodity) {
- const char *message = _("You must choose a commodity.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE("invalid commodity");
- return FALSE;
- }
+ /* check for commodity */
+ commodity = (gnc_commodity *)
+ gnc_general_select_get_selected (GNC_GENERAL_SELECT (aw->commodity_edit));
+ if (!commodity)
+ {
+ const char *message = _("You must choose a commodity.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE("invalid commodity");
+ return FALSE;
+ }
- LEAVE("passed");
- return TRUE;
+ LEAVE("passed");
+ return TRUE;
}
static void
gnc_edit_account_ok(AccountWindow *aw)
{
- Account *account;
+ Account *account;
- ENTER("aw %p", aw);
+ ENTER("aw %p", aw);
- account = aw_get_account (aw);
- if (!account) {
- LEAVE(" ");
- return;
- }
+ account = aw_get_account (aw);
+ if (!account)
+ {
+ LEAVE(" ");
+ return;
+ }
- if (!gnc_common_ok(aw)) {
- LEAVE(" ");
- return;
- }
+ if (!gnc_common_ok(aw))
+ {
+ LEAVE(" ");
+ return;
+ }
- if (!verify_children_compatible (aw)) {
+ if (!verify_children_compatible (aw))
+ {
+ LEAVE(" ");
+ return;
+ }
+
+ gnc_finish_ok (aw);
LEAVE(" ");
- return;
- }
-
- gnc_finish_ok (aw);
- LEAVE(" ");
}
static void
gnc_new_account_ok (AccountWindow *aw)
{
- gnc_numeric balance;
+ gnc_numeric balance;
- ENTER("aw %p", aw);
+ ENTER("aw %p", aw);
- if (!gnc_common_ok(aw)) {
- LEAVE(" ");
- return;
- }
+ if (!gnc_common_ok(aw))
+ {
+ LEAVE(" ");
+ return;
+ }
- if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (aw->opening_balance_edit)))
- {
- const char *message = _("You must enter a valid opening balance "
- "or leave it blank.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE(" ");
- return;
- }
+ if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (aw->opening_balance_edit)))
+ {
+ const char *message = _("You must enter a valid opening balance "
+ "or leave it blank.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE(" ");
+ return;
+ }
- balance = gnc_amount_edit_get_amount
- (GNC_AMOUNT_EDIT (aw->opening_balance_edit));
+ balance = gnc_amount_edit_get_amount
+ (GNC_AMOUNT_EDIT (aw->opening_balance_edit));
- if (!gnc_numeric_zero_p (balance))
- {
- gboolean use_equity;
+ if (!gnc_numeric_zero_p (balance))
+ {
+ gboolean use_equity;
- use_equity = gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON (aw->opening_equity_radio));
+ use_equity = gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (aw->opening_equity_radio));
- if (!use_equity)
- {
- Account *transfer = NULL;
+ if (!use_equity)
+ {
+ Account *transfer = NULL;
- transfer = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->transfer_tree));
- if (!transfer)
- {
- const char *message = _("You must select a transfer account or choose"
- " the opening balances equity account.");
- gnc_error_dialog(aw->dialog, "%s", message);
- LEAVE(" ");
- return;
- }
+ transfer = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->transfer_tree));
+ if (!transfer)
+ {
+ const char *message = _("You must select a transfer account or choose"
+ " the opening balances equity account.");
+ gnc_error_dialog(aw->dialog, "%s", message);
+ LEAVE(" ");
+ return;
+ }
+ }
}
- }
- gnc_finish_ok (aw);
- LEAVE(" ");
+ gnc_finish_ok (aw);
+ LEAVE(" ");
}
static void
gnc_account_window_response_cb (GtkDialog *dialog,
- gint response,
- gpointer data)
+ gint response,
+ gpointer data)
{
- AccountWindow *aw = data;
+ AccountWindow *aw = data;
- ENTER("dialog %p, response %d, aw %p", dialog, response, aw);
- switch (response) {
- case GTK_RESPONSE_OK:
- switch (aw->dialog_type) {
- case NEW_ACCOUNT:
- DEBUG("new acct dialog, OK");
- gnc_new_account_ok (aw);
- break;
- case EDIT_ACCOUNT:
- DEBUG("edit acct dialog, OK");
- gnc_edit_account_ok (aw);
- break;
- default:
- g_assert_not_reached ();
- return;
- }
- break;
- case GTK_RESPONSE_HELP:
- switch (aw->dialog_type) {
- case NEW_ACCOUNT:
- DEBUG("new acct dialog, HELP");
- gnc_gnome_help(HF_HELP, HL_ACC);
- break;
- case EDIT_ACCOUNT:
- DEBUG("edit acct dialog, HELP");
- gnc_gnome_help(HF_HELP, HL_ACCEDIT);
- break;
- default:
- g_assert_not_reached ();
- return;
- }
- break;
- case GTK_RESPONSE_CANCEL:
- default:
- DEBUG("CANCEL");
- gnc_close_gui_component (aw->component_id);
- break;
- }
- LEAVE(" ");
+ ENTER("dialog %p, response %d, aw %p", dialog, response, aw);
+ switch (response)
+ {
+ case GTK_RESPONSE_OK:
+ switch (aw->dialog_type)
+ {
+ case NEW_ACCOUNT:
+ DEBUG("new acct dialog, OK");
+ gnc_new_account_ok (aw);
+ break;
+ case EDIT_ACCOUNT:
+ DEBUG("edit acct dialog, OK");
+ gnc_edit_account_ok (aw);
+ break;
+ default:
+ g_assert_not_reached ();
+ return;
+ }
+ break;
+ case GTK_RESPONSE_HELP:
+ switch (aw->dialog_type)
+ {
+ case NEW_ACCOUNT:
+ DEBUG("new acct dialog, HELP");
+ gnc_gnome_help(HF_HELP, HL_ACC);
+ break;
+ case EDIT_ACCOUNT:
+ DEBUG("edit acct dialog, HELP");
+ gnc_gnome_help(HF_HELP, HL_ACCEDIT);
+ break;
+ default:
+ g_assert_not_reached ();
+ return;
+ }
+ break;
+ case GTK_RESPONSE_CANCEL:
+ default:
+ DEBUG("CANCEL");
+ gnc_close_gui_component (aw->component_id);
+ break;
+ }
+ LEAVE(" ");
}
static void
gnc_account_window_destroy_cb (GtkObject *object, gpointer data)
{
- AccountWindow *aw = data;
- Account *account;
+ AccountWindow *aw = data;
+ Account *account;
- ENTER("object %p, aw %p", object, aw);
- account = aw_get_account (aw);
+ ENTER("object %p, aw %p", object, aw);
+ account = aw_get_account (aw);
- gnc_suspend_gui_refresh ();
+ gnc_suspend_gui_refresh ();
- switch (aw->dialog_type)
- {
+ switch (aw->dialog_type)
+ {
case NEW_ACCOUNT:
- if (account != NULL)
- {
- xaccAccountBeginEdit (account);
- xaccAccountDestroy (account);
- aw->account = *xaccGUIDNULL ();
- }
+ if (account != NULL)
+ {
+ xaccAccountBeginEdit (account);
+ xaccAccountDestroy (account);
+ aw->account = *xaccGUIDNULL ();
+ }
- DEBUG ("account add window destroyed\n");
- break;
+ DEBUG ("account add window destroyed\n");
+ break;
case EDIT_ACCOUNT:
- break;
+ break;
default:
- PERR ("unexpected dialog type\n");
- gnc_resume_gui_refresh ();
- LEAVE(" ");
- return;
- }
+ PERR ("unexpected dialog type\n");
+ gnc_resume_gui_refresh ();
+ LEAVE(" ");
+ return;
+ }
- gnc_unregister_gui_component (aw->component_id);
+ gnc_unregister_gui_component (aw->component_id);
- gnc_resume_gui_refresh ();
+ gnc_resume_gui_refresh ();
- if (aw->subaccount_names) {
- g_strfreev(aw->subaccount_names);
- aw->subaccount_names = NULL;
- aw->next_name = NULL;
- }
+ if (aw->subaccount_names)
+ {
+ g_strfreev(aw->subaccount_names);
+ aw->subaccount_names = NULL;
+ aw->next_name = NULL;
+ }
- g_free (aw);
- LEAVE(" ");
+ g_free (aw);
+ LEAVE(" ");
}
static void
gnc_account_parent_changed_cb (GtkTreeSelection *selection, gpointer data)
{
- AccountWindow *aw = data;
- Account *parent_account;
- guint32 types, old_types;
- GtkTreeModel *type_model;
- GtkTreeSelection *type_selection;
- gboolean scroll_to = FALSE;
+ AccountWindow *aw = data;
+ Account *parent_account;
+ guint32 types, old_types;
+ GtkTreeModel *type_model;
+ GtkTreeSelection *type_selection;
+ gboolean scroll_to = FALSE;
- g_return_if_fail (aw);
+ g_return_if_fail (aw);
- parent_account = gnc_tree_view_account_get_selected_account (
- GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
- if (!parent_account)
- return;
+ parent_account = gnc_tree_view_account_get_selected_account (
+ GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
+ if (!parent_account)
+ return;
- if (gnc_account_is_root(parent_account)) {
- types = aw->valid_types;
- } else {
- types = aw->valid_types &
- xaccParentAccountTypesCompatibleWith (xaccAccountGetType (parent_account));
- }
+ if (gnc_account_is_root(parent_account))
+ {
+ types = aw->valid_types;
+ }
+ else
+ {
+ types = aw->valid_types &
+ xaccParentAccountTypesCompatibleWith (xaccAccountGetType (parent_account));
+ }
- type_model = gtk_tree_view_get_model (GTK_TREE_VIEW (aw->type_view));
- if (!type_model)
- return;
+ type_model = gtk_tree_view_get_model (GTK_TREE_VIEW (aw->type_view));
+ if (!type_model)
+ return;
- if (aw->type != aw->preferred_account_type &&
- (types & (1 << aw->preferred_account_type)) != 0) {
- /* we can change back to the preferred account type */
- aw->type = aw->preferred_account_type;
- scroll_to = TRUE;
- }
- else if ((types & (1 << aw->type)) == 0) {
- /* our type is invalid now */
- aw->type = ACCT_TYPE_INVALID;
- }
- else {
- /* no type change, but maybe list of valid types changed */
- old_types = gnc_tree_model_account_types_get_mask (type_model);
- if (old_types != types)
- scroll_to = TRUE;
- }
+ if (aw->type != aw->preferred_account_type &&
+ (types & (1 << aw->preferred_account_type)) != 0)
+ {
+ /* we can change back to the preferred account type */
+ aw->type = aw->preferred_account_type;
+ scroll_to = TRUE;
+ }
+ else if ((types & (1 << aw->type)) == 0)
+ {
+ /* our type is invalid now */
+ aw->type = ACCT_TYPE_INVALID;
+ }
+ else
+ {
+ /* no type change, but maybe list of valid types changed */
+ old_types = gnc_tree_model_account_types_get_mask (type_model);
+ if (old_types != types)
+ scroll_to = TRUE;
+ }
- gnc_tree_model_account_types_set_mask (type_model, types);
+ gnc_tree_model_account_types_set_mask (type_model, types);
- if (scroll_to) {
- type_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->type_view));
- gnc_tree_model_account_types_set_selection(type_selection, 1 << aw->type);
- }
+ if (scroll_to)
+ {
+ type_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->type_view));
+ gnc_tree_model_account_types_set_selection(type_selection, 1 << aw->type);
+ }
- gnc_account_window_set_name(aw);
+ gnc_account_window_set_name(aw);
}
static void
gnc_account_type_changed_cb (GtkTreeSelection *selection, gpointer data)
{
- AccountWindow *aw = data;
- gboolean sensitive;
- GNCAccountType type_id;
+ AccountWindow *aw = data;
+ gboolean sensitive;
+ GNCAccountType type_id;
- g_return_if_fail (aw != NULL);
+ g_return_if_fail (aw != NULL);
- sensitive = FALSE;
+ sensitive = FALSE;
- type_id = gnc_tree_model_account_types_get_selection_single(selection);
- if (type_id == ACCT_TYPE_NONE) {
- aw->type = ACCT_TYPE_INVALID;
- } else {
- aw->type = type_id;
- aw->preferred_account_type = type_id;
+ type_id = gnc_tree_model_account_types_get_selection_single(selection);
+ if (type_id == ACCT_TYPE_NONE)
+ {
+ aw->type = ACCT_TYPE_INVALID;
+ }
+ else
+ {
+ aw->type = type_id;
+ aw->preferred_account_type = type_id;
- gnc_account_commodity_from_type (aw, TRUE);
+ gnc_account_commodity_from_type (aw, TRUE);
- sensitive = (aw->type != ACCT_TYPE_EQUITY &&
- aw->type != ACCT_TYPE_CURRENCY &&
- aw->type != ACCT_TYPE_STOCK &&
- aw->type != ACCT_TYPE_MUTUAL &&
- aw->type != ACCT_TYPE_TRADING);
- }
+ sensitive = (aw->type != ACCT_TYPE_EQUITY &&
+ aw->type != ACCT_TYPE_CURRENCY &&
+ aw->type != ACCT_TYPE_STOCK &&
+ aw->type != ACCT_TYPE_MUTUAL &&
+ aw->type != ACCT_TYPE_TRADING);
+ }
- gtk_widget_set_sensitive (aw->opening_balance_page, sensitive);
+ gtk_widget_set_sensitive (aw->opening_balance_page, sensitive);
- if (!sensitive) {
- gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
- gnc_numeric_zero ());
- }
+ if (!sensitive)
+ {
+ gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
+ gnc_numeric_zero ());
+ }
}
static void
gnc_account_type_view_create (AccountWindow *aw)
{
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- GtkCellRenderer *renderer;
- GtkTreeView *view;
+ GtkTreeModel *model;
+ GtkTreeSelection *selection;
+ GtkCellRenderer *renderer;
+ GtkTreeView *view;
- if (aw->valid_types == 0) {
- /* no type restrictions, choose aw->type */
- aw->valid_types = xaccAccountTypesValid () | (1 << aw->type);
- aw->preferred_account_type = aw->type;
- }
- else if ((aw->valid_types & (1 << aw->type)) != 0) {
- /* aw->type is valid */
- aw->preferred_account_type = aw->type;
- }
- else if ((aw->valid_types & (1 << last_used_account_type)) != 0) {
- /* last used account type is valid */
- aw->type = last_used_account_type;
- aw->preferred_account_type = last_used_account_type;
- }
- else {
- /* choose first valid account type */
- int i;
- aw->preferred_account_type = aw->type;
- aw->type = ACCT_TYPE_INVALID;
- for (i=0; i<32; i++)
- if ((aw->valid_types & (1 << i)) != 0) {
- aw->type = i;
- break;
- }
- }
+ if (aw->valid_types == 0)
+ {
+ /* no type restrictions, choose aw->type */
+ aw->valid_types = xaccAccountTypesValid () | (1 << aw->type);
+ aw->preferred_account_type = aw->type;
+ }
+ else if ((aw->valid_types & (1 << aw->type)) != 0)
+ {
+ /* aw->type is valid */
+ aw->preferred_account_type = aw->type;
+ }
+ else if ((aw->valid_types & (1 << last_used_account_type)) != 0)
+ {
+ /* last used account type is valid */
+ aw->type = last_used_account_type;
+ aw->preferred_account_type = last_used_account_type;
+ }
+ else
+ {
+ /* choose first valid account type */
+ int i;
+ aw->preferred_account_type = aw->type;
+ aw->type = ACCT_TYPE_INVALID;
+ for (i = 0; i < 32; i++)
+ if ((aw->valid_types & (1 << i)) != 0)
+ {
+ aw->type = i;
+ break;
+ }
+ }
- model = gnc_tree_model_account_types_filter_using_mask (aw->valid_types);
+ model = gnc_tree_model_account_types_filter_using_mask (aw->valid_types);
- view = GTK_TREE_VIEW (aw->type_view);
- gtk_tree_view_set_model (view, model);
- g_object_unref (G_OBJECT (model));
+ view = GTK_TREE_VIEW (aw->type_view);
+ gtk_tree_view_set_model (view, model);
+ g_object_unref (G_OBJECT (model));
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (
- view, -1, NULL, renderer,
- "text", GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME,
- NULL);
- gtk_tree_view_set_search_column (view, GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME);
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes (
+ view, -1, NULL, renderer,
+ "text", GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME,
+ NULL);
+ gtk_tree_view_set_search_column (view, GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME);
- selection = gtk_tree_view_get_selection (view);
- g_signal_connect (G_OBJECT (selection), "changed",
- G_CALLBACK (gnc_account_type_changed_cb), aw);
+ selection = gtk_tree_view_get_selection (view);
+ g_signal_connect (G_OBJECT (selection), "changed",
+ G_CALLBACK (gnc_account_type_changed_cb), aw);
- gnc_tree_model_account_types_set_selection(selection, 1 << aw->type);
+ gnc_tree_model_account_types_set_selection(selection, 1 << aw->type);
}
static void
gnc_account_name_changed_cb(GtkWidget *widget, gpointer data)
{
- AccountWindow *aw = data;
+ AccountWindow *aw = data;
- gnc_account_window_set_name (aw);
+ gnc_account_window_set_name (aw);
}
static void
gnc_account_color_default_cb(GtkWidget *widget, gpointer data)
{
- GdkColor color;
- AccountWindow *aw = data;
+ GdkColor color;
+ AccountWindow *aw = data;
- gdk_color_parse( DEFAULT_COLOR, &color);
- gtk_color_button_set_color(GTK_COLOR_BUTTON(aw->color_entry_button), &color);
+ gdk_color_parse( DEFAULT_COLOR, &color);
+ gtk_color_button_set_color(GTK_COLOR_BUTTON(aw->color_entry_button), &color);
}
static void
commodity_changed_cb (GNCGeneralSelect *gsl, gpointer data)
{
- AccountWindow *aw = data;
- gnc_commodity *currency;
- GtkTreeSelection *selection;
+ AccountWindow *aw = data;
+ gnc_commodity *currency;
+ GtkTreeSelection *selection;
- currency = (gnc_commodity *) gnc_general_select_get_selected (gsl);
- if (!currency)
- return;
+ currency = (gnc_commodity *) gnc_general_select_get_selected (gsl);
+ if (!currency)
+ return;
- gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
- gnc_commodity_get_fraction (currency));
- gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
- gnc_commodity_print_info (currency, FALSE));
+ gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
+ gnc_commodity_get_fraction (currency));
+ gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
+ gnc_commodity_print_info (currency, FALSE));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->transfer_tree));
- gtk_tree_selection_unselect_all (selection);
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->transfer_tree));
+ gtk_tree_selection_unselect_all (selection);
}
static gboolean
account_commodity_filter (GtkTreeSelection *selection,
- GtkTreeModel *unused_model,
- GtkTreePath *s_path,
- gboolean path_currently_selected,
- gpointer user_data)
+ GtkTreeModel *unused_model,
+ GtkTreePath *s_path,
+ gboolean path_currently_selected,
+ gpointer user_data)
{
- gnc_commodity *commodity;
- AccountWindow *aw;
- Account *account;
+ gnc_commodity *commodity;
+ AccountWindow *aw;
+ Account *account;
- g_return_val_if_fail (GTK_IS_TREE_SELECTION (selection), FALSE);
+ g_return_val_if_fail (GTK_IS_TREE_SELECTION (selection), FALSE);
- aw = user_data;
+ aw = user_data;
- if (path_currently_selected) {
- /* already selected, don't waste time. */
- return TRUE;
- }
+ if (path_currently_selected)
+ {
+ /* already selected, don't waste time. */
+ return TRUE;
+ }
- account = gnc_tree_view_account_get_account_from_path (GNC_TREE_VIEW_ACCOUNT (aw->transfer_tree), s_path);
- if (!account) {
- return FALSE;
- }
+ account = gnc_tree_view_account_get_account_from_path (GNC_TREE_VIEW_ACCOUNT (aw->transfer_tree), s_path);
+ if (!account)
+ {
+ return FALSE;
+ }
- commodity = (gnc_commodity *)
- gnc_general_select_get_selected (GNC_GENERAL_SELECT (aw->commodity_edit));
+ commodity = (gnc_commodity *)
+ gnc_general_select_get_selected (GNC_GENERAL_SELECT (aw->commodity_edit));
- return gnc_commodity_equiv (xaccAccountGetCommodity (account), commodity);
+ return gnc_commodity_equiv (xaccAccountGetCommodity (account), commodity);
}
static void
opening_equity_cb (GtkWidget *w, gpointer data)
{
- AccountWindow *aw = data;
- gboolean use_equity;
+ AccountWindow *aw = data;
+ gboolean use_equity;
- use_equity = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+ use_equity = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
- gtk_widget_set_sensitive (aw->transfer_account_scroll, !use_equity);
+ gtk_widget_set_sensitive (aw->transfer_account_scroll, !use_equity);
}
/********************************************************************\
* gnc_account_window_create *
* creates a window to create a new account. *
- * *
+ * *
* Args: aw - the information structure for this window *
* Return: the created window *
\*******************************************************************/
static void
gnc_account_window_create(AccountWindow *aw)
{
- GtkWidget *amount;
- GObject *awo;
- GtkWidget *box;
- GtkWidget *label;
- GladeXML *xml;
- GtkTreeSelection *selection;
+ GtkWidget *amount;
+ GObject *awo;
+ GtkWidget *box;
+ GtkWidget *label;
+ GladeXML *xml;
+ GtkTreeSelection *selection;
- ENTER("aw %p, modal %d", aw, aw->modal);
- xml = gnc_glade_xml_new ("account.glade", "Account Dialog");
+ ENTER("aw %p, modal %d", aw, aw->modal);
+ xml = gnc_glade_xml_new ("account.glade", "Account Dialog");
- aw->dialog = glade_xml_get_widget (xml, "Account Dialog");
- awo = G_OBJECT (aw->dialog);
+ aw->dialog = glade_xml_get_widget (xml, "Account Dialog");
+ awo = G_OBJECT (aw->dialog);
- g_object_set_data (awo, "dialog_info", aw);
+ g_object_set_data (awo, "dialog_info", aw);
- g_signal_connect (awo, "destroy",
- G_CALLBACK (gnc_account_window_destroy_cb), aw);
+ g_signal_connect (awo, "destroy",
+ G_CALLBACK (gnc_account_window_destroy_cb), aw);
- if (!aw->modal)
- g_signal_connect (awo, "response",
- G_CALLBACK (gnc_account_window_response_cb), aw);
- else
- gtk_window_set_modal (GTK_WINDOW (aw->dialog), TRUE);
+ if (!aw->modal)
+ g_signal_connect (awo, "response",
+ G_CALLBACK (gnc_account_window_response_cb), aw);
+ else
+ gtk_window_set_modal (GTK_WINDOW (aw->dialog), TRUE);
- aw->notebook = glade_xml_get_widget (xml, "account_notebook");
+ aw->notebook = glade_xml_get_widget (xml, "account_notebook");
- aw->name_entry = glade_xml_get_widget (xml, "name_entry");
- g_signal_connect (G_OBJECT (aw->name_entry), "changed",
- G_CALLBACK (gnc_account_name_changed_cb), aw);
+ aw->name_entry = glade_xml_get_widget (xml, "name_entry");
+ g_signal_connect (G_OBJECT (aw->name_entry), "changed",
+ G_CALLBACK (gnc_account_name_changed_cb), aw);
- aw->description_entry = glade_xml_get_widget (xml, "description_entry");
+ aw->description_entry = glade_xml_get_widget (xml, "description_entry");
- aw->color_entry_button = glade_xml_get_widget (xml, "color_entry_button");
+ aw->color_entry_button = glade_xml_get_widget (xml, "color_entry_button");
- aw->color_default_button = glade_xml_get_widget (xml, "color_default_button");
- g_signal_connect (G_OBJECT (aw->color_default_button), "clicked",
- G_CALLBACK (gnc_account_color_default_cb), aw);
+ aw->color_default_button = glade_xml_get_widget (xml, "color_default_button");
+ g_signal_connect (G_OBJECT (aw->color_default_button), "clicked",
+ G_CALLBACK (gnc_account_color_default_cb), aw);
- aw->code_entry = glade_xml_get_widget (xml, "code_entry");
- aw->notes_text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (glade_xml_get_widget (xml, "notes_text")));
+ aw->code_entry = glade_xml_get_widget (xml, "code_entry");
+ aw->notes_text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (glade_xml_get_widget (xml, "notes_text")));
- box = glade_xml_get_widget (xml, "commodity_hbox");
- aw->commodity_edit = gnc_general_select_new (GNC_GENERAL_SELECT_TYPE_SELECT,
- gnc_commodity_edit_get_string,
- gnc_commodity_edit_new_select,
- &aw->commodity_mode);
- gtk_box_pack_start(GTK_BOX(box), aw->commodity_edit, TRUE, TRUE, 0);
- gtk_widget_show (aw->commodity_edit);
+ box = glade_xml_get_widget (xml, "commodity_hbox");
+ aw->commodity_edit = gnc_general_select_new (GNC_GENERAL_SELECT_TYPE_SELECT,
+ gnc_commodity_edit_get_string,
+ gnc_commodity_edit_new_select,
+ &aw->commodity_mode);
+ gtk_box_pack_start(GTK_BOX(box), aw->commodity_edit, TRUE, TRUE, 0);
+ gtk_widget_show (aw->commodity_edit);
- label = glade_xml_get_widget (xml, "security_label");
- gnc_general_select_make_mnemonic_target (GNC_GENERAL_SELECT(aw->commodity_edit), label);
+ label = glade_xml_get_widget (xml, "security_label");
+ gnc_general_select_make_mnemonic_target (GNC_GENERAL_SELECT(aw->commodity_edit), label);
- g_signal_connect (G_OBJECT (aw->commodity_edit), "changed",
- G_CALLBACK (commodity_changed_cb), aw);
+ g_signal_connect (G_OBJECT (aw->commodity_edit), "changed",
+ G_CALLBACK (commodity_changed_cb), aw);
- aw->account_scu = glade_xml_get_widget (xml, "account_scu");
+ aw->account_scu = glade_xml_get_widget (xml, "account_scu");
- box = glade_xml_get_widget (xml, "parent_scroll");
+ box = glade_xml_get_widget (xml, "parent_scroll");
- aw->parent_tree = gnc_tree_view_account_new(TRUE);
- gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(aw->parent_tree));
- gtk_widget_show(GTK_WIDGET(aw->parent_tree));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->parent_tree));
- g_signal_connect (G_OBJECT (selection), "changed",
- G_CALLBACK (gnc_account_parent_changed_cb), aw);
+ aw->parent_tree = gnc_tree_view_account_new(TRUE);
+ gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(aw->parent_tree));
+ gtk_widget_show(GTK_WIDGET(aw->parent_tree));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->parent_tree));
+ g_signal_connect (G_OBJECT (selection), "changed",
+ G_CALLBACK (gnc_account_parent_changed_cb), aw);
- aw->tax_related_button = glade_xml_get_widget (xml, "tax_related_button");
- aw->placeholder_button = glade_xml_get_widget (xml, "placeholder_button");
- aw->hidden_button = glade_xml_get_widget (xml, "hidden_button");
+ aw->tax_related_button = glade_xml_get_widget (xml, "tax_related_button");
+ aw->placeholder_button = glade_xml_get_widget (xml, "placeholder_button");
+ aw->hidden_button = glade_xml_get_widget (xml, "hidden_button");
- box = glade_xml_get_widget (xml, "opening_balance_box");
- amount = gnc_amount_edit_new ();
- aw->opening_balance_edit = amount;
- gtk_box_pack_start(GTK_BOX(box), amount, TRUE, TRUE, 0);
- gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (amount), TRUE);
- gtk_widget_show (amount);
+ box = glade_xml_get_widget (xml, "opening_balance_box");
+ amount = gnc_amount_edit_new ();
+ aw->opening_balance_edit = amount;
+ gtk_box_pack_start(GTK_BOX(box), amount, TRUE, TRUE, 0);
+ gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (amount), TRUE);
+ gtk_widget_show (amount);
- label = glade_xml_get_widget (xml, "balance_label");
- gtk_label_set_mnemonic_widget (GTK_LABEL(label), amount);
+ label = glade_xml_get_widget (xml, "balance_label");
+ gtk_label_set_mnemonic_widget (GTK_LABEL(label), amount);
- box = glade_xml_get_widget (xml, "opening_balance_date_box");
- aw->opening_balance_date_edit = glade_xml_get_widget (xml, "opening_balance_date_edit");
+ box = glade_xml_get_widget (xml, "opening_balance_date_box");
+ aw->opening_balance_date_edit = glade_xml_get_widget (xml, "opening_balance_date_edit");
- aw->opening_balance_page =
- gtk_notebook_get_nth_page (GTK_NOTEBOOK (aw->notebook), 1);
+ aw->opening_balance_page =
+ gtk_notebook_get_nth_page (GTK_NOTEBOOK (aw->notebook), 1);
- aw->opening_equity_radio = glade_xml_get_widget (xml,
- "opening_equity_radio");
- g_signal_connect (G_OBJECT (aw->opening_equity_radio), "toggled",
- G_CALLBACK (opening_equity_cb), aw);
+ aw->opening_equity_radio = glade_xml_get_widget (xml,
+ "opening_equity_radio");
+ g_signal_connect (G_OBJECT (aw->opening_equity_radio), "toggled",
+ G_CALLBACK (opening_equity_cb), aw);
- box = glade_xml_get_widget (xml, "transfer_account_scroll");
- aw->transfer_account_scroll = box;
+ box = glade_xml_get_widget (xml, "transfer_account_scroll");
+ aw->transfer_account_scroll = box;
- aw->transfer_tree = GTK_WIDGET(gnc_tree_view_account_new(FALSE));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(aw->transfer_tree));
- gtk_tree_selection_set_select_function(selection, account_commodity_filter, aw, NULL);
+ aw->transfer_tree = GTK_WIDGET(gnc_tree_view_account_new(FALSE));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(aw->transfer_tree));
+ gtk_tree_selection_set_select_function(selection, account_commodity_filter, aw, NULL);
- gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(aw->transfer_tree));
- gtk_widget_show (GTK_WIDGET(aw->transfer_tree));
+ gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(aw->transfer_tree));
+ gtk_widget_show (GTK_WIDGET(aw->transfer_tree));
- label = glade_xml_get_widget (xml, "parent_label");
- gtk_label_set_mnemonic_widget (GTK_LABEL(label), GTK_WIDGET(aw->parent_tree));
+ label = glade_xml_get_widget (xml, "parent_label");
+ gtk_label_set_mnemonic_widget (GTK_LABEL(label), GTK_WIDGET(aw->parent_tree));
- /* This goes at the end so the select callback has good data. */
- aw->type_view = glade_xml_get_widget (xml, "type_view");
- gnc_account_type_view_create (aw);
+ /* This goes at the end so the select callback has good data. */
+ aw->type_view = glade_xml_get_widget (xml, "type_view");
+ gnc_account_type_view_create (aw);
- gnc_restore_window_size (GCONF_SECTION, GTK_WINDOW(aw->dialog));
+ gnc_restore_window_size (GCONF_SECTION, GTK_WINDOW(aw->dialog));
- gtk_widget_grab_focus(GTK_WIDGET(aw->name_entry));
- LEAVE(" ");
+ gtk_widget_grab_focus(GTK_WIDGET(aw->name_entry));
+ LEAVE(" ");
}
static char *
get_ui_fullname (AccountWindow *aw)
{
- Account *parent_account;
- char *fullname;
- const gchar *name;
+ Account *parent_account;
+ char *fullname;
+ const gchar *name;
- name = gtk_entry_get_text (GTK_ENTRY(aw->name_entry));
- if (!name || *name == '\0')
- name = _("<No name>");
+ name = gtk_entry_get_text (GTK_ENTRY(aw->name_entry));
+ if (!name || *name == '\0')
+ name = _("<No name>");
- parent_account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
+ parent_account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
- if (parent_account && !gnc_account_is_root(parent_account))
- {
- char *parent_name;
- const gchar *separator;
+ if (parent_account && !gnc_account_is_root(parent_account))
+ {
+ char *parent_name;
+ const gchar *separator;
- parent_name = gnc_account_get_full_name (parent_account);
+ parent_name = gnc_account_get_full_name (parent_account);
- separator = gnc_get_account_separator_string ();
- fullname = g_strconcat (parent_name, separator, name, NULL);
+ separator = gnc_get_account_separator_string ();
+ fullname = g_strconcat (parent_name, separator, name, NULL);
- g_free (parent_name);
- }
- else
- fullname = g_strdup (name);
+ g_free (parent_name);
+ }
+ else
+ fullname = g_strdup (name);
- return fullname;
+ return fullname;
}
static void
gnc_account_window_set_name (AccountWindow *aw)
{
- char *fullname;
- char *title;
+ char *fullname;
+ char *title;
- if (!aw || !aw->parent_tree)
- return;
+ if (!aw || !aw->parent_tree)
+ return;
- fullname = get_ui_fullname (aw);
+ fullname = get_ui_fullname (aw);
- if (aw->dialog_type == EDIT_ACCOUNT)
- title = g_strconcat(_("Edit Account"), " - ", fullname, NULL);
- else if (aw->next_name && (g_strv_length(aw->next_name) > 0))
- {
- const char *format = _("(%d) New Accounts");
- char *prefix;
+ if (aw->dialog_type == EDIT_ACCOUNT)
+ title = g_strconcat(_("Edit Account"), " - ", fullname, NULL);
+ else if (aw->next_name && (g_strv_length(aw->next_name) > 0))
+ {
+ const char *format = _("(%d) New Accounts");
+ char *prefix;
- prefix = g_strdup_printf (format, g_strv_length(aw->next_name) + 1);
+ prefix = g_strdup_printf (format, g_strv_length(aw->next_name) + 1);
- title = g_strconcat (prefix, " - ", fullname, " ...", NULL);
+ title = g_strconcat (prefix, " - ", fullname, " ...", NULL);
- g_free (prefix);
- }
- else
- title = g_strconcat (_("New Account"), " - ", fullname, NULL);
+ g_free (prefix);
+ }
+ else
+ title = g_strconcat (_("New Account"), " - ", fullname, NULL);
- gtk_window_set_title (GTK_WINDOW(aw->dialog), title);
+ gtk_window_set_title (GTK_WINDOW(aw->dialog), title);
- g_free (fullname);
- g_free (title);
+ g_free (fullname);
+ g_free (title);
}
static void
close_handler (gpointer user_data)
{
- AccountWindow *aw = user_data;
+ AccountWindow *aw = user_data;
- ENTER("aw %p, modal %d", aw, aw->modal);
- gnc_save_window_size (GCONF_SECTION, GTK_WINDOW(aw->dialog));
+ ENTER("aw %p, modal %d", aw, aw->modal);
+ gnc_save_window_size (GCONF_SECTION, GTK_WINDOW(aw->dialog));
- gtk_widget_destroy (GTK_WIDGET (aw->dialog));
- LEAVE(" ");
+ gtk_widget_destroy (GTK_WIDGET (aw->dialog));
+ LEAVE(" ");
}
@@ -1405,40 +1457,40 @@
static void
gnc_ui_refresh_account_window (AccountWindow *aw)
{
- if (aw == NULL)
- return;
+ if (aw == NULL)
+ return;
-/* gnc_account_tree_refresh (GNC_ACCOUNT_TREE(aw->parent_tree));*/
+ /* gnc_account_tree_refresh (GNC_ACCOUNT_TREE(aw->parent_tree));*/
- gnc_account_window_set_name (aw);
+ gnc_account_window_set_name (aw);
}
static void
refresh_handler (GHashTable *changes, gpointer user_data)
{
- AccountWindow *aw = user_data;
- const EventInfo *info;
- Account *account;
+ AccountWindow *aw = user_data;
+ const EventInfo *info;
+ Account *account;
- account = aw_get_account (aw);
- if (!account)
- {
- gnc_close_gui_component (aw->component_id);
- return;
- }
+ account = aw_get_account (aw);
+ if (!account)
+ {
+ gnc_close_gui_component (aw->component_id);
+ return;
+ }
- if (changes)
- {
- info = gnc_gui_get_entity_events (changes, &aw->account);
- if (info && (info->event_mask & QOF_EVENT_DESTROY))
+ if (changes)
{
- gnc_close_gui_component (aw->component_id);
- return;
+ info = gnc_gui_get_entity_events (changes, &aw->account);
+ if (info && (info->event_mask & QOF_EVENT_DESTROY))
+ {
+ gnc_close_gui_component (aw->component_id);
+ return;
+ }
}
- }
- gnc_ui_refresh_account_window (aw);
+ gnc_ui_refresh_account_window (aw);
}
@@ -1446,137 +1498,149 @@
gnc_ui_new_account_window_internal (QofBook *book,
Account *base_account,
gchar **subaccount_names,
- GList *valid_types,
- gnc_commodity * default_commodity,
- gboolean modal)
+ GList *valid_types,
+ gnc_commodity * default_commodity,
+ gboolean modal)
{
- gnc_commodity *commodity, *parent_commodity;
- AccountWindow *aw;
- Account *account;
- GList *list;
+ gnc_commodity *commodity, *parent_commodity;
+ AccountWindow *aw;
+ Account *account;
+ GList *list;
- g_return_val_if_fail(book, NULL);
+ g_return_val_if_fail(book, NULL);
- aw = g_new0 (AccountWindow, 1);
+ aw = g_new0 (AccountWindow, 1);
- aw->book = book;
- aw->modal = modal;
- aw->dialog_type = NEW_ACCOUNT;
+ aw->book = book;
+ aw->modal = modal;
+ aw->dialog_type = NEW_ACCOUNT;
- aw->valid_types = 0;
- for (list = valid_types; list; list = list->next)
- aw->valid_types |= (1 << GPOINTER_TO_INT (list->data));
+ aw->valid_types = 0;
+ for (list = valid_types; list; list = list->next)
+ aw->valid_types |= (1 << GPOINTER_TO_INT (list->data));
- account = xaccMallocAccount (book);
- aw->account = *xaccAccountGetGUID (account);
+ account = xaccMallocAccount (book);
+ aw->account = *xaccAccountGetGUID (account);
- if (base_account) {
- aw->type = xaccAccountGetType (base_account);
- parent_commodity = xaccAccountGetCommodity (base_account);
- } else {
- aw->type = last_used_account_type;
- parent_commodity = gnc_default_currency ();
- }
+ if (base_account)
+ {
+ aw->type = xaccAccountGetType (base_account);
+ parent_commodity = xaccAccountGetCommodity (base_account);
+ }
+ else
+ {
+ aw->type = last_used_account_type;
+ parent_commodity = gnc_default_currency ();
+ }
- gnc_suspend_gui_refresh ();
+ gnc_suspend_gui_refresh ();
- if (subaccount_names && *subaccount_names)
- {
- xaccAccountSetName (account, subaccount_names[0]);
- aw->subaccount_names = subaccount_names;
- aw->next_name = subaccount_names + 1;
- }
+ if (subaccount_names && *subaccount_names)
+ {
+ xaccAccountSetName (account, subaccount_names[0]);
+ aw->subaccount_names = subaccount_names;
+ aw->next_name = subaccount_names + 1;
+ }
- gnc_account_window_create (aw);
- gnc_account_to_ui (aw);
+ gnc_account_window_create (aw);
+ gnc_account_to_ui (aw);
- gnc_resume_gui_refresh ();
+ gnc_resume_gui_refresh ();
- if (default_commodity != NULL) {
- commodity = default_commodity;
- if ((aw->type == ACCT_TYPE_STOCK) || (aw->type == ACCT_TYPE_MUTUAL))
- {
- gtk_entry_set_text(GTK_ENTRY(aw->name_entry),
- (gpointer) gnc_commodity_get_mnemonic(commodity));
- gtk_entry_set_text(GTK_ENTRY(aw->description_entry),
- (gpointer) gnc_commodity_get_fullname(commodity));
+ if (default_commodity != NULL)
+ {
+ commodity = default_commodity;
+ if ((aw->type == ACCT_TYPE_STOCK) || (aw->type == ACCT_TYPE_MUTUAL))
+ {
+ gtk_entry_set_text(GTK_ENTRY(aw->name_entry),
+ (gpointer) gnc_commodity_get_mnemonic(commodity));
+ gtk_entry_set_text(GTK_ENTRY(aw->description_entry),
+ (gpointer) gnc_commodity_get_fullname(commodity));
}
- } else if ((aw->type != ACCT_TYPE_STOCK) && (aw->type != ACCT_TYPE_MUTUAL)) {
- commodity = parent_commodity;
- } else {
- commodity = NULL;
- }
- gnc_general_select_set_selected (GNC_GENERAL_SELECT (aw->commodity_edit),
- commodity);
- gnc_account_commodity_from_type (aw, FALSE);
+ }
+ else if ((aw->type != ACCT_TYPE_STOCK) && (aw->type != ACCT_TYPE_MUTUAL))
+ {
+ commodity = parent_commodity;
+ }
+ else
+ {
+ commodity = NULL;
+ }
+ gnc_general_select_set_selected (GNC_GENERAL_SELECT (aw->commodity_edit),
+ commodity);
+ gnc_account_commodity_from_type (aw, FALSE);
- if (base_account == NULL) {
- base_account = gnc_book_get_root_account(book);
- }
+ if (base_account == NULL)
+ {
+ base_account = gnc_book_get_root_account(book);
+ }
- gtk_tree_view_collapse_all (aw->parent_tree);
- gnc_tree_view_account_set_selected_account (
- GNC_TREE_VIEW_ACCOUNT (aw->parent_tree), base_account);
+ gtk_tree_view_collapse_all (aw->parent_tree);
+ gnc_tree_view_account_set_selected_account (
+ GNC_TREE_VIEW_ACCOUNT (aw->parent_tree), base_account);
- gtk_widget_show (aw->dialog);
+ gtk_widget_show (aw->dialog);
- gnc_window_adjust_for_screen (GTK_WINDOW(aw->dialog));
+ gnc_window_adjust_for_screen (GTK_WINDOW(aw->dialog));
- gnc_account_window_set_name (aw);
+ gnc_account_window_set_name (aw);
- aw->component_id = gnc_register_gui_component (DIALOG_NEW_ACCOUNT_CM_CLASS,
- refresh_handler,
- modal ? NULL : close_handler,
- aw);
+ aw->component_id = gnc_register_gui_component (DIALOG_NEW_ACCOUNT_CM_CLASS,
+ refresh_handler,
+ modal ? NULL : close_handler,
+ aw);
- gnc_gui_component_set_session (aw->component_id, gnc_get_current_session());
- gnc_gui_component_watch_entity_type (aw->component_id,
- GNC_ID_ACCOUNT,
- QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
- return aw;
+ gnc_gui_component_set_session (aw->component_id, gnc_get_current_session());
+ gnc_gui_component_watch_entity_type (aw->component_id,
+ GNC_ID_ACCOUNT,
+ QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
+ return aw;
}
static gchar **
gnc_split_account_name (QofBook *book, const char *in_name, Account **base_account)
{
- Account *root, *account;
- gchar **names, **ptr, **out_names;
- GList *list, *node;
+ Account *root, *account;
+ gchar **names, **ptr, **out_names;
+ GList *list, *node;
- root = gnc_book_get_root_account (book);
- list = gnc_account_get_children(root);
- names = g_strsplit(in_name, gnc_get_account_separator_string(), -1);
+ root = gnc_book_get_root_account (book);
+ list = gnc_account_get_children(root);
+ names = g_strsplit(in_name, gnc_get_account_separator_string(), -1);
- for (ptr = names; *ptr; ptr++) {
- /* Stop if there are no children at the current level. */
- if (list == NULL)
- break;
+ for (ptr = names; *ptr; ptr++)
+ {
+ /* Stop if there are no children at the current level. */
+ if (list == NULL)
+ break;
- /* Look for the first name in the children. */
- for (node = list; node; node = g_list_next(node)) {
- account = node->data;
+ /* Look for the first name in the children. */
+ for (node = list; node; node = g_list_next(node))
+ {
+ account = node->data;
- if (safe_strcmp(xaccAccountGetName (account), *ptr) == 0) {
- /* We found an account. */
- *base_account = account;
- break;
- }
- }
+ if (safe_strcmp(xaccAccountGetName (account), *ptr) == 0)
+ {
+ /* We found an account. */
+ *base_account = account;
+ break;
+ }
+ }
- /* Was there a match? If no, stop the traversal. */
- if (node == NULL)
- break;
+ /* Was there a match? If no, stop the traversal. */
+ if (node == NULL)
+ break;
- g_list_free(list);
- list = gnc_account_get_children (account);
- }
+ g_list_free(list);
+ list = gnc_account_get_children (account);
+ }
- out_names = g_strdupv(ptr);
- g_strfreev(names);
- if (list)
- g_list_free(list);
- return out_names;
+ out_names = g_strdupv(ptr);
+ g_strfreev(names);
+ if (list)
+ g_list_free(list);
+ return out_names;
}
@@ -1587,74 +1651,76 @@
Account *
gnc_ui_new_accounts_from_name_window (const char *name)
{
- return gnc_ui_new_accounts_from_name_with_defaults (name, NULL, NULL, NULL);
+ return gnc_ui_new_accounts_from_name_with_defaults (name, NULL, NULL, NULL);
}
Account *
gnc_ui_new_accounts_from_name_window_with_types (const char *name,
- GList *valid_types)
+ GList *valid_types)
{
- return gnc_ui_new_accounts_from_name_with_defaults(name, valid_types, NULL, NULL);
+ return gnc_ui_new_accounts_from_name_with_defaults(name, valid_types, NULL, NULL);
}
Account *
gnc_ui_new_accounts_from_name_with_defaults (const char *name,
- GList *valid_types,
- gnc_commodity * default_commodity,
- Account * parent)
+ GList *valid_types,
+ gnc_commodity * default_commodity,
+ Account * parent)
{
- QofBook *book;
- AccountWindow *aw;
- Account *base_account = NULL;
- Account *created_account = NULL;
- gchar ** subaccount_names;
- gint response;
- gboolean done = FALSE;
+ QofBook *book;
+ AccountWindow *aw;
+ Account *base_account = NULL;
+ Account *created_account = NULL;
+ gchar ** subaccount_names;
+ gint response;
+ gboolean done = FALSE;
- ENTER("name %s, valid %p, commodity %p, account %p",
- name, valid_types, default_commodity, parent);
- book = gnc_get_current_book();
- if (!name || *name == '\0')
- {
- subaccount_names = NULL;
- base_account = NULL;
- }
- else
- subaccount_names = gnc_split_account_name (book, name, &base_account);
+ ENTER("name %s, valid %p, commodity %p, account %p",
+ name, valid_types, default_commodity, parent);
+ book = gnc_get_current_book();
+ if (!name || *name == '\0')
+ {
+ subaccount_names = NULL;
+ base_account = NULL;
+ }
+ else
+ subaccount_names = gnc_split_account_name (book, name, &base_account);
- if (parent != NULL)
+ if (parent != NULL)
{
- base_account=parent;
+ base_account = parent;
}
- aw = gnc_ui_new_account_window_internal (book, base_account, subaccount_names,
- valid_types, default_commodity,
- TRUE);
+ aw = gnc_ui_new_account_window_internal (book, base_account, subaccount_names,
+ valid_types, default_commodity,
+ TRUE);
- while (!done) {
- response = gtk_dialog_run (GTK_DIALOG(aw->dialog));
+ while (!done)
+ {
+ response = gtk_dialog_run (GTK_DIALOG(aw->dialog));
- /* This can destroy the dialog */
- gnc_account_window_response_cb (GTK_DIALOG(aw->dialog), response, (gpointer)aw);
+ /* This can destroy the dialog */
+ gnc_account_window_response_cb (GTK_DIALOG(aw->dialog), response, (gpointer)aw);
- switch (response) {
- case GTK_RESPONSE_OK:
- created_account = aw->created_account;
- done = (created_account != NULL);
- break;
+ switch (response)
+ {
+ case GTK_RESPONSE_OK:
+ created_account = aw->created_account;
+ done = (created_account != NULL);
+ break;
- case GTK_RESPONSE_HELP:
- done = FALSE;
- break;
+ case GTK_RESPONSE_HELP:
+ done = FALSE;
+ break;
- default:
- done = TRUE;
- break;
+ default:
+ done = TRUE;
+ break;
+ }
}
- }
- close_handler(aw);
- LEAVE("created %s (%p)", xaccAccountGetName(created_account), created_account);
- return created_account;
+ close_handler(aw);
+ LEAVE("created %s (%p)", xaccAccountGetName(created_account), created_account);
+ return created_account;
}
/************************************************************
@@ -1664,102 +1730,103 @@
static gboolean
find_by_account (gpointer find_data, gpointer user_data)
{
- Account *account = find_data;
- AccountWindow *aw = user_data;
+ Account *account = find_data;
+ AccountWindow *aw = user_data;
- if (!aw)
- return FALSE;
+ if (!aw)
+ return FALSE;
- return guid_equal (&aw->account, xaccAccountGetGUID (account));
+ return guid_equal (&aw->account, xaccAccountGetGUID (account));
}
/*
* opens up a window to edit an account
- *
+ *
* Args: account - the account to edit
* Return: EditAccountWindow object
*/
void
gnc_ui_edit_account_window(Account *account)
{
- AccountWindow * aw;
- Account *parent;
+ AccountWindow * aw;
+ Account *parent;
- if (account == NULL)
- return;
+ if (account == NULL)
+ return;
- aw = gnc_find_first_gui_component (DIALOG_EDIT_ACCOUNT_CM_CLASS,
- find_by_account, account);
- if (aw) {
- gtk_window_present(GTK_WINDOW(aw->dialog));
- return;
- }
+ aw = gnc_find_first_gui_component (DIALOG_EDIT_ACCOUNT_CM_CLASS,
+ find_by_account, account);
+ if (aw)
+ {
+ gtk_window_present(GTK_WINDOW(aw->dialog));
+ return;
+ }
- aw = g_new0 (AccountWindow, 1);
+ aw = g_new0 (AccountWindow, 1);
- aw->book = gnc_account_get_book(account);
- aw->modal = FALSE;
- aw->dialog_type = EDIT_ACCOUNT;
- aw->account = *xaccAccountGetGUID (account);
- aw->subaccount_names = NULL;
- aw->type = xaccAccountGetType (account);
+ aw->book = gnc_account_get_book(account);
+ aw->modal = FALSE;
+ aw->dialog_type = EDIT_ACCOUNT;
+ aw->account = *xaccAccountGetGUID (account);
+ aw->subaccount_names = NULL;
+ aw->type = xaccAccountGetType (account);
- gnc_suspend_gui_refresh ();
+ gnc_suspend_gui_refresh ();
- gnc_account_window_create (aw);
- gnc_account_to_ui (aw);
+ gnc_account_window_create (aw);
+ gnc_account_to_ui (aw);
- gnc_resume_gui_refresh ();
+ gnc_resume_gui_refresh ();
- gtk_widget_show_all (aw->dialog);
- gtk_widget_hide (aw->opening_balance_page);
+ gtk_widget_show_all (aw->dialog);
+ gtk_widget_hide (aw->opening_balance_page);
- parent = gnc_account_get_parent (account);
- if (parent == NULL)
- parent = account; /* must be at the root */
+ parent = gnc_account_get_parent (account);
+ if (parent == NULL)
+ parent = account; /* must be at the root */
- gtk_tree_view_collapse_all (aw->parent_tree);
- gnc_tree_view_account_set_selected_account (
- GNC_TREE_VIEW_ACCOUNT(aw->parent_tree), parent);
+ gtk_tree_view_collapse_all (aw->parent_tree);
+ gnc_tree_view_account_set_selected_account (
+ GNC_TREE_VIEW_ACCOUNT(aw->parent_tree), parent);
- gnc_account_window_set_name (aw);
+ gnc_account_window_set_name (aw);
- gnc_window_adjust_for_screen(GTK_WINDOW(aw->dialog));
+ gnc_window_adjust_for_screen(GTK_WINDOW(aw->dialog));
- aw->component_id = gnc_register_gui_component (DIALOG_EDIT_ACCOUNT_CM_CLASS,
- refresh_handler,
- close_handler, aw);
+ aw->component_id = gnc_register_gui_component (DIALOG_EDIT_ACCOUNT_CM_CLASS,
+ refresh_handler,
+ close_handler, aw);
- gnc_gui_component_set_session (aw->component_id, gnc_get_current_session());
- gnc_gui_component_watch_entity_type (aw->component_id,
- GNC_ID_ACCOUNT,
- QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
+ gnc_gui_component_set_session (aw->component_id, gnc_get_current_session());
+ gnc_gui_component_watch_entity_type (aw->component_id,
+ GNC_ID_ACCOUNT,
+ QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
- gtk_window_present(GTK_WINDOW(aw->dialog));
+ gtk_window_present(GTK_WINDOW(aw->dialog));
}
/*
* opens up a window to create a new account
- *
+ *
* Args: book - containing book for the new account
* parent - The initial parent for the new account (optional)
*/
void
gnc_ui_new_account_window(QofBook *book, Account *parent)
{
- g_return_if_fail(book != NULL);
- if (parent && book)
- g_return_if_fail(gnc_account_get_book(parent) == book);
+ g_return_if_fail(book != NULL);
+ if (parent && book)
+ g_return_if_fail(gnc_account_get_book(parent) == book);
- gnc_ui_new_account_window_internal (book, parent, NULL, NULL, NULL, FALSE);
+ gnc_ui_new_account_window_internal (book, parent, NULL, NULL, NULL, FALSE);
}
void
gnc_ui_new_account_with_types( QofBook *book,
GList *valid_types )
{
- gnc_ui_new_account_window_internal( book, NULL, NULL, valid_types, NULL, FALSE );
+ gnc_ui_new_account_window_internal( book, NULL, NULL, valid_types, NULL, FALSE );
}
/************************************************************
@@ -1775,13 +1842,13 @@
void
gnc_ui_register_account_destroy_callback (void (*cb)(Account *))
{
- if (!cb)
- return;
+ if (!cb)
+ return;
- if (g_list_index (ac_destroy_cb_list, cb) == -1)
- ac_destroy_cb_list = g_list_append (ac_destroy_cb_list, cb);
+ if (g_list_index (ac_destroy_cb_list, cb) == -1)
+ ac_destroy_cb_list = g_list_append (ac_destroy_cb_list, cb);
- return;
+ return;
}
/**************************************************/
@@ -1789,107 +1856,109 @@
static void
gnc_account_renumber_update_examples (RenumberDialog *data)
{
- gchar *str;
- gchar *prefix;
- gint interval, num_digits;
+ gchar *str;
+ gchar *prefix;
+ gint interval, num_digits;
- prefix = gtk_editable_get_chars(GTK_EDITABLE(data->prefix), 0, -1);
- interval = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->interval));
- num_digits = log10(data->num_children * interval) + 1;
+ prefix = gtk_editable_get_chars(GTK_EDITABLE(data->prefix), 0, -1);
+ interval = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->interval));
+ num_digits = log10(data->num_children * interval) + 1;
- str = g_strdup_printf("%s-%0*d", prefix, num_digits, interval);
- gtk_label_set_text(GTK_LABEL(data->example1), str);
- g_free(str);
+ str = g_strdup_printf("%s-%0*d", prefix, num_digits, interval);
+ gtk_label_set_text(GTK_LABEL(data->example1), str);
+ g_free(str);
- str = g_strdup_printf("%s-%0*d", prefix, num_digits,
- interval * data->num_children);
- gtk_label_set_text(GTK_LABEL(data->example2), str);
- g_free(str);
+ str = g_strdup_printf("%s-%0*d", prefix, num_digits,
+ interval * data->num_children);
+ gtk_label_set_text(GTK_LABEL(data->example2), str);
+ g_free(str);
- g_free(prefix);
+ g_free(prefix);
}
void
gnc_account_renumber_prefix_changed_cb (GtkEditable *editable,
- RenumberDialog *data)
+ RenumberDialog *data)
{
- gnc_account_renumber_update_examples(data);
+ gnc_account_renumber_update_examples(data);
}
void
gnc_account_renumber_interval_changed_cb (GtkSpinButton *spinbutton,
- RenumberDialog *data)
+ RenumberDialog *data)
{
- gnc_account_renumber_update_examples(data);
+ gnc_account_renumber_update_examples(data);
}
void
gnc_account_renumber_response_cb (GtkDialog *dialog,
- gint response,
- RenumberDialog *data)
+ gint response,
+ RenumberDialog *data)
{
- GList *children, *tmp;
- gchar *str;
- gchar *prefix;
- gint interval, num_digits, i;
+ GList *children, *tmp;
+ gchar *str;
+ gchar *prefix;
+ gint interval, num_digits, i;
- if (response == GTK_RESPONSE_OK) {
- gtk_widget_hide(data->dialog);
- children = gnc_account_get_children(data->parent);
- prefix = gtk_editable_get_chars(GTK_EDITABLE(data->prefix), 0, -1);
- interval =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->interval));
- num_digits = log10(data->num_children * interval) + 1;
+ if (response == GTK_RESPONSE_OK)
+ {
+ gtk_widget_hide(data->dialog);
+ children = gnc_account_get_children(data->parent);
+ prefix = gtk_editable_get_chars(GTK_EDITABLE(data->prefix), 0, -1);
+ interval =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->interval));
+ num_digits = log10(data->num_children * interval) + 1;
- gnc_set_busy_cursor (NULL, TRUE);
- for (tmp = children, i = 1; tmp; tmp = g_list_next(tmp), i += 1) {
- str = g_strdup_printf("%s-%0*d", prefix, num_digits, interval * i);
- xaccAccountSetCode(tmp->data, str);
- g_free(str);
+ gnc_set_busy_cursor (NULL, TRUE);
+ for (tmp = children, i = 1; tmp; tmp = g_list_next(tmp), i += 1)
+ {
+ str = g_strdup_printf("%s-%0*d", prefix, num_digits, interval * i);
+ xaccAccountSetCode(tmp->data, str);
+ g_free(str);
+ }
+ gnc_unset_busy_cursor (NULL);
+ g_list_free(children);
}
- gnc_unset_busy_cursor (NULL);
- g_list_free(children);
- }
- gtk_widget_destroy(data->dialog);
- g_free(data);
+ gtk_widget_destroy(data->dialog);
+ g_free(data);
}
void
gnc_account_renumber_create_dialog (GtkWidget *window, Account *account)
{
- RenumberDialog *data;
- GladeXML *xml;
- GtkWidget *widget;
- gchar *string;
+ RenumberDialog *data;
+ GladeXML *xml;
+ GtkWidget *widget;
+ gchar *string;
- data = g_new(RenumberDialog, 1);
- data->parent = account;
- data->num_children = gnc_account_n_children(account);
+ data = g_new(RenumberDialog, 1);
+ data->parent = account;
+ data->num_children = gnc_account_n_children(account);
- xml = gnc_glade_xml_new ("account.glade", "Renumber Accounts");
- data->dialog = glade_xml_get_widget (xml, "Renumber Accounts");
- gtk_window_set_transient_for(GTK_WINDOW(data->dialog), GTK_WINDOW(window));
- g_object_set_data_full(G_OBJECT(data->dialog), "xml", xml, g_object_unref);
+ xml = gnc_glade_xml_new ("account.glade", "Renumber Accounts");
+ data->dialog = glade_xml_get_widget (xml, "Renumber Accounts");
+ gtk_window_set_transient_for(GTK_WINDOW(data->dialog), GTK_WINDOW(window));
+ g_object_set_data_full(G_OBJECT(data->dialog), "xml", xml, g_object_unref);
- widget = glade_xml_get_widget (xml, "header_label");
- string = g_strdup_printf(_( "Renumber the immediate sub-accounts of %s? "
- "This will replace the account code field of "
- "each child account with a newly generated code."),
- gnc_account_get_full_name(account));
- gtk_label_set_text(GTK_LABEL(widget), string);
- g_free(string);
+ widget = glade_xml_get_widget (xml, "header_label");
+ string = g_strdup_printf(_( "Renumber the immediate sub-accounts of %s? "
+ "This will replace the account code field of "
+ "each child account with a newly generated code."),
+ gnc_account_get_full_name(account));
+ gtk_label_set_text(GTK_LABEL(widget), string);
+ g_free(string);
- data->prefix = glade_xml_get_widget (xml, "prefix_entry");
- data->interval = glade_xml_get_widget (xml, "interval_spin");
- data->example1 = glade_xml_get_widget (xml, "example1_label");
- data->example2 = glade_xml_get_widget (xml, "example2_label");
+ data->prefix = glade_xml_get_widget (xml, "prefix_entry");
+ data->interval = glade_xml_get_widget (xml, "interval_spin");
+ data->example1 = glade_xml_get_widget (xml, "example1_label");
+ data->example2 = glade_xml_get_widget (xml, "example2_label");
- gtk_entry_set_text(GTK_ENTRY(data->prefix), xaccAccountGetCode(account));
- gnc_account_renumber_update_examples(data);
+ gtk_entry_set_text(GTK_ENTRY(data->prefix), xaccAccountGetCode(account));
+ gnc_account_renumber_update_examples(data);
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- data);
-
- gtk_widget_show_all(data->dialog);
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ data);
+
+ gtk_widget_show_all(data->dialog);
}
Modified: gnucash/trunk/src/gnome-utils/dialog-account.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-account.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-account.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -78,12 +78,12 @@
* responsible for freeing this list.
*/
void gnc_ui_new_account_with_types (QofBook *book,
- GList *valid_types);
+ GList *valid_types);
/** @} */
-/** @name Modal
+/** @name Modal
@{ */
/** Disply a modal window for creating a new account
@@ -108,7 +108,7 @@
*/
/* Note that the caller owns the valid_types list */
Account * gnc_ui_new_accounts_from_name_window_with_types (const char *name,
- GList *valid_types);
+ GList *valid_types);
/** Display a modal window for creating a new account. This function
@@ -130,9 +130,9 @@
* @return A pointer to the newly created account.
*/
Account * gnc_ui_new_accounts_from_name_with_defaults (const char *name,
- GList *valid_types,
- gnc_commodity * default_commodity,
- Account * parent);
+ GList *valid_types,
+ gnc_commodity * default_commodity,
+ Account * parent);
/*
* register a callback that get's called when the account has changed
Modified: gnucash/trunk/src/gnome-utils/dialog-book-close.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-book-close.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-book-close.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -49,71 +49,71 @@
struct CloseBookWindow
{
- /* Passed in by the creator */
- QofBook* book;
+ /* Passed in by the creator */
+ QofBook* book;
- /* Parts of the dialog */
- GtkWidget* dialog;
- GtkWidget* close_date_widget;
- GtkWidget* income_acct_widget;
- GtkWidget* expense_acct_widget;
- GtkWidget* desc_widget;
+ /* Parts of the dialog */
+ GtkWidget* dialog;
+ GtkWidget* close_date_widget;
+ GtkWidget* income_acct_widget;
+ GtkWidget* expense_acct_widget;
+ GtkWidget* desc_widget;
- /* The final settings */
- time_t close_date;
- const char* desc;
+ /* The final settings */
+ time_t close_date;
+ const char* desc;
- /* Component registration */
- gint component_manager_id;
+ /* Component registration */
+ gint component_manager_id;
};
struct CloseAccountsCB
{
- struct CloseBookWindow* cbw;
- Account* base_acct;
- GNCAccountType acct_type;
- GHashTable* txns;
- guint hash_size;
+ struct CloseBookWindow* cbw;
+ Account* base_acct;
+ GNCAccountType acct_type;
+ GHashTable* txns;
+ guint hash_size;
};
struct CACBTransactionList
{
- gnc_commodity* cmdty;
- Transaction* txn;
- gnc_numeric total;
+ gnc_commodity* cmdty;
+ Transaction* txn;
+ gnc_numeric total;
};
static struct CACBTransactionList*
find_or_create_txn(struct CloseAccountsCB* cacb, gnc_commodity* cmdty)
{
- struct CACBTransactionList* txn;
+ struct CACBTransactionList* txn;
- g_return_val_if_fail(cacb, NULL);
- g_return_val_if_fail(cmdty, NULL);
+ g_return_val_if_fail(cacb, NULL);
+ g_return_val_if_fail(cmdty, NULL);
- txn = g_hash_table_lookup(cacb->txns, cmdty);
- if (!txn)
- {
- kvp_frame* frame;
- txn = g_new0(struct CACBTransactionList, 1);
- txn->cmdty = cmdty;
- txn->total = gnc_numeric_zero();
- txn->txn = xaccMallocTransaction(cacb->cbw->book);
- xaccTransBeginEdit(txn->txn);
- xaccTransSetDateEnteredSecs(txn->txn, time(NULL));
- xaccTransSetDatePostedSecs(txn->txn, cacb->cbw->close_date);
- xaccTransSetDescription(txn->txn, cacb->cbw->desc);
- xaccTransSetCurrency(txn->txn, cmdty);
- frame = xaccTransGetSlots(txn->txn);
- /* Add a bool flag to indicate this txn was created automatically
- by the book closing feature. See
- https://lists.gnucash.org/pipermail/gnucash-devel/2008-August/023757.html */
- kvp_frame_set_gint64(frame, "book_closing", 1);
+ txn = g_hash_table_lookup(cacb->txns, cmdty);
+ if (!txn)
+ {
+ kvp_frame* frame;
+ txn = g_new0(struct CACBTransactionList, 1);
+ txn->cmdty = cmdty;
+ txn->total = gnc_numeric_zero();
+ txn->txn = xaccMallocTransaction(cacb->cbw->book);
+ xaccTransBeginEdit(txn->txn);
+ xaccTransSetDateEnteredSecs(txn->txn, time(NULL));
+ xaccTransSetDatePostedSecs(txn->txn, cacb->cbw->close_date);
+ xaccTransSetDescription(txn->txn, cacb->cbw->desc);
+ xaccTransSetCurrency(txn->txn, cmdty);
+ frame = xaccTransGetSlots(txn->txn);
+ /* Add a bool flag to indicate this txn was created automatically
+ by the book closing feature. See
+ https://lists.gnucash.org/pipermail/gnucash-devel/2008-August/023757.html */
+ kvp_frame_set_gint64(frame, "book_closing", 1);
- g_hash_table_insert(cacb->txns, cmdty, txn);
- }
+ g_hash_table_insert(cacb->txns, cmdty, txn);
+ }
- return txn;
+ return txn;
}
/* Make sure that the account is of the correct type.
@@ -124,259 +124,260 @@
*/
static void close_accounts_cb(Account *a, gpointer data)
{
- struct CloseAccountsCB* cacb = data;
- struct CACBTransactionList* txn;
- gnc_commodity* acct_commodity;
- Split* split;
- gnc_numeric bal;
+ struct CloseAccountsCB* cacb = data;
+ struct CACBTransactionList* txn;
+ gnc_commodity* acct_commodity;
+ Split* split;
+ gnc_numeric bal;
- g_return_if_fail(a);
- g_return_if_fail(cacb);
- g_return_if_fail(cacb->cbw);
- g_return_if_fail(cacb->txns);
+ g_return_if_fail(a);
+ g_return_if_fail(cacb);
+ g_return_if_fail(cacb->cbw);
+ g_return_if_fail(cacb->txns);
- if (cacb->acct_type != xaccAccountGetType(a))
- return;
+ if (cacb->acct_type != xaccAccountGetType(a))
+ return;
- bal = xaccAccountGetBalanceAsOfDate(a, cacb->cbw->close_date+1);
- if (gnc_numeric_zero_p(bal))
- return;
+ bal = xaccAccountGetBalanceAsOfDate(a, cacb->cbw->close_date + 1);
+ if (gnc_numeric_zero_p(bal))
+ return;
- acct_commodity = xaccAccountGetCommodity(a);
- g_assert(acct_commodity);
+ acct_commodity = xaccAccountGetCommodity(a);
+ g_assert(acct_commodity);
- txn = find_or_create_txn(cacb, acct_commodity);
- g_assert(txn);
-
- split = xaccMallocSplit(cacb->cbw->book);
- xaccSplitSetParent(split, txn->txn);
- xaccAccountBeginEdit(a);
- xaccAccountInsertSplit(a, split);
- xaccSplitSetBaseValue(split, gnc_numeric_neg(bal), acct_commodity);
- xaccAccountCommitEdit(a);
- txn->total = gnc_numeric_add(txn->total, bal, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_FIXED | GNC_HOW_RND_NEVER);
+ txn = find_or_create_txn(cacb, acct_commodity);
+ g_assert(txn);
+
+ split = xaccMallocSplit(cacb->cbw->book);
+ xaccSplitSetParent(split, txn->txn);
+ xaccAccountBeginEdit(a);
+ xaccAccountInsertSplit(a, split);
+ xaccSplitSetBaseValue(split, gnc_numeric_neg(bal), acct_commodity);
+ xaccAccountCommitEdit(a);
+ txn->total = gnc_numeric_add(txn->total, bal, GNC_DENOM_AUTO,
+ GNC_HOW_DENOM_FIXED | GNC_HOW_RND_NEVER);
}
static void finish_txn_cb(gnc_commodity* cmdty,
- struct CACBTransactionList* txn,
- struct CloseAccountsCB* cacb)
+ struct CACBTransactionList* txn,
+ struct CloseAccountsCB* cacb)
{
- Account* acc;
- Split* split;
+ Account* acc;
+ Split* split;
- g_return_if_fail(cmdty);
- g_return_if_fail(txn);
- g_return_if_fail(cacb);
- g_return_if_fail(cacb->hash_size);
+ g_return_if_fail(cmdty);
+ g_return_if_fail(txn);
+ g_return_if_fail(cacb);
+ g_return_if_fail(cacb->hash_size);
- /* If we only have one currency and the base account uses
- * that currency, then we can use that account. Otherwise,
- * create a subaccount for each currency.
- */
- if (cacb->hash_size == 1 &&
- gnc_commodity_equal(cmdty, xaccAccountGetCommodity(cacb->base_acct)))
- acc = cacb->base_acct;
- else
- {
- /* See if we already have an account by that name */
- acc = gnc_account_lookup_by_name(cacb->base_acct,
- gnc_commodity_get_mnemonic(cmdty));
+ /* If we only have one currency and the base account uses
+ * that currency, then we can use that account. Otherwise,
+ * create a subaccount for each currency.
+ */
+ if (cacb->hash_size == 1 &&
+ gnc_commodity_equal(cmdty, xaccAccountGetCommodity(cacb->base_acct)))
+ acc = cacb->base_acct;
+ else
+ {
+ /* See if we already have an account by that name */
+ acc = gnc_account_lookup_by_name(cacb->base_acct,
+ gnc_commodity_get_mnemonic(cmdty));
- /* If not, then create one */
- if (!acc)
- {
- acc = xaccMallocAccount(cacb->cbw->book);
- xaccAccountBeginEdit(acc);
- xaccAccountSetType(acc, ACCT_TYPE_EQUITY);
- xaccAccountSetName(acc, gnc_commodity_get_mnemonic(cmdty));
- xaccAccountSetDescription(acc, gnc_commodity_get_mnemonic(cmdty));
- xaccAccountSetCommodity(acc, cmdty);
- gnc_account_append_child(cacb->base_acct, acc);
- xaccAccountCommitEdit(acc);
+ /* If not, then create one */
+ if (!acc)
+ {
+ acc = xaccMallocAccount(cacb->cbw->book);
+ xaccAccountBeginEdit(acc);
+ xaccAccountSetType(acc, ACCT_TYPE_EQUITY);
+ xaccAccountSetName(acc, gnc_commodity_get_mnemonic(cmdty));
+ xaccAccountSetDescription(acc, gnc_commodity_get_mnemonic(cmdty));
+ xaccAccountSetCommodity(acc, cmdty);
+ gnc_account_append_child(cacb->base_acct, acc);
+ xaccAccountCommitEdit(acc);
+ }
}
- }
- /* Make sure the account exists and is of the correct commodity */
- g_assert(acc);
- g_assert(gnc_commodity_equal(cmdty, xaccAccountGetCommodity(acc)));
+ /* Make sure the account exists and is of the correct commodity */
+ g_assert(acc);
+ g_assert(gnc_commodity_equal(cmdty, xaccAccountGetCommodity(acc)));
- /* Create the split for the Equity account to balance out
- * all the accounts of this. Use the "total".
- */
- split = xaccMallocSplit(cacb->cbw->book);
- xaccSplitSetParent(split, txn->txn);
- xaccAccountBeginEdit(acc);
- xaccAccountInsertSplit(acc, split);
- xaccSplitSetBaseValue(split, txn->total, cmdty);
- xaccAccountCommitEdit(acc);
- xaccTransCommitEdit(txn->txn);
+ /* Create the split for the Equity account to balance out
+ * all the accounts of this. Use the "total".
+ */
+ split = xaccMallocSplit(cacb->cbw->book);
+ xaccSplitSetParent(split, txn->txn);
+ xaccAccountBeginEdit(acc);
+ xaccAccountInsertSplit(acc, split);
+ xaccSplitSetBaseValue(split, txn->total, cmdty);
+ xaccAccountCommitEdit(acc);
+ xaccTransCommitEdit(txn->txn);
}
static void close_accounts_of_type(struct CloseBookWindow* cbw,
- Account* acct,
- GNCAccountType acct_type)
+ Account* acct,
+ GNCAccountType acct_type)
{
- struct CloseAccountsCB cacb;
- Account* root_acct;
+ struct CloseAccountsCB cacb;
+ Account* root_acct;
- g_return_if_fail(cbw);
- g_return_if_fail(acct);
+ g_return_if_fail(cbw);
+ g_return_if_fail(acct);
- cacb.cbw = cbw;
- cacb.base_acct = acct;
- cacb.acct_type = acct_type;
- cacb.txns = g_hash_table_new_full(g_direct_hash,
- (GEqualFunc)gnc_commodity_equal,
- NULL, g_free);
+ cacb.cbw = cbw;
+ cacb.base_acct = acct;
+ cacb.acct_type = acct_type;
+ cacb.txns = g_hash_table_new_full(g_direct_hash,
+ (GEqualFunc)gnc_commodity_equal,
+ NULL, g_free);
- /* Iterate through all accounts and set up the balancing splits */
- root_acct = gnc_book_get_root_account(cbw->book);
- gnc_account_foreach_descendant(root_acct, close_accounts_cb, &cacb);
+ /* Iterate through all accounts and set up the balancing splits */
+ root_acct = gnc_book_get_root_account(cbw->book);
+ gnc_account_foreach_descendant(root_acct, close_accounts_cb, &cacb);
- /* now iterate through the transactions and handle each currency */
- cacb.hash_size = g_hash_table_size(cacb.txns);
- if (cacb.hash_size)
- g_hash_table_foreach(cacb.txns, (GHFunc)finish_txn_cb, &cacb);
+ /* now iterate through the transactions and handle each currency */
+ cacb.hash_size = g_hash_table_size(cacb.txns);
+ if (cacb.hash_size)
+ g_hash_table_foreach(cacb.txns, (GHFunc)finish_txn_cb, &cacb);
- /* Destroy the table, freeing the used memory */
- g_hash_table_destroy(cacb.txns);
+ /* Destroy the table, freeing the used memory */
+ g_hash_table_destroy(cacb.txns);
}
static void close_handler(gpointer data)
{
- GtkWidget *dialog = data;
+ GtkWidget *dialog = data;
- gtk_widget_destroy(dialog);
+ gtk_widget_destroy(dialog);
}
static void destroy_cb(GtkObject *object, gpointer data)
{
- struct CloseBookWindow *cbw;
+ struct CloseBookWindow *cbw;
- cbw = g_object_get_data(G_OBJECT(object), "CloseBookWindow");
+ cbw = g_object_get_data(G_OBJECT(object), "CloseBookWindow");
- if (cbw->component_manager_id) {
- gnc_unregister_gui_component(cbw->component_manager_id);
- cbw->component_manager_id = 0;
- }
+ if (cbw->component_manager_id)
+ {
+ gnc_unregister_gui_component(cbw->component_manager_id);
+ cbw->component_manager_id = 0;
+ }
}
void
gnc_book_close_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
{
- struct CloseBookWindow* cbw;
- Account* income_acct;
- Account* expense_acct;
+ struct CloseBookWindow* cbw;
+ Account* income_acct;
+ Account* expense_acct;
- g_return_if_fail(dialog);
+ g_return_if_fail(dialog);
- cbw = g_object_get_data(G_OBJECT(dialog), "CloseBookWindow");
- g_return_if_fail(cbw);
+ cbw = g_object_get_data(G_OBJECT(dialog), "CloseBookWindow");
+ g_return_if_fail(cbw);
- switch (response)
- {
- case GTK_RESPONSE_HELP:
- gnc_gnome_help(HF_HELP, HL_GLOBPREFS);
- break;
- case GTK_RESPONSE_OK:
- cbw->close_date = gnc_date_edit_get_date(GNC_DATE_EDIT(cbw->close_date_widget));
- cbw->close_date += (3600 * 12); /* Add 12 hours to the timestamp */
- cbw->desc = gtk_entry_get_text(GTK_ENTRY(cbw->desc_widget));
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ gnc_gnome_help(HF_HELP, HL_GLOBPREFS);
+ break;
+ case GTK_RESPONSE_OK:
+ cbw->close_date = gnc_date_edit_get_date(GNC_DATE_EDIT(cbw->close_date_widget));
+ cbw->close_date += (3600 * 12); /* Add 12 hours to the timestamp */
+ cbw->desc = gtk_entry_get_text(GTK_ENTRY(cbw->desc_widget));
- income_acct = gnc_account_sel_get_account(GNC_ACCOUNT_SEL(cbw->income_acct_widget));
- expense_acct = gnc_account_sel_get_account(GNC_ACCOUNT_SEL(cbw->expense_acct_widget));
+ income_acct = gnc_account_sel_get_account(GNC_ACCOUNT_SEL(cbw->income_acct_widget));
+ expense_acct = gnc_account_sel_get_account(GNC_ACCOUNT_SEL(cbw->expense_acct_widget));
- if (!income_acct)
- {
- gnc_error_dialog(cbw->dialog, "%s",
- _("Please select an Equity account to hold the total Period Income."));
- break;
- }
+ if (!income_acct)
+ {
+ gnc_error_dialog(cbw->dialog, "%s",
+ _("Please select an Equity account to hold the total Period Income."));
+ break;
+ }
- if (!expense_acct)
- {
- gnc_error_dialog(cbw->dialog, "%s",
- _("Please select an Equity account to hold the total Period Expense."));
- break;
- }
+ if (!expense_acct)
+ {
+ gnc_error_dialog(cbw->dialog, "%s",
+ _("Please select an Equity account to hold the total Period Expense."));
+ break;
+ }
- gnc_suspend_gui_refresh();
- close_accounts_of_type(cbw, income_acct, ACCT_TYPE_INCOME);
- close_accounts_of_type(cbw, expense_acct, ACCT_TYPE_EXPENSE);
- gnc_resume_gui_refresh();
+ gnc_suspend_gui_refresh();
+ close_accounts_of_type(cbw, income_acct, ACCT_TYPE_INCOME);
+ close_accounts_of_type(cbw, expense_acct, ACCT_TYPE_EXPENSE);
+ gnc_resume_gui_refresh();
- /* FALLTHROUGH */
- default:
- gtk_widget_destroy(GTK_WIDGET(dialog));
- break;
- }
+ /* FALLTHROUGH */
+ default:
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ break;
+ }
}
void gnc_ui_close_book (QofBook* book)
{
- struct CloseBookWindow *cbw;
- GladeXML* xml;
- GtkWidget* box;
- GList* equity_list = NULL;
+ struct CloseBookWindow *cbw;
+ GladeXML* xml;
+ GtkWidget* box;
+ GList* equity_list = NULL;
- g_return_if_fail(book);
+ g_return_if_fail(book);
- cbw = g_new0(struct CloseBookWindow, 1);
- g_return_if_fail(cbw);
- cbw->book = book;
+ cbw = g_new0(struct CloseBookWindow, 1);
+ g_return_if_fail(cbw);
+ cbw->book = book;
- /* Open the dialog */
- xml = gnc_glade_xml_new("dialog-book-close.glade", "Close Book");
- cbw->dialog = glade_xml_get_widget(xml, "Close Book");
+ /* Open the dialog */
+ xml = gnc_glade_xml_new("dialog-book-close.glade", "Close Book");
+ cbw->dialog = glade_xml_get_widget(xml, "Close Book");
- /* close date */
- box = glade_xml_get_widget(xml, "date_box");
- cbw->close_date_widget = gnc_date_edit_new(time(NULL), FALSE, FALSE);
- gtk_box_pack_start(GTK_BOX(box), cbw->close_date_widget, TRUE, TRUE, 0);
+ /* close date */
+ box = glade_xml_get_widget(xml, "date_box");
+ cbw->close_date_widget = gnc_date_edit_new(time(NULL), FALSE, FALSE);
+ gtk_box_pack_start(GTK_BOX(box), cbw->close_date_widget, TRUE, TRUE, 0);
- /* income acct */
- equity_list = g_list_prepend(equity_list, GINT_TO_POINTER(ACCT_TYPE_EQUITY));
- box = glade_xml_get_widget(xml, "income_acct_box");
- cbw->income_acct_widget = gnc_account_sel_new();
- gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(cbw->income_acct_widget),
- equity_list, NULL);
- gnc_account_sel_set_new_account_ability(GNC_ACCOUNT_SEL(cbw->income_acct_widget), TRUE);
- gtk_box_pack_start(GTK_BOX(box), cbw->income_acct_widget, TRUE, TRUE, 0);
+ /* income acct */
+ equity_list = g_list_prepend(equity_list, GINT_TO_POINTER(ACCT_TYPE_EQUITY));
+ box = glade_xml_get_widget(xml, "income_acct_box");
+ cbw->income_acct_widget = gnc_account_sel_new();
+ gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(cbw->income_acct_widget),
+ equity_list, NULL);
+ gnc_account_sel_set_new_account_ability(GNC_ACCOUNT_SEL(cbw->income_acct_widget), TRUE);
+ gtk_box_pack_start(GTK_BOX(box), cbw->income_acct_widget, TRUE, TRUE, 0);
- /* expense acct */
- box = glade_xml_get_widget(xml, "expense_acct_box");
- cbw->expense_acct_widget = gnc_account_sel_new();
- gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(cbw->expense_acct_widget),
- equity_list, NULL);
- gnc_account_sel_set_new_account_ability(GNC_ACCOUNT_SEL(cbw->expense_acct_widget), TRUE);
- gtk_box_pack_start(GTK_BOX(box), cbw->expense_acct_widget, TRUE, TRUE, 0);
+ /* expense acct */
+ box = glade_xml_get_widget(xml, "expense_acct_box");
+ cbw->expense_acct_widget = gnc_account_sel_new();
+ gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(cbw->expense_acct_widget),
+ equity_list, NULL);
+ gnc_account_sel_set_new_account_ability(GNC_ACCOUNT_SEL(cbw->expense_acct_widget), TRUE);
+ gtk_box_pack_start(GTK_BOX(box), cbw->expense_acct_widget, TRUE, TRUE, 0);
- /* desc */
- cbw->desc_widget = glade_xml_get_widget(xml, "desc_entry");
+ /* desc */
+ cbw->desc_widget = glade_xml_get_widget(xml, "desc_entry");
- /* Autoconnect signals */
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- cbw->dialog);
+ /* Autoconnect signals */
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ cbw->dialog);
- /* Register dialog with component manager */
- cbw->component_manager_id =
- gnc_register_gui_component(DIALOG_BOOK_CLOSE_CM_CLASS, NULL, close_handler,
- cbw->dialog);
- gnc_gui_component_set_session(cbw->component_manager_id,
- gnc_get_current_session());
- g_signal_connect(cbw->dialog, "destroy", G_CALLBACK(destroy_cb), NULL);
+ /* Register dialog with component manager */
+ cbw->component_manager_id =
+ gnc_register_gui_component(DIALOG_BOOK_CLOSE_CM_CLASS, NULL, close_handler,
+ cbw->dialog);
+ gnc_gui_component_set_session(cbw->component_manager_id,
+ gnc_get_current_session());
+ g_signal_connect(cbw->dialog, "destroy", G_CALLBACK(destroy_cb), NULL);
- /* Clean up the xml data structure when the dialog is destroyed */
- g_object_set_data_full(G_OBJECT(cbw->dialog), "dialog-book-close.glade",
- xml, g_object_unref);
- g_object_set_data_full(G_OBJECT(cbw->dialog), "CloseBookWindow", cbw,
- g_free);
+ /* Clean up the xml data structure when the dialog is destroyed */
+ g_object_set_data_full(G_OBJECT(cbw->dialog), "dialog-book-close.glade",
+ xml, g_object_unref);
+ g_object_set_data_full(G_OBJECT(cbw->dialog), "CloseBookWindow", cbw,
+ g_free);
- /* Run the dialog */
- gtk_widget_show_all(cbw->dialog);
+ /* Run the dialog */
+ gtk_widget_show_all(cbw->dialog);
- g_list_free(equity_list);
+ g_list_free(equity_list);
}
Modified: gnucash/trunk/src/gnome-utils/dialog-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-commodity.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-commodity.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -49,50 +49,53 @@
static QofLogModule log_module = GNC_MOD_GUI;
-enum {
- SOURCE_COL_NAME = 0,
- SOURCE_COL_FQ_SUPPORTED,
- NUM_SOURCE_COLS
+enum
+{
+ SOURCE_COL_NAME = 0,
+ SOURCE_COL_FQ_SUPPORTED,
+ NUM_SOURCE_COLS
};
-struct select_commodity_window {
- GtkWidget * dialog;
- GtkWidget * namespace_combo;
- GtkWidget * commodity_combo;
- GtkWidget * select_user_prompt;
- GtkWidget * ok_button;
+struct select_commodity_window
+{
+ GtkWidget * dialog;
+ GtkWidget * namespace_combo;
+ GtkWidget * commodity_combo;
+ GtkWidget * select_user_prompt;
+ GtkWidget * ok_button;
- gnc_commodity * selection;
+ gnc_commodity * selection;
- const char * default_cusip;
- const char * default_fullname;
- const char * default_mnemonic;
- int default_fraction;
+ const char * default_cusip;
+ const char * default_fullname;
+ const char * default_mnemonic;
+ int default_fraction;
};
-struct commodity_window {
- GtkWidget * dialog;
- GtkWidget * table;
- GtkWidget * fullname_entry;
- GtkWidget * mnemonic_entry;
- GtkWidget * namespace_combo;
- GtkWidget * code_entry;
- GtkWidget * fraction_spinbutton;
- GtkWidget * get_quote_check;
- GtkWidget * source_label;
- GtkWidget * source_button[SOURCE_MAX];
- GtkWidget * source_menu[SOURCE_MAX];
- GtkWidget * quote_tz_label;
- GtkWidget * quote_tz_menu;
- GtkWidget * ok_button;
+struct commodity_window
+{
+ GtkWidget * dialog;
+ GtkWidget * table;
+ GtkWidget * fullname_entry;
+ GtkWidget * mnemonic_entry;
+ GtkWidget * namespace_combo;
+ GtkWidget * code_entry;
+ GtkWidget * fraction_spinbutton;
+ GtkWidget * get_quote_check;
+ GtkWidget * source_label;
+ GtkWidget * source_button[SOURCE_MAX];
+ GtkWidget * source_menu[SOURCE_MAX];
+ GtkWidget * quote_tz_label;
+ GtkWidget * quote_tz_menu;
+ GtkWidget * ok_button;
- guint comm_section_top;
- guint comm_section_bottom;
- guint fq_section_top;
- guint fq_section_bottom;
+ guint comm_section_top;
+ guint comm_section_bottom;
+ guint fq_section_top;
+ guint fq_section_bottom;
- gboolean is_currency;
- gnc_commodity *edit_commodity;
+ gboolean is_currency;
+ gnc_commodity *edit_commodity;
};
typedef struct select_commodity_window SelectCommodityWindow;
@@ -104,13 +107,13 @@
/* The commodity selection window */
static SelectCommodityWindow *
gnc_ui_select_commodity_create(const gnc_commodity * orig_sel,
- dialog_commodity_mode mode);
+ dialog_commodity_mode mode);
void gnc_ui_select_commodity_new_cb(GtkButton * button,
- gpointer user_data);
+ gpointer user_data);
void gnc_ui_select_commodity_changed_cb(GtkComboBoxEntry *cbe,
- gpointer user_data);
+ gpointer user_data);
void gnc_ui_select_commodity_namespace_changed_cb(GtkComboBoxEntry *cbe,
- gpointer user_data);
+ gpointer user_data);
/* The commodity creation window */
void gnc_ui_commodity_changed_cb(GtkWidget * dummy, gpointer user_data);
@@ -129,85 +132,87 @@
void
gnc_ui_commodity_set_help_callback (gnc_commodity_help_callback cb)
{
- help_callback = cb;
+ help_callback = cb;
}
/********************************************************************
* gnc_ui_select_commodity_modal_full()
********************************************************************/
-gnc_commodity *
-gnc_ui_select_commodity_modal_full(gnc_commodity * orig_sel,
- GtkWidget * parent,
- dialog_commodity_mode mode,
- const char * user_message,
- const char * cusip,
- const char * fullname,
- const char * mnemonic)
+gnc_commodity *
+gnc_ui_select_commodity_modal_full(gnc_commodity * orig_sel,
+ GtkWidget * parent,
+ dialog_commodity_mode mode,
+ const char * user_message,
+ const char * cusip,
+ const char * fullname,
+ const char * mnemonic)
{
- gnc_commodity * retval = NULL;
- const gchar *initial;
- gchar *user_prompt_text;
- SelectCommodityWindow * win;
- gboolean done;
- gint value;
-
- win = gnc_ui_select_commodity_create(orig_sel, mode);
- win->default_cusip=cusip;
- win->default_fullname=fullname;
- win->default_mnemonic=mnemonic;
-
- if (parent)
- gtk_window_set_transient_for (GTK_WINDOW (win->dialog), GTK_WINDOW (parent));
+ gnc_commodity * retval = NULL;
+ const gchar *initial;
+ gchar *user_prompt_text;
+ SelectCommodityWindow * win;
+ gboolean done;
+ gint value;
- if (user_message != NULL)
- initial = user_message;
- else if ((cusip != NULL) || (fullname != NULL) || (mnemonic != NULL))
- initial = _("\nPlease select a commodity to match:");
- else
- initial = "";
+ win = gnc_ui_select_commodity_create(orig_sel, mode);
+ win->default_cusip = cusip;
+ win->default_fullname = fullname;
+ win->default_mnemonic = mnemonic;
- user_prompt_text =
- g_strdup_printf("%s%s%s%s%s%s%s",
- initial,
- fullname ? _("\nCommodity: ") : "",
- fullname ? fullname : "",
- /* Translators: Replace here and later CUSIP by the name of your local
- National Securities Identifying Number
- like gb:SEDOL, de:WKN, ch:Valorennummer, fr:SICOVAM ...
- See http://en.wikipedia.org/wiki/ISIN for hints. */
- cusip ? _("\nExchange code (ISIN, CUSIP or similar): ") : "",
- cusip ? cusip : "",
- mnemonic ? _("\nMnemonic (Ticker symbol or similar): ") : "",
- mnemonic ? mnemonic : "");
- gtk_label_set_text ((GtkLabel *)(win->select_user_prompt),
- user_prompt_text);
- g_free(user_prompt_text);
+ if (parent)
+ gtk_window_set_transient_for (GTK_WINDOW (win->dialog), GTK_WINDOW (parent));
- /* Run the dialog, handling the terminal conditions. */
- done = FALSE;
- while (!done) {
- switch (value = gtk_dialog_run(GTK_DIALOG(win->dialog))) {
- case GTK_RESPONSE_OK:
- DEBUG("case OK");
- retval = win->selection;
- done = TRUE;
- break;
- case GNC_RESPONSE_NEW:
- DEBUG("case NEW");
- gnc_ui_select_commodity_new_cb(NULL, win);
- break;
- default: /* Cancel, Escape, Close, etc. */
- DEBUG("default: %d", value);
- retval = NULL;
- done = TRUE;
- break;
+ if (user_message != NULL)
+ initial = user_message;
+ else if ((cusip != NULL) || (fullname != NULL) || (mnemonic != NULL))
+ initial = _("\nPlease select a commodity to match:");
+ else
+ initial = "";
+
+ user_prompt_text =
+ g_strdup_printf("%s%s%s%s%s%s%s",
+ initial,
+ fullname ? _("\nCommodity: ") : "",
+ fullname ? fullname : "",
+ /* Translators: Replace here and later CUSIP by the name of your local
+ National Securities Identifying Number
+ like gb:SEDOL, de:WKN, ch:Valorennummer, fr:SICOVAM ...
+ See http://en.wikipedia.org/wiki/ISIN for hints. */
+ cusip ? _("\nExchange code (ISIN, CUSIP or similar): ") : "",
+ cusip ? cusip : "",
+ mnemonic ? _("\nMnemonic (Ticker symbol or similar): ") : "",
+ mnemonic ? mnemonic : "");
+ gtk_label_set_text ((GtkLabel *)(win->select_user_prompt),
+ user_prompt_text);
+ g_free(user_prompt_text);
+
+ /* Run the dialog, handling the terminal conditions. */
+ done = FALSE;
+ while (!done)
+ {
+ switch (value = gtk_dialog_run(GTK_DIALOG(win->dialog)))
+ {
+ case GTK_RESPONSE_OK:
+ DEBUG("case OK");
+ retval = win->selection;
+ done = TRUE;
+ break;
+ case GNC_RESPONSE_NEW:
+ DEBUG("case NEW");
+ gnc_ui_select_commodity_new_cb(NULL, win);
+ break;
+ default: /* Cancel, Escape, Close, etc. */
+ DEBUG("default: %d", value);
+ retval = NULL;
+ done = TRUE;
+ break;
+ }
}
- }
- gtk_widget_destroy (GTK_WIDGET (win->dialog)); /* Close and destroy */
- g_free(win);
-
- return retval;
+ gtk_widget_destroy (GTK_WIDGET (win->dialog)); /* Close and destroy */
+ g_free(win);
+
+ return retval;
}
/********************************************************************
@@ -217,15 +222,15 @@
gnc_commodity *
gnc_ui_select_commodity_modal(gnc_commodity * orig_sel,
GtkWidget * parent,
- dialog_commodity_mode mode)
+ dialog_commodity_mode mode)
{
- return gnc_ui_select_commodity_modal_full(orig_sel,
- parent,
- mode,
- NULL,
- NULL,
- NULL,
- NULL);
+ return gnc_ui_select_commodity_modal_full(orig_sel,
+ parent,
+ mode,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
}
@@ -235,69 +240,70 @@
static SelectCommodityWindow *
gnc_ui_select_commodity_create(const gnc_commodity * orig_sel,
- dialog_commodity_mode mode)
+ dialog_commodity_mode mode)
{
- SelectCommodityWindow * retval = g_new0(SelectCommodityWindow, 1);
- GladeXML *xml;
- const char *title, *text;
- gchar *namespace;
- GtkWidget *button, *label;
+ SelectCommodityWindow * retval = g_new0(SelectCommodityWindow, 1);
+ GladeXML *xml;
+ const char *title, *text;
+ gchar *namespace;
+ GtkWidget *button, *label;
- xml = gnc_glade_xml_new ("commodity.glade", "Security Selector Dialog");
- glade_xml_signal_autoconnect_full( xml,
- gnc_glade_autoconnect_full_func,
- retval );
+ xml = gnc_glade_xml_new ("commodity.glade", "Security Selector Dialog");
+ glade_xml_signal_autoconnect_full( xml,
+ gnc_glade_autoconnect_full_func,
+ retval );
- retval->dialog = glade_xml_get_widget (xml, "Security Selector Dialog");
- retval->namespace_combo = glade_xml_get_widget (xml, "namespace_cbe");
- retval->commodity_combo = glade_xml_get_widget (xml, "commodity_cbe");
- retval->select_user_prompt = glade_xml_get_widget (xml, "select_user_prompt");
- retval->ok_button = glade_xml_get_widget (xml, "ok_button");
- label = glade_xml_get_widget (xml, "item_label");
+ retval->dialog = glade_xml_get_widget (xml, "Security Selector Dialog");
+ retval->namespace_combo = glade_xml_get_widget (xml, "namespace_cbe");
+ retval->commodity_combo = glade_xml_get_widget (xml, "commodity_cbe");
+ retval->select_user_prompt = glade_xml_get_widget (xml, "select_user_prompt");
+ retval->ok_button = glade_xml_get_widget (xml, "ok_button");
+ label = glade_xml_get_widget (xml, "item_label");
- gtk_combo_box_remove_text(GTK_COMBO_BOX(retval->namespace_combo), 0);
- gtk_combo_box_remove_text(GTK_COMBO_BOX(retval->commodity_combo), 0);
- gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(retval->namespace_combo));
- gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(retval->commodity_combo));
+ gtk_combo_box_remove_text(GTK_COMBO_BOX(retval->namespace_combo), 0);
+ gtk_combo_box_remove_text(GTK_COMBO_BOX(retval->commodity_combo), 0);
+ gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(retval->namespace_combo));
+ gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(retval->commodity_combo));
- gtk_label_set_text (GTK_LABEL (retval->select_user_prompt), "");
+ gtk_label_set_text (GTK_LABEL (retval->select_user_prompt), "");
#ifdef DRH
- g_signal_connect (G_OBJECT (retval->dialog), "close",
- G_CALLBACK (select_commodity_close), retval);
- g_signal_connect (G_OBJECT (retval->dialog), "response",
- G_CALLBACK (gnc_ui_select_commodity_response_cb), retval);
+ g_signal_connect (G_OBJECT (retval->dialog), "close",
+ G_CALLBACK (select_commodity_close), retval);
+ g_signal_connect (G_OBJECT (retval->dialog), "response",
+ G_CALLBACK (gnc_ui_select_commodity_response_cb), retval);
#endif
- switch (mode) {
+ switch (mode)
+ {
case DIAG_COMM_ALL:
- title = _("Select security/currency");
- text = _("_Security/currency:");
- break;
+ title = _("Select security/currency");
+ text = _("_Security/currency:");
+ break;
case DIAG_COMM_NON_CURRENCY:
- title = _("Select security");
- text = _("_Security:");
- break;
+ title = _("Select security");
+ text = _("_Security:");
+ break;
case DIAG_COMM_CURRENCY:
default:
- title = _("Select currency");
- text = _("Cu_rrency:");
- button = glade_xml_get_widget (xml, "new_button");
- gtk_widget_destroy(button);
- break;
- }
- gtk_window_set_title (GTK_WINDOW(retval->dialog), title);
- gtk_label_set_text_with_mnemonic (GTK_LABEL(label), text);
+ title = _("Select currency");
+ text = _("Cu_rrency:");
+ button = glade_xml_get_widget (xml, "new_button");
+ gtk_widget_destroy(button);
+ break;
+ }
+ gtk_window_set_title (GTK_WINDOW(retval->dialog), title);
+ gtk_label_set_text_with_mnemonic (GTK_LABEL(label), text);
- /* build the menus of namespaces and commodities */
- gnc_ui_update_namespace_picker(retval->namespace_combo,
- gnc_commodity_get_namespace(orig_sel),
- mode);
- namespace = gnc_ui_namespace_picker_ns(retval->namespace_combo);
- gnc_ui_update_commodity_picker(retval->commodity_combo, namespace,
- gnc_commodity_get_printname(orig_sel));
- g_free(namespace);
- return retval;
+ /* build the menus of namespaces and commodities */
+ gnc_ui_update_namespace_picker(retval->namespace_combo,
+ gnc_commodity_get_namespace(orig_sel),
+ mode);
+ namespace = gnc_ui_namespace_picker_ns(retval->namespace_combo);
+ gnc_ui_update_commodity_picker(retval->commodity_combo, namespace,
+ gnc_commodity_get_printname(orig_sel));
+ g_free(namespace);
+ return retval;
}
@@ -319,26 +325,27 @@
gnc_ui_select_commodity_new_cb(GtkButton * button,
gpointer user_data)
{
- SelectCommodityWindow * w = user_data;
+ SelectCommodityWindow * w = user_data;
- gchar * namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ gchar * namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- const gnc_commodity * new_commodity =
- gnc_ui_new_commodity_modal_full(namespace,
- w->dialog,
- w->default_cusip,
- w->default_fullname,
- w->default_mnemonic,
- w->default_fraction);
- if(new_commodity) {
- gnc_ui_update_namespace_picker(w->namespace_combo,
- gnc_commodity_get_namespace(new_commodity),
- DIAG_COMM_ALL);
- gnc_ui_update_commodity_picker(w->commodity_combo,
- gnc_commodity_get_namespace(new_commodity),
- gnc_commodity_get_printname(new_commodity));
- }
- g_free(namespace);
+ const gnc_commodity * new_commodity =
+ gnc_ui_new_commodity_modal_full(namespace,
+ w->dialog,
+ w->default_cusip,
+ w->default_fullname,
+ w->default_mnemonic,
+ w->default_fraction);
+ if (new_commodity)
+ {
+ gnc_ui_update_namespace_picker(w->namespace_combo,
+ gnc_commodity_get_namespace(new_commodity),
+ DIAG_COMM_ALL);
+ gnc_ui_update_commodity_picker(w->commodity_combo,
+ gnc_commodity_get_namespace(new_commodity),
+ gnc_commodity_get_printname(new_commodity));
+ }
+ g_free(namespace);
}
@@ -359,25 +366,25 @@
*/
void
gnc_ui_select_commodity_changed_cb (GtkComboBoxEntry *cbe,
- gpointer user_data)
+ gpointer user_data)
{
- SelectCommodityWindow * w = user_data;
- gchar *namespace, *fullname;
- gboolean ok;
+ SelectCommodityWindow * w = user_data;
+ gchar *namespace, *fullname;
+ gboolean ok;
- ENTER("cbe=%p, user_data=%p", cbe, user_data);
- namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- fullname = gtk_combo_box_get_active_text(GTK_COMBO_BOX(w->commodity_combo));
- DEBUG("namespace=%s, name=%s", namespace, fullname);
- w->selection = gnc_commodity_table_find_full(gnc_get_current_commodities(),
- namespace, fullname);
- g_free(fullname);
- g_free(namespace);
+ ENTER("cbe=%p, user_data=%p", cbe, user_data);
+ namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ fullname = gtk_combo_box_get_active_text(GTK_COMBO_BOX(w->commodity_combo));
+ DEBUG("namespace=%s, name=%s", namespace, fullname);
+ w->selection = gnc_commodity_table_find_full(gnc_get_current_commodities(),
+ namespace, fullname);
+ g_free(fullname);
+ g_free(namespace);
- ok = (w->selection != NULL);
- gtk_widget_set_sensitive(w->ok_button, ok);
- gtk_dialog_set_default_response(GTK_DIALOG(w->dialog), ok ? 0 : 2);
- LEAVE("sensitive=%d, default = %d", ok, ok ? 0 : 2);
+ ok = (w->selection != NULL);
+ gtk_widget_set_sensitive(w->ok_button, ok);
+ gtk_dialog_set_default_response(GTK_DIALOG(w->dialog), ok ? 0 : 2);
+ LEAVE("sensitive=%d, default = %d", ok, ok ? 0 : 2);
}
@@ -399,77 +406,79 @@
*/
void
gnc_ui_select_commodity_namespace_changed_cb (GtkComboBoxEntry *cbe,
- gpointer user_data)
+ gpointer user_data)
{
- SelectCommodityWindow * w = user_data;
- gchar *namespace;
+ SelectCommodityWindow * w = user_data;
+ gchar *namespace;
- ENTER("cbe=%p, user_data=%p", cbe, user_data);
- namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- DEBUG("namespace=%s", namespace);
- gnc_ui_update_commodity_picker(w->commodity_combo, namespace, NULL);
- g_free(namespace);
- LEAVE(" ");
+ ENTER("cbe=%p, user_data=%p", cbe, user_data);
+ namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ DEBUG("namespace=%s", namespace);
+ gnc_ui_update_commodity_picker(w->commodity_combo, namespace, NULL);
+ g_free(namespace);
+ LEAVE(" ");
}
/********************************************************************
* gnc_ui_update_commodity_picker
********************************************************************/
-static int
+static int
collate(gconstpointer a, gconstpointer b)
{
- if (!a)
- return -1;
- if (!b)
- return 1;
- return g_utf8_collate(a, b);
+ if (!a)
+ return -1;
+ if (!b)
+ return 1;
+ return g_utf8_collate(a, b);
}
void
gnc_ui_update_commodity_picker (GtkWidget *cbe,
const gchar * namespace,
- const gchar * init_string)
+ const gchar * init_string)
{
- GList * commodities;
- GList * iterator = NULL;
- GList * commodity_items = NULL;
- GtkComboBox *combo_box;
- GtkTreeModel *model;
- gnc_commodity_table *table;
- gint current = 0, match = 0;
- gchar *name;
+ GList * commodities;
+ GList * iterator = NULL;
+ GList * commodity_items = NULL;
+ GtkComboBox *combo_box;
+ GtkTreeModel *model;
+ gnc_commodity_table *table;
+ gint current = 0, match = 0;
+ gchar *name;
- g_return_if_fail(GTK_IS_COMBO_BOX_ENTRY(cbe));
- g_return_if_fail(namespace);
+ g_return_if_fail(GTK_IS_COMBO_BOX_ENTRY(cbe));
+ g_return_if_fail(namespace);
- /* Erase the old entries */
- combo_box = GTK_COMBO_BOX(cbe);
- model = gtk_combo_box_get_model(combo_box);
- gtk_list_store_clear(GTK_LIST_STORE(model));
- gtk_combo_box_set_active(combo_box, -1);
+ /* Erase the old entries */
+ combo_box = GTK_COMBO_BOX(cbe);
+ model = gtk_combo_box_get_model(combo_box);
+ gtk_list_store_clear(GTK_LIST_STORE(model));
+ gtk_combo_box_set_active(combo_box, -1);
- table = gnc_book_get_commodity_table (gnc_get_current_book ());
- commodities = gnc_commodity_table_get_commodities(table, namespace);
- for(iterator = commodities; iterator; iterator = iterator->next) {
- commodity_items =
- g_list_append(commodity_items,
- (gpointer) gnc_commodity_get_printname(iterator->data));
- }
- g_list_free(commodities);
+ table = gnc_book_get_commodity_table (gnc_get_current_book ());
+ commodities = gnc_commodity_table_get_commodities(table, namespace);
+ for (iterator = commodities; iterator; iterator = iterator->next)
+ {
+ commodity_items =
+ g_list_append(commodity_items,
+ (gpointer) gnc_commodity_get_printname(iterator->data));
+ }
+ g_list_free(commodities);
- commodity_items = g_list_sort(commodity_items, collate);
- for (iterator = commodity_items; iterator; iterator = iterator->next) {
- name = (char *)iterator->data;
- gtk_combo_box_append_text(combo_box, name);
- if (init_string && g_utf8_collate(name, init_string) == 0)
- match = current;
- current++;
- }
+ commodity_items = g_list_sort(commodity_items, collate);
+ for (iterator = commodity_items; iterator; iterator = iterator->next)
+ {
+ name = (char *)iterator->data;
+ gtk_combo_box_append_text(combo_box, name);
+ if (init_string && g_utf8_collate(name, init_string) == 0)
+ match = current;
+ current++;
+ }
- gtk_combo_box_set_active(combo_box, match);
- g_list_free(commodity_items);
+ gtk_combo_box_set_active(combo_box, match);
+ g_list_free(commodity_items);
}
@@ -479,10 +488,11 @@
#if 0
void
-gnc_ui_select_commodity_destroy(SelectCommodityWindow * w) {
- g_return_if_fail (w != NULL);
+gnc_ui_select_commodity_destroy(SelectCommodityWindow * w)
+{
+ g_return_if_fail (w != NULL);
- gtk_widget_destroy (GTK_WIDGET (w->dialog));
+ gtk_widget_destroy (GTK_WIDGET (w->dialog));
}
/********************************************************************
@@ -492,57 +502,62 @@
static void
gnc_ui_select_commodity_response_cb (GtkDialog * dialog, gint response, gpointer data)
{
- SelectCommodityWindow * w = data;
- gchar *namespace;
- const gchar *fullname;
- gnc_commodity *commodity = NULL;
+ SelectCommodityWindow * w = data;
+ gchar *namespace;
+ const gchar *fullname;
+ gnc_commodity *commodity = NULL;
- switch (response) {
- case GTK_RESPONSE_OK:
- namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- fullname = gtk_entry_get_text (GTK_ENTRY (w->commodity_entry));
+ switch (response)
+ {
+ case GTK_RESPONSE_OK:
+ namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ fullname = gtk_entry_get_text (GTK_ENTRY (w->commodity_entry));
- commodity = gnc_commodity_table_find_full (gnc_get_current_commodities (),
- namespace, fullname);
- g_free(namespace);
+ commodity = gnc_commodity_table_find_full (gnc_get_current_commodities (),
+ namespace, fullname);
+ g_free(namespace);
- if (commodity != NULL) {
- if (w->callback != NULL)
- (w->callback) (commodity, w->callback_data);
- gnc_ui_select_commodity_destroy (w);
- } else {
- gnc_warning_dialog (dialog,
- _("You must select a commodity. "
- "To create a new one, click \"New\""));
- }
- break;
- case GNC_RESPONSE_NEW:
- namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ if (commodity != NULL)
+ {
+ if (w->callback != NULL)
+ (w->callback) (commodity, w->callback_data);
+ gnc_ui_select_commodity_destroy (w);
+ }
+ else
+ {
+ gnc_warning_dialog (dialog,
+ _("You must select a commodity. "
+ "To create a new one, click \"New\""));
+ }
+ break;
+ case GNC_RESPONSE_NEW:
+ namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- commodity = gnc_ui_new_commodity_modal_full (namespace,
- w->dialog,
- w->default_cusip,
- w->default_fullname,
- w->default_mnemonic,
- w->default_fraction);
- if (commodity != NULL) {
- namespace =
- gnc_ui_update_namespace_picker (w->namespace_combo,
- gnc_commodity_get_namespace
- (commodity), TRUE, FALSE);
- gnc_ui_update_commodity_picker (w->commodity_combo,
- gnc_commodity_get_namespace (commodity),
- gnc_commodity_get_printname (commodity));
+ commodity = gnc_ui_new_commodity_modal_full (namespace,
+ w->dialog,
+ w->default_cusip,
+ w->default_fullname,
+ w->default_mnemonic,
+ w->default_fraction);
+ if (commodity != NULL)
+ {
+ namespace =
+ gnc_ui_update_namespace_picker (w->namespace_combo,
+ gnc_commodity_get_namespace
+ (commodity), TRUE, FALSE);
+ gnc_ui_update_commodity_picker (w->commodity_combo,
+ gnc_commodity_get_namespace (commodity),
+ gnc_commodity_get_printname (commodity));
+ }
+ g_free(namespace);
+ break;
+ default:
+ if (w->callback != NULL)
+ (w->callback) (NULL, w->callback_data);
+
+ gnc_ui_select_commodity_destroy (w);
+ break;
}
- g_free(namespace);
- break;
- default:
- if (w->callback != NULL)
- (w->callback) (NULL, w->callback_data);
-
- gnc_ui_select_commodity_destroy (w);
- break;
- }
}
#endif
@@ -557,45 +572,45 @@
static void
gnc_set_commodity_section_sensitivity (GtkWidget *widget, gpointer user_data)
{
- CommodityWindow *cw = user_data;
- guint offset = 0;
+ CommodityWindow *cw = user_data;
+ guint offset = 0;
- gtk_container_child_get(GTK_CONTAINER(cw->table), widget,
- "top-attach", &offset,
- NULL);
+ gtk_container_child_get(GTK_CONTAINER(cw->table), widget,
+ "top-attach", &offset,
+ NULL);
- if ((offset < cw->comm_section_top) || (offset >= cw->comm_section_bottom))
- return;
- gtk_widget_set_sensitive(widget, !cw->is_currency);
+ if ((offset < cw->comm_section_top) || (offset >= cw->comm_section_bottom))
+ return;
+ gtk_widget_set_sensitive(widget, !cw->is_currency);
}
static void
gnc_ui_update_commodity_info (CommodityWindow *cw)
{
- gtk_container_foreach(GTK_CONTAINER(cw->table),
- gnc_set_commodity_section_sensitivity, cw);
+ gtk_container_foreach(GTK_CONTAINER(cw->table),
+ gnc_set_commodity_section_sensitivity, cw);
}
static void
gnc_set_fq_sensitivity (GtkWidget *widget, gpointer user_data)
{
- CommodityWindow *cw = user_data;
- guint offset = 0;
+ CommodityWindow *cw = user_data;
+ guint offset = 0;
- gtk_container_child_get(GTK_CONTAINER(cw->table), widget,
- "top-attach", &offset,
- NULL);
+ gtk_container_child_get(GTK_CONTAINER(cw->table), widget,
+ "top-attach", &offset,
+ NULL);
- if ((offset < cw->fq_section_top) || (offset >= cw->fq_section_bottom))
- return;
- g_object_set(widget, "sensitive", FALSE, NULL);
+ if ((offset < cw->fq_section_top) || (offset >= cw->fq_section_bottom))
+ return;
+ g_object_set(widget, "sensitive", FALSE, NULL);
}
static void
gnc_ui_update_fq_info (CommodityWindow *cw)
{
- gtk_container_foreach(GTK_CONTAINER(cw->table),
- gnc_set_fq_sensitivity, cw);
+ gtk_container_foreach(GTK_CONTAINER(cw->table),
+ gnc_set_fq_sensitivity, cw);
}
/********************************************************************
@@ -604,78 +619,83 @@
void
gnc_ui_update_namespace_picker (GtkWidget *cbe,
- const char * init_string,
- dialog_commodity_mode mode)
+ const char * init_string,
+ dialog_commodity_mode mode)
{
- GtkComboBox *combo_box;
- GtkTreeModel *model;
- GList *namespaces, *node;
- gint current = 0, match = 0;
+ GtkComboBox *combo_box;
+ GtkTreeModel *model;
+ GList *namespaces, *node;
+ gint current = 0, match = 0;
- g_return_if_fail(GTK_IS_COMBO_BOX_ENTRY(cbe));
+ g_return_if_fail(GTK_IS_COMBO_BOX_ENTRY(cbe));
- /* Erase the old entries */
- combo_box = GTK_COMBO_BOX(cbe);
- model = gtk_combo_box_get_model(combo_box);
- gtk_list_store_clear(GTK_LIST_STORE(model));
- gtk_combo_box_set_active(combo_box, -1);
+ /* Erase the old entries */
+ combo_box = GTK_COMBO_BOX(cbe);
+ model = gtk_combo_box_get_model(combo_box);
+ gtk_list_store_clear(GTK_LIST_STORE(model));
+ gtk_combo_box_set_active(combo_box, -1);
- /* fetch a list of the namespaces */
- switch (mode) {
+ /* fetch a list of the namespaces */
+ switch (mode)
+ {
case DIAG_COMM_ALL:
- namespaces =
- gnc_commodity_table_get_namespaces (gnc_get_current_commodities());
- break;
+ namespaces =
+ gnc_commodity_table_get_namespaces (gnc_get_current_commodities());
+ break;
- case DIAG_COMM_NON_CURRENCY:
- namespaces =
- gnc_commodity_table_get_namespaces (gnc_get_current_commodities());
- node = g_list_find_custom (namespaces, GNC_COMMODITY_NS_CURRENCY, collate);
- if (node) {
- namespaces = g_list_remove_link (namespaces, node);
- g_list_free_1 (node);
- }
+ case DIAG_COMM_NON_CURRENCY:
+ namespaces =
+ gnc_commodity_table_get_namespaces (gnc_get_current_commodities());
+ node = g_list_find_custom (namespaces, GNC_COMMODITY_NS_CURRENCY, collate);
+ if (node)
+ {
+ namespaces = g_list_remove_link (namespaces, node);
+ g_list_free_1 (node);
+ }
- if (gnc_commodity_namespace_is_iso (init_string))
- init_string = NULL;
- break;
+ if (gnc_commodity_namespace_is_iso (init_string))
+ init_string = NULL;
+ break;
- case DIAG_COMM_CURRENCY:
- default:
- namespaces = g_list_prepend (NULL, GNC_COMMODITY_NS_CURRENCY);
- break;
- }
+ case DIAG_COMM_CURRENCY:
+ default:
+ namespaces = g_list_prepend (NULL, GNC_COMMODITY_NS_CURRENCY);
+ break;
+ }
- /* stick them in the combobox */
- namespaces = g_list_sort(namespaces, collate);
- for (node = namespaces; node; node = node->next) {
- if (g_utf8_collate(node->data, GNC_COMMODITY_NS_LEGACY) == 0)
- continue;
- gtk_combo_box_append_text(combo_box, node->data);
- if (init_string && (g_utf8_collate(node->data, init_string) == 0))
- match = current;
- current++;
- }
+ /* stick them in the combobox */
+ namespaces = g_list_sort(namespaces, collate);
+ for (node = namespaces; node; node = node->next)
+ {
+ if (g_utf8_collate(node->data, GNC_COMMODITY_NS_LEGACY) == 0)
+ continue;
+ gtk_combo_box_append_text(combo_box, node->data);
+ if (init_string && (g_utf8_collate(node->data, init_string) == 0))
+ match = current;
+ current++;
+ }
- gtk_combo_box_set_active(combo_box, match);
- g_list_free(namespaces);
+ gtk_combo_box_set_active(combo_box, match);
+ g_list_free(namespaces);
}
gchar *
gnc_ui_namespace_picker_ns (GtkWidget *cbe)
{
- char *namespace;
+ char *namespace;
- g_return_val_if_fail(GTK_IS_COMBO_BOX_ENTRY (cbe), NULL);
+ g_return_val_if_fail(GTK_IS_COMBO_BOX_ENTRY (cbe), NULL);
- namespace = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbe));
+ namespace = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbe));
- if (safe_strcmp (namespace, GNC_COMMODITY_NS_ISO) == 0) {
- /* In case the user types in ISO4217, map it to CURRENCY. */
- g_free(namespace);
- return strdup(GNC_COMMODITY_NS_CURRENCY);
- } else
- return namespace;
+ if (safe_strcmp (namespace, GNC_COMMODITY_NS_ISO) == 0)
+ {
+ /* In case the user types in ISO4217, map it to CURRENCY. */
+ g_free(namespace);
+ return strdup(GNC_COMMODITY_NS_CURRENCY);
+ }
+ else
+ return namespace;
}
/********************************************************************/
@@ -683,56 +703,60 @@
void
gnc_ui_commodity_quote_info_cb (GtkWidget *w, gpointer data)
{
- CommodityWindow *cw = data;
- gboolean get_quote, allow_src, active;
- gchar *text;
- gint i;
+ CommodityWindow *cw = data;
+ gboolean get_quote, allow_src, active;
+ gchar *text;
+ gint i;
- ENTER(" ");
- get_quote = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+ ENTER(" ");
+ get_quote = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
- text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cw->namespace_combo));
- allow_src = !gnc_commodity_namespace_is_iso(text);
- g_free(text);
- gtk_widget_set_sensitive(cw->source_label, get_quote && allow_src);
+ text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cw->namespace_combo));
+ allow_src = !gnc_commodity_namespace_is_iso(text);
+ g_free(text);
+ gtk_widget_set_sensitive(cw->source_label, get_quote && allow_src);
- for (i = SOURCE_SINGLE; i < SOURCE_MAX; i++) {
- if (!cw->source_button[i])
- continue;
- active =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cw->source_button[i]));
- gtk_widget_set_sensitive(cw->source_button[i], get_quote && allow_src);
- gtk_widget_set_sensitive(cw->source_menu[i], get_quote && allow_src && active);
- }
- gtk_widget_set_sensitive(cw->quote_tz_label, get_quote);
- gtk_widget_set_sensitive(cw->quote_tz_menu, get_quote);
- LEAVE(" ");
+ for (i = SOURCE_SINGLE; i < SOURCE_MAX; i++)
+ {
+ if (!cw->source_button[i])
+ continue;
+ active =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cw->source_button[i]));
+ gtk_widget_set_sensitive(cw->source_button[i], get_quote && allow_src);
+ gtk_widget_set_sensitive(cw->source_menu[i], get_quote && allow_src && active);
+ }
+ gtk_widget_set_sensitive(cw->quote_tz_label, get_quote);
+ gtk_widget_set_sensitive(cw->quote_tz_menu, get_quote);
+ LEAVE(" ");
}
void
gnc_ui_commodity_changed_cb(GtkWidget * dummy, gpointer user_data)
{
- CommodityWindow * w = user_data;
- gchar *namespace;
- const char * fullname;
- const char * mnemonic;
- gboolean ok;
+ CommodityWindow * w = user_data;
+ gchar *namespace;
+ const char * fullname;
+ const char * mnemonic;
+ gboolean ok;
- ENTER("widget=%p, user_data=%p", dummy, user_data);
- if (!w->is_currency) {
- namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- fullname = gtk_entry_get_text(GTK_ENTRY(w->fullname_entry));
- mnemonic = gtk_entry_get_text(GTK_ENTRY(w->mnemonic_entry));
- DEBUG("namespace=%s, name=%s, mnemonic=%s", namespace, fullname, mnemonic);
- ok = (fullname && namespace && mnemonic &&
- fullname[0] && namespace[0] && mnemonic[0]);
- g_free(namespace);
- } else {
- ok = TRUE;
- }
- gtk_widget_set_sensitive(w->ok_button, ok);
- gtk_dialog_set_default_response(GTK_DIALOG(w->dialog), ok ? 0 : 1);
- LEAVE("sensitive=%d, default = %d", ok, ok ? 0 : 1);
+ ENTER("widget=%p, user_data=%p", dummy, user_data);
+ if (!w->is_currency)
+ {
+ namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ fullname = gtk_entry_get_text(GTK_ENTRY(w->fullname_entry));
+ mnemonic = gtk_entry_get_text(GTK_ENTRY(w->mnemonic_entry));
+ DEBUG("namespace=%s, name=%s, mnemonic=%s", namespace, fullname, mnemonic);
+ ok = (fullname && namespace && mnemonic &&
+ fullname[0] && namespace[0] && mnemonic[0]);
+ g_free(namespace);
+ }
+ else
+ {
+ ok = TRUE;
+ }
+ gtk_widget_set_sensitive(w->ok_button, ok);
+ gtk_dialog_set_default_response(GTK_DIALOG(w->dialog), ok ? 0 : 1);
+ LEAVE("sensitive=%d, default = %d", ok, ok ? 0 : 1);
}
/********************************************************************\
@@ -745,49 +769,53 @@
static GtkWidget *
gnc_ui_source_menu_create(QuoteSourceType type)
{
- gint i, max;
- const gchar *name;
- gboolean supported;
- GtkListStore *store;
- GtkTreeIter iter;
- GtkWidget *combo;
- GtkCellRenderer *renderer;
- gnc_quote_source *source;
+ gint i, max;
+ const gchar *name;
+ gboolean supported;
+ GtkListStore *store;
+ GtkTreeIter iter;
+ GtkWidget *combo;
+ GtkCellRenderer *renderer;
+ gnc_quote_source *source;
- store = gtk_list_store_new(NUM_SOURCE_COLS, G_TYPE_STRING, G_TYPE_BOOLEAN);
- if (type == SOURCE_CURRENCY) {
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter,
- SOURCE_COL_NAME, _("Currency"),
- SOURCE_COL_FQ_SUPPORTED, TRUE,
- -1);
- } else {
- max = gnc_quote_source_num_entries(type);
- for (i = 0; i < max; i++) {
- source = gnc_quote_source_lookup_by_ti(type, i);
- if (source == NULL)
- break;
- name = gnc_quote_source_get_user_name(source);
- supported = gnc_quote_source_get_supported(source);
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter,
- SOURCE_COL_NAME, name,
- SOURCE_COL_FQ_SUPPORTED, supported,
- -1);
- }
- }
+ store = gtk_list_store_new(NUM_SOURCE_COLS, G_TYPE_STRING, G_TYPE_BOOLEAN);
+ if (type == SOURCE_CURRENCY)
+ {
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ SOURCE_COL_NAME, _("Currency"),
+ SOURCE_COL_FQ_SUPPORTED, TRUE,
+ -1);
+ }
+ else
+ {
+ max = gnc_quote_source_num_entries(type);
+ for (i = 0; i < max; i++)
+ {
+ source = gnc_quote_source_lookup_by_ti(type, i);
+ if (source == NULL)
+ break;
+ name = gnc_quote_source_get_user_name(source);
+ supported = gnc_quote_source_get_supported(source);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ SOURCE_COL_NAME, name,
+ SOURCE_COL_FQ_SUPPORTED, supported,
+ -1);
+ }
+ }
- combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
- g_object_unref(store);
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
- gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), renderer,
- "text", SOURCE_COL_NAME);
- gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), renderer,
- "sensitive", SOURCE_COL_FQ_SUPPORTED);
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
- gtk_widget_show(combo);
- return combo;
+ combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
+ g_object_unref(store);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
+ gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), renderer,
+ "text", SOURCE_COL_NAME);
+ gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), renderer,
+ "sensitive", SOURCE_COL_FQ_SUPPORTED);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
+ gtk_widget_show(combo);
+ return combo;
}
/********************************************************************\
@@ -797,342 +825,367 @@
static gchar *
known_timezones[] =
{
- "Asia/Tokyo",
- "Australia/Sydney",
- "America/New_York",
- "America/Chicago",
- "Europe/London",
- "Europe/Paris",
- NULL
+ "Asia/Tokyo",
+ "Australia/Sydney",
+ "America/New_York",
+ "America/Chicago",
+ "Europe/London",
+ "Europe/Paris",
+ NULL
};
static guint
gnc_find_timezone_menu_position(const gchar *timezone)
{
- /* returns 0 on failure, position otherwise. */
- gboolean found = FALSE;
- guint i = 0;
- while(!found && known_timezones[i]) {
- if(safe_strcmp(timezone, known_timezones[i]) != 0) {
- i++;
- } else {
- found = TRUE;
+ /* returns 0 on failure, position otherwise. */
+ gboolean found = FALSE;
+ guint i = 0;
+ while (!found && known_timezones[i])
+ {
+ if (safe_strcmp(timezone, known_timezones[i]) != 0)
+ {
+ i++;
+ }
+ else
+ {
+ found = TRUE;
+ }
}
- }
- if(found) return i + 1;
- return 0;
+ if (found) return i + 1;
+ return 0;
}
static gchar *
gnc_timezone_menu_position_to_string(guint pos)
{
- if(pos == 0) return NULL;
- return known_timezones[pos - 1];
+ if (pos == 0) return NULL;
+ return known_timezones[pos - 1];
}
static GtkWidget *
gnc_ui_quote_tz_menu_create(void)
{
- GtkWidget *combo;
- gchar **itemstr;
+ GtkWidget *combo;
+ gchar **itemstr;
- /* add items here as needed, but bear in mind that right now these
- must be timezones that GNU libc understands. Also, I'd prefer if
- we only add things here we *know* we need. That's because in
- order to be portable to non GNU OSes, we may have to support
- whatever we add here manually on those systems. */
+ /* add items here as needed, but bear in mind that right now these
+ must be timezones that GNU libc understands. Also, I'd prefer if
+ we only add things here we *know* we need. That's because in
+ order to be portable to non GNU OSes, we may have to support
+ whatever we add here manually on those systems. */
- combo = gtk_combo_box_new_text();
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Use local time"));
- for(itemstr = &known_timezones[0]; *itemstr; itemstr++) {
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), *itemstr);
- }
+ combo = gtk_combo_box_new_text();
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Use local time"));
+ for (itemstr = &known_timezones[0]; *itemstr; itemstr++)
+ {
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), *itemstr);
+ }
- gtk_widget_show(combo);
- return combo;
+ gtk_widget_show(combo);
+ return combo;
}
/** Build the new/edit commodity dialog box
*/
static CommodityWindow *
gnc_ui_build_commodity_dialog(const char * selected_namespace,
- GtkWidget *parent,
- const char * fullname,
- const char * mnemonic,
- const char * cusip,
- int fraction,
- gboolean edit)
+ GtkWidget *parent,
+ const char * fullname,
+ const char * mnemonic,
+ const char * cusip,
+ int fraction,
+ gboolean edit)
{
- CommodityWindow * retval = g_new0(CommodityWindow, 1);
- GtkWidget *help_button;
- GtkWidget *box;
- GtkWidget *menu;
- GtkWidget *widget, *sec_label;
- GladeXML *xml;
- gboolean include_iso;
- const gchar *title;
- gchar *text;
+ CommodityWindow * retval = g_new0(CommodityWindow, 1);
+ GtkWidget *help_button;
+ GtkWidget *box;
+ GtkWidget *menu;
+ GtkWidget *widget, *sec_label;
+ GladeXML *xml;
+ gboolean include_iso;
+ const gchar *title;
+ gchar *text;
- ENTER(" ");
- xml = gnc_glade_xml_new ("commodity.glade", "Security Dialog");
+ ENTER(" ");
+ xml = gnc_glade_xml_new ("commodity.glade", "Security Dialog");
- glade_xml_signal_autoconnect_full( xml,
- gnc_glade_autoconnect_full_func,
- retval );
+ glade_xml_signal_autoconnect_full( xml,
+ gnc_glade_autoconnect_full_func,
+ retval );
- retval->dialog = glade_xml_get_widget (xml, "Security Dialog");
- if (parent != NULL)
- gtk_window_set_transient_for (GTK_WINDOW (retval->dialog), GTK_WINDOW (parent));
- retval->edit_commodity = NULL;
+ retval->dialog = glade_xml_get_widget (xml, "Security Dialog");
+ if (parent != NULL)
+ gtk_window_set_transient_for (GTK_WINDOW (retval->dialog), GTK_WINDOW (parent));
+ retval->edit_commodity = NULL;
- help_button = glade_xml_get_widget (xml, "help_button");
- if (!help_callback)
- gtk_widget_hide (help_button);
+ help_button = glade_xml_get_widget (xml, "help_button");
+ if (!help_callback)
+ gtk_widget_hide (help_button);
- /* Determine the commodity section of the dialog */
- retval->table = glade_xml_get_widget (xml, "edit_table");
- sec_label = glade_xml_get_widget (xml, "security_label");
- gtk_container_child_get(GTK_CONTAINER(retval->table), sec_label,
- "bottom-attach", &retval->comm_section_top, NULL);
- widget = glade_xml_get_widget (xml, "quote_label");
- gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
- "top-attach", &retval->comm_section_bottom, NULL);
+ /* Determine the commodity section of the dialog */
+ retval->table = glade_xml_get_widget (xml, "edit_table");
+ sec_label = glade_xml_get_widget (xml, "security_label");
+ gtk_container_child_get(GTK_CONTAINER(retval->table), sec_label,
+ "bottom-attach", &retval->comm_section_top, NULL);
+ widget = glade_xml_get_widget (xml, "quote_label");
+ gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
+ "top-attach", &retval->comm_section_bottom, NULL);
- /* Get widget pointers */
- retval->fullname_entry = glade_xml_get_widget (xml, "fullname_entry");
- retval->mnemonic_entry = glade_xml_get_widget (xml, "mnemonic_entry");
- retval->namespace_combo = glade_xml_get_widget (xml, "namespace_cbe");
- retval->code_entry = glade_xml_get_widget (xml, "code_entry");
- retval->fraction_spinbutton = glade_xml_get_widget (xml,
- "fraction_spinbutton");
- retval->ok_button = glade_xml_get_widget (xml, "ok_button");
- retval->get_quote_check = glade_xml_get_widget (xml, "get_quote_check");
- retval->source_label = glade_xml_get_widget (xml, "source_label");
- retval->source_button[SOURCE_SINGLE] = glade_xml_get_widget (xml, "single_source_button");
- retval->source_button[SOURCE_MULTI] = glade_xml_get_widget (xml, "multi_source_button");
- retval->quote_tz_label = glade_xml_get_widget (xml, "quote_tz_label");
+ /* Get widget pointers */
+ retval->fullname_entry = glade_xml_get_widget (xml, "fullname_entry");
+ retval->mnemonic_entry = glade_xml_get_widget (xml, "mnemonic_entry");
+ retval->namespace_combo = glade_xml_get_widget (xml, "namespace_cbe");
+ retval->code_entry = glade_xml_get_widget (xml, "code_entry");
+ retval->fraction_spinbutton = glade_xml_get_widget (xml,
+ "fraction_spinbutton");
+ retval->ok_button = glade_xml_get_widget (xml, "ok_button");
+ retval->get_quote_check = glade_xml_get_widget (xml, "get_quote_check");
+ retval->source_label = glade_xml_get_widget (xml, "source_label");
+ retval->source_button[SOURCE_SINGLE] = glade_xml_get_widget (xml, "single_source_button");
+ retval->source_button[SOURCE_MULTI] = glade_xml_get_widget (xml, "multi_source_button");
+ retval->quote_tz_label = glade_xml_get_widget (xml, "quote_tz_label");
- /* Build custom widgets */
- box = glade_xml_get_widget (xml, "single_source_box");
- if (gnc_commodity_namespace_is_iso(selected_namespace)) {
- menu = gnc_ui_source_menu_create(SOURCE_CURRENCY);
- } else {
- menu = gnc_ui_source_menu_create(SOURCE_SINGLE);
- }
- retval->source_menu[SOURCE_SINGLE] = menu;
- gtk_box_pack_start(GTK_BOX(box), menu, TRUE, TRUE, 0);
+ /* Build custom widgets */
+ box = glade_xml_get_widget (xml, "single_source_box");
+ if (gnc_commodity_namespace_is_iso(selected_namespace))
+ {
+ menu = gnc_ui_source_menu_create(SOURCE_CURRENCY);
+ }
+ else
+ {
+ menu = gnc_ui_source_menu_create(SOURCE_SINGLE);
+ }
+ retval->source_menu[SOURCE_SINGLE] = menu;
+ gtk_box_pack_start(GTK_BOX(box), menu, TRUE, TRUE, 0);
- box = glade_xml_get_widget (xml, "multi_source_box");
- menu = gnc_ui_source_menu_create(SOURCE_MULTI);
- retval->source_menu[SOURCE_MULTI] = menu;
- gtk_box_pack_start(GTK_BOX(box), menu, TRUE, TRUE, 0);
-
- if (gnc_quote_source_num_entries(SOURCE_UNKNOWN)) {
- retval->source_button[SOURCE_UNKNOWN] =
- glade_xml_get_widget (xml, "unknown_source_button");
- box = glade_xml_get_widget (xml, "unknown_source_box");
- menu = gnc_ui_source_menu_create(SOURCE_UNKNOWN);
- retval->source_menu[SOURCE_UNKNOWN] = menu;
+ box = glade_xml_get_widget (xml, "multi_source_box");
+ menu = gnc_ui_source_menu_create(SOURCE_MULTI);
+ retval->source_menu[SOURCE_MULTI] = menu;
gtk_box_pack_start(GTK_BOX(box), menu, TRUE, TRUE, 0);
- } else {
- guint row;
- widget = glade_xml_get_widget (xml, "unknown_source_alignment");
- gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
- "top-attach", &row, NULL);
- gtk_table_set_row_spacing(GTK_TABLE(retval->table), row, 0);
- gtk_widget_destroy(widget);
- widget = glade_xml_get_widget (xml, "unknown_source_box");
- gtk_widget_destroy(widget);
- }
+ if (gnc_quote_source_num_entries(SOURCE_UNKNOWN))
+ {
+ retval->source_button[SOURCE_UNKNOWN] =
+ glade_xml_get_widget (xml, "unknown_source_button");
+ box = glade_xml_get_widget (xml, "unknown_source_box");
+ menu = gnc_ui_source_menu_create(SOURCE_UNKNOWN);
+ retval->source_menu[SOURCE_UNKNOWN] = menu;
+ gtk_box_pack_start(GTK_BOX(box), menu, TRUE, TRUE, 0);
+ }
+ else
+ {
+ guint row;
- box = glade_xml_get_widget (xml, "quote_tz_box");
- retval->quote_tz_menu = gnc_ui_quote_tz_menu_create();
- gtk_box_pack_start(GTK_BOX(box), retval->quote_tz_menu, TRUE, TRUE, 0);
+ widget = glade_xml_get_widget (xml, "unknown_source_alignment");
+ gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
+ "top-attach", &row, NULL);
+ gtk_table_set_row_spacing(GTK_TABLE(retval->table), row, 0);
+ gtk_widget_destroy(widget);
+ widget = glade_xml_get_widget (xml, "unknown_source_box");
+ gtk_widget_destroy(widget);
+ }
+ box = glade_xml_get_widget (xml, "quote_tz_box");
+ retval->quote_tz_menu = gnc_ui_quote_tz_menu_create();
+ gtk_box_pack_start(GTK_BOX(box), retval->quote_tz_menu, TRUE, TRUE, 0);
- /* Commodity editing is next to nil */
- if (gnc_commodity_namespace_is_iso(selected_namespace)) {
- retval->is_currency = TRUE;
- gnc_ui_update_commodity_info (retval);
- include_iso = TRUE;
- title = _("Edit currency");
- text = g_strdup_printf("<b>%s</b>", _("Currency Information"));
- } else {
- include_iso = FALSE;
- title = edit ? _("Edit security") : _("New security");
- text = g_strdup_printf("<b>%s</b>", _("Security Information"));
- }
- gtk_window_set_title(GTK_WINDOW(retval->dialog), title);
- gtk_label_set_markup(GTK_LABEL(sec_label), text);
- g_free(text);
- /* Are price quotes supported */
- if (gnc_quote_source_fq_installed()) {
- gtk_widget_destroy(glade_xml_get_widget (xml, "finance_quote_warning"));
- } else {
- /* Determine the price quote of the dialog */
- widget = glade_xml_get_widget (xml, "fq_warning_alignment");
- gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
- "bottom-attach", &retval->fq_section_top, NULL);
- widget = glade_xml_get_widget (xml, "quote_tz_alignment");
- gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
- "bottom-attach", &retval->fq_section_bottom, NULL);
- gnc_ui_update_fq_info (retval);
- }
+ /* Commodity editing is next to nil */
+ if (gnc_commodity_namespace_is_iso(selected_namespace))
+ {
+ retval->is_currency = TRUE;
+ gnc_ui_update_commodity_info (retval);
+ include_iso = TRUE;
+ title = _("Edit currency");
+ text = g_strdup_printf("<b>%s</b>", _("Currency Information"));
+ }
+ else
+ {
+ include_iso = FALSE;
+ title = edit ? _("Edit security") : _("New security");
+ text = g_strdup_printf("<b>%s</b>", _("Security Information"));
+ }
+ gtk_window_set_title(GTK_WINDOW(retval->dialog), title);
+ gtk_label_set_markup(GTK_LABEL(sec_label), text);
+ g_free(text);
+ /* Are price quotes supported */
+ if (gnc_quote_source_fq_installed())
+ {
+ gtk_widget_destroy(glade_xml_get_widget (xml, "finance_quote_warning"));
+ }
+ else
+ {
+ /* Determine the price quote of the dialog */
+ widget = glade_xml_get_widget (xml, "fq_warning_alignment");
+ gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
+ "bottom-attach", &retval->fq_section_top, NULL);
+ widget = glade_xml_get_widget (xml, "quote_tz_alignment");
+ gtk_container_child_get(GTK_CONTAINER(retval->table), widget,
+ "bottom-attach", &retval->fq_section_bottom, NULL);
+ gnc_ui_update_fq_info (retval);
+ }
+
#ifdef DRH
- g_signal_connect (G_OBJECT (retval->dialog), "close",
- G_CALLBACK (commodity_close), retval);
+ g_signal_connect (G_OBJECT (retval->dialog), "close",
+ G_CALLBACK (commodity_close), retval);
#endif
- /* Fill in any data, top to bottom */
-
- gtk_entry_set_text (GTK_ENTRY (retval->fullname_entry), fullname ? fullname : "");
- gtk_entry_set_text (GTK_ENTRY (retval->mnemonic_entry), mnemonic ? mnemonic : "");
- gnc_cbe_add_completion(GTK_COMBO_BOX_ENTRY(retval->namespace_combo));
- gtk_combo_box_remove_text(GTK_COMBO_BOX(retval->namespace_combo), 0);
- gnc_ui_update_namespace_picker(retval->namespace_combo,
- selected_namespace,
- include_iso ? DIAG_COMM_ALL : DIAG_COMM_NON_CURRENCY);
- gtk_entry_set_text (GTK_ENTRY (retval->code_entry), cusip ? cusip : "");
- if (fraction > 0)
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (retval->fraction_spinbutton),
- fraction);
+ /* Fill in any data, top to bottom */
- LEAVE(" ");
- return retval;
+ gtk_entry_set_text (GTK_ENTRY (retval->fullname_entry), fullname ? fullname : "");
+ gtk_entry_set_text (GTK_ENTRY (retval->mnemonic_entry), mnemonic ? mnemonic : "");
+ gnc_cbe_add_completion(GTK_COMBO_BOX_ENTRY(retval->namespace_combo));
+ gtk_combo_box_remove_text(GTK_COMBO_BOX(retval->namespace_combo), 0);
+ gnc_ui_update_namespace_picker(retval->namespace_combo,
+ selected_namespace,
+ include_iso ? DIAG_COMM_ALL : DIAG_COMM_NON_CURRENCY);
+ gtk_entry_set_text (GTK_ENTRY (retval->code_entry), cusip ? cusip : "");
+ if (fraction > 0)
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (retval->fraction_spinbutton),
+ fraction);
+
+ LEAVE(" ");
+ return retval;
}
static void
gnc_ui_commodity_update_quote_info(CommodityWindow *win,
- gnc_commodity *commodity)
+ gnc_commodity *commodity)
{
- gnc_quote_source *source;
- QuoteSourceType type;
- gboolean has_quote_src;
- const char *quote_tz;
- int pos = 0;
+ gnc_quote_source *source;
+ QuoteSourceType type;
+ gboolean has_quote_src;
+ const char *quote_tz;
+ int pos = 0;
- ENTER(" ");
- has_quote_src = gnc_commodity_get_quote_flag (commodity);
- source = gnc_commodity_get_quote_source (commodity);
- if (source == NULL)
- source = gnc_commodity_get_default_quote_source (commodity);
- quote_tz = gnc_commodity_get_quote_tz (commodity);
+ ENTER(" ");
+ has_quote_src = gnc_commodity_get_quote_flag (commodity);
+ source = gnc_commodity_get_quote_source (commodity);
+ if (source == NULL)
+ source = gnc_commodity_get_default_quote_source (commodity);
+ quote_tz = gnc_commodity_get_quote_tz (commodity);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (win->get_quote_check),
- has_quote_src);
- if (!gnc_commodity_is_iso(commodity)) {
- type = gnc_quote_source_get_type(source);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->source_button[type]), TRUE);
- gtk_combo_box_set_active(GTK_COMBO_BOX(win->source_menu[type]),
- gnc_quote_source_get_index(source));
- }
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (win->get_quote_check),
+ has_quote_src);
+ if (!gnc_commodity_is_iso(commodity))
+ {
+ type = gnc_quote_source_get_type(source);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->source_button[type]), TRUE);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(win->source_menu[type]),
+ gnc_quote_source_get_index(source));
+ }
- if (quote_tz) {
- pos = gnc_find_timezone_menu_position(quote_tz);
+ if (quote_tz)
+ {
+ pos = gnc_find_timezone_menu_position(quote_tz);
// if(pos == 0) {
// PWARN("Unknown price quote timezone (%s), resetting to default.",
// quote_tz ? quote_tz : "(null)");
// }
- }
- gtk_combo_box_set_active(GTK_COMBO_BOX(win->quote_tz_menu), pos);
- LEAVE(" ");
+ }
+ gtk_combo_box_set_active(GTK_COMBO_BOX(win->quote_tz_menu), pos);
+ LEAVE(" ");
}
static gnc_commodity *
gnc_ui_common_commodity_modal(gnc_commodity *commodity,
- GtkWidget * parent,
- const char * namespace,
- const char * cusip,
- const char * fullname,
- const char * mnemonic,
- int fraction)
+ GtkWidget * parent,
+ const char * namespace,
+ const char * cusip,
+ const char * fullname,
+ const char * mnemonic,
+ int fraction)
{
- CommodityWindow * win;
- gnc_commodity *retval = NULL;
- gboolean done;
- gint value;
+ CommodityWindow * win;
+ gnc_commodity *retval = NULL;
+ gboolean done;
+ gint value;
- ENTER(" ");
+ ENTER(" ");
- /* If a commodity was provided, copy out the existing info */
- if (commodity) {
- namespace = gnc_commodity_get_namespace (commodity);
- fullname = gnc_commodity_get_fullname (commodity);
- mnemonic = gnc_commodity_get_mnemonic (commodity);
- cusip = gnc_commodity_get_cusip (commodity);
- fraction = gnc_commodity_get_fraction (commodity);
- } else {
- /* Not allowed to create new currencies */
- if (gnc_commodity_namespace_is_iso(namespace)) {
- namespace = NULL;
+ /* If a commodity was provided, copy out the existing info */
+ if (commodity)
+ {
+ namespace = gnc_commodity_get_namespace (commodity);
+ fullname = gnc_commodity_get_fullname (commodity);
+ mnemonic = gnc_commodity_get_mnemonic (commodity);
+ cusip = gnc_commodity_get_cusip (commodity);
+ fraction = gnc_commodity_get_fraction (commodity);
}
- }
+ else
+ {
+ /* Not allowed to create new currencies */
+ if (gnc_commodity_namespace_is_iso(namespace))
+ {
+ namespace = NULL;
+ }
+ }
- win = gnc_ui_build_commodity_dialog(namespace, parent, fullname,
- mnemonic, cusip, fraction,
- (commodity != NULL));
+ win = gnc_ui_build_commodity_dialog(namespace, parent, fullname,
+ mnemonic, cusip, fraction,
+ (commodity != NULL));
- /* Update stock quote info based on existing commodity */
- gnc_ui_commodity_update_quote_info(win, commodity);
- win->edit_commodity = commodity;
+ /* Update stock quote info based on existing commodity */
+ gnc_ui_commodity_update_quote_info(win, commodity);
+ win->edit_commodity = commodity;
- /* Update stock quote sensitivities based on check box */
- gnc_ui_commodity_quote_info_cb(win->get_quote_check, win);
+ /* Update stock quote sensitivities based on check box */
+ gnc_ui_commodity_quote_info_cb(win->get_quote_check, win);
- /* Run the dialog, handling the terminal conditions. */
- done = FALSE;
- while (!done) {
- value = gtk_dialog_run(GTK_DIALOG(win->dialog));
- switch (value) {
- case GTK_RESPONSE_OK:
- DEBUG("case OK");
- done = gnc_ui_commodity_dialog_to_object(win);
- retval = win->edit_commodity;
- break;
- case GTK_RESPONSE_HELP:
- DEBUG("case HELP");
- if (help_callback)
- help_callback ();
- break;
- default: /* Cancel, Escape, Close, etc. */
- DEBUG("default: %d", value);
- retval = NULL;
- done = TRUE;
- break;
+ /* Run the dialog, handling the terminal conditions. */
+ done = FALSE;
+ while (!done)
+ {
+ value = gtk_dialog_run(GTK_DIALOG(win->dialog));
+ switch (value)
+ {
+ case GTK_RESPONSE_OK:
+ DEBUG("case OK");
+ done = gnc_ui_commodity_dialog_to_object(win);
+ retval = win->edit_commodity;
+ break;
+ case GTK_RESPONSE_HELP:
+ DEBUG("case HELP");
+ if (help_callback)
+ help_callback ();
+ break;
+ default: /* Cancel, Escape, Close, etc. */
+ DEBUG("default: %d", value);
+ retval = NULL;
+ done = TRUE;
+ break;
+ }
}
- }
- gtk_widget_destroy (GTK_WIDGET (win->dialog)); /* Close and destroy */
- g_free(win);
+ gtk_widget_destroy (GTK_WIDGET (win->dialog)); /* Close and destroy */
+ g_free(win);
- LEAVE(" ");
- return retval;
+ LEAVE(" ");
+ return retval;
}
/** Create and run the new/edit commodity dialog.
*/
-gnc_commodity *
-gnc_ui_new_commodity_modal_full(const char * namespace,
- GtkWidget * parent,
- const char * cusip,
- const char * fullname,
- const char * mnemonic,
- int fraction)
+gnc_commodity *
+gnc_ui_new_commodity_modal_full(const char * namespace,
+ GtkWidget * parent,
+ const char * cusip,
+ const char * fullname,
+ const char * mnemonic,
+ int fraction)
{
- gnc_commodity *result;
+ gnc_commodity *result;
- ENTER(" ");
- result = gnc_ui_common_commodity_modal(NULL, parent, namespace, cusip,
- fullname, mnemonic, 10000);
- LEAVE(" ");
- return result;
+ ENTER(" ");
+ result = gnc_ui_common_commodity_modal(NULL, parent, namespace, cusip,
+ fullname, mnemonic, 10000);
+ LEAVE(" ");
+ return result;
}
/** External routine for popping up the new commodity dialog box.
@@ -1141,13 +1194,13 @@
gnc_ui_new_commodity_modal(const char * default_namespace,
GtkWidget * parent)
{
- gnc_commodity *result;
+ gnc_commodity *result;
- ENTER(" ");
- result = gnc_ui_common_commodity_modal(NULL, parent, default_namespace, NULL,
- NULL, NULL, 0);
- LEAVE(" ");
- return result;
+ ENTER(" ");
+ result = gnc_ui_common_commodity_modal(NULL, parent, default_namespace, NULL,
+ NULL, NULL, 0);
+ LEAVE(" ");
+ return result;
}
/********************************************************************
@@ -1163,13 +1216,13 @@
gnc_ui_edit_commodity_modal(gnc_commodity *commodity,
GtkWidget * parent)
{
- gnc_commodity *result;
+ gnc_commodity *result;
- ENTER(" ");
- result = gnc_ui_common_commodity_modal(commodity, parent, NULL, NULL,
- NULL, NULL, 0);
- LEAVE(" ");
- return result != NULL;
+ ENTER(" ");
+ result = gnc_ui_common_commodity_modal(commodity, parent, NULL, NULL,
+ NULL, NULL, 0);
+ LEAVE(" ");
+ return result != NULL;
}
@@ -1180,98 +1233,107 @@
gboolean
gnc_ui_commodity_dialog_to_object(CommodityWindow * w)
{
- gnc_quote_source *source;
- QuoteSourceType type;
- const char * fullname = gtk_entry_get_text(GTK_ENTRY(w->fullname_entry));
- gchar *namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
- const char * mnemonic = gtk_entry_get_text(GTK_ENTRY(w->mnemonic_entry));
- const char * code = gtk_entry_get_text(GTK_ENTRY(w->code_entry));
- QofBook * book = gnc_get_current_book ();
- int fraction = gtk_spin_button_get_value_as_int
- (GTK_SPIN_BUTTON(w->fraction_spinbutton));
- const char *string;
- gnc_commodity * c;
- gint selection;
+ gnc_quote_source *source;
+ QuoteSourceType type;
+ const char * fullname = gtk_entry_get_text(GTK_ENTRY(w->fullname_entry));
+ gchar *namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
+ const char * mnemonic = gtk_entry_get_text(GTK_ENTRY(w->mnemonic_entry));
+ const char * code = gtk_entry_get_text(GTK_ENTRY(w->code_entry));
+ QofBook * book = gnc_get_current_book ();
+ int fraction = gtk_spin_button_get_value_as_int
+ (GTK_SPIN_BUTTON(w->fraction_spinbutton));
+ const char *string;
+ gnc_commodity * c;
+ gint selection;
- ENTER(" ");
- /* Special case currencies */
- if (gnc_commodity_namespace_is_iso (namespace)) {
- if (w->edit_commodity) {
- c = w->edit_commodity;
- gnc_commodity_begin_edit(c);
- gnc_commodity_user_set_quote_flag (c, gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON (w->get_quote_check)));
- selection = gtk_combo_box_get_active(GTK_COMBO_BOX(w->quote_tz_menu));
- string = gnc_timezone_menu_position_to_string(selection);
- gnc_commodity_set_quote_tz(c, string);
- gnc_commodity_commit_edit(c);
- return TRUE;
+ ENTER(" ");
+ /* Special case currencies */
+ if (gnc_commodity_namespace_is_iso (namespace))
+ {
+ if (w->edit_commodity)
+ {
+ c = w->edit_commodity;
+ gnc_commodity_begin_edit(c);
+ gnc_commodity_user_set_quote_flag (c, gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (w->get_quote_check)));
+ selection = gtk_combo_box_get_active(GTK_COMBO_BOX(w->quote_tz_menu));
+ string = gnc_timezone_menu_position_to_string(selection);
+ gnc_commodity_set_quote_tz(c, string);
+ gnc_commodity_commit_edit(c);
+ return TRUE;
+ }
+ gnc_warning_dialog(w->dialog, "%s",
+ _("You may not create a new national currency."));
+ return FALSE;
}
- gnc_warning_dialog(w->dialog, "%s",
- _("You may not create a new national currency."));
- return FALSE;
- }
- if(fullname && fullname[0] &&
- namespace && namespace[0] &&
- mnemonic && mnemonic[0]) {
- c = gnc_commodity_table_lookup (gnc_get_current_commodities(),
- namespace, mnemonic);
+ if (fullname && fullname[0] &&
+ namespace && namespace[0] &&
+ mnemonic && mnemonic[0])
+ {
+ c = gnc_commodity_table_lookup (gnc_get_current_commodities(),
+ namespace, mnemonic);
- if ((!w->edit_commodity && c) ||
- (w->edit_commodity && c && (c != w->edit_commodity))) {
- gnc_warning_dialog (w->dialog, "%s", _("That commodity already exists."));
- g_free(namespace);
- return FALSE;
- }
+ if ((!w->edit_commodity && c) ||
+ (w->edit_commodity && c && (c != w->edit_commodity)))
+ {
+ gnc_warning_dialog (w->dialog, "%s", _("That commodity already exists."));
+ g_free(namespace);
+ return FALSE;
+ }
- if (!w->edit_commodity) {
- c = gnc_commodity_new(book, fullname, namespace, mnemonic, code, fraction);
- w->edit_commodity = c;
- gnc_commodity_begin_edit(c);
- } else {
- c = w->edit_commodity;
- gnc_commodity_begin_edit(c);
+ if (!w->edit_commodity)
+ {
+ c = gnc_commodity_new(book, fullname, namespace, mnemonic, code, fraction);
+ w->edit_commodity = c;
+ gnc_commodity_begin_edit(c);
+ }
+ else
+ {
+ c = w->edit_commodity;
+ gnc_commodity_begin_edit(c);
- gnc_commodity_table_remove (gnc_get_current_commodities(), c);
+ gnc_commodity_table_remove (gnc_get_current_commodities(), c);
- gnc_commodity_set_fullname (c, fullname);
- gnc_commodity_set_mnemonic (c, mnemonic);
- gnc_commodity_set_namespace (c, namespace);
- gnc_commodity_set_cusip (c, code);
- gnc_commodity_set_fraction (c, fraction);
- }
+ gnc_commodity_set_fullname (c, fullname);
+ gnc_commodity_set_mnemonic (c, mnemonic);
+ gnc_commodity_set_namespace (c, namespace);
+ gnc_commodity_set_cusip (c, code);
+ gnc_commodity_set_fraction (c, fraction);
+ }
- gnc_commodity_user_set_quote_flag (c, gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON (w->get_quote_check)));
+ gnc_commodity_user_set_quote_flag (c, gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (w->get_quote_check)));
- for (type = SOURCE_SINGLE; type < SOURCE_MAX; type++) {
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->source_button[type])))
- break;
- }
- selection = gtk_combo_box_get_active(GTK_COMBO_BOX(w->source_menu[type]));
- source = gnc_quote_source_lookup_by_ti (type, selection);
- gnc_commodity_set_quote_source(c, source);
+ for (type = SOURCE_SINGLE; type < SOURCE_MAX; type++)
+ {
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->source_button[type])))
+ break;
+ }
+ selection = gtk_combo_box_get_active(GTK_COMBO_BOX(w->source_menu[type]));
+ source = gnc_quote_source_lookup_by_ti (type, selection);
+ gnc_commodity_set_quote_source(c, source);
- selection = gtk_combo_box_get_active(GTK_COMBO_BOX(w->quote_tz_menu));
- string = gnc_timezone_menu_position_to_string(selection);
- gnc_commodity_set_quote_tz(c, string);
- gnc_commodity_commit_edit(c);
+ selection = gtk_combo_box_get_active(GTK_COMBO_BOX(w->quote_tz_menu));
+ string = gnc_timezone_menu_position_to_string(selection);
+ gnc_commodity_set_quote_tz(c, string);
+ gnc_commodity_commit_edit(c);
- /* remember the commodity */
- c = gnc_commodity_table_insert(gnc_get_current_commodities(), c);
- }
- else {
- gnc_warning_dialog(w->dialog, "%s",
- _("You must enter a non-empty \"Full name\", "
- "\"Symbol/abbreviation\", "
- "and \"Type\" for the commodity."));
+ /* remember the commodity */
+ c = gnc_commodity_table_insert(gnc_get_current_commodities(), c);
+ }
+ else
+ {
+ gnc_warning_dialog(w->dialog, "%s",
+ _("You must enter a non-empty \"Full name\", "
+ "\"Symbol/abbreviation\", "
+ "and \"Type\" for the commodity."));
+ g_free(namespace);
+ return FALSE;
+ }
g_free(namespace);
- return FALSE;
- }
- g_free(namespace);
- LEAVE(" ");
- return TRUE;
+ LEAVE(" ");
+ return TRUE;
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/dialog-commodity.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-commodity.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-commodity.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -43,12 +43,13 @@
* that if values are added, the routines in dialog-commodity.c will
* need to be updated to match.
*/
-typedef enum {
- DIAG_COMM_CURRENCY, /**< Dialog box should only allow selection
+typedef enum
+{
+ DIAG_COMM_CURRENCY, /**< Dialog box should only allow selection
of a currency. */
- DIAG_COMM_NON_CURRENCY, /**< Dialog box should allow selection of
+ DIAG_COMM_NON_CURRENCY, /**< Dialog box should allow selection of
anything but a currency. */
- DIAG_COMM_ALL, /**< Dialog box should allow selection of
+ DIAG_COMM_ALL, /**< Dialog box should allow selection of
anything. */
} dialog_commodity_mode;
@@ -57,7 +58,7 @@
/** This function is used to set the action routine for the help
* button in the commodity dialog windows. If the action routine is
* unset, the help button will not be visible to the user.
- *
+ *
* @param cb The function to be called when the user clicks the help
* button. */
void gnc_ui_commodity_set_help_callback (gnc_commodity_help_callback cb);
@@ -102,14 +103,14 @@
* @return The commodity selected. May or may not be a newly created
* commodity.
*/
-gnc_commodity *
-gnc_ui_select_commodity_modal_full(gnc_commodity * orig_sel,
- GtkWidget * parent,
- dialog_commodity_mode mode,
- const char * user_message,
- const char * cusip,
- const char * fullname,
- const char * mnemonic);
+gnc_commodity *
+gnc_ui_select_commodity_modal_full(gnc_commodity * orig_sel,
+ GtkWidget * parent,
+ dialog_commodity_mode mode,
+ const char * user_message,
+ const char * cusip,
+ const char * fullname,
+ const char * mnemonic);
/** Ask the user to select a commodity from the existing set of
@@ -129,8 +130,8 @@
* @return The commodity selected. May or may not be a newly created
* commodity.
*/
-gnc_commodity *
-gnc_ui_select_commodity_modal(gnc_commodity * orig_sel,
+gnc_commodity *
+gnc_ui_select_commodity_modal(gnc_commodity * orig_sel,
GtkWidget * parent,
dialog_commodity_mode mode);
/** @} */
@@ -159,16 +160,16 @@
*
* @param fraction If present, this will be the default fraction for
* the new commodity. If absent, a default of 1000 will be used.
- *
+ *
* @return The newly created commodity, or NULL if the user cancelled.
*/
-gnc_commodity *
-gnc_ui_new_commodity_modal_full(const char * namespace,
- GtkWidget * parent,
- const char * cusip,
- const char * fullname,
- const char * mnemonic,
- int fraction);
+gnc_commodity *
+gnc_ui_new_commodity_modal_full(const char * namespace,
+ GtkWidget * parent,
+ const char * cusip,
+ const char * fullname,
+ const char * mnemonic,
+ int fraction);
/** Ask the user to provide the information necessary to create a new
* commodity.
@@ -178,11 +179,11 @@
* namespace for ISO 4217 currencies.
*
* @param parent The parent window of the new dialog.
- *
+ *
* @return The newly created commodity, or NULL if the user cancelled.
*/
-gnc_commodity *
-gnc_ui_new_commodity_modal(const char * default_namespace,
+gnc_commodity *
+gnc_ui_new_commodity_modal(const char * default_namespace,
GtkWidget * parent);
/** Allow the user to edit the information about a commodity. For
@@ -196,7 +197,7 @@
* @param commodity The commodity to edit.
*
* @param parent The parent window of the new dialog.
- *
+ *
* @return The newly created commodity, or NULL if the user cancelled.
*/
gboolean
@@ -224,8 +225,8 @@
* @note The returned string must be freed by the caller.
*/
void gnc_ui_update_namespace_picker(GtkWidget *cbe,
- const gchar *sel,
- dialog_commodity_mode mode);
+ const gchar *sel,
+ dialog_commodity_mode mode);
/** Given a combo box, return the currently selected namespaces.
*
Modified: gnucash/trunk/src/gnome-utils/dialog-file-access.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-file-access.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-file-access.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -46,116 +46,133 @@
typedef struct FileAccessWindow
{
- /* Parts of the dialog */
- int type;
+ /* Parts of the dialog */
+ int type;
- GtkWidget* dialog;
- GtkWidget* frame_file;
- GtkWidget* frame_database;
- GtkFileChooser* fileChooser;
- GtkComboBox* cb_uri_type;
- GtkEntry* tf_host;
- GtkEntry* tf_database;
- GtkEntry* tf_username;
- GtkEntry* tf_password;
+ GtkWidget* dialog;
+ GtkWidget* frame_file;
+ GtkWidget* frame_database;
+ GtkFileChooser* fileChooser;
+ GtkComboBox* cb_uri_type;
+ GtkEntry* tf_host;
+ GtkEntry* tf_database;
+ GtkEntry* tf_username;
+ GtkEntry* tf_password;
} FileAccessWindow;
static gchar*
geturl( FileAccessWindow* faw )
{
- gchar* url;
- const gchar* host;
- const gchar* database;
- const gchar* username;
- const gchar* password;
- const gchar* type;
- const gchar* file;
+ gchar* url;
+ const gchar* host;
+ const gchar* database;
+ const gchar* username;
+ const gchar* password;
+ const gchar* type;
+ const gchar* file;
- host = gtk_entry_get_text( faw->tf_host );
- database = gtk_entry_get_text( faw->tf_database );
- username = gtk_entry_get_text( faw->tf_username );
- password = gtk_entry_get_text( faw->tf_password );
- file = gtk_file_chooser_get_filename( faw->fileChooser );
+ host = gtk_entry_get_text( faw->tf_host );
+ database = gtk_entry_get_text( faw->tf_database );
+ username = gtk_entry_get_text( faw->tf_username );
+ password = gtk_entry_get_text( faw->tf_password );
+ file = gtk_file_chooser_get_filename( faw->fileChooser );
- type = gtk_combo_box_get_active_text( faw->cb_uri_type );
- if ( (( strcmp( type, "xml" ) == 0 ) ||
- ( strcmp( type, "sqlite3" ) == 0 ) ||
- ( strcmp( type, "file" ) == 0 )) &&
- ( file == NULL ) )
- return NULL;
+ type = gtk_combo_box_get_active_text( faw->cb_uri_type );
+ if ( (( strcmp( type, "xml" ) == 0 ) ||
+ ( strcmp( type, "sqlite3" ) == 0 ) ||
+ ( strcmp( type, "file" ) == 0 )) &&
+ ( file == NULL ) )
+ return NULL;
- if( strcmp( type, "xml" ) == 0 ) {
- url = g_strdup_printf( "xml://%s", file );
- } else if( strcmp( type, "sqlite3" ) == 0 ) {
- url = g_strdup_printf( "sqlite3://%s", file );
- } else if( strcmp( type, "file" ) == 0 ) {
- url = g_strdup_printf( "file://%s", file );
- } else if( strcmp( type, "mysql" ) == 0 ) {
- url = g_strdup_printf( "mysql://%s:%s:%s:%s",
- host, database, username, password );
- } else {
- g_assert( strcmp( type, "postgres" ) == 0 );
- type = "postgres";
- url = g_strdup_printf( "postgres://%s:%s:%s:%s",
- host, database, username, password );
- }
+ if ( strcmp( type, "xml" ) == 0 )
+ {
+ url = g_strdup_printf( "xml://%s", file );
+ }
+ else if ( strcmp( type, "sqlite3" ) == 0 )
+ {
+ url = g_strdup_printf( "sqlite3://%s", file );
+ }
+ else if ( strcmp( type, "file" ) == 0 )
+ {
+ url = g_strdup_printf( "file://%s", file );
+ }
+ else if ( strcmp( type, "mysql" ) == 0 )
+ {
+ url = g_strdup_printf( "mysql://%s:%s:%s:%s",
+ host, database, username, password );
+ }
+ else
+ {
+ g_assert( strcmp( type, "postgres" ) == 0 );
+ type = "postgres";
+ url = g_strdup_printf( "postgres://%s:%s:%s:%s",
+ host, database, username, password );
+ }
- return url;
+ return url;
}
void
gnc_ui_file_access_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
{
FileAccessWindow* faw;
- gchar* url;
+ gchar* url;
g_return_if_fail( dialog != NULL );
faw = g_object_get_data( G_OBJECT(dialog), "FileAccessWindow" );
g_return_if_fail( faw != NULL );
- switch( response ) {
+ switch ( response )
+ {
case GTK_RESPONSE_HELP:
gnc_gnome_help( HF_HELP, HL_GLOBPREFS );
break;
- case GTK_RESPONSE_OK:
- url = geturl( faw );
- if( url == NULL ) {
- return;
- }
- if( faw->type == FILE_ACCESS_OPEN ) {
- gnc_file_open_file( url );
- } else if( faw->type == FILE_ACCESS_SAVE_AS ) {
- gnc_file_do_save_as( url );
- }
- break;
+ case GTK_RESPONSE_OK:
+ url = geturl( faw );
+ if ( url == NULL )
+ {
+ return;
+ }
+ if ( faw->type == FILE_ACCESS_OPEN )
+ {
+ gnc_file_open_file( url );
+ }
+ else if ( faw->type == FILE_ACCESS_SAVE_AS )
+ {
+ gnc_file_do_save_as( url );
+ }
+ break;
- case GTK_RESPONSE_CANCEL:
- break;
+ case GTK_RESPONSE_CANCEL:
+ break;
default:
PERR( "Invalid response" );
break;
}
- if( response != GTK_RESPONSE_HELP ) {
+ if ( response != GTK_RESPONSE_HELP )
+ {
gtk_widget_destroy( GTK_WIDGET(dialog) );
- }
+ }
}
/* Activate the file chooser and deactivate the db selection fields */
static void
set_widget_sensitivity( FileAccessWindow* faw, gboolean is_file_based_uri )
{
- if (is_file_based_uri)
- {
- gtk_widget_show(faw->frame_file);
- gtk_widget_hide(faw->frame_database);
- } else {
- gtk_widget_show(faw->frame_database);
- gtk_widget_hide(faw->frame_file);
- }
+ if (is_file_based_uri)
+ {
+ gtk_widget_show(faw->frame_file);
+ gtk_widget_hide(faw->frame_database);
+ }
+ else
+ {
+ gtk_widget_show(faw->frame_database);
+ gtk_widget_hide(faw->frame_file);
+ }
// gtk_widget_set_sensitive( faw->frame_file, is_file_based_uri );
// gtk_widget_set_sensitive( faw->frame_database, !is_file_based_uri );
}
@@ -163,45 +180,51 @@
static void
set_widget_sensitivity_for_uri_type( FileAccessWindow* faw, const gchar* uri_type )
{
- if( strcmp( uri_type, "file" ) == 0 || strcmp( uri_type, "xml" ) == 0
- || strcmp( uri_type, "sqlite3" ) == 0 ) {
- set_widget_sensitivity( faw, /* is_file_based_uri */ TRUE );
- } else if( strcmp( uri_type, "mysql" ) == 0 || strcmp( uri_type, "postgres" ) == 0 ) {
- set_widget_sensitivity( faw, /* is_file_based_uri */ FALSE );
- } else {
- g_assert( FALSE );
- }
+ if ( strcmp( uri_type, "file" ) == 0 || strcmp( uri_type, "xml" ) == 0
+ || strcmp( uri_type, "sqlite3" ) == 0 )
+ {
+ set_widget_sensitivity( faw, /* is_file_based_uri */ TRUE );
+ }
+ else if ( strcmp( uri_type, "mysql" ) == 0 || strcmp( uri_type, "postgres" ) == 0 )
+ {
+ set_widget_sensitivity( faw, /* is_file_based_uri */ FALSE );
+ }
+ else
+ {
+ g_assert( FALSE );
+ }
}
static void
cb_uri_type_changed_cb( GtkComboBox* cb )
{
- GtkWidget* dialog;
+ GtkWidget* dialog;
FileAccessWindow* faw;
- const gchar* type;
+ const gchar* type;
- g_return_if_fail( cb != NULL );
+ g_return_if_fail( cb != NULL );
- dialog = gtk_widget_get_toplevel( GTK_WIDGET(cb) );
- g_return_if_fail( dialog != NULL );
+ dialog = gtk_widget_get_toplevel( GTK_WIDGET(cb) );
+ g_return_if_fail( dialog != NULL );
faw = g_object_get_data( G_OBJECT(dialog), "FileAccessWindow" );
g_return_if_fail( faw != NULL );
- type = gtk_combo_box_get_active_text( cb );
- set_widget_sensitivity_for_uri_type( faw, type );
+ type = gtk_combo_box_get_active_text( cb );
+ set_widget_sensitivity_for_uri_type( faw, type );
}
static const char*
get_default_database( void )
{
- const gchar* default_db;
+ const gchar* default_db;
- default_db = g_getenv( "GNC_DEFAULT_DATABASE" );
- if( default_db == NULL ) {
- default_db = DEFAULT_DATABASE;
- }
+ default_db = g_getenv( "GNC_DEFAULT_DATABASE" );
+ if ( default_db == NULL )
+ {
+ default_db = DEFAULT_DATABASE;
+ }
- return default_db;
+ return default_db;
}
static void
@@ -210,145 +233,166 @@
FileAccessWindow *faw;
GladeXML* xml;
GtkWidget* box;
- GList* ds_node;
- GtkButton* op;
- GtkWidget* align;
- GtkFileChooserWidget* fileChooser;
- GtkFileChooserAction fileChooserAction = GTK_FILE_CHOOSER_ACTION_OPEN;
- GList* list;
- GList* node;
- GtkWidget* uri_type_container;
- gboolean need_access_method_file = FALSE;
- gboolean need_access_method_mysql = FALSE;
- gboolean need_access_method_postgres = FALSE;
- gboolean need_access_method_sqlite3 = FALSE;
- gboolean need_access_method_xml = FALSE;
- gint access_method_index = -1;
- gint active_access_method_index = -1;
- const gchar* default_db;
- const gchar *button_label = NULL;
+ GList* ds_node;
+ GtkButton* op;
+ GtkWidget* align;
+ GtkFileChooserWidget* fileChooser;
+ GtkFileChooserAction fileChooserAction = GTK_FILE_CHOOSER_ACTION_OPEN;
+ GList* list;
+ GList* node;
+ GtkWidget* uri_type_container;
+ gboolean need_access_method_file = FALSE;
+ gboolean need_access_method_mysql = FALSE;
+ gboolean need_access_method_postgres = FALSE;
+ gboolean need_access_method_sqlite3 = FALSE;
+ gboolean need_access_method_xml = FALSE;
+ gint access_method_index = -1;
+ gint active_access_method_index = -1;
+ const gchar* default_db;
+ const gchar *button_label = NULL;
- g_return_if_fail( type == FILE_ACCESS_OPEN || type == FILE_ACCESS_SAVE_AS );
+ g_return_if_fail( type == FILE_ACCESS_OPEN || type == FILE_ACCESS_SAVE_AS );
faw = g_new0(FileAccessWindow, 1);
g_return_if_fail( faw != NULL );
- faw->type = type;
+ faw->type = type;
/* Open the dialog */
xml = gnc_glade_xml_new( "dialog-file-access.glade", "File Access" );
faw->dialog = glade_xml_get_widget( xml, "File Access" );
g_object_set_data_full( G_OBJECT(faw->dialog), "FileAccessWindow", faw,
- g_free );
+ g_free );
- faw->frame_file = glade_xml_get_widget( xml, "frame_file" );
- faw->frame_database = glade_xml_get_widget( xml, "frame_database" );
+ faw->frame_file = glade_xml_get_widget( xml, "frame_file" );
+ faw->frame_database = glade_xml_get_widget( xml, "frame_database" );
faw->tf_host = GTK_ENTRY(glade_xml_get_widget( xml, "tf_host" ));
- gtk_entry_set_text( faw->tf_host, DEFAULT_HOST );
+ gtk_entry_set_text( faw->tf_host, DEFAULT_HOST );
faw->tf_database = GTK_ENTRY(glade_xml_get_widget( xml, "tf_database" ));
- default_db = get_default_database();
- gtk_entry_set_text( faw->tf_database, default_db );
+ default_db = get_default_database();
+ gtk_entry_set_text( faw->tf_database, default_db );
faw->tf_username = GTK_ENTRY(glade_xml_get_widget( xml, "tf_username" ));
faw->tf_password = GTK_ENTRY(glade_xml_get_widget( xml, "tf_password" ));
- switch( type ) {
- case FILE_ACCESS_OPEN:
- gtk_window_set_title(GTK_WINDOW(faw->dialog), _("Open..."));
- button_label = "gtk-open";
- fileChooserAction = GTK_FILE_CHOOSER_ACTION_OPEN;
- break;
+ switch ( type )
+ {
+ case FILE_ACCESS_OPEN:
+ gtk_window_set_title(GTK_WINDOW(faw->dialog), _("Open..."));
+ button_label = "gtk-open";
+ fileChooserAction = GTK_FILE_CHOOSER_ACTION_OPEN;
+ break;
- case FILE_ACCESS_SAVE_AS:
- gtk_window_set_title(GTK_WINDOW(faw->dialog), _("Save As..."));
- button_label = "gtk-save-as";
- fileChooserAction = GTK_FILE_CHOOSER_ACTION_SAVE;
- break;
- }
+ case FILE_ACCESS_SAVE_AS:
+ gtk_window_set_title(GTK_WINDOW(faw->dialog), _("Save As..."));
+ button_label = "gtk-save-as";
+ fileChooserAction = GTK_FILE_CHOOSER_ACTION_SAVE;
+ break;
+ }
- op = GTK_BUTTON(glade_xml_get_widget( xml, "pb_op" ));
- if( op != NULL ) {
- gtk_button_set_label( op, button_label );
- gtk_button_set_use_stock( op, TRUE );
- }
+ op = GTK_BUTTON(glade_xml_get_widget( xml, "pb_op" ));
+ if ( op != NULL )
+ {
+ gtk_button_set_label( op, button_label );
+ gtk_button_set_use_stock( op, TRUE );
+ }
- align = glade_xml_get_widget( xml, "alignment_file_chooser" );
- fileChooser = GTK_FILE_CHOOSER_WIDGET(gtk_file_chooser_widget_new( fileChooserAction ));
- faw->fileChooser = GTK_FILE_CHOOSER(fileChooser);
- gtk_container_add( GTK_CONTAINER(align), GTK_WIDGET(fileChooser) );
+ align = glade_xml_get_widget( xml, "alignment_file_chooser" );
+ fileChooser = GTK_FILE_CHOOSER_WIDGET(gtk_file_chooser_widget_new( fileChooserAction ));
+ faw->fileChooser = GTK_FILE_CHOOSER(fileChooser);
+ gtk_container_add( GTK_CONTAINER(align), GTK_WIDGET(fileChooser) );
- uri_type_container = glade_xml_get_widget( xml, "vb_uri_type_container" );
- faw->cb_uri_type = GTK_COMBO_BOX(gtk_combo_box_new_text());
- gtk_container_add( GTK_CONTAINER(uri_type_container), GTK_WIDGET(faw->cb_uri_type) );
- gtk_box_set_child_packing( GTK_BOX(uri_type_container), GTK_WIDGET(faw->cb_uri_type),
- /*expand*/TRUE, /*fill*/FALSE, /*padding*/0, GTK_PACK_START );
- g_object_connect( G_OBJECT(faw->cb_uri_type),
- "signal::changed", cb_uri_type_changed_cb, NULL,
- NULL );
+ uri_type_container = glade_xml_get_widget( xml, "vb_uri_type_container" );
+ faw->cb_uri_type = GTK_COMBO_BOX(gtk_combo_box_new_text());
+ gtk_container_add( GTK_CONTAINER(uri_type_container), GTK_WIDGET(faw->cb_uri_type) );
+ gtk_box_set_child_packing( GTK_BOX(uri_type_container), GTK_WIDGET(faw->cb_uri_type),
+ /*expand*/TRUE, /*fill*/FALSE, /*padding*/0, GTK_PACK_START );
+ g_object_connect( G_OBJECT(faw->cb_uri_type),
+ "signal::changed", cb_uri_type_changed_cb, NULL,
+ NULL );
/* Autoconnect signals */
glade_xml_signal_autoconnect_full( xml, gnc_glade_autoconnect_full_func,
- faw->dialog );
+ faw->dialog );
- /* See what qof backends are available and add appropriate ones to the combo box */
- list = qof_backend_get_registered_access_method_list();
- for( node = list; node != NULL; node = node->next ) {
- const gchar* access_method = node->data;
+ /* See what qof backends are available and add appropriate ones to the combo box */
+ list = qof_backend_get_registered_access_method_list();
+ for ( node = list; node != NULL; node = node->next )
+ {
+ const gchar* access_method = node->data;
- /* For the different access methods, "mysql" and "postgres" are added if available. Access
- methods "xml" and "sqlite3" are compressed to "file" if opening a file, but when saving a file,
- both access methods are added. */
- if( strcmp( access_method, "mysql" ) == 0 ) {
- need_access_method_mysql = TRUE;
- } else if( strcmp( access_method, "postgres" ) == 0 ) {
- need_access_method_postgres = TRUE;
- } else if( strcmp( access_method, "xml" ) == 0 ) {
- if( type == FILE_ACCESS_OPEN ) {
- need_access_method_file = TRUE;
- } else {
- need_access_method_xml = TRUE;
- }
- } else if( strcmp( access_method, "sqlite3" ) == 0 ) {
- if( type == FILE_ACCESS_OPEN ) {
- need_access_method_file = TRUE;
- } else {
- need_access_method_sqlite3 = TRUE;
- }
- }
- }
- g_list_free(list);
+ /* For the different access methods, "mysql" and "postgres" are added if available. Access
+ methods "xml" and "sqlite3" are compressed to "file" if opening a file, but when saving a file,
+ both access methods are added. */
+ if ( strcmp( access_method, "mysql" ) == 0 )
+ {
+ need_access_method_mysql = TRUE;
+ }
+ else if ( strcmp( access_method, "postgres" ) == 0 )
+ {
+ need_access_method_postgres = TRUE;
+ }
+ else if ( strcmp( access_method, "xml" ) == 0 )
+ {
+ if ( type == FILE_ACCESS_OPEN )
+ {
+ need_access_method_file = TRUE;
+ }
+ else
+ {
+ need_access_method_xml = TRUE;
+ }
+ }
+ else if ( strcmp( access_method, "sqlite3" ) == 0 )
+ {
+ if ( type == FILE_ACCESS_OPEN )
+ {
+ need_access_method_file = TRUE;
+ }
+ else
+ {
+ need_access_method_sqlite3 = TRUE;
+ }
+ }
+ }
+ g_list_free(list);
- /* Now that the set of access methods has been ascertained, add them to the list, and set the
- default. */
- access_method_index = -1;
- if( need_access_method_file ) {
- gtk_combo_box_append_text( faw->cb_uri_type, "file" );
- active_access_method_index = ++access_method_index;
- }
- if( need_access_method_mysql ) {
- gtk_combo_box_append_text( faw->cb_uri_type, "mysql" );
- ++access_method_index;
- }
- if( need_access_method_postgres ) {
- gtk_combo_box_append_text( faw->cb_uri_type, "postgres" );
- ++access_method_index;
- }
- if( need_access_method_sqlite3 ) {
- gtk_combo_box_append_text( faw->cb_uri_type, "sqlite3" );
- active_access_method_index = ++access_method_index;
- }
- if( need_access_method_xml ) {
- gtk_combo_box_append_text( faw->cb_uri_type, "xml" );
- ++access_method_index;
+ /* Now that the set of access methods has been ascertained, add them to the list, and set the
+ default. */
+ access_method_index = -1;
+ if ( need_access_method_file )
+ {
+ gtk_combo_box_append_text( faw->cb_uri_type, "file" );
+ active_access_method_index = ++access_method_index;
+ }
+ if ( need_access_method_mysql )
+ {
+ gtk_combo_box_append_text( faw->cb_uri_type, "mysql" );
+ ++access_method_index;
+ }
+ if ( need_access_method_postgres )
+ {
+ gtk_combo_box_append_text( faw->cb_uri_type, "postgres" );
+ ++access_method_index;
+ }
+ if ( need_access_method_sqlite3 )
+ {
+ gtk_combo_box_append_text( faw->cb_uri_type, "sqlite3" );
+ active_access_method_index = ++access_method_index;
+ }
+ if ( need_access_method_xml )
+ {
+ gtk_combo_box_append_text( faw->cb_uri_type, "xml" );
+ ++access_method_index;
- // Set XML as default if it is offered (which mean we are in
- // the "Save As" dialog)
- active_access_method_index = access_method_index;
- }
- g_assert( active_access_method_index >= 0 );
+ // Set XML as default if it is offered (which mean we are in
+ // the "Save As" dialog)
+ active_access_method_index = access_method_index;
+ }
+ g_assert( active_access_method_index >= 0 );
/* Clean up the xml data structure when the dialog is destroyed */
g_object_set_data_full( G_OBJECT(faw->dialog), "dialog-file-access.glade",
- xml, g_object_unref );
+ xml, g_object_unref );
/* Run the dialog */
gtk_widget_show_all( faw->dialog );
@@ -362,12 +406,12 @@
void
gnc_ui_file_access_for_open( void )
{
- gnc_ui_file_access( FILE_ACCESS_OPEN );
+ gnc_ui_file_access( FILE_ACCESS_OPEN );
}
void
gnc_ui_file_access_for_save_as( void )
{
- gnc_ui_file_access( FILE_ACCESS_SAVE_AS );
+ gnc_ui_file_access( FILE_ACCESS_SAVE_AS );
}
Modified: gnucash/trunk/src/gnome-utils/dialog-options.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-options.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-options.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -77,196 +77,200 @@
struct gnc_option_win
{
- GtkWidget * dialog;
- GtkWidget * notebook;
- GtkWidget * page_list;
+ GtkWidget * dialog;
+ GtkWidget * notebook;
+ GtkWidget * page_list;
- gboolean toplevel;
+ gboolean toplevel;
- GtkTooltips * tips;
+ GtkTooltips * tips;
- GNCOptionWinCallback apply_cb;
- gpointer apply_cb_data;
+ GNCOptionWinCallback apply_cb;
+ gpointer apply_cb_data;
- GNCOptionWinCallback help_cb;
- gpointer help_cb_data;
+ GNCOptionWinCallback help_cb;
+ gpointer help_cb_data;
- GNCOptionWinCallback close_cb;
- gpointer close_cb_data;
+ GNCOptionWinCallback close_cb;
+ gpointer close_cb_data;
- /* Hold onto this for a complete reset */
- GNCOptionDB * option_db;
+ /* Hold onto this for a complete reset */
+ GNCOptionDB * option_db;
};
-typedef enum {
- GNC_RD_WID_AB_BUTTON_POS = 0,
- GNC_RD_WID_AB_WIDGET_POS,
- GNC_RD_WID_REL_BUTTON_POS,
- GNC_RD_WID_REL_WIDGET_POS} GNCRdPositions;
+typedef enum
+{
+ GNC_RD_WID_AB_BUTTON_POS = 0,
+ GNC_RD_WID_AB_WIDGET_POS,
+ GNC_RD_WID_REL_BUTTON_POS,
+ GNC_RD_WID_REL_WIDGET_POS
+} GNCRdPositions;
static GNCOptionWinCallback global_help_cb = NULL;
gpointer global_help_cb_data = NULL;
void gnc_options_dialog_response_cb(GtkDialog *dialog, gint response,
- GNCOptionWin *window);
+ GNCOptionWin *window);
static void gnc_options_dialog_reset_cb(GtkWidget * w, gpointer data);
void gnc_options_dialog_list_select_cb(GtkWidget * list, GtkWidget * item,
- gpointer data);
+ gpointer data);
static inline gint
color_d_to_i16 (double d)
{
- return (d * 0xFFFF);
+ return (d * 0xFFFF);
}
static inline double
color_i16_to_d (gint i16)
{
- return ((double)i16 / 0xFFFF);
+ return ((double)i16 / 0xFFFF);
}
static void
gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
{
- GtkDialog *dialog;
+ GtkDialog *dialog;
- while (widget && !GTK_IS_DIALOG(widget))
- widget = gtk_widget_get_parent(widget);
- if (widget == NULL)
- return;
+ while (widget && !GTK_IS_DIALOG(widget))
+ widget = gtk_widget_get_parent(widget);
+ if (widget == NULL)
+ return;
- dialog = GTK_DIALOG(widget);
- gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, sensitive);
- gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_APPLY, sensitive);
+ dialog = GTK_DIALOG(widget);
+ gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, sensitive);
+ gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_APPLY, sensitive);
}
void
gnc_options_dialog_changed (GNCOptionWin *win)
{
- if (!win) return;
+ if (!win) return;
- gnc_options_dialog_changed_internal (win->dialog, TRUE);
+ gnc_options_dialog_changed_internal (win->dialog, TRUE);
}
void
gnc_option_changed_widget_cb(GtkWidget *widget, GNCOption *option)
{
- gnc_option_set_changed (option, TRUE);
- gnc_option_call_option_widget_changed_proc(option);
- gnc_options_dialog_changed_internal (widget, TRUE);
+ gnc_option_set_changed (option, TRUE);
+ gnc_option_call_option_widget_changed_proc(option);
+ gnc_options_dialog_changed_internal (widget, TRUE);
}
void
gnc_option_changed_option_cb(GtkWidget *dummy, GNCOption *option)
{
- GtkWidget *widget;
+ GtkWidget *widget;
- widget = gnc_option_get_widget (option);
- gnc_option_changed_widget_cb(widget, option);
+ widget = gnc_option_get_widget (option);
+ gnc_option_changed_widget_cb(widget, option);
}
static void
gnc_date_option_set_select_method(GNCOption *option, gboolean use_absolute,
gboolean set_buttons)
{
- GList* widget_list;
- GtkWidget *ab_button, *rel_button, *rel_widget, *ab_widget;
- GtkWidget *widget;
+ GList* widget_list;
+ GtkWidget *ab_button, *rel_button, *rel_widget, *ab_widget;
+ GtkWidget *widget;
- widget = gnc_option_get_widget (option);
+ widget = gnc_option_get_widget (option);
- widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
- ab_button = g_list_nth_data(widget_list, GNC_RD_WID_AB_BUTTON_POS);
- ab_widget = g_list_nth_data(widget_list, GNC_RD_WID_AB_WIDGET_POS);
- rel_button = g_list_nth_data(widget_list, GNC_RD_WID_REL_BUTTON_POS);
- rel_widget = g_list_nth_data(widget_list, GNC_RD_WID_REL_WIDGET_POS);
- g_list_free(widget_list);
+ widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
+ ab_button = g_list_nth_data(widget_list, GNC_RD_WID_AB_BUTTON_POS);
+ ab_widget = g_list_nth_data(widget_list, GNC_RD_WID_AB_WIDGET_POS);
+ rel_button = g_list_nth_data(widget_list, GNC_RD_WID_REL_BUTTON_POS);
+ rel_widget = g_list_nth_data(widget_list, GNC_RD_WID_REL_WIDGET_POS);
+ g_list_free(widget_list);
- if(use_absolute)
- {
- gtk_widget_set_sensitive(ab_widget, TRUE);
- gtk_widget_set_sensitive(rel_widget, FALSE);
- if(set_buttons)
+ if (use_absolute)
{
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ab_button), TRUE);
+ gtk_widget_set_sensitive(ab_widget, TRUE);
+ gtk_widget_set_sensitive(rel_widget, FALSE);
+ if (set_buttons)
+ {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ab_button), TRUE);
+ }
}
- }
- else
- {
- gtk_widget_set_sensitive(rel_widget, TRUE);
- gtk_widget_set_sensitive(ab_widget, FALSE);
- if (set_buttons)
+ else
{
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rel_button), TRUE);
+ gtk_widget_set_sensitive(rel_widget, TRUE);
+ gtk_widget_set_sensitive(ab_widget, FALSE);
+ if (set_buttons)
+ {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rel_button), TRUE);
+ }
}
- }
}
static void
gnc_rd_option_ab_set_cb(GtkWidget *widget, gpointer *raw_option)
{
- GNCOption *option = (GNCOption *) raw_option;
- gnc_date_option_set_select_method(option, TRUE, FALSE);
- gnc_option_changed_option_cb(widget, option);
+ GNCOption *option = (GNCOption *) raw_option;
+ gnc_date_option_set_select_method(option, TRUE, FALSE);
+ gnc_option_changed_option_cb(widget, option);
}
static void
gnc_rd_option_rel_set_cb(GtkWidget *widget, gpointer *raw_option)
{
- GNCOption *option = (GNCOption *) raw_option;
- gnc_date_option_set_select_method(option, FALSE, FALSE);
- gnc_option_changed_option_cb(widget, option);
- return;
+ GNCOption *option = (GNCOption *) raw_option;
+ gnc_date_option_set_select_method(option, FALSE, FALSE);
+ gnc_option_changed_option_cb(widget, option);
+ return;
}
static void
gnc_image_option_update_preview_cb (GtkFileChooser *chooser,
- GNCOption *option)
+ GNCOption *option)
{
- gchar *filename;
- GtkImage *image;
- GdkPixbuf *pixbuf;
- gboolean have_preview;
+ gchar *filename;
+ GtkImage *image;
+ GdkPixbuf *pixbuf;
+ gboolean have_preview;
- g_return_if_fail(chooser != NULL);
+ g_return_if_fail(chooser != NULL);
- ENTER("chooser %p, option %p", chooser, option);
- filename = gtk_file_chooser_get_preview_filename(chooser);
- DEBUG("chooser preview name is %s.", filename ? filename : "(null)");
- if (filename == NULL) {
- filename = g_strdup(g_object_get_data(G_OBJECT(chooser), LAST_SELECTION));
- DEBUG("using last selection of %s", filename ? filename : "(null)");
- if (filename == NULL) {
- LEAVE("no usable name");
- return;
+ ENTER("chooser %p, option %p", chooser, option);
+ filename = gtk_file_chooser_get_preview_filename(chooser);
+ DEBUG("chooser preview name is %s.", filename ? filename : "(null)");
+ if (filename == NULL)
+ {
+ filename = g_strdup(g_object_get_data(G_OBJECT(chooser), LAST_SELECTION));
+ DEBUG("using last selection of %s", filename ? filename : "(null)");
+ if (filename == NULL)
+ {
+ LEAVE("no usable name");
+ return;
+ }
}
- }
- image = GTK_IMAGE(gtk_file_chooser_get_preview_widget(chooser));
- pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 128, 128, NULL);
- g_free(filename);
- have_preview = (pixbuf != NULL);
+ image = GTK_IMAGE(gtk_file_chooser_get_preview_widget(chooser));
+ pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 128, 128, NULL);
+ g_free(filename);
+ have_preview = (pixbuf != NULL);
- gtk_image_set_from_pixbuf(image, pixbuf);
- if (pixbuf)
- g_object_unref(pixbuf);
+ gtk_image_set_from_pixbuf(image, pixbuf);
+ if (pixbuf)
+ g_object_unref(pixbuf);
- gtk_file_chooser_set_preview_widget_active(chooser, have_preview);
- LEAVE("preview visible is %d", have_preview);
+ gtk_file_chooser_set_preview_widget_active(chooser, have_preview);
+ LEAVE("preview visible is %d", have_preview);
}
static void
gnc_image_option_selection_changed_cb (GtkFileChooser *chooser,
- GNCOption *option)
+ GNCOption *option)
{
- gchar *filename;
+ gchar *filename;
- filename = gtk_file_chooser_get_preview_filename(chooser);
- if (!filename)
- return;
- g_object_set_data_full(G_OBJECT(chooser), LAST_SELECTION, filename, g_free);
+ filename = gtk_file_chooser_get_preview_filename(chooser);
+ if (!filename)
+ return;
+ g_object_set_data_full(G_OBJECT(chooser), LAST_SELECTION, filename, g_free);
}
/********************************************************************\
@@ -283,41 +287,41 @@
static void
gnc_option_set_ui_value_internal (GNCOption *option, gboolean use_default)
{
- gboolean bad_value = FALSE;
- GtkWidget *widget;
- char *type;
- SCM getter;
- SCM value;
- GNCOptionDef_t *option_def;
+ gboolean bad_value = FALSE;
+ GtkWidget *widget;
+ char *type;
+ SCM getter;
+ SCM value;
+ GNCOptionDef_t *option_def;
- widget = gnc_option_get_widget (option);
- if (!widget)
- return;
+ widget = gnc_option_get_widget (option);
+ if (!widget)
+ return;
- type = gnc_option_type(option);
+ type = gnc_option_type(option);
- if (use_default)
- getter = gnc_option_default_getter(option);
- else
- getter = gnc_option_getter(option);
+ if (use_default)
+ getter = gnc_option_default_getter(option);
+ else
+ getter = gnc_option_getter(option);
- value = scm_call_0(getter);
+ value = scm_call_0(getter);
- option_def = gnc_options_ui_get_option (type);
- if (option_def && option_def->set_value)
- {
- bad_value = option_def->set_value (option, use_default, widget, value);
- if (bad_value)
+ option_def = gnc_options_ui_get_option (type);
+ if (option_def && option_def->set_value)
{
- PERR("bad value\n");
+ bad_value = option_def->set_value (option, use_default, widget, value);
+ if (bad_value)
+ {
+ PERR("bad value\n");
+ }
}
- }
- else
- {
- PERR("Unknown type. Ignoring.\n");
- }
+ else
+ {
+ PERR("Unknown type. Ignoring.\n");
+ }
- free(type);
+ free(type);
}
@@ -331,30 +335,30 @@
static SCM
gnc_option_get_ui_value_internal (GNCOption *option)
{
- SCM result = SCM_UNDEFINED;
- GtkWidget *widget;
- char *type;
- GNCOptionDef_t *option_def;
+ SCM result = SCM_UNDEFINED;
+ GtkWidget *widget;
+ char *type;
+ GNCOptionDef_t *option_def;
- widget = gnc_option_get_widget (option);
- if (!widget)
- return result;
+ widget = gnc_option_get_widget (option);
+ if (!widget)
+ return result;
- type = gnc_option_type(option);
+ type = gnc_option_type(option);
- option_def = gnc_options_ui_get_option (type);
- if (option_def && option_def->get_value)
- {
- result = option_def->get_value (option, widget);
- }
- else
- {
- PERR("Unknown type for refresh. Ignoring.\n");
- }
+ option_def = gnc_options_ui_get_option (type);
+ if (option_def && option_def->get_value)
+ {
+ result = option_def->get_value (option, widget);
+ }
+ else
+ {
+ PERR("Unknown type for refresh. Ignoring.\n");
+ }
- free(type);
+ free(type);
- return result;
+ return result;
}
@@ -372,32 +376,32 @@
static void
gnc_option_set_selectable_internal (GNCOption *option, gboolean selectable)
{
- GtkWidget *widget;
+ GtkWidget *widget;
- widget = gnc_option_get_widget (option);
- if (!widget)
- return;
+ widget = gnc_option_get_widget (option);
+ if (!widget)
+ return;
- gtk_widget_set_sensitive (widget, selectable);
+ gtk_widget_set_sensitive (widget, selectable);
}
static void
gnc_option_default_cb(GtkWidget *widget, GNCOption *option)
{
- gnc_option_set_ui_value (option, TRUE);
- gnc_option_set_changed (option, TRUE);
- gnc_options_dialog_changed_internal (widget, TRUE);
+ gnc_option_set_ui_value (option, TRUE);
+ gnc_option_set_changed (option, TRUE);
+ gnc_options_dialog_changed_internal (widget, TRUE);
}
static void
gnc_option_show_hidden_toggled_cb(GtkWidget *widget, GNCOption* option)
{
- AccountViewInfo avi;
+ AccountViewInfo avi;
GncTreeViewAccount *tree_view;
tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
gnc_tree_view_account_get_view_info (tree_view, &avi);
- avi.show_hidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ avi.show_hidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
gnc_tree_view_account_set_view_info (tree_view, &avi);
gnc_option_changed_widget_cb(widget, option);
}
@@ -406,222 +410,224 @@
static void
gnc_option_multichoice_cb(GtkWidget *widget, gpointer data)
{
- GNCOption *option = data;
- gnc_option_changed_widget_cb(widget, option);
+ GNCOption *option = data;
+ gnc_option_changed_widget_cb(widget, option);
}
#else
static void
gnc_option_multichoice_cb(GtkWidget *w, gint index, gpointer data)
{
- GNCOption *option = data;
- GtkWidget *widget;
- GtkWidget *omenu;
- gpointer _current;
- gint current;
- char *type;
+ GNCOption *option = data;
+ GtkWidget *widget;
+ GtkWidget *omenu;
+ gpointer _current;
+ gint current;
+ char *type;
- widget = gnc_option_get_widget (option);
+ widget = gnc_option_get_widget (option);
- /* the option menu may be part of a date option widget, so we need to
- decomposit the enclosing hbox then */
- type = gnc_option_type (option);
- if (safe_strcmp (type, "date") == 0) {
- char *date_type = gnc_option_date_option_get_subtype(option);
- GList *children;
+ /* the option menu may be part of a date option widget, so we need to
+ decomposit the enclosing hbox then */
+ type = gnc_option_type (option);
+ if (safe_strcmp (type, "date") == 0)
+ {
+ char *date_type = gnc_option_date_option_get_subtype(option);
+ GList *children;
- if (safe_strcmp (date_type, "both") == 0) {
- children = gtk_container_get_children (GTK_CONTAINER (widget));
- widget = g_list_nth_data (children, GNC_RD_WID_REL_WIDGET_POS);
- g_list_free(children);
+ if (safe_strcmp (date_type, "both") == 0)
+ {
+ children = gtk_container_get_children (GTK_CONTAINER (widget));
+ widget = g_list_nth_data (children, GNC_RD_WID_REL_WIDGET_POS);
+ g_list_free(children);
+ }
+ free (date_type);
}
- free (date_type);
- }
- free (type);
+ free (type);
- _current = g_object_get_data(G_OBJECT(widget), "gnc_multichoice_index");
- current = GPOINTER_TO_INT(_current);
+ _current = g_object_get_data(G_OBJECT(widget), "gnc_multichoice_index");
+ current = GPOINTER_TO_INT(_current);
- if (current == index)
- return;
+ if (current == index)
+ return;
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
- g_object_set_data(G_OBJECT(widget), "gnc_multichoice_index",
- GINT_TO_POINTER(index));
+ gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
+ g_object_set_data(G_OBJECT(widget), "gnc_multichoice_index",
+ GINT_TO_POINTER(index));
- gnc_option_set_changed (option, TRUE);
+ gnc_option_set_changed (option, TRUE);
- gnc_option_call_option_widget_changed_proc(option);
+ gnc_option_call_option_widget_changed_proc(option);
- omenu = g_object_get_data(G_OBJECT(w), "gnc_option_menu");
- gnc_options_dialog_changed_internal (omenu, TRUE);
+ omenu = g_object_get_data(G_OBJECT(w), "gnc_option_menu");
+ gnc_options_dialog_changed_internal (omenu, TRUE);
}
#endif
static void
gnc_option_radiobutton_cb(GtkWidget *w, gpointer data)
{
- GNCOption *option = data;
- GtkWidget *widget;
- gpointer _current, _new_value;
- gint current, new_value;
+ GNCOption *option = data;
+ GtkWidget *widget;
+ gpointer _current, _new_value;
+ gint current, new_value;
- widget = gnc_option_get_widget (option);
+ widget = gnc_option_get_widget (option);
- _current = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
- current = GPOINTER_TO_INT (_current);
+ _current = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
+ current = GPOINTER_TO_INT (_current);
- _new_value = g_object_get_data (G_OBJECT(w), "gnc_radiobutton_index");
- new_value = GPOINTER_TO_INT (_new_value);
+ _new_value = g_object_get_data (G_OBJECT(w), "gnc_radiobutton_index");
+ new_value = GPOINTER_TO_INT (_new_value);
- if (current == new_value)
- return;
+ if (current == new_value)
+ return;
- g_object_set_data (G_OBJECT(widget), "gnc_radiobutton_index",
- GINT_TO_POINTER(new_value));
- gnc_option_changed_widget_cb(widget, option);
+ g_object_set_data (G_OBJECT(widget), "gnc_radiobutton_index",
+ GINT_TO_POINTER(new_value));
+ gnc_option_changed_widget_cb(widget, option);
}
static GtkWidget *
gnc_option_create_date_widget (GNCOption *option)
{
- GtkWidget * box = NULL;
- GtkWidget *rel_button= NULL, *ab_button=NULL;
- GtkWidget *rel_widget=NULL, *ab_widget=NULL;
- GtkWidget *entry;
- gboolean show_time, use24;
- char *type;
- int num_values;
+ GtkWidget * box = NULL;
+ GtkWidget *rel_button = NULL, *ab_button = NULL;
+ GtkWidget *rel_widget = NULL, *ab_widget = NULL;
+ GtkWidget *entry;
+ gboolean show_time, use24;
+ char *type;
+ int num_values;
- type = gnc_option_date_option_get_subtype(option);
- show_time = gnc_option_show_time(option);
- use24 = gnc_gconf_get_bool(GCONF_GENERAL, "24hour_time", FALSE);
+ type = gnc_option_date_option_get_subtype(option);
+ show_time = gnc_option_show_time(option);
+ use24 = gnc_gconf_get_bool(GCONF_GENERAL, "24hour_time", FALSE);
- if (safe_strcmp(type, "relative") != 0)
- {
- ab_widget = gnc_date_edit_new(time(NULL), show_time, use24);
- entry = GNC_DATE_EDIT(ab_widget)->date_entry;
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(gnc_option_changed_option_cb), option);
- if (show_time)
+ if (safe_strcmp(type, "relative") != 0)
{
- entry = GNC_DATE_EDIT(ab_widget)->time_entry;
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(gnc_option_changed_option_cb), option);
+ ab_widget = gnc_date_edit_new(time(NULL), show_time, use24);
+ entry = GNC_DATE_EDIT(ab_widget)->date_entry;
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(gnc_option_changed_option_cb), option);
+ if (show_time)
+ {
+ entry = GNC_DATE_EDIT(ab_widget)->time_entry;
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(gnc_option_changed_option_cb), option);
+ }
}
- }
- if (safe_strcmp(type, "absolute") != 0)
- {
- int i;
- num_values = gnc_option_num_permissible_values(option);
+ if (safe_strcmp(type, "absolute") != 0)
+ {
+ int i;
+ num_values = gnc_option_num_permissible_values(option);
- g_return_val_if_fail(num_values >= 0, NULL);
+ g_return_val_if_fail(num_values >= 0, NULL);
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- {
- /* New code for GtkComboBox. Is not used because it is missing
- * the feature of per-item tooltips. Not yet implemented in gtk,
- * see http://bugzilla.gnome.org/show_bug.cgi?id=303717 , see
- * also gnc_option_create_multichoice_widget() below. */
- char *string;
- rel_widget = gtk_combo_box_new_text();
- for (i = 0; i < num_values; i++)
- {
- string = gnc_option_permissible_value_name(option, i);
- gtk_combo_box_append_text(GTK_COMBO_BOX(rel_widget), string);
- g_free(string);
- }
+ {
+ /* New code for GtkComboBox. Is not used because it is missing
+ * the feature of per-item tooltips. Not yet implemented in gtk,
+ * see http://bugzilla.gnome.org/show_bug.cgi?id=303717 , see
+ * also gnc_option_create_multichoice_widget() below. */
+ char *string;
+ rel_widget = gtk_combo_box_new_text();
+ for (i = 0; i < num_values; i++)
+ {
+ string = gnc_option_permissible_value_name(option, i);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(rel_widget), string);
+ g_free(string);
+ }
- g_signal_connect(G_OBJECT(rel_widget), "changed",
- G_CALLBACK(gnc_option_multichoice_cb), option);
- }
+ g_signal_connect(G_OBJECT(rel_widget), "changed",
+ G_CALLBACK(gnc_option_multichoice_cb), option);
+ }
#else
- {
- /* Old 1-8-branch code for a GtkOptionMenu. We use this one
- * because it has a per-item tooltip which the GtkComboBox still
- * doesn't have. - cstim, 2006-02-25 */
- GNCOptionInfo *info;
- char **raw_strings;
- char **raw;
+ {
+ /* Old 1-8-branch code for a GtkOptionMenu. We use this one
+ * because it has a per-item tooltip which the GtkComboBox still
+ * doesn't have. - cstim, 2006-02-25 */
+ GNCOptionInfo *info;
+ char **raw_strings;
+ char **raw;
- info = g_new0(GNCOptionInfo, num_values);
- raw_strings = g_new0(char *, num_values * 2);
- raw = raw_strings;
+ info = g_new0(GNCOptionInfo, num_values);
+ raw_strings = g_new0(char *, num_values * 2);
+ raw = raw_strings;
- for (i = 0; i < num_values; i++)
- {
- *raw = gnc_option_permissible_value_name(option, i);
- info[i].name = *raw; /* (*raw && **raw) ? _(*raw) : ""; */
+ for (i = 0; i < num_values; i++)
+ {
+ *raw = gnc_option_permissible_value_name(option, i);
+ info[i].name = *raw; /* (*raw && **raw) ? _(*raw) : ""; */
- raw++;
+ raw++;
- *raw = gnc_option_permissible_value_description(option, i);
- info[i].tip = *raw; /* (*raw && **raw) ? _(*raw) : ""; */
+ *raw = gnc_option_permissible_value_description(option, i);
+ info[i].tip = *raw; /* (*raw && **raw) ? _(*raw) : ""; */
- if(safe_strcmp(type, "both") == 0)
- {
- info[i].callback = gnc_option_multichoice_cb; /* gnc_option_rd_combo_cb */
- }
- else
- {
- info[i].callback = gnc_option_multichoice_cb;
- }
- info[i].user_data = option;
- raw++;
- }
+ if (safe_strcmp(type, "both") == 0)
+ {
+ info[i].callback = gnc_option_multichoice_cb; /* gnc_option_rd_combo_cb */
+ }
+ else
+ {
+ info[i].callback = gnc_option_multichoice_cb;
+ }
+ info[i].user_data = option;
+ raw++;
+ }
- rel_widget = gnc_build_option_menu(info, num_values);
+ rel_widget = gnc_build_option_menu(info, num_values);
- for (i = 0; i < num_values * 2; i++)
- if (raw_strings[i])
- free(raw_strings[i]);
+ for (i = 0; i < num_values * 2; i++)
+ if (raw_strings[i])
+ free(raw_strings[i]);
- g_free(raw_strings);
- g_free(info);
+ g_free(raw_strings);
+ g_free(info);
+ }
+#endif
}
-#endif
- }
- if(safe_strcmp(type, "absolute") == 0)
- {
- free(type);
- gnc_option_set_widget (option, ab_widget);
- return ab_widget;
- }
- else if (safe_strcmp(type, "relative") == 0)
- {
- gnc_option_set_widget (option, rel_widget);
- free(type);
+ if (safe_strcmp(type, "absolute") == 0)
+ {
+ free(type);
+ gnc_option_set_widget (option, ab_widget);
+ return ab_widget;
+ }
+ else if (safe_strcmp(type, "relative") == 0)
+ {
+ gnc_option_set_widget (option, rel_widget);
+ free(type);
- return rel_widget;
- }
- else if (safe_strcmp(type, "both") == 0)
- {
- box = gtk_hbox_new(FALSE, 5);
+ return rel_widget;
+ }
+ else if (safe_strcmp(type, "both") == 0)
+ {
+ box = gtk_hbox_new(FALSE, 5);
- ab_button = gtk_radio_button_new(NULL);
- g_signal_connect(G_OBJECT(ab_button), "toggled",
- G_CALLBACK(gnc_rd_option_ab_set_cb), option);
+ ab_button = gtk_radio_button_new(NULL);
+ g_signal_connect(G_OBJECT(ab_button), "toggled",
+ G_CALLBACK(gnc_rd_option_ab_set_cb), option);
- rel_button = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(ab_button));
- g_signal_connect(G_OBJECT(rel_button), "toggled",
- G_CALLBACK(gnc_rd_option_rel_set_cb), option);
+ rel_button = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(ab_button));
+ g_signal_connect(G_OBJECT(rel_button), "toggled",
+ G_CALLBACK(gnc_rd_option_rel_set_cb), option);
- gtk_box_pack_start(GTK_BOX(box), ab_button, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(box), ab_widget, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(box), rel_button, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(box), rel_widget, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(box), ab_button, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(box), ab_widget, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(box), rel_button, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(box), rel_widget, FALSE, FALSE, 0);
- free(type);
+ free(type);
- gnc_option_set_widget (option, box);
+ gnc_option_set_widget (option, box);
- return box;
- }
- else /* can't happen */
- {
- return NULL;
- }
+ return box;
+ }
+ else /* can't happen */
+ {
+ return NULL;
+ }
}
static GtkWidget *
@@ -645,450 +651,455 @@
static GtkWidget *
gnc_option_create_multichoice_widget(GNCOption *option, GtkTooltips *tooltips)
{
- GtkWidget *widget;
- int num_values;
- int i;
+ GtkWidget *widget;
+ int num_values;
+ int i;
- num_values = gnc_option_num_permissible_values(option);
+ num_values = gnc_option_num_permissible_values(option);
- g_return_val_if_fail(num_values >= 0, NULL);
+ g_return_val_if_fail(num_values >= 0, NULL);
#ifndef GTKCOMBOBOX_TOOLTIPS_WORK
- {
- /* Old 1-8-branch code for a GtkOptionMenu. We use this one
- because it has a per-item tooltip which the GtkComboBox still
- doesn't have. - cstim, 2006-02-25 */
- GNCOptionInfo *info;
- char **raw_strings;
- char **raw;
+ {
+ /* Old 1-8-branch code for a GtkOptionMenu. We use this one
+ because it has a per-item tooltip which the GtkComboBox still
+ doesn't have. - cstim, 2006-02-25 */
+ GNCOptionInfo *info;
+ char **raw_strings;
+ char **raw;
- info = g_new0(GNCOptionInfo, num_values);
- raw_strings = g_new0(char *, num_values * 2);
- raw = raw_strings;
+ info = g_new0(GNCOptionInfo, num_values);
+ raw_strings = g_new0(char *, num_values * 2);
+ raw = raw_strings;
- for (i = 0; i < num_values; i++)
- {
- *raw = gnc_option_permissible_value_name(option, i);
- info[i].name = (*raw && **raw) ? _(*raw) : "";
+ for (i = 0; i < num_values; i++)
+ {
+ *raw = gnc_option_permissible_value_name(option, i);
+ info[i].name = (*raw && **raw) ? _(*raw) : "";
- raw++;
+ raw++;
- *raw = gnc_option_permissible_value_description(option, i);
- info[i].tip = (*raw && **raw) ? _(*raw) : "";
+ *raw = gnc_option_permissible_value_description(option, i);
+ info[i].tip = (*raw && **raw) ? _(*raw) : "";
- info[i].callback = gnc_option_multichoice_cb;
- info[i].user_data = option;
- raw++;
- }
+ info[i].callback = gnc_option_multichoice_cb;
+ info[i].user_data = option;
+ raw++;
+ }
- widget = gnc_build_option_menu(info, num_values);
+ widget = gnc_build_option_menu(info, num_values);
- for (i = 0; i < num_values * 2; i++)
- if (raw_strings[i])
- free(raw_strings[i]);
+ for (i = 0; i < num_values * 2; i++)
+ if (raw_strings[i])
+ free(raw_strings[i]);
- g_free(raw_strings);
- g_free(info);
- }
+ g_free(raw_strings);
+ g_free(info);
+ }
#else
- {
+ {
- /* New code for GtkComboBox. Is still unused because it is missing
- the feature of per-item tooltips. Not yet implemented in gtk,
- see http://bugzilla.gnome.org/show_bug.cgi?id=303717 */
- char *itemstring;
- /* char *description; */
- widget = gtk_combo_box_new_text();
- for (i = 0; i < num_values; i++) {
- itemstring = gnc_option_permissible_value_name(option, i);
- /* description = gnc_option_permissible_value_description(option, i); */
- gtk_combo_box_append_text(GTK_COMBO_BOX(widget),
- (itemstring && *itemstring) ? _(itemstring) : "");
- /*, (description && *description) ? _(description) : "" */
- /* Maybe the per-item tooltip will simply be added as such an
- additional argument as shown above, but we'll see. */
- if (itemstring)
- g_free(itemstring);
- /* if (description) g_free(description); */
+ /* New code for GtkComboBox. Is still unused because it is missing
+ the feature of per-item tooltips. Not yet implemented in gtk,
+ see http://bugzilla.gnome.org/show_bug.cgi?id=303717 */
+ char *itemstring;
+ /* char *description; */
+ widget = gtk_combo_box_new_text();
+ for (i = 0; i < num_values; i++)
+ {
+ itemstring = gnc_option_permissible_value_name(option, i);
+ /* description = gnc_option_permissible_value_description(option, i); */
+ gtk_combo_box_append_text(GTK_COMBO_BOX(widget),
+ (itemstring && *itemstring) ? _(itemstring) : "");
+ /*, (description && *description) ? _(description) : "" */
+ /* Maybe the per-item tooltip will simply be added as such an
+ additional argument as shown above, but we'll see. */
+ if (itemstring)
+ g_free(itemstring);
+ /* if (description) g_free(description); */
+ }
+ g_signal_connect(G_OBJECT(widget), "changed",
+ G_CALLBACK(gnc_option_multichoice_cb), option);
}
- g_signal_connect(G_OBJECT(widget), "changed",
- G_CALLBACK(gnc_option_multichoice_cb), option);
- }
#endif
- return widget;
+ return widget;
}
static void
radiobutton_destroy_cb (GtkObject *obj, gpointer data)
{
- GtkTooltips *tips = data;
+ GtkTooltips *tips = data;
- g_object_unref (tips);
+ g_object_unref (tips);
}
static GtkWidget *
gnc_option_create_radiobutton_widget(char *name, GNCOption *option)
{
- GtkTooltips *tooltips;
- GtkWidget *frame, *box;
- GtkWidget *widget = NULL;
- int num_values;
- char *label;
- char *tip;
- int i;
+ GtkTooltips *tooltips;
+ GtkWidget *frame, *box;
+ GtkWidget *widget = NULL;
+ int num_values;
+ char *label;
+ char *tip;
+ int i;
- num_values = gnc_option_num_permissible_values(option);
+ num_values = gnc_option_num_permissible_values(option);
- g_return_val_if_fail(num_values >= 0, NULL);
+ g_return_val_if_fail(num_values >= 0, NULL);
- /* Create our button frame */
- frame = gtk_frame_new (name);
+ /* Create our button frame */
+ frame = gtk_frame_new (name);
- /* Create the button box */
- box = gtk_hbox_new (FALSE, 5);
- gtk_container_add (GTK_CONTAINER (frame), box);
+ /* Create the button box */
+ box = gtk_hbox_new (FALSE, 5);
+ gtk_container_add (GTK_CONTAINER (frame), box);
- /* Create the tooltips */
- tooltips = gtk_tooltips_new ();
- g_object_ref_sink(tooltips);
+ /* Create the tooltips */
+ tooltips = gtk_tooltips_new ();
+ g_object_ref_sink(tooltips);
- /* Iterate over the options and create a radio button for each one */
- for (i = 0; i < num_values; i++)
- {
- label = gnc_option_permissible_value_name(option, i);
- tip = gnc_option_permissible_value_description(option, i);
+ /* Iterate over the options and create a radio button for each one */
+ for (i = 0; i < num_values; i++)
+ {
+ label = gnc_option_permissible_value_name(option, i);
+ tip = gnc_option_permissible_value_description(option, i);
- widget =
- gtk_radio_button_new_with_label_from_widget (widget ?
- GTK_RADIO_BUTTON (widget) :
- NULL,
- label && *label ? _(label) : "");
- g_object_set_data (G_OBJECT (widget), "gnc_radiobutton_index",
- GINT_TO_POINTER (i));
- gtk_tooltips_set_tip(tooltips, widget, tip && *tip ? _(tip) : "", NULL);
- g_signal_connect(G_OBJECT(widget), "toggled",
- G_CALLBACK(gnc_option_radiobutton_cb), option);
- gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
+ widget =
+ gtk_radio_button_new_with_label_from_widget (widget ?
+ GTK_RADIO_BUTTON (widget) :
+ NULL,
+ label && *label ? _(label) : "");
+ g_object_set_data (G_OBJECT (widget), "gnc_radiobutton_index",
+ GINT_TO_POINTER (i));
+ gtk_tooltips_set_tip(tooltips, widget, tip && *tip ? _(tip) : "", NULL);
+ g_signal_connect(G_OBJECT(widget), "toggled",
+ G_CALLBACK(gnc_option_radiobutton_cb), option);
+ gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
- if (label)
- free (label);
- if (tip)
- free (tip);
- }
+ if (label)
+ free (label);
+ if (tip)
+ free (tip);
+ }
- g_signal_connect (G_OBJECT (frame), "destroy",
- G_CALLBACK (radiobutton_destroy_cb), tooltips);
+ g_signal_connect (G_OBJECT (frame), "destroy",
+ G_CALLBACK (radiobutton_destroy_cb), tooltips);
- return frame;
+ return frame;
}
static void
gnc_option_account_cb(GtkTreeSelection *selection, gpointer data)
{
- GNCOption *option = data;
- GtkTreeView *tree_view;
+ GNCOption *option = data;
+ GtkTreeView *tree_view;
- tree_view = gtk_tree_selection_get_tree_view(selection);
+ tree_view = gtk_tree_selection_get_tree_view(selection);
- gnc_option_changed_widget_cb(GTK_WIDGET(tree_view), option);
+ gnc_option_changed_widget_cb(GTK_WIDGET(tree_view), option);
}
static void
gnc_option_account_select_all_cb(GtkWidget *widget, gpointer data)
{
- GNCOption *option = data;
- GncTreeViewAccount *tree_view;
- GtkTreeSelection *selection;
+ GNCOption *option = data;
+ GncTreeViewAccount *tree_view;
+ GtkTreeSelection *selection;
- tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
- gtk_tree_selection_select_all(selection);
- gnc_option_changed_widget_cb(widget, option);
+ tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
+ gtk_tree_selection_select_all(selection);
+ gnc_option_changed_widget_cb(widget, option);
}
static void
gnc_option_account_clear_all_cb(GtkWidget *widget, gpointer data)
{
- GNCOption *option = data;
- GncTreeViewAccount *tree_view;
- GtkTreeSelection *selection;
+ GNCOption *option = data;
+ GncTreeViewAccount *tree_view;
+ GtkTreeSelection *selection;
- tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
- gtk_tree_selection_unselect_all(selection);
- gnc_option_changed_widget_cb(widget, option);
+ tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
+ gtk_tree_selection_unselect_all(selection);
+ gnc_option_changed_widget_cb(widget, option);
}
static void
gnc_option_account_select_children_cb(GtkWidget *widget, gpointer data)
{
- GNCOption *option = data;
- GncTreeViewAccount *tree_view;
- Account *account;
+ GNCOption *option = data;
+ GncTreeViewAccount *tree_view;
+ Account *account;
- tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
- account = gnc_tree_view_account_get_cursor_account(tree_view);
- if (!account)
- return;
+ tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_widget (option));
+ account = gnc_tree_view_account_get_cursor_account(tree_view);
+ if (!account)
+ return;
- gnc_tree_view_account_select_subaccounts(tree_view, account);
+ gnc_tree_view_account_select_subaccounts(tree_view, account);
}
static GtkWidget *
gnc_option_create_account_widget(GNCOption *option, char *name, GtkTooltips *tooltips)
{
- gboolean multiple_selection;
- GtkWidget *scroll_win;
- GtkWidget *button;
- GtkWidget *frame;
- GtkWidget *tree;
- GtkWidget *vbox;
- GtkWidget *bbox;
- GList *acct_type_list;
- GtkTreeSelection *selection;
+ gboolean multiple_selection;
+ GtkWidget *scroll_win;
+ GtkWidget *button;
+ GtkWidget *frame;
+ GtkWidget *tree;
+ GtkWidget *vbox;
+ GtkWidget *bbox;
+ GList *acct_type_list;
+ GtkTreeSelection *selection;
- multiple_selection = gnc_option_multiple_selection(option);
- acct_type_list = gnc_option_get_account_type_list(option);
+ multiple_selection = gnc_option_multiple_selection(option);
+ acct_type_list = gnc_option_get_account_type_list(option);
- frame = gtk_frame_new(name);
+ frame = gtk_frame_new(name);
- vbox = gtk_vbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(frame), vbox);
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
- tree = GTK_WIDGET(gnc_tree_view_account_new (FALSE));
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(tree), FALSE);
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(tree));
- if (multiple_selection)
- gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
- else
- gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+ tree = GTK_WIDGET(gnc_tree_view_account_new (FALSE));
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(tree), FALSE);
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(tree));
+ if (multiple_selection)
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
+ else
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
- if (acct_type_list) {
- GList *node;
- AccountViewInfo avi;
- int i;
+ if (acct_type_list)
+ {
+ GList *node;
+ AccountViewInfo avi;
+ int i;
- gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+ gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
- for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
- avi.include_type[i] = FALSE;
- avi.show_hidden = FALSE;
+ for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
+ avi.include_type[i] = FALSE;
+ avi.show_hidden = FALSE;
- for (node = acct_type_list; node; node = node->next) {
- GNCAccountType type = GPOINTER_TO_INT (node->data);
- avi.include_type[type] = TRUE;
+ for (node = acct_type_list; node; node = node->next)
+ {
+ GNCAccountType type = GPOINTER_TO_INT (node->data);
+ avi.include_type[type] = TRUE;
+ }
+
+ gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+ g_list_free (acct_type_list);
}
+ else
+ {
+ AccountViewInfo avi;
+ int i;
- gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
- g_list_free (acct_type_list);
- } else {
- AccountViewInfo avi;
- int i;
+ gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
- gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+ for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
+ avi.include_type[i] = TRUE;
+ avi.show_hidden = FALSE;
+ gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+ }
- for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
- avi.include_type[i] = TRUE;
- avi.show_hidden = FALSE;
- gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
- }
+ scroll_win = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_win),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
- scroll_win = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_win),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(scroll_win), 5);
+ gtk_container_add(GTK_CONTAINER(scroll_win), tree);
- gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
- gtk_container_set_border_width(GTK_CONTAINER(scroll_win), 5);
- gtk_container_add(GTK_CONTAINER(scroll_win), tree);
+ bbox = gtk_hbutton_box_new();
+ gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
+ gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 10);
- bbox = gtk_hbutton_box_new();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
- gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 10);
+ if (multiple_selection)
+ {
+ button = gtk_button_new_with_label(_("Select All"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Select all accounts."), NULL);
- if (multiple_selection)
- {
- button = gtk_button_new_with_label(_("Select All"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Select all accounts."), NULL);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(gnc_option_account_select_all_cb), option);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_account_select_all_cb), option);
+ button = gtk_button_new_with_label(_("Clear All"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Clear the selection and unselect all accounts."), NULL);
- button = gtk_button_new_with_label(_("Clear All"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Clear the selection and unselect all accounts."), NULL);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(gnc_option_account_clear_all_cb), option);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_account_clear_all_cb), option);
+ button = gtk_button_new_with_label(_("Select Children"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Select all descendents of selected account."), NULL);
- button = gtk_button_new_with_label(_("Select Children"));
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(gnc_option_account_select_children_cb), option);
+ }
+
+ button = gtk_button_new_with_label(_("Select Default"));
gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Select all descendents of selected account."), NULL);
+ gtk_tooltips_set_tip(tooltips, button, _("Select the default account selection."), NULL);
g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_account_select_children_cb), option);
- }
+ G_CALLBACK(gnc_option_default_cb), option);
- button = gtk_button_new_with_label(_("Select Default"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Select the default account selection."), NULL);
+ if (multiple_selection)
+ {
+ /* Put the "Show hidden" checkbox on a separate line since the 4 buttons make
+ the dialog too wide. */
+ bbox = gtk_hbutton_box_new();
+ gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START);
+ gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
+ }
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_default_cb), option);
+ button = gtk_check_button_new_with_label(_("Show Hidden Accounts"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Show accounts that have been marked hidden."), NULL);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ g_signal_connect(G_OBJECT(button), "toggled",
+ G_CALLBACK(gnc_option_show_hidden_toggled_cb), option);
- if (multiple_selection)
- {
- /* Put the "Show hidden" checkbox on a separate line since the 4 buttons make
- the dialog too wide. */
- bbox = gtk_hbutton_box_new();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START);
- gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
- }
+ gnc_option_set_widget (option, tree);
- button = gtk_check_button_new_with_label(_("Show Hidden Accounts"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Show accounts that have been marked hidden."), NULL);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
- g_signal_connect(G_OBJECT(button), "toggled",
- G_CALLBACK(gnc_option_show_hidden_toggled_cb), option);
-
- gnc_option_set_widget (option, tree);
-
- return frame;
+ return frame;
}
static void
gnc_option_list_changed_cb(GtkTreeSelection *selection,
- GNCOption *option)
+ GNCOption *option)
{
- GtkTreeView *view;
+ GtkTreeView *view;
- view = gtk_tree_selection_get_tree_view(selection);
- gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
+ view = gtk_tree_selection_get_tree_view(selection);
+ gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
}
static void
gnc_option_list_select_all_cb(GtkWidget *widget, gpointer data)
{
- GNCOption *option = data;
- GtkTreeView *view;
- GtkTreeSelection *selection;
+ GNCOption *option = data;
+ GtkTreeView *view;
+ GtkTreeSelection *selection;
- view = GTK_TREE_VIEW(gnc_option_get_widget (option));
- selection = gtk_tree_view_get_selection(view);
- gtk_tree_selection_select_all(selection);
- gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
+ view = GTK_TREE_VIEW(gnc_option_get_widget (option));
+ selection = gtk_tree_view_get_selection(view);
+ gtk_tree_selection_select_all(selection);
+ gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
}
static void
gnc_option_list_clear_all_cb(GtkWidget *widget, gpointer data)
{
- GNCOption *option = data;
- GtkTreeView *view;
- GtkTreeSelection *selection;
+ GNCOption *option = data;
+ GtkTreeView *view;
+ GtkTreeSelection *selection;
- view = GTK_TREE_VIEW(gnc_option_get_widget (option));
- selection = gtk_tree_view_get_selection(view);
- gtk_tree_selection_unselect_all(selection);
- gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
+ view = GTK_TREE_VIEW(gnc_option_get_widget (option));
+ selection = gtk_tree_view_get_selection(view);
+ gtk_tree_selection_unselect_all(selection);
+ gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
}
static GtkWidget *
gnc_option_create_list_widget(GNCOption *option, char *name, GtkTooltips *tooltips)
{
- GtkListStore *store;
- GtkTreeView *view;
- GtkTreeIter iter;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- GtkTreeSelection *selection;
+ GtkListStore *store;
+ GtkTreeView *view;
+ GtkTreeIter iter;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ GtkTreeSelection *selection;
- GtkWidget *button;
- GtkWidget *frame;
- GtkWidget *hbox;
- GtkWidget *bbox;
- gint num_values;
- gint i;
+ GtkWidget *button;
+ GtkWidget *frame;
+ GtkWidget *hbox;
+ GtkWidget *bbox;
+ gint num_values;
+ gint i;
- frame = gtk_frame_new(name);
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(frame), hbox);
+ frame = gtk_frame_new(name);
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), hbox);
- store = gtk_list_store_new(1, G_TYPE_STRING);
- view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)));
- g_object_unref(store);
- renderer = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new_with_attributes("", renderer,
- "text", 0,
- NULL);
- gtk_tree_view_append_column(view, column);
- gtk_tree_view_set_headers_visible(view, FALSE);
+ store = gtk_list_store_new(1, G_TYPE_STRING);
+ view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)));
+ g_object_unref(store);
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes("", renderer,
+ "text", 0,
+ NULL);
+ gtk_tree_view_append_column(view, column);
+ gtk_tree_view_set_headers_visible(view, FALSE);
- num_values = gnc_option_num_permissible_values(option);
- for (i = 0; i < num_values; i++)
- {
- gchar *raw_string, *string;
+ num_values = gnc_option_num_permissible_values(option);
+ for (i = 0; i < num_values; i++)
+ {
+ gchar *raw_string, *string;
- raw_string = gnc_option_permissible_value_name(option, i);
- string = (raw_string && *raw_string) ? _(raw_string) : "";
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter,
- 0, string ? string : "",
- -1);
- g_free(raw_string);
- }
+ raw_string = gnc_option_permissible_value_name(option, i);
+ string = (raw_string && *raw_string) ? _(raw_string) : "";
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ 0, string ? string : "",
+ -1);
+ g_free(raw_string);
+ }
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(view), FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(view), FALSE, FALSE, 0);
- selection = gtk_tree_view_get_selection(view);
- gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
- g_signal_connect(selection, "changed",
- G_CALLBACK(gnc_option_list_changed_cb), option);
+ selection = gtk_tree_view_get_selection(view);
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
+ g_signal_connect(selection, "changed",
+ G_CALLBACK(gnc_option_list_changed_cb), option);
- bbox = gtk_vbutton_box_new();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
- gtk_box_pack_start(GTK_BOX(hbox), bbox, FALSE, FALSE, 10);
+ bbox = gtk_vbutton_box_new();
+ gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
+ gtk_box_pack_start(GTK_BOX(hbox), bbox, FALSE, FALSE, 10);
- button = gtk_button_new_with_label(_("Select All"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Select all entries."), NULL);
+ button = gtk_button_new_with_label(_("Select All"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Select all entries."), NULL);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_list_select_all_cb), option);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(gnc_option_list_select_all_cb), option);
- button = gtk_button_new_with_label(_("Clear All"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Clear the selection and unselect all entries."), NULL);
+ button = gtk_button_new_with_label(_("Clear All"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Clear the selection and unselect all entries."), NULL);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_list_clear_all_cb), option);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(gnc_option_list_clear_all_cb), option);
- button = gtk_button_new_with_label(_("Select Default"));
- gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
- gtk_tooltips_set_tip(tooltips, button, _("Select the default selection."), NULL);
+ button = gtk_button_new_with_label(_("Select Default"));
+ gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(tooltips, button, _("Select the default selection."), NULL);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(gnc_option_default_cb), option);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(gnc_option_default_cb), option);
- gnc_option_set_widget (option, GTK_WIDGET(view));
+ gnc_option_set_widget (option, GTK_WIDGET(view));
- return frame;
+ return frame;
}
static void
gnc_option_color_changed_cb(GtkColorButton *color_button, GNCOption *option)
{
- gnc_option_changed_widget_cb(GTK_WIDGET(color_button), option);
+ gnc_option_changed_widget_cb(GTK_WIDGET(color_button), option);
}
static void
gnc_option_font_changed_cb(GtkFontButton *font_button, GNCOption *option)
{
- gnc_option_changed_widget_cb(GTK_WIDGET(font_button), option);
+ gnc_option_changed_widget_cb(GTK_WIDGET(font_button), option);
}
static void
@@ -1096,67 +1107,69 @@
GtkBox *page_box,
GtkTooltips *tooltips)
{
- GtkWidget *enclosing = NULL;
- GtkWidget *value = NULL;
- gboolean packed = FALSE;
- char *raw_name, *raw_documentation;
- char *name, *documentation;
- char *type;
- GNCOptionDef_t *option_def;
+ GtkWidget *enclosing = NULL;
+ GtkWidget *value = NULL;
+ gboolean packed = FALSE;
+ char *raw_name, *raw_documentation;
+ char *name, *documentation;
+ char *type;
+ GNCOptionDef_t *option_def;
- ENTER("option %p(%s), box %p, tips %p",
- option, gnc_option_name(option), page_box, tooltips);
- type = gnc_option_type(option);
- if (type == NULL) {
- LEAVE("bad type");
- return;
- }
+ ENTER("option %p(%s), box %p, tips %p",
+ option, gnc_option_name(option), page_box, tooltips);
+ type = gnc_option_type(option);
+ if (type == NULL)
+ {
+ LEAVE("bad type");
+ return;
+ }
- raw_name = gnc_option_name(option);
- if (raw_name && *raw_name)
- name = _(raw_name);
- else
- name = NULL;
+ raw_name = gnc_option_name(option);
+ if (raw_name && *raw_name)
+ name = _(raw_name);
+ else
+ name = NULL;
- raw_documentation = gnc_option_documentation(option);
- if (raw_documentation && *raw_documentation)
- documentation = _(raw_documentation);
- else
- documentation = NULL;
+ raw_documentation = gnc_option_documentation(option);
+ if (raw_documentation && *raw_documentation)
+ documentation = _(raw_documentation);
+ else
+ documentation = NULL;
- option_def = gnc_options_ui_get_option (type);
- if (option_def && option_def->set_widget)
- {
- value = option_def->set_widget (option, page_box,
- tooltips, name, documentation,
- /* Return values */
- &enclosing, &packed);
- }
- else
- {
- PERR("Unknown option type. Ignoring option \"%s\".\n", name);
- }
+ option_def = gnc_options_ui_get_option (type);
+ if (option_def && option_def->set_widget)
+ {
+ value = option_def->set_widget (option, page_box,
+ tooltips, name, documentation,
+ /* Return values */
+ &enclosing, &packed);
+ }
+ else
+ {
+ PERR("Unknown option type. Ignoring option \"%s\".\n", name);
+ }
- if (!packed && (enclosing != NULL)) {
- /* Pack option widget into an extra eventbox because otherwise the
- "documentation" tooltip is not displayed. */
- GtkWidget *eventbox = gtk_event_box_new();
+ if (!packed && (enclosing != NULL))
+ {
+ /* Pack option widget into an extra eventbox because otherwise the
+ "documentation" tooltip is not displayed. */
+ GtkWidget *eventbox = gtk_event_box_new();
- gtk_container_add (GTK_CONTAINER (eventbox), enclosing);
- gtk_box_pack_start (page_box, eventbox, FALSE, FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (eventbox), enclosing);
+ gtk_box_pack_start (page_box, eventbox, FALSE, FALSE, 0);
- gtk_tooltips_set_tip (tooltips, eventbox, documentation, NULL);
- }
+ gtk_tooltips_set_tip (tooltips, eventbox, documentation, NULL);
+ }
- if (value != NULL)
- gtk_tooltips_set_tip(tooltips, value, documentation, NULL);
+ if (value != NULL)
+ gtk_tooltips_set_tip(tooltips, value, documentation, NULL);
- if (raw_name != NULL)
- free(raw_name);
- if (raw_documentation != NULL)
- free(raw_documentation);
- free(type);
- LEAVE(" ");
+ if (raw_name != NULL)
+ free(raw_name);
+ if (raw_documentation != NULL)
+ free(raw_documentation);
+ free(type);
+ LEAVE(" ");
}
static void
@@ -1164,105 +1177,108 @@
GNCOption *option,
GtkTooltips *tooltips)
{
- gnc_option_set_ui_widget(option, GTK_BOX(page), tooltips);
+ gnc_option_set_ui_widget(option, GTK_BOX(page), tooltips);
}
static gint
gnc_options_dialog_append_page(GNCOptionWin * propertybox,
GNCOptionSection *section,
- GtkTooltips *tooltips)
+ GtkTooltips *tooltips)
{
- GNCOption *option;
- GtkWidget *page_label;
- GtkWidget *options_box;
- GtkWidget *page_content_box;
- GtkWidget* notebook_page;
- GtkWidget *reset_button;
- GtkWidget *listitem = NULL;
- GtkWidget *buttonbox;
- gint num_options;
- const char *name;
- gint i, page_count, name_offset;
- gboolean advanced;
+ GNCOption *option;
+ GtkWidget *page_label;
+ GtkWidget *options_box;
+ GtkWidget *page_content_box;
+ GtkWidget* notebook_page;
+ GtkWidget *reset_button;
+ GtkWidget *listitem = NULL;
+ GtkWidget *buttonbox;
+ gint num_options;
+ const char *name;
+ gint i, page_count, name_offset;
+ gboolean advanced;
- name = gnc_option_section_name(section);
- if (!name)
- return -1;
+ name = gnc_option_section_name(section);
+ if (!name)
+ return -1;
- if (strncmp(name, "__", 2) == 0)
- return -1;
- advanced = (strncmp(name, "_+", 2) == 0);
- name_offset = (advanced) ? 2 : 0;
- page_label = gtk_label_new(_(name + name_offset));
- gtk_widget_show(page_label);
+ if (strncmp(name, "__", 2) == 0)
+ return -1;
+ advanced = (strncmp(name, "_+", 2) == 0);
+ name_offset = (advanced) ? 2 : 0;
+ page_label = gtk_label_new(_(name + name_offset));
+ gtk_widget_show(page_label);
- /* Build this options page */
- page_content_box = gtk_vbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(page_content_box), 12);
+ /* Build this options page */
+ page_content_box = gtk_vbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(page_content_box), 12);
- /* Build space for the content - the options box */
- options_box = gtk_vbox_new(FALSE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(options_box), 0);
- gtk_box_pack_start(GTK_BOX(page_content_box), options_box, TRUE, TRUE, 0);
+ /* Build space for the content - the options box */
+ options_box = gtk_vbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(options_box), 0);
+ gtk_box_pack_start(GTK_BOX(page_content_box), options_box, TRUE, TRUE, 0);
- /* Create all the options */
- num_options = gnc_option_section_num_options(section);
- for (i = 0; i < num_options; i++)
- {
- option = gnc_get_option_section_option(section, i);
- gnc_options_dialog_add_option(options_box, option,
- propertybox->tips);
- }
+ /* Create all the options */
+ num_options = gnc_option_section_num_options(section);
+ for (i = 0; i < num_options; i++)
+ {
+ option = gnc_get_option_section_option(section, i);
+ gnc_options_dialog_add_option(options_box, option,
+ propertybox->tips);
+ }
- /* Add a button box at the bottom of the page */
- buttonbox = gtk_hbutton_box_new();
- gtk_button_box_set_layout (GTK_BUTTON_BOX (buttonbox),
- GTK_BUTTONBOX_EDGE);
- gtk_container_set_border_width(GTK_CONTAINER (buttonbox), 5);
- gtk_box_pack_end(GTK_BOX(page_content_box), buttonbox, FALSE, FALSE, 0);
+ /* Add a button box at the bottom of the page */
+ buttonbox = gtk_hbutton_box_new();
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (buttonbox),
+ GTK_BUTTONBOX_EDGE);
+ gtk_container_set_border_width(GTK_CONTAINER (buttonbox), 5);
+ gtk_box_pack_end(GTK_BOX(page_content_box), buttonbox, FALSE, FALSE, 0);
- /* The reset button on each option page */
- reset_button = gtk_button_new_with_label (_("Defaults"));
- gtk_tooltips_set_tip(tooltips, reset_button,
- _("Reset all values to their defaults."), NULL);
+ /* The reset button on each option page */
+ reset_button = gtk_button_new_with_label (_("Defaults"));
+ gtk_tooltips_set_tip(tooltips, reset_button,
+ _("Reset all values to their defaults."), NULL);
- g_signal_connect(G_OBJECT(reset_button), "clicked",
- G_CALLBACK(gnc_options_dialog_reset_cb), propertybox);
- g_object_set_data(G_OBJECT(reset_button), "section", section);
- gtk_box_pack_end(GTK_BOX(buttonbox), reset_button, FALSE, FALSE, 0);
- gtk_widget_show_all(page_content_box);
- gtk_notebook_append_page(GTK_NOTEBOOK(propertybox->notebook),
- page_content_box, page_label);
+ g_signal_connect(G_OBJECT(reset_button), "clicked",
+ G_CALLBACK(gnc_options_dialog_reset_cb), propertybox);
+ g_object_set_data(G_OBJECT(reset_button), "section", section);
+ gtk_box_pack_end(GTK_BOX(buttonbox), reset_button, FALSE, FALSE, 0);
+ gtk_widget_show_all(page_content_box);
+ gtk_notebook_append_page(GTK_NOTEBOOK(propertybox->notebook),
+ page_content_box, page_label);
- /* Switch to selection from a list if the page count threshhold is reached */
- page_count = gtk_notebook_page_num(GTK_NOTEBOOK(propertybox->notebook),
- page_content_box);
+ /* Switch to selection from a list if the page count threshhold is reached */
+ page_count = gtk_notebook_page_num(GTK_NOTEBOOK(propertybox->notebook),
+ page_content_box);
- if (propertybox->page_list) {
- /* Build the matching list item for selecting from large page sets */
- listitem = gtk_list_item_new_with_label(_(name + name_offset));
- gtk_widget_show(listitem);
- gtk_container_add(GTK_CONTAINER(propertybox->page_list), listitem);
+ if (propertybox->page_list)
+ {
+ /* Build the matching list item for selecting from large page sets */
+ listitem = gtk_list_item_new_with_label(_(name + name_offset));
+ gtk_widget_show(listitem);
+ gtk_container_add(GTK_CONTAINER(propertybox->page_list), listitem);
- if (page_count > MAX_TAB_COUNT - 1) { /* Convert 1-based -> 0-based */
- gtk_widget_show(propertybox->page_list);
- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(propertybox->notebook), FALSE);
- gtk_notebook_set_show_border(GTK_NOTEBOOK(propertybox->notebook), FALSE);
- }
+ if (page_count > MAX_TAB_COUNT - 1) /* Convert 1-based -> 0-based */
+ {
+ gtk_widget_show(propertybox->page_list);
+ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(propertybox->notebook), FALSE);
+ gtk_notebook_set_show_border(GTK_NOTEBOOK(propertybox->notebook), FALSE);
+ }
- /* Tweak "advanced" pages for later handling. */
- if (advanced) {
- notebook_page =
- gtk_notebook_get_nth_page(GTK_NOTEBOOK(propertybox->notebook),
- page_count);
+ /* Tweak "advanced" pages for later handling. */
+ if (advanced)
+ {
+ notebook_page =
+ gtk_notebook_get_nth_page(GTK_NOTEBOOK(propertybox->notebook),
+ page_count);
- g_object_set_data(G_OBJECT(notebook_page), "listitem", listitem);
- g_object_set_data(G_OBJECT(notebook_page), "advanced",
- GINT_TO_POINTER(advanced));
+ g_object_set_data(G_OBJECT(notebook_page), "listitem", listitem);
+ g_object_set_data(G_OBJECT(notebook_page), "advanced",
+ GINT_TO_POINTER(advanced));
+ }
}
- }
- return(page_count);
+ return(page_count);
}
@@ -1279,174 +1295,182 @@
gnc_options_dialog_build_contents(GNCOptionWin *propertybox,
GNCOptionDB *odb)
{
- GNCOptionSection *section;
- gchar *default_section_name;
- gint default_page = -1;
- gint num_sections;
- gint page;
- gint i;
- guint j;
+ GNCOptionSection *section;
+ gchar *default_section_name;
+ gint default_page = -1;
+ gint num_sections;
+ gint page;
+ gint i;
+ guint j;
- g_return_if_fail (propertybox != NULL);
- g_return_if_fail (odb != NULL);
+ g_return_if_fail (propertybox != NULL);
+ g_return_if_fail (odb != NULL);
- gnc_option_db_set_ui_callbacks (odb,
- gnc_option_get_ui_value_internal,
- gnc_option_set_ui_value_internal,
- gnc_option_set_selectable_internal);
+ gnc_option_db_set_ui_callbacks (odb,
+ gnc_option_get_ui_value_internal,
+ gnc_option_set_ui_value_internal,
+ gnc_option_set_selectable_internal);
- propertybox->tips = gtk_tooltips_new();
- propertybox->option_db = odb;
+ propertybox->tips = gtk_tooltips_new();
+ propertybox->option_db = odb;
- g_object_ref_sink(propertybox->tips);
+ g_object_ref_sink(propertybox->tips);
- num_sections = gnc_option_db_num_sections(odb);
- default_section_name = gnc_option_db_get_default_section(odb);
+ num_sections = gnc_option_db_num_sections(odb);
+ default_section_name = gnc_option_db_get_default_section(odb);
- for (i = 0; i < num_sections; i++)
- {
- const char *section_name;
+ for (i = 0; i < num_sections; i++)
+ {
+ const char *section_name;
- section = gnc_option_db_get_section(odb, i);
- page = gnc_options_dialog_append_page(propertybox, section, propertybox->tips);
+ section = gnc_option_db_get_section(odb, i);
+ page = gnc_options_dialog_append_page(propertybox, section, propertybox->tips);
- section_name = gnc_option_section_name(section);
- if (safe_strcmp(section_name, default_section_name) == 0)
- default_page = page;
- }
+ section_name = gnc_option_section_name(section);
+ if (safe_strcmp(section_name, default_section_name) == 0)
+ default_page = page;
+ }
- if (default_section_name != NULL)
- free(default_section_name);
+ if (default_section_name != NULL)
+ free(default_section_name);
- /* call each option widget changed callbacks once at this point,
- * now that all options widgets exist.
- */
- for (i = 0; i < num_sections; i++)
- {
- section = gnc_option_db_get_section(odb, i);
+ /* call each option widget changed callbacks once at this point,
+ * now that all options widgets exist.
+ */
+ for (i = 0; i < num_sections; i++)
+ {
+ section = gnc_option_db_get_section(odb, i);
- for (j = 0; j < gnc_option_section_num_options(section); j++)
+ for (j = 0; j < gnc_option_section_num_options(section); j++)
+ {
+ gnc_option_call_option_widget_changed_proc(
+ gnc_get_option_section_option(section, j) );
+ }
+ }
+
+ gtk_notebook_popup_enable(GTK_NOTEBOOK(propertybox->notebook));
+ if (default_page >= 0)
{
- gnc_option_call_option_widget_changed_proc(
- gnc_get_option_section_option(section, j) );
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(propertybox->notebook), default_page);
+ gtk_list_select_item(GTK_LIST(propertybox->page_list), default_page);
}
- }
-
- gtk_notebook_popup_enable(GTK_NOTEBOOK(propertybox->notebook));
- if (default_page >= 0) {
- gtk_notebook_set_current_page(GTK_NOTEBOOK(propertybox->notebook), default_page);
- gtk_list_select_item(GTK_LIST(propertybox->page_list), default_page);
- } else {
- /* GTKList doesn't default to selecting the first item. */
- gtk_list_select_item(GTK_LIST(propertybox->page_list), 0);
- }
- gnc_options_dialog_changed_internal(propertybox->dialog, FALSE);
- gtk_widget_show(propertybox->dialog);
+ else
+ {
+ /* GTKList doesn't default to selecting the first item. */
+ gtk_list_select_item(GTK_LIST(propertybox->page_list), 0);
+ }
+ gnc_options_dialog_changed_internal(propertybox->dialog, FALSE);
+ gtk_widget_show(propertybox->dialog);
}
GtkWidget *
gnc_options_dialog_widget(GNCOptionWin * win)
{
- return win->dialog;
+ return win->dialog;
}
GtkWidget *
gnc_options_dialog_notebook(GNCOptionWin * win)
{
- return win->notebook;
+ return win->notebook;
}
void
gnc_options_dialog_response_cb(GtkDialog *dialog, gint response, GNCOptionWin *window)
{
- GNCOptionWinCallback close_cb;
+ GNCOptionWinCallback close_cb;
- switch (response) {
- case GTK_RESPONSE_HELP:
- if(window->help_cb)
- (window->help_cb)(window, window->help_cb_data);
- break;
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ if (window->help_cb)
+ (window->help_cb)(window, window->help_cb_data);
+ break;
- case GTK_RESPONSE_OK:
- case GTK_RESPONSE_APPLY:
- gnc_options_dialog_changed_internal (window->dialog, FALSE);
- close_cb = window->close_cb;
- window->close_cb = NULL;
- if (window->apply_cb)
- window->apply_cb (window, window->apply_cb_data);
- window->close_cb = close_cb;
- if (response == GTK_RESPONSE_APPLY)
- break;
- /* fall through */
+ case GTK_RESPONSE_OK:
+ case GTK_RESPONSE_APPLY:
+ gnc_options_dialog_changed_internal (window->dialog, FALSE);
+ close_cb = window->close_cb;
+ window->close_cb = NULL;
+ if (window->apply_cb)
+ window->apply_cb (window, window->apply_cb_data);
+ window->close_cb = close_cb;
+ if (response == GTK_RESPONSE_APPLY)
+ break;
+ /* fall through */
- default:
- if (window->close_cb) {
- (window->close_cb)(window, window->close_cb_data);
- } else {
- gtk_widget_hide(window->dialog);
+ default:
+ if (window->close_cb)
+ {
+ (window->close_cb)(window, window->close_cb_data);
+ }
+ else
+ {
+ gtk_widget_hide(window->dialog);
+ }
}
- }
}
static void
gnc_options_dialog_reset_cb(GtkWidget * w, gpointer data)
{
- GNCOptionWin *win = data;
- GNCOptionSection *section;
- gpointer val;
+ GNCOptionWin *win = data;
+ GNCOptionSection *section;
+ gpointer val;
- val = g_object_get_data(G_OBJECT(w), "section");
- g_return_if_fail (val);
- g_return_if_fail (win);
+ val = g_object_get_data(G_OBJECT(w), "section");
+ g_return_if_fail (val);
+ g_return_if_fail (win);
- section = (GNCOptionSection*)val;
- gnc_option_db_section_reset_widgets (section);
- gnc_options_dialog_changed_internal (win->dialog, TRUE);
+ section = (GNCOptionSection*)val;
+ gnc_option_db_section_reset_widgets (section);
+ gnc_options_dialog_changed_internal (win->dialog, TRUE);
}
void
gnc_options_dialog_list_select_cb(GtkWidget * list, GtkWidget * item,
- gpointer data)
+ gpointer data)
{
- GNCOptionWin * win = data;
- gint index;
+ GNCOptionWin * win = data;
+ gint index;
- g_return_if_fail (list);
- g_return_if_fail (win);
+ g_return_if_fail (list);
+ g_return_if_fail (win);
- index = gtk_list_child_position(GTK_LIST(list), item);
- gtk_notebook_set_current_page(GTK_NOTEBOOK(win->notebook), index);
+ index = gtk_list_child_position(GTK_LIST(list), item);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(win->notebook), index);
}
void
gnc_options_register_stocks (void)
{
#if 0
- static gboolean done = FALSE;
+ static gboolean done = FALSE;
- GtkStockItem items[] = {
- { GTK_STOCK_APPLY ,"gnc_option_apply_button", 0, 0, NULL },
- { GTK_STOCK_HELP ,"gnc_options_dialog_help", 0, 0, NULL },
- { GTK_STOCK_OK ,"gnc_options_dialog_ok", 0, 0, NULL },
- { GTK_STOCK_CANCEL ,"gnc_options_dialog_cancel", 0, 0, NULL },
- };
+ GtkStockItem items[] =
+ {
+ { GTK_STOCK_APPLY , "gnc_option_apply_button", 0, 0, NULL },
+ { GTK_STOCK_HELP , "gnc_options_dialog_help", 0, 0, NULL },
+ { GTK_STOCK_OK , "gnc_options_dialog_ok", 0, 0, NULL },
+ { GTK_STOCK_CANCEL , "gnc_options_dialog_cancel", 0, 0, NULL },
+ };
- if (done)
- {
- return;
- }
- done = TRUE;
+ if (done)
+ {
+ return;
+ }
+ done = TRUE;
- gtk_stock_add (items, G_N_ELEMENTS (items));
+ gtk_stock_add (items, G_N_ELEMENTS (items));
#endif
}
static void
component_close_handler (gpointer data)
{
- GNCOptionWin *window = data;
- gtk_dialog_response(GTK_DIALOG(window->dialog), GTK_RESPONSE_CANCEL);
+ GNCOptionWin *window = data;
+ gtk_dialog_response(GTK_DIALOG(window->dialog), GTK_RESPONSE_CANCEL);
}
/* gnc_options_dialog_new:
@@ -1460,35 +1484,35 @@
GNCOptionWin *
gnc_options_dialog_new(gchar *title)
{
- GNCOptionWin * retval;
- GladeXML *xml;
- GtkWidget * hbox;
- gint component_id;
+ GNCOptionWin * retval;
+ GladeXML *xml;
+ GtkWidget * hbox;
+ gint component_id;
- retval = g_new0(GNCOptionWin, 1);
- xml = gnc_glade_xml_new ("preferences.glade", "GnuCash Options");
- retval->dialog = glade_xml_get_widget (xml, "GnuCash Options");
- retval->page_list = glade_xml_get_widget (xml, "page_list");
+ retval = g_new0(GNCOptionWin, 1);
+ xml = gnc_glade_xml_new ("preferences.glade", "GnuCash Options");
+ retval->dialog = glade_xml_get_widget (xml, "GnuCash Options");
+ retval->page_list = glade_xml_get_widget (xml, "page_list");
- glade_xml_signal_autoconnect_full( xml,
- gnc_glade_autoconnect_full_func,
- retval );
+ glade_xml_signal_autoconnect_full( xml,
+ gnc_glade_autoconnect_full_func,
+ retval );
- if (title)
- gtk_window_set_title(GTK_WINDOW(retval->dialog), title);
+ if (title)
+ gtk_window_set_title(GTK_WINDOW(retval->dialog), title);
- /* glade doesn't suport a notebook with zero pages */
- hbox = glade_xml_get_widget (xml, "notebook placeholder");
- retval->notebook = gtk_notebook_new();
- gtk_widget_show(retval->notebook);
- gtk_box_pack_start(GTK_BOX(hbox), retval->notebook, TRUE, TRUE, 5);
+ /* glade doesn't suport a notebook with zero pages */
+ hbox = glade_xml_get_widget (xml, "notebook placeholder");
+ retval->notebook = gtk_notebook_new();
+ gtk_widget_show(retval->notebook);
+ gtk_box_pack_start(GTK_BOX(hbox), retval->notebook, TRUE, TRUE, 5);
- component_id = gnc_register_gui_component (DIALOG_OPTIONS_CM_CLASS,
- NULL, component_close_handler,
- retval);
- gnc_gui_component_set_session (component_id, gnc_get_current_session());
+ component_id = gnc_register_gui_component (DIALOG_OPTIONS_CM_CLASS,
+ NULL, component_close_handler,
+ retval);
+ gnc_gui_component_set_session (component_id, gnc_get_current_session());
- return retval;
+ return retval;
}
/* Creates a new GNCOptionWin structure, but assumes you have your own
@@ -1496,66 +1520,67 @@
GNCOptionWin *
gnc_options_dialog_new_w_dialog(gchar *title, GtkWidget *dialog)
{
- GNCOptionWin * retval;
+ GNCOptionWin * retval;
- retval = g_new0(GNCOptionWin, 1);
- retval->dialog = dialog;
- return retval;
+ retval = g_new0(GNCOptionWin, 1);
+ retval->dialog = dialog;
+ return retval;
}
void
gnc_options_dialog_set_apply_cb(GNCOptionWin * win, GNCOptionWinCallback cb,
gpointer data)
{
- win->apply_cb = cb;
- win->apply_cb_data = data;
+ win->apply_cb = cb;
+ win->apply_cb_data = data;
}
void
gnc_options_dialog_set_help_cb(GNCOptionWin * win, GNCOptionWinCallback cb,
gpointer data)
{
- win->help_cb = cb;
- win->help_cb_data = data;
+ win->help_cb = cb;
+ win->help_cb_data = data;
}
void
gnc_options_dialog_set_close_cb(GNCOptionWin * win, GNCOptionWinCallback cb,
gpointer data)
{
- win->close_cb = cb;
- win->close_cb_data = data;
+ win->close_cb = cb;
+ win->close_cb_data = data;
}
void
gnc_options_dialog_set_global_help_cb(GNCOptionWinCallback thunk,
gpointer cb_data)
{
- global_help_cb = thunk;
- global_help_cb_data = cb_data;
+ global_help_cb = thunk;
+ global_help_cb_data = cb_data;
}
/* This is for global program preferences. */
void
gnc_options_dialog_destroy(GNCOptionWin * win)
{
- if (!win) return;
+ if (!win) return;
- gnc_unregister_gui_component_by_data(DIALOG_OPTIONS_CM_CLASS, win);
+ gnc_unregister_gui_component_by_data(DIALOG_OPTIONS_CM_CLASS, win);
- gtk_widget_destroy(win->dialog);
+ gtk_widget_destroy(win->dialog);
- if(win->tips) {
- g_object_unref (win->tips);
- }
+ if (win->tips)
+ {
+ g_object_unref (win->tips);
+ }
- win->dialog = NULL;
- win->notebook = NULL;
- win->apply_cb = NULL;
- win->help_cb = NULL;
- win->tips = NULL;
+ win->dialog = NULL;
+ win->notebook = NULL;
+ win->apply_cb = NULL;
+ win->help_cb = NULL;
+ win->tips = NULL;
- g_free(win);
+ g_free(win);
}
@@ -1598,559 +1623,559 @@
*/
static GtkWidget *
gnc_option_set_ui_widget_boolean (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
+ GtkWidget *value;
- *enclosing = gtk_hbox_new(FALSE, 5);
- value = gtk_check_button_new_with_label(name);
+ *enclosing = gtk_hbox_new(FALSE, 5);
+ value = gtk_check_button_new_with_label(name);
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(value), "toggled",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(G_OBJECT(value), "toggled",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
- return value;
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_string (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
- value = gtk_entry_new();
+ *enclosing = gtk_hbox_new(FALSE, 5);
+ value = gtk_entry_new();
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(value), "changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(G_OBJECT(value), "changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_text (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *frame;
- GtkWidget *scroll;
- GtkTextBuffer* text_buffer;
+ GtkWidget *value;
+ GtkWidget *frame;
+ GtkWidget *scroll;
+ GtkTextBuffer* text_buffer;
- frame = gtk_frame_new(name);
+ frame = gtk_frame_new(name);
- scroll = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
- GTK_POLICY_NEVER,
- GTK_POLICY_AUTOMATIC);
- gtk_container_set_border_width(GTK_CONTAINER(scroll), 2);
+ scroll = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
+ GTK_POLICY_NEVER,
+ GTK_POLICY_AUTOMATIC);
+ gtk_container_set_border_width(GTK_CONTAINER(scroll), 2);
- gtk_container_add(GTK_CONTAINER(frame), scroll);
+ gtk_container_add(GTK_CONTAINER(frame), scroll);
- *enclosing = gtk_hbox_new(FALSE, 10);
- value = gtk_text_view_new();
- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(value), GTK_WRAP_WORD);
- gtk_text_view_set_editable(GTK_TEXT_VIEW(value), TRUE);
- gtk_container_add (GTK_CONTAINER (scroll), value);
+ *enclosing = gtk_hbox_new(FALSE, 10);
+ value = gtk_text_view_new();
+ gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(value), GTK_WRAP_WORD);
+ gtk_text_view_set_editable(GTK_TEXT_VIEW(value), TRUE);
+ gtk_container_add (GTK_CONTAINER (scroll), value);
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(value));
- g_signal_connect(G_OBJECT(text_buffer), "changed",
- G_CALLBACK(gnc_option_changed_option_cb), option);
+ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(value));
+ g_signal_connect(G_OBJECT(text_buffer), "changed",
+ G_CALLBACK(gnc_option_changed_option_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), frame, TRUE, TRUE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), frame, TRUE, TRUE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_currency (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
- value = gnc_currency_edit_new();
+ *enclosing = gtk_hbox_new(FALSE, 5);
+ value = gnc_currency_edit_new();
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(value), "changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(G_OBJECT(value), "changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_commodity (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
- value = gnc_general_select_new(GNC_GENERAL_SELECT_TYPE_SELECT,
- gnc_commodity_edit_get_string,
- gnc_commodity_edit_new_select,
- NULL);
+ *enclosing = gtk_hbox_new(FALSE, 5);
+ value = gnc_general_select_new(GNC_GENERAL_SELECT_TYPE_SELECT,
+ gnc_commodity_edit_get_string,
+ gnc_commodity_edit_new_select,
+ NULL);
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- if (documentation != NULL)
- gtk_tooltips_set_tip(tooltips, GNC_GENERAL_SELECT(value)->entry,
- documentation, NULL);
+ if (documentation != NULL)
+ gtk_tooltips_set_tip(tooltips, GNC_GENERAL_SELECT(value)->entry,
+ documentation, NULL);
- g_signal_connect(G_OBJECT(GNC_GENERAL_SELECT(value)->entry), "changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(G_OBJECT(GNC_GENERAL_SELECT(value)->entry), "changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_multichoice (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- value = gnc_option_create_multichoice_widget(option, tooltips);
- gnc_option_set_widget (option, value);
+ value = gnc_option_create_multichoice_widget(option, tooltips);
+ gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gnc_option_set_ui_value(option, FALSE);
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_date (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
- GtkWidget *eventbox;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
+ GtkWidget *eventbox;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- value = gnc_option_create_date_widget(option);
+ value = gnc_option_create_date_widget(option);
- gnc_option_set_widget (option, value);
+ gnc_option_set_widget (option, value);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- /* Pack option widget into an extra eventbox because otherwise the
- "documentation" tooltip is not displayed. */
- eventbox = gtk_event_box_new();
- gtk_container_add (GTK_CONTAINER (eventbox), *enclosing);
- gtk_box_pack_start(page_box, eventbox, FALSE, FALSE, 5);
- *packed = TRUE;
+ /* Pack option widget into an extra eventbox because otherwise the
+ "documentation" tooltip is not displayed. */
+ eventbox = gtk_event_box_new();
+ gtk_container_add (GTK_CONTAINER (eventbox), *enclosing);
+ gtk_box_pack_start(page_box, eventbox, FALSE, FALSE, 5);
+ *packed = TRUE;
- gtk_tooltips_set_tip (tooltips, eventbox, documentation, NULL);
+ gtk_tooltips_set_tip (tooltips, eventbox, documentation, NULL);
- gnc_option_set_ui_value(option, FALSE);
- gtk_widget_show_all(*enclosing);
- return value;
+ gnc_option_set_ui_value(option, FALSE);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_account_list (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkTreeSelection *selection;
+ GtkWidget *value;
+ GtkTreeSelection *selection;
- *enclosing = gnc_option_create_account_widget(option, name, tooltips);
- value = gnc_option_get_widget (option);
+ *enclosing = gnc_option_create_account_widget(option, name, tooltips);
+ value = gnc_option_get_widget (option);
- gtk_tooltips_set_tip(tooltips, *enclosing, documentation, NULL);
+ gtk_tooltips_set_tip(tooltips, *enclosing, documentation, NULL);
- gtk_box_pack_start(page_box, *enclosing, TRUE, TRUE, 5);
- *packed = TRUE;
+ gtk_box_pack_start(page_box, *enclosing, TRUE, TRUE, 5);
+ *packed = TRUE;
- //gtk_widget_realize(value);
+ //gtk_widget_realize(value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_ui_value(option, FALSE);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(value));
- g_signal_connect(G_OBJECT(selection), "changed",
- G_CALLBACK(gnc_option_account_cb), option);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(value));
+ g_signal_connect(G_OBJECT(selection), "changed",
+ G_CALLBACK(gnc_option_account_cb), option);
- // gtk_clist_set_row_height(GTK_CLIST(value), 0);
- // gtk_widget_set_size_request(value, -1, GTK_CLIST(value)->row_height * 10);
- gtk_widget_show_all(*enclosing);
- return value;
+ // gtk_clist_set_row_height(GTK_CLIST(value), 0);
+ // gtk_widget_set_size_request(value, -1, GTK_CLIST(value)->row_height * 10);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_account_sel (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- GList *acct_type_list;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ GList *acct_type_list;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- acct_type_list = gnc_option_get_account_type_list(option);
- value = gnc_account_sel_new();
- gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(value), acct_type_list, NULL);
+ acct_type_list = gnc_option_get_account_type_list(option);
+ value = gnc_account_sel_new();
+ gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(value), acct_type_list, NULL);
- g_signal_connect(value, "account_sel_changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(value, "account_sel_changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gnc_option_set_widget (option, value);
- /* DOCUMENT ME: Why is the only option type that sets use_default to
- TRUE? */
- gnc_option_set_ui_value(option, TRUE);
+ gnc_option_set_widget (option, value);
+ /* DOCUMENT ME: Why is the only option type that sets use_default to
+ TRUE? */
+ gnc_option_set_ui_value(option, TRUE);
- *enclosing = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ *enclosing = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_list (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *eventbox;
+ GtkWidget *value;
+ GtkWidget *eventbox;
- *enclosing = gnc_option_create_list_widget(option, name, tooltips);
- value = gnc_option_get_widget (option);
+ *enclosing = gnc_option_create_list_widget(option, name, tooltips);
+ value = gnc_option_get_widget (option);
- /* Pack option widget into an extra eventbox because otherwise the
- "documentation" tooltip is not displayed. */
- eventbox = gtk_event_box_new();
- gtk_container_add (GTK_CONTAINER (eventbox), *enclosing);
- gtk_box_pack_start(page_box, eventbox, FALSE, FALSE, 5);
- *packed = TRUE;
+ /* Pack option widget into an extra eventbox because otherwise the
+ "documentation" tooltip is not displayed. */
+ eventbox = gtk_event_box_new();
+ gtk_container_add (GTK_CONTAINER (eventbox), *enclosing);
+ gtk_box_pack_start(page_box, eventbox, FALSE, FALSE, 5);
+ *packed = TRUE;
- gtk_tooltips_set_tip(tooltips, eventbox, documentation, NULL);
+ gtk_tooltips_set_tip(tooltips, eventbox, documentation, NULL);
- gnc_option_set_ui_value(option, FALSE);
- gtk_widget_show(*enclosing);
- return value;
+ gnc_option_set_ui_value(option, FALSE);
+ gtk_widget_show(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_number_range (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
- GtkAdjustment *adj;
- gdouble lower_bound = G_MINDOUBLE;
- gdouble upper_bound = G_MAXDOUBLE;
- gdouble step_size = 1.0;
- int num_decimals = 0;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
+ GtkAdjustment *adj;
+ gdouble lower_bound = G_MINDOUBLE;
+ gdouble upper_bound = G_MAXDOUBLE;
+ gdouble step_size = 1.0;
+ int num_decimals = 0;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- gnc_option_get_range_info(option, &lower_bound, &upper_bound,
- &num_decimals, &step_size);
- adj = GTK_ADJUSTMENT(gtk_adjustment_new(lower_bound, lower_bound,
- upper_bound, step_size,
- step_size * 5.0,
- step_size * 5.0));
- value = gtk_spin_button_new(adj, step_size, num_decimals);
- gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(value), TRUE);
+ gnc_option_get_range_info(option, &lower_bound, &upper_bound,
+ &num_decimals, &step_size);
+ adj = GTK_ADJUSTMENT(gtk_adjustment_new(lower_bound, lower_bound,
+ upper_bound, step_size,
+ step_size * 5.0,
+ step_size * 5.0));
+ value = gtk_spin_button_new(adj, step_size, num_decimals);
+ gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(value), TRUE);
- {
- gdouble biggest;
- gint num_digits;
+ {
+ gdouble biggest;
+ gint num_digits;
- biggest = ABS(lower_bound);
- biggest = MAX(biggest, ABS(upper_bound));
+ biggest = ABS(lower_bound);
+ biggest = MAX(biggest, ABS(upper_bound));
- num_digits = 0;
- while (biggest >= 1)
- {
- num_digits++;
- biggest = biggest / 10;
- }
+ num_digits = 0;
+ while (biggest >= 1)
+ {
+ num_digits++;
+ biggest = biggest / 10;
+ }
- if (num_digits == 0)
- num_digits = 1;
+ if (num_digits == 0)
+ num_digits = 1;
- num_digits += num_decimals;
+ num_digits += num_decimals;
- gtk_entry_set_width_chars(GTK_ENTRY(value), num_digits);
- }
+ gtk_entry_set_width_chars(GTK_ENTRY(value), num_digits);
+ }
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(value), "changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(G_OBJECT(value), "changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_color (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
- gboolean use_alpha;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
+ gboolean use_alpha;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- use_alpha = gnc_option_use_alpha(option);
+ use_alpha = gnc_option_use_alpha(option);
- value = gtk_color_button_new();
- gtk_color_button_set_title(GTK_COLOR_BUTTON(value), name);
- gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(value), use_alpha);
+ value = gtk_color_button_new();
+ gtk_color_button_set_title(GTK_COLOR_BUTTON(value), name);
+ gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(value), use_alpha);
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(value), "color-set",
- G_CALLBACK(gnc_option_color_changed_cb), option);
+ g_signal_connect(G_OBJECT(value), "color-set",
+ G_CALLBACK(gnc_option_color_changed_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_font (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
- value = gtk_font_button_new();
- g_object_set(G_OBJECT(value),
- "use-font", TRUE,
- "show-style", TRUE,
- "show-size", TRUE,
- (char *)NULL);
+ *enclosing = gtk_hbox_new(FALSE, 5);
+ value = gtk_font_button_new();
+ g_object_set(G_OBJECT(value),
+ "use-font", TRUE,
+ "show-style", TRUE,
+ "show-size", TRUE,
+ (char *)NULL);
- gnc_option_set_widget (option, value);
+ gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(value), "font-set",
- G_CALLBACK(gnc_option_font_changed_cb), option);
+ g_signal_connect(G_OBJECT(value), "font-set",
+ G_CALLBACK(gnc_option_font_changed_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_pixmap (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- GtkWidget *button;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ GtkWidget *button;
+ gchar *colon_name;
- ENTER("option %p(%s), name %s", option, gnc_option_name(option), name);
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ ENTER("option %p(%s), name %s", option, gnc_option_name(option), name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- button = gtk_button_new_with_label(_("Clear"));
- gtk_tooltips_set_tip(tooltips, button, _("Clear any selected image file."), NULL);
+ button = gtk_button_new_with_label(_("Clear"));
+ gtk_tooltips_set_tip(tooltips, button, _("Clear any selected image file."), NULL);
- value = gtk_file_chooser_button_new(_("Select image"),
- GTK_FILE_CHOOSER_ACTION_OPEN);
- gtk_tooltips_set_tip(tooltips, value, _("Select an image file."), NULL);
- g_object_set(G_OBJECT(value),
- "width-chars", 30,
- "preview-widget", gtk_image_new(),
- (char *)NULL);
- g_signal_connect(G_OBJECT (value), "selection-changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
- g_signal_connect(G_OBJECT (value), "selection-changed",
- G_CALLBACK(gnc_image_option_selection_changed_cb), option);
- g_signal_connect(G_OBJECT (value), "update-preview",
- G_CALLBACK(gnc_image_option_update_preview_cb), option);
- g_signal_connect_swapped(G_OBJECT (button), "clicked",
- G_CALLBACK(gtk_file_chooser_unselect_all), value);
+ value = gtk_file_chooser_button_new(_("Select image"),
+ GTK_FILE_CHOOSER_ACTION_OPEN);
+ gtk_tooltips_set_tip(tooltips, value, _("Select an image file."), NULL);
+ g_object_set(G_OBJECT(value),
+ "width-chars", 30,
+ "preview-widget", gtk_image_new(),
+ (char *)NULL);
+ g_signal_connect(G_OBJECT (value), "selection-changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
+ g_signal_connect(G_OBJECT (value), "selection-changed",
+ G_CALLBACK(gnc_image_option_selection_changed_cb), option);
+ g_signal_connect(G_OBJECT (value), "update-preview",
+ G_CALLBACK(gnc_image_option_update_preview_cb), option);
+ g_signal_connect_swapped(G_OBJECT (button), "clicked",
+ G_CALLBACK(gtk_file_chooser_unselect_all), value);
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_end(GTK_BOX(*enclosing), button, FALSE, FALSE, 0);
- gtk_box_pack_end(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_end(GTK_BOX(*enclosing), button, FALSE, FALSE, 0);
+ gtk_box_pack_end(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show(value);
- gtk_widget_show(label);
- gtk_widget_show(*enclosing);
- LEAVE("new widget = %p", value);
- return value;
+ gtk_widget_show(value);
+ gtk_widget_show(label);
+ gtk_widget_show(*enclosing);
+ LEAVE("new widget = %p", value);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_radiobutton (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
+ GtkWidget *value;
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- value = gnc_option_create_radiobutton_widget(name, option);
- gnc_option_set_widget (option, value);
+ value = gnc_option_create_radiobutton_widget(name, option);
+ gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gnc_option_set_ui_value(option, FALSE);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
static GtkWidget *
gnc_option_set_ui_widget_dateformat (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed)
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed)
{
- *enclosing = gnc_date_format_new_with_label(name);
- gnc_option_set_widget (option, *enclosing);
+ *enclosing = gnc_date_format_new_with_label(name);
+ gnc_option_set_widget (option, *enclosing);
- gnc_option_set_ui_value(option, FALSE);
- g_signal_connect(G_OBJECT(*enclosing), "format_changed",
- G_CALLBACK(gnc_option_changed_option_cb), option);
- gtk_widget_show_all(*enclosing);
- return *enclosing;
+ gnc_option_set_ui_value(option, FALSE);
+ g_signal_connect(G_OBJECT(*enclosing), "format_changed",
+ G_CALLBACK(gnc_option_changed_option_cb), option);
+ gtk_widget_show_all(*enclosing);
+ return *enclosing;
}
static GtkWidget *
@@ -2160,30 +2185,30 @@
/* Return values */
GtkWidget **enclosing, gboolean *packed)
{
- GtkWidget *value;
- GtkWidget *label;
- gchar *colon_name;
+ GtkWidget *value;
+ GtkWidget *label;
+ gchar *colon_name;
- colon_name = g_strconcat(name, ":", NULL);
- label = gtk_label_new(colon_name);
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- g_free(colon_name);
+ colon_name = g_strconcat(name, ":", NULL);
+ label = gtk_label_new(colon_name);
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ g_free(colon_name);
- *enclosing = gtk_hbox_new(FALSE, 5);
+ *enclosing = gtk_hbox_new(FALSE, 5);
- value = gnc_option_create_budget_widget(option);
+ value = gnc_option_create_budget_widget(option);
- gnc_option_set_widget (option, value);
- gnc_option_set_ui_value(option, FALSE);
+ gnc_option_set_widget (option, value);
+ gnc_option_set_ui_value(option, FALSE);
- /* Maybe connect destroy handler for tree model here? */
- g_signal_connect(G_OBJECT(value), "changed",
- G_CALLBACK(gnc_option_changed_widget_cb), option);
+ /* Maybe connect destroy handler for tree model here? */
+ g_signal_connect(G_OBJECT(value), "changed",
+ G_CALLBACK(gnc_option_changed_widget_cb), option);
- gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
- gtk_widget_show_all(*enclosing);
- return value;
+ gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+ gtk_widget_show_all(*enclosing);
+ return value;
}
/*************************
@@ -2201,371 +2226,372 @@
static gboolean
gnc_option_set_ui_value_boolean (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- if (scm_is_bool(value))
- {
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
- scm_is_true(value));
- return FALSE;
- }
- else
- return TRUE;
+ if (scm_is_bool(value))
+ {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
+ scm_is_true(value));
+ return FALSE;
+ }
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_string (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- if (scm_is_string(value))
- {
- const gchar *string = scm_to_locale_string(value);
- gtk_entry_set_text(GTK_ENTRY(widget), string);
- return FALSE;
- }
- else
- return TRUE;
+ if (scm_is_string(value))
+ {
+ const gchar *string = scm_to_locale_string(value);
+ gtk_entry_set_text(GTK_ENTRY(widget), string);
+ return FALSE;
+ }
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_text (GNCOption *option, gboolean use_default,
- GObject *object, SCM value)
+ GObject *object, SCM value)
{
- GtkTextBuffer *buffer;
+ GtkTextBuffer *buffer;
- if (GTK_IS_TEXT_BUFFER(object))
- buffer = GTK_TEXT_BUFFER(object);
- else
- buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(object));
+ if (GTK_IS_TEXT_BUFFER(object))
+ buffer = GTK_TEXT_BUFFER(object);
+ else
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(object));
- if (scm_is_string(value))
- {
- const gchar *string = scm_to_locale_string(value);
- gtk_text_buffer_set_text (buffer, string, scm_i_string_length(value));
- return FALSE;
- }
- else
- return TRUE;
+ if (scm_is_string(value))
+ {
+ const gchar *string = scm_to_locale_string(value);
+ gtk_text_buffer_set_text (buffer, string, scm_i_string_length(value));
+ return FALSE;
+ }
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_currency (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- gnc_commodity *commodity;
+ gnc_commodity *commodity;
- commodity = gnc_scm_to_commodity (value);
- if (commodity)
- {
- gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(widget), commodity);
- return FALSE;
- }
- else
- return TRUE;
+ commodity = gnc_scm_to_commodity (value);
+ if (commodity)
+ {
+ gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(widget), commodity);
+ return FALSE;
+ }
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_commodity (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- gnc_commodity *commodity;
+ gnc_commodity *commodity;
- commodity = gnc_scm_to_commodity (value);
- if (commodity)
- {
- gnc_general_select_set_selected(GNC_GENERAL_SELECT (widget), commodity);
- return FALSE;
- }
- else
- return TRUE;
+ commodity = gnc_scm_to_commodity (value);
+ if (commodity)
+ {
+ gnc_general_select_set_selected(GNC_GENERAL_SELECT (widget), commodity);
+ return FALSE;
+ }
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_multichoice (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- int index;
+ int index;
- index = gnc_option_permissible_value_index(option, value);
- if (index < 0)
- return TRUE;
- else
- {
+ index = gnc_option_permissible_value_index(option, value);
+ if (index < 0)
+ return TRUE;
+ else
+ {
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- gtk_combo_box_set_active(GTK_COMBO_BOX(widget), index);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), index);
#else
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
- g_object_set_data(G_OBJECT(widget), "gnc_multichoice_index",
- GINT_TO_POINTER(index));
+ gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
+ g_object_set_data(G_OBJECT(widget), "gnc_multichoice_index",
+ GINT_TO_POINTER(index));
#endif
- return FALSE;
- }
+ return FALSE;
+ }
}
static gboolean
gnc_option_set_ui_value_date (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- int index;
- char *date_option_type;
- char *symbol_str;
- gboolean bad_value = FALSE;
+ int index;
+ char *date_option_type;
+ char *symbol_str;
+ gboolean bad_value = FALSE;
- date_option_type = gnc_option_date_option_get_subtype(option);
+ date_option_type = gnc_option_date_option_get_subtype(option);
- if (scm_is_pair(value))
- {
- symbol_str = gnc_date_option_value_get_type (value);
- if (symbol_str)
+ if (scm_is_pair(value))
{
- if (safe_strcmp(symbol_str, "relative") == 0)
- {
- SCM relative = gnc_date_option_value_get_relative (value);
+ symbol_str = gnc_date_option_value_get_type (value);
+ if (symbol_str)
+ {
+ if (safe_strcmp(symbol_str, "relative") == 0)
+ {
+ SCM relative = gnc_date_option_value_get_relative (value);
- index = gnc_option_permissible_value_index(option, relative);
- if (safe_strcmp(date_option_type, "relative") == 0)
- {
+ index = gnc_option_permissible_value_index(option, relative);
+ if (safe_strcmp(date_option_type, "relative") == 0)
+ {
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- gtk_combo_box_set_active(GTK_COMBO_BOX(widget), index);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), index);
#else
- g_object_set_data(G_OBJECT(widget),
- "gnc_multichoice_index",
- GINT_TO_POINTER(index));
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
+ g_object_set_data(G_OBJECT(widget),
+ "gnc_multichoice_index",
+ GINT_TO_POINTER(index));
+ gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
#endif
- }
- else if (safe_strcmp(date_option_type, "both") == 0)
- {
- GList *widget_list;
- GtkWidget *rel_date_widget;
+ }
+ else if (safe_strcmp(date_option_type, "both") == 0)
+ {
+ GList *widget_list;
+ GtkWidget *rel_date_widget;
- widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
- rel_date_widget = g_list_nth_data(widget_list,
- GNC_RD_WID_REL_WIDGET_POS);
- g_list_free(widget_list);
- gnc_date_option_set_select_method(option, FALSE, TRUE);
+ widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
+ rel_date_widget = g_list_nth_data(widget_list,
+ GNC_RD_WID_REL_WIDGET_POS);
+ g_list_free(widget_list);
+ gnc_date_option_set_select_method(option, FALSE, TRUE);
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- gtk_combo_box_set_active(GTK_COMBO_BOX(rel_date_widget), index);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(rel_date_widget), index);
#else
- g_object_set_data(G_OBJECT(rel_date_widget),
- "gnc_multichoice_index",
- GINT_TO_POINTER(index));
- gtk_option_menu_set_history(GTK_OPTION_MENU(rel_date_widget),
- index);
+ g_object_set_data(G_OBJECT(rel_date_widget),
+ "gnc_multichoice_index",
+ GINT_TO_POINTER(index));
+ gtk_option_menu_set_history(GTK_OPTION_MENU(rel_date_widget),
+ index);
#endif
- }
- else
- {
- bad_value = TRUE;
- }
- }
- else if (safe_strcmp(symbol_str, "absolute") == 0)
- {
- Timespec ts;
+ }
+ else
+ {
+ bad_value = TRUE;
+ }
+ }
+ else if (safe_strcmp(symbol_str, "absolute") == 0)
+ {
+ Timespec ts;
- ts = gnc_date_option_value_get_absolute (value);
+ ts = gnc_date_option_value_get_absolute (value);
- if (safe_strcmp(date_option_type, "absolute") == 0)
- {
- gnc_date_edit_set_time(GNC_DATE_EDIT(widget), ts.tv_sec);
- }
- else if (safe_strcmp(date_option_type, "both") == 0)
- {
- GList *widget_list;
- GtkWidget *ab_widget;
+ if (safe_strcmp(date_option_type, "absolute") == 0)
+ {
+ gnc_date_edit_set_time(GNC_DATE_EDIT(widget), ts.tv_sec);
+ }
+ else if (safe_strcmp(date_option_type, "both") == 0)
+ {
+ GList *widget_list;
+ GtkWidget *ab_widget;
- widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
- ab_widget = g_list_nth_data(widget_list,
- GNC_RD_WID_AB_WIDGET_POS);
- g_list_free(widget_list);
- gnc_date_option_set_select_method(option, TRUE, TRUE);
- gnc_date_edit_set_time(GNC_DATE_EDIT(ab_widget), ts.tv_sec);
- }
- else
- {
- bad_value = TRUE;
- }
- }
- else
- {
- bad_value = TRUE;
- }
+ widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
+ ab_widget = g_list_nth_data(widget_list,
+ GNC_RD_WID_AB_WIDGET_POS);
+ g_list_free(widget_list);
+ gnc_date_option_set_select_method(option, TRUE, TRUE);
+ gnc_date_edit_set_time(GNC_DATE_EDIT(ab_widget), ts.tv_sec);
+ }
+ else
+ {
+ bad_value = TRUE;
+ }
+ }
+ else
+ {
+ bad_value = TRUE;
+ }
- if (symbol_str)
- free(symbol_str);
+ if (symbol_str)
+ free(symbol_str);
+ }
}
- }
- else
- {
- bad_value = TRUE;
- }
+ else
+ {
+ bad_value = TRUE;
+ }
- if (date_option_type)
- free(date_option_type);
+ if (date_option_type)
+ free(date_option_type);
- return bad_value;
+ return bad_value;
}
static gboolean
gnc_option_set_ui_value_account_list (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- GList *list;
+ GList *list;
- list = gnc_scm_list_to_glist(value);
+ list = gnc_scm_list_to_glist(value);
- gnc_tree_view_account_set_selected_accounts (GNC_TREE_VIEW_ACCOUNT(widget),
- list, TRUE);
+ gnc_tree_view_account_set_selected_accounts (GNC_TREE_VIEW_ACCOUNT(widget),
+ list, TRUE);
- g_list_free(list);
- return FALSE;
+ g_list_free(list);
+ return FALSE;
}
static gboolean
gnc_option_set_ui_value_account_sel (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- Account *acc = NULL;
+ Account *acc = NULL;
- if (value != SCM_BOOL_F) {
- if (!SWIG_IsPointer(value))
- scm_misc_error("gnc_option_set_ui_value_account_sel",
- "Option Value not a wcp.", value);
+ if (value != SCM_BOOL_F)
+ {
+ if (!SWIG_IsPointer(value))
+ scm_misc_error("gnc_option_set_ui_value_account_sel",
+ "Option Value not a wcp.", value);
- acc = SWIG_MustGetPtr(value, SWIG_TypeQuery("_p_Account"), 4, 0);
- }
+ acc = SWIG_MustGetPtr(value, SWIG_TypeQuery("_p_Account"), 4, 0);
+ }
- //doesn't default because this function is called to set a specific account
- gnc_account_sel_set_account (GNC_ACCOUNT_SEL(widget), acc, FALSE);
+ //doesn't default because this function is called to set a specific account
+ gnc_account_sel_set_account (GNC_ACCOUNT_SEL(widget), acc, FALSE);
- return FALSE;
+ return FALSE;
}
static gboolean
gnc_option_set_ui_value_list (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- GtkTreeSelection *selection;
- GtkTreePath *path;
- gint row;
+ GtkTreeSelection *selection;
+ GtkTreePath *path;
+ gint row;
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
- gtk_tree_selection_unselect_all(selection);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
+ gtk_tree_selection_unselect_all(selection);
- while (scm_is_list(value) && !scm_is_null(value))
- {
- SCM item;
+ while (scm_is_list(value) && !scm_is_null(value))
+ {
+ SCM item;
- item = SCM_CAR(value);
- value = SCM_CDR(value);
+ item = SCM_CAR(value);
+ value = SCM_CDR(value);
- row = gnc_option_permissible_value_index(option, item);
- if (row < 0)
- {
- return TRUE;
+ row = gnc_option_permissible_value_index(option, item);
+ if (row < 0)
+ {
+ return TRUE;
+ }
+
+ path = gtk_tree_path_new_from_indices(row, -1);
+ gtk_tree_selection_select_path(selection, path);
+ gtk_tree_path_free(path);
}
- path = gtk_tree_path_new_from_indices(row, -1);
- gtk_tree_selection_select_path(selection, path);
- gtk_tree_path_free(path);
- }
+ if (!scm_is_list(value) || !scm_is_null(value))
+ return TRUE;
- if (!scm_is_list(value) || !scm_is_null(value))
- return TRUE;
-
- return FALSE;
+ return FALSE;
}
static gboolean
gnc_option_set_ui_value_number_range (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- GtkSpinButton *spinner;
- gdouble d_value;;
+ GtkSpinButton *spinner;
+ gdouble d_value;;
- spinner = GTK_SPIN_BUTTON(widget);
+ spinner = GTK_SPIN_BUTTON(widget);
- if (scm_is_number(value))
- {
- d_value = scm_num2dbl(value, G_STRFUNC);
- gtk_spin_button_set_value(spinner, d_value);
- return FALSE;
- }
- else
- return TRUE;
+ if (scm_is_number(value))
+ {
+ d_value = scm_num2dbl(value, G_STRFUNC);
+ gtk_spin_button_set_value(spinner, d_value);
+ return FALSE;
+ }
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_color (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- gdouble red, green, blue, alpha;
+ gdouble red, green, blue, alpha;
- if (gnc_option_get_color_info(option, use_default,
- &red, &green, &blue, &alpha))
- {
- GtkColorButton *color_button;
- GdkColor color;
+ if (gnc_option_get_color_info(option, use_default,
+ &red, &green, &blue, &alpha))
+ {
+ GtkColorButton *color_button;
+ GdkColor color;
- DEBUG("red %f, green %f, blue %f, alpha %f", red, green, blue, alpha);
- color_button = GTK_COLOR_BUTTON(widget);
+ DEBUG("red %f, green %f, blue %f, alpha %f", red, green, blue, alpha);
+ color_button = GTK_COLOR_BUTTON(widget);
- color.red = color_d_to_i16(red);
- color.green = color_d_to_i16(green);
- color.blue = color_d_to_i16(blue);
- gtk_color_button_set_color(color_button, &color);
- gtk_color_button_set_alpha(color_button, color_d_to_i16(alpha));
- return FALSE;
- }
+ color.red = color_d_to_i16(red);
+ color.green = color_d_to_i16(green);
+ color.blue = color_d_to_i16(blue);
+ gtk_color_button_set_color(color_button, &color);
+ gtk_color_button_set_alpha(color_button, color_d_to_i16(alpha));
+ return FALSE;
+ }
- LEAVE("TRUE");
- return TRUE;
+ LEAVE("TRUE");
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_font (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- if (scm_is_string(value))
- {
- const gchar *string = scm_to_locale_string(value);
- if ((string != NULL) && (*string != '\0'))
+ if (scm_is_string(value))
{
- GtkFontButton *font_button = GTK_FONT_BUTTON(widget);
- gtk_font_button_set_font_name(font_button, string);
+ const gchar *string = scm_to_locale_string(value);
+ if ((string != NULL) && (*string != '\0'))
+ {
+ GtkFontButton *font_button = GTK_FONT_BUTTON(widget);
+ gtk_font_button_set_font_name(font_button, string);
+ }
+ return FALSE;
}
- return FALSE;
- }
- else
- return TRUE;
+ else
+ return TRUE;
}
static gboolean
gnc_option_set_ui_value_pixmap (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- ENTER("option %p(%s)", option, gnc_option_name(option));
- if (scm_is_string(value))
- {
- const gchar *string = scm_to_locale_string(value);
+ ENTER("option %p(%s)", option, gnc_option_name(option));
+ if (scm_is_string(value))
+ {
+ const gchar *string = scm_to_locale_string(value);
- if (string && *string)
- {
- gchar *test;
- DEBUG("string = %s", string);
- gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(widget), string);
- test = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
- g_object_set_data_full(G_OBJECT(widget), LAST_SELECTION,
- g_strdup(string), g_free);
- DEBUG("Set %s, retrieved %s", string, test ? test : "(null)");
- gnc_image_option_update_preview_cb(GTK_FILE_CHOOSER(widget), option);
+ if (string && *string)
+ {
+ gchar *test;
+ DEBUG("string = %s", string);
+ gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(widget), string);
+ test = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
+ g_object_set_data_full(G_OBJECT(widget), LAST_SELECTION,
+ g_strdup(string), g_free);
+ DEBUG("Set %s, retrieved %s", string, test ? test : "(null)");
+ gnc_image_option_update_preview_cb(GTK_FILE_CHOOSER(widget), option);
+ }
+ LEAVE("FALSE");
+ return FALSE;
}
- LEAVE("FALSE");
- return FALSE;
- }
- LEAVE("TRUE");
- return TRUE;
+ LEAVE("TRUE");
+ return TRUE;
}
static gboolean gnc_option_set_ui_value_budget(
@@ -2577,7 +2603,8 @@
GtkTreeIter iter;
// if (!scm_is_null(value)) {
- if (value != SCM_BOOL_F) {
+ if (value != SCM_BOOL_F)
+ {
if (!SWIG_IsPointer(value))
scm_misc_error("gnc_option_set_ui_value_budget",
"Option Value not a wcp.", value);
@@ -2586,7 +2613,7 @@
cb = GTK_COMBO_BOX(widget);
tm = gtk_combo_box_get_model(cb);
if (gnc_tree_model_budget_get_iter_for_budget(tm, &iter, bgt))
- gtk_combo_box_set_active_iter(cb, &iter);
+ gtk_combo_box_set_active_iter(cb, &iter);
}
@@ -2596,64 +2623,64 @@
static gboolean
gnc_option_set_ui_value_radiobutton (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- int index;
+ int index;
- index = gnc_option_permissible_value_index(option, value);
- if (index < 0)
- return TRUE;
- else
- {
- GtkWidget *box, *button;
- GList *list;
- int i;
- gpointer val;
+ index = gnc_option_permissible_value_index(option, value);
+ if (index < 0)
+ return TRUE;
+ else
+ {
+ GtkWidget *box, *button;
+ GList *list;
+ int i;
+ gpointer val;
- list = gtk_container_get_children (GTK_CONTAINER (widget));
- box = list->data;
- g_list_free(list);
+ list = gtk_container_get_children (GTK_CONTAINER (widget));
+ box = list->data;
+ g_list_free(list);
- list = gtk_container_get_children (GTK_CONTAINER (box));
- for (i = 0; i < index && list; i++)
- list = list->next;
- g_return_val_if_fail (list, TRUE);
+ list = gtk_container_get_children (GTK_CONTAINER (box));
+ for (i = 0; i < index && list; i++)
+ list = list->next;
+ g_return_val_if_fail (list, TRUE);
- button = list->data;
- g_list_free(list);
- val = g_object_get_data (G_OBJECT (button), "gnc_radiobutton_index");
- g_return_val_if_fail (GPOINTER_TO_INT (val) == index, TRUE);
+ button = list->data;
+ g_list_free(list);
+ val = g_object_get_data (G_OBJECT (button), "gnc_radiobutton_index");
+ g_return_val_if_fail (GPOINTER_TO_INT (val) == index, TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
- // g_object_set_data(G_OBJECT(widget), "gnc_radiobutton_index",
- // GINT_TO_POINTER(index));
- return FALSE;
- }
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+ // g_object_set_data(G_OBJECT(widget), "gnc_radiobutton_index",
+ // GINT_TO_POINTER(index));
+ return FALSE;
+ }
}
static gboolean
gnc_option_set_ui_value_dateformat (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value)
+ GtkWidget *widget, SCM value)
{
- GNCDateFormat * gdf = GNC_DATE_FORMAT(widget);
- QofDateFormat format;
- GNCDateMonthFormat months;
- gboolean years;
- char *custom;
+ GNCDateFormat * gdf = GNC_DATE_FORMAT(widget);
+ QofDateFormat format;
+ GNCDateMonthFormat months;
+ gboolean years;
+ char *custom;
- if (gnc_dateformat_option_value_parse(value, &format, &months, &years, &custom))
- return TRUE;
+ if (gnc_dateformat_option_value_parse(value, &format, &months, &years, &custom))
+ return TRUE;
- gnc_date_format_set_format(gdf, format);
- gnc_date_format_set_months(gdf, months);
- gnc_date_format_set_years(gdf, years);
- gnc_date_format_set_custom(gdf, custom);
- gnc_date_format_refresh(gdf);
+ gnc_date_format_set_format(gdf, format);
+ gnc_date_format_set_months(gdf, months);
+ gnc_date_format_set_years(gdf, years);
+ gnc_date_format_set_custom(gdf, custom);
+ gnc_date_format_refresh(gdf);
- if (custom)
- free(custom);
+ if (custom)
+ free(custom);
- return FALSE;
+ return FALSE;
}
/*************************
@@ -2673,168 +2700,168 @@
static SCM
gnc_option_get_ui_value_boolean (GNCOption *option, GtkWidget *widget)
{
- gboolean active;
+ gboolean active;
- active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
- return SCM_BOOL(active);
+ active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ return SCM_BOOL(active);
}
static SCM
gnc_option_get_ui_value_string (GNCOption *option, GtkWidget *widget)
{
- char * string;
- SCM result;
+ char * string;
+ SCM result;
- string = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
- result = scm_makfrom0str(string);
- g_free(string);
- return result;
+ string = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
+ result = scm_makfrom0str(string);
+ g_free(string);
+ return result;
}
static SCM
gnc_option_get_ui_value_text (GNCOption *option, GtkWidget *widget)
{
- char * string;
- SCM result;
+ char * string;
+ SCM result;
- string = xxxgtk_textview_get_text (GTK_TEXT_VIEW(widget));
- result = scm_makfrom0str(string);
- g_free(string);
- return result;
+ string = xxxgtk_textview_get_text (GTK_TEXT_VIEW(widget));
+ result = scm_makfrom0str(string);
+ g_free(string);
+ return result;
}
static SCM
gnc_option_get_ui_value_currency (GNCOption *option, GtkWidget *widget)
{
- gnc_commodity *commodity;
+ gnc_commodity *commodity;
- commodity =
- gnc_currency_edit_get_currency(GNC_CURRENCY_EDIT(widget));
+ commodity =
+ gnc_currency_edit_get_currency(GNC_CURRENCY_EDIT(widget));
- return (gnc_commodity_to_scm (commodity));
+ return (gnc_commodity_to_scm (commodity));
}
static SCM
gnc_option_get_ui_value_commodity (GNCOption *option, GtkWidget *widget)
{
- gnc_commodity *commodity;
+ gnc_commodity *commodity;
- commodity =
- gnc_general_select_get_selected(GNC_GENERAL_SELECT(widget));
+ commodity =
+ gnc_general_select_get_selected(GNC_GENERAL_SELECT(widget));
- return (gnc_commodity_to_scm(commodity));
+ return (gnc_commodity_to_scm(commodity));
}
static SCM
gnc_option_get_ui_value_multichoice (GNCOption *option, GtkWidget *widget)
{
- int index;
+ int index;
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
#else
- {
- gpointer _index = g_object_get_data(G_OBJECT(widget), "gnc_multichoice_index");
- index = GPOINTER_TO_INT(_index);
- }
+ {
+ gpointer _index = g_object_get_data(G_OBJECT(widget), "gnc_multichoice_index");
+ index = GPOINTER_TO_INT(_index);
+ }
#endif
- return (gnc_option_permissible_value(option, index));
+ return (gnc_option_permissible_value(option, index));
}
static SCM
gnc_option_get_ui_value_date (GNCOption *option, GtkWidget *widget)
{
- int index;
- SCM type, val,result = SCM_UNDEFINED;
- char *subtype = gnc_option_date_option_get_subtype(option);
+ int index;
+ SCM type, val, result = SCM_UNDEFINED;
+ char *subtype = gnc_option_date_option_get_subtype(option);
- if(safe_strcmp(subtype, "relative") == 0)
- {
+ if (safe_strcmp(subtype, "relative") == 0)
+ {
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
#else
- index = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
- "gnc_multichoice_index"));
+ index = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
+ "gnc_multichoice_index"));
#endif
- type = scm_str2symbol("relative");
- val = gnc_option_permissible_value(option, index);
- result = scm_cons(type, val);
- }
- else if (safe_strcmp(subtype, "absolute") == 0)
- {
- Timespec ts;
+ type = scm_str2symbol("relative");
+ val = gnc_option_permissible_value(option, index);
+ result = scm_cons(type, val);
+ }
+ else if (safe_strcmp(subtype, "absolute") == 0)
+ {
+ Timespec ts;
- ts.tv_sec = gnc_date_edit_get_date(GNC_DATE_EDIT(widget));
- ts.tv_nsec = 0;
+ ts.tv_sec = gnc_date_edit_get_date(GNC_DATE_EDIT(widget));
+ ts.tv_nsec = 0;
- result = scm_cons(scm_str2symbol("absolute"), gnc_timespec2timepair(ts));
- }
- else if (safe_strcmp(subtype, "both") == 0)
- {
- Timespec ts;
- int index;
- SCM val;
- GList *widget_list;
- GtkWidget *ab_button, *rel_widget, *ab_widget;
+ result = scm_cons(scm_str2symbol("absolute"), gnc_timespec2timepair(ts));
+ }
+ else if (safe_strcmp(subtype, "both") == 0)
+ {
+ Timespec ts;
+ int index;
+ SCM val;
+ GList *widget_list;
+ GtkWidget *ab_button, *rel_widget, *ab_widget;
- widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
- ab_button = g_list_nth_data(widget_list, GNC_RD_WID_AB_BUTTON_POS);
- ab_widget = g_list_nth_data(widget_list, GNC_RD_WID_AB_WIDGET_POS);
- rel_widget = g_list_nth_data(widget_list, GNC_RD_WID_REL_WIDGET_POS);
- g_list_free(widget_list);
+ widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
+ ab_button = g_list_nth_data(widget_list, GNC_RD_WID_AB_BUTTON_POS);
+ ab_widget = g_list_nth_data(widget_list, GNC_RD_WID_AB_WIDGET_POS);
+ rel_widget = g_list_nth_data(widget_list, GNC_RD_WID_REL_WIDGET_POS);
+ g_list_free(widget_list);
- /* if it's an absolute date */
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ab_button)))
- {
- ts.tv_sec = gnc_date_edit_get_date(GNC_DATE_EDIT(ab_widget));
- ts.tv_nsec = 0;
- result = scm_cons(scm_str2symbol("absolute"), gnc_timespec2timepair(ts));
- }
- else
- {
+ /* if it's an absolute date */
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ab_button)))
+ {
+ ts.tv_sec = gnc_date_edit_get_date(GNC_DATE_EDIT(ab_widget));
+ ts.tv_nsec = 0;
+ result = scm_cons(scm_str2symbol("absolute"), gnc_timespec2timepair(ts));
+ }
+ else
+ {
#ifdef GTKCOMBOBOX_TOOLTIPS_WORK
- index = gtk_combo_box_get_active(GTK_COMBO_BOX(rel_widget));
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(rel_widget));
#else
- index = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(rel_widget),
- "gnc_multichoice_index"));
+ index = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(rel_widget),
+ "gnc_multichoice_index"));
#endif
- val = gnc_option_permissible_value(option, index);
- result = scm_cons(scm_str2symbol("relative"), val);
+ val = gnc_option_permissible_value(option, index);
+ result = scm_cons(scm_str2symbol("relative"), val);
+ }
}
- }
- g_free(subtype);
- return result;
+ g_free(subtype);
+ return result;
}
static SCM
gnc_option_get_ui_value_account_list (GNCOption *option, GtkWidget *widget)
{
- GncTreeViewAccount *tree;
- GList *list;
- SCM result;
+ GncTreeViewAccount *tree;
+ GList *list;
+ SCM result;
- tree = GNC_TREE_VIEW_ACCOUNT(widget);
- list = gnc_tree_view_account_get_selected_accounts (tree);
+ tree = GNC_TREE_VIEW_ACCOUNT(widget);
+ list = gnc_tree_view_account_get_selected_accounts (tree);
- /* handover list */
- result = gnc_glist_to_scm_list(list, "_p_Account");
- g_list_free(list);
- return result;
+ /* handover list */
+ result = gnc_glist_to_scm_list(list, "_p_Account");
+ g_list_free(list);
+ return result;
}
static SCM
gnc_option_get_ui_value_account_sel (GNCOption *option, GtkWidget *widget)
{
- GNCAccountSel *gas;
- Account* acc;
+ GNCAccountSel *gas;
+ Account* acc;
- gas = GNC_ACCOUNT_SEL(widget);
- acc = gnc_account_sel_get_account (gas);
+ gas = GNC_ACCOUNT_SEL(widget);
+ acc = gnc_account_sel_get_account (gas);
- if (!acc)
- return SCM_BOOL_F;
+ if (!acc)
+ return SCM_BOOL_F;
- return SWIG_NewPointerObj(acc, SWIG_TypeQuery("_p_Account"), 0);
+ return SWIG_NewPointerObj(acc, SWIG_TypeQuery("_p_Account"), 0);
}
static SCM
@@ -2860,238 +2887,277 @@
static SCM
gnc_option_get_ui_value_list (GNCOption *option, GtkWidget *widget)
{
- GtkTreeSelection *selection;
- GtkTreePath *path;
- SCM result;
- gboolean selected;
- gint num_rows;
- gint row;
+ GtkTreeSelection *selection;
+ GtkTreePath *path;
+ SCM result;
+ gboolean selected;
+ gint num_rows;
+ gint row;
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
- num_rows = gnc_option_num_permissible_values(option);
- result = scm_c_eval_string("'()");
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
+ num_rows = gnc_option_num_permissible_values(option);
+ result = scm_c_eval_string("'()");
- for (row = 0; row < num_rows; row++)
- {
- path = gtk_tree_path_new_from_indices(row, -1);
- selected = gtk_tree_selection_path_is_selected(selection, path);
- gtk_tree_path_free(path);
- if (selected)
- result = scm_cons(gnc_option_permissible_value(option, row), result);
- }
+ for (row = 0; row < num_rows; row++)
+ {
+ path = gtk_tree_path_new_from_indices(row, -1);
+ selected = gtk_tree_selection_path_is_selected(selection, path);
+ gtk_tree_path_free(path);
+ if (selected)
+ result = scm_cons(gnc_option_permissible_value(option, row), result);
+ }
- return (scm_reverse(result));
+ return (scm_reverse(result));
}
static SCM
gnc_option_get_ui_value_number_range (GNCOption *option, GtkWidget *widget)
{
- GtkSpinButton *spinner;
- gdouble value;
+ GtkSpinButton *spinner;
+ gdouble value;
- spinner = GTK_SPIN_BUTTON(widget);
+ spinner = GTK_SPIN_BUTTON(widget);
- value = gtk_spin_button_get_value(spinner);
+ value = gtk_spin_button_get_value(spinner);
- return (scm_make_real(value));
+ return (scm_make_real(value));
}
static SCM
gnc_option_get_ui_value_color (GNCOption *option, GtkWidget *widget)
{
- SCM result;
- GtkColorButton *color_button;
- GdkColor color;
- gdouble red, green, blue, alpha;
- gdouble scale;
+ SCM result;
+ GtkColorButton *color_button;
+ GdkColor color;
+ gdouble red, green, blue, alpha;
+ gdouble scale;
- ENTER("option %p(%s), widget %p",
- option, gnc_option_name(option), widget);
+ ENTER("option %p(%s), widget %p",
+ option, gnc_option_name(option), widget);
- color_button = GTK_COLOR_BUTTON(widget);
- gtk_color_button_get_color(color_button, &color);
- red = color_i16_to_d(color.red);
- green = color_i16_to_d(color.green);
- blue = color_i16_to_d(color.blue);
- alpha = color_i16_to_d(gtk_color_button_get_alpha(color_button));
+ color_button = GTK_COLOR_BUTTON(widget);
+ gtk_color_button_get_color(color_button, &color);
+ red = color_i16_to_d(color.red);
+ green = color_i16_to_d(color.green);
+ blue = color_i16_to_d(color.blue);
+ alpha = color_i16_to_d(gtk_color_button_get_alpha(color_button));
- scale = gnc_option_color_range(option);
+ scale = gnc_option_color_range(option);
- result = SCM_EOL;
- result = scm_cons(scm_make_real(alpha * scale), result);
- result = scm_cons(scm_make_real(blue * scale), result);
- result = scm_cons(scm_make_real(green * scale), result);
- result = scm_cons(scm_make_real(red * scale), result);
- return result;
+ result = SCM_EOL;
+ result = scm_cons(scm_make_real(alpha * scale), result);
+ result = scm_cons(scm_make_real(blue * scale), result);
+ result = scm_cons(scm_make_real(green * scale), result);
+ result = scm_cons(scm_make_real(red * scale), result);
+ return result;
}
static SCM
gnc_option_get_ui_value_font (GNCOption *option, GtkWidget *widget)
{
- GtkFontButton *font_button = GTK_FONT_BUTTON(widget);
- const gchar * string;
+ GtkFontButton *font_button = GTK_FONT_BUTTON(widget);
+ const gchar * string;
- string = gtk_font_button_get_font_name(font_button);
- return (scm_makfrom0str(string));
+ string = gtk_font_button_get_font_name(font_button);
+ return (scm_makfrom0str(string));
}
static SCM
gnc_option_get_ui_value_pixmap (GNCOption *option, GtkWidget *widget)
{
- gchar *string;
- SCM result;
+ gchar *string;
+ SCM result;
- string = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
- DEBUG("filename %s", string ? string : "(null)");
- result = scm_makfrom0str(string ? string : "");
- g_free(string);
- return result;
+ string = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
+ DEBUG("filename %s", string ? string : "(null)");
+ result = scm_makfrom0str(string ? string : "");
+ g_free(string);
+ return result;
}
static SCM
gnc_option_get_ui_value_radiobutton (GNCOption *option, GtkWidget *widget)
{
- gpointer _index;
- int index;
+ gpointer _index;
+ int index;
- _index = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
- index = GPOINTER_TO_INT(_index);
+ _index = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
+ index = GPOINTER_TO_INT(_index);
- return (gnc_option_permissible_value(option, index));
+ return (gnc_option_permissible_value(option, index));
}
static SCM
gnc_option_get_ui_value_dateformat (GNCOption *option, GtkWidget *widget)
{
- GNCDateFormat *gdf = GNC_DATE_FORMAT(widget);
- QofDateFormat format;
- GNCDateMonthFormat months;
- gboolean years;
- const char* custom;
+ GNCDateFormat *gdf = GNC_DATE_FORMAT(widget);
+ QofDateFormat format;
+ GNCDateMonthFormat months;
+ gboolean years;
+ const char* custom;
- format = gnc_date_format_get_format(gdf);
- months = gnc_date_format_get_months(gdf);
- years = gnc_date_format_get_years(gdf);
- custom = gnc_date_format_get_custom(gdf);
+ format = gnc_date_format_get_format(gdf);
+ months = gnc_date_format_get_months(gdf);
+ years = gnc_date_format_get_years(gdf);
+ custom = gnc_date_format_get_custom(gdf);
- return (gnc_dateformat_option_set_value(format, months, years, custom));
+ return (gnc_dateformat_option_set_value(format, months, years, custom));
}
/* INITIALIZATION */
static void gnc_options_initialize_options (void)
{
- static GNCOptionDef_t options[] = {
- { "boolean", gnc_option_set_ui_widget_boolean,
- gnc_option_set_ui_value_boolean, gnc_option_get_ui_value_boolean },
- { "string", gnc_option_set_ui_widget_string,
- gnc_option_set_ui_value_string, gnc_option_get_ui_value_string },
- { "text", gnc_option_set_ui_widget_text,
- (GNCOptionUISetValue)gnc_option_set_ui_value_text,
- gnc_option_get_ui_value_text },
- { "currency", gnc_option_set_ui_widget_currency,
- gnc_option_set_ui_value_currency, gnc_option_get_ui_value_currency },
- { "commodity", gnc_option_set_ui_widget_commodity,
- gnc_option_set_ui_value_commodity, gnc_option_get_ui_value_commodity },
- { "multichoice", gnc_option_set_ui_widget_multichoice,
- gnc_option_set_ui_value_multichoice, gnc_option_get_ui_value_multichoice },
- { "date", gnc_option_set_ui_widget_date,
- gnc_option_set_ui_value_date, gnc_option_get_ui_value_date },
- { "account-list", gnc_option_set_ui_widget_account_list,
- gnc_option_set_ui_value_account_list, gnc_option_get_ui_value_account_list },
- { "account-sel", gnc_option_set_ui_widget_account_sel,
- gnc_option_set_ui_value_account_sel, gnc_option_get_ui_value_account_sel },
- { "list", gnc_option_set_ui_widget_list,
- gnc_option_set_ui_value_list, gnc_option_get_ui_value_list },
- { "number-range", gnc_option_set_ui_widget_number_range,
- gnc_option_set_ui_value_number_range, gnc_option_get_ui_value_number_range },
- { "color", gnc_option_set_ui_widget_color,
- gnc_option_set_ui_value_color, gnc_option_get_ui_value_color },
- { "font", gnc_option_set_ui_widget_font,
- gnc_option_set_ui_value_font, gnc_option_get_ui_value_font },
- { "pixmap", gnc_option_set_ui_widget_pixmap,
- gnc_option_set_ui_value_pixmap, gnc_option_get_ui_value_pixmap },
- { "radiobutton", gnc_option_set_ui_widget_radiobutton,
- gnc_option_set_ui_value_radiobutton, gnc_option_get_ui_value_radiobutton },
- { "dateformat", gnc_option_set_ui_widget_dateformat,
- gnc_option_set_ui_value_dateformat, gnc_option_get_ui_value_dateformat },
- { "budget", gnc_option_set_ui_widget_budget,
- gnc_option_set_ui_value_budget, gnc_option_get_ui_value_budget },
- { NULL, NULL, NULL, NULL }
- };
- int i;
+ static GNCOptionDef_t options[] =
+ {
+ {
+ "boolean", gnc_option_set_ui_widget_boolean,
+ gnc_option_set_ui_value_boolean, gnc_option_get_ui_value_boolean
+ },
+ {
+ "string", gnc_option_set_ui_widget_string,
+ gnc_option_set_ui_value_string, gnc_option_get_ui_value_string
+ },
+ {
+ "text", gnc_option_set_ui_widget_text,
+ (GNCOptionUISetValue)gnc_option_set_ui_value_text,
+ gnc_option_get_ui_value_text
+ },
+ {
+ "currency", gnc_option_set_ui_widget_currency,
+ gnc_option_set_ui_value_currency, gnc_option_get_ui_value_currency
+ },
+ {
+ "commodity", gnc_option_set_ui_widget_commodity,
+ gnc_option_set_ui_value_commodity, gnc_option_get_ui_value_commodity
+ },
+ {
+ "multichoice", gnc_option_set_ui_widget_multichoice,
+ gnc_option_set_ui_value_multichoice, gnc_option_get_ui_value_multichoice
+ },
+ {
+ "date", gnc_option_set_ui_widget_date,
+ gnc_option_set_ui_value_date, gnc_option_get_ui_value_date
+ },
+ {
+ "account-list", gnc_option_set_ui_widget_account_list,
+ gnc_option_set_ui_value_account_list, gnc_option_get_ui_value_account_list
+ },
+ {
+ "account-sel", gnc_option_set_ui_widget_account_sel,
+ gnc_option_set_ui_value_account_sel, gnc_option_get_ui_value_account_sel
+ },
+ {
+ "list", gnc_option_set_ui_widget_list,
+ gnc_option_set_ui_value_list, gnc_option_get_ui_value_list
+ },
+ {
+ "number-range", gnc_option_set_ui_widget_number_range,
+ gnc_option_set_ui_value_number_range, gnc_option_get_ui_value_number_range
+ },
+ {
+ "color", gnc_option_set_ui_widget_color,
+ gnc_option_set_ui_value_color, gnc_option_get_ui_value_color
+ },
+ {
+ "font", gnc_option_set_ui_widget_font,
+ gnc_option_set_ui_value_font, gnc_option_get_ui_value_font
+ },
+ {
+ "pixmap", gnc_option_set_ui_widget_pixmap,
+ gnc_option_set_ui_value_pixmap, gnc_option_get_ui_value_pixmap
+ },
+ {
+ "radiobutton", gnc_option_set_ui_widget_radiobutton,
+ gnc_option_set_ui_value_radiobutton, gnc_option_get_ui_value_radiobutton
+ },
+ {
+ "dateformat", gnc_option_set_ui_widget_dateformat,
+ gnc_option_set_ui_value_dateformat, gnc_option_get_ui_value_dateformat
+ },
+ {
+ "budget", gnc_option_set_ui_widget_budget,
+ gnc_option_set_ui_value_budget, gnc_option_get_ui_value_budget
+ },
+ { NULL, NULL, NULL, NULL }
+ };
+ int i;
- for (i = 0; options[i].option_name; i++)
- gnc_options_ui_register_option (&(options[i]));
+ for (i = 0; options[i].option_name; i++)
+ gnc_options_ui_register_option (&(options[i]));
}
/* Register a new option type in the UI */
void gnc_options_ui_register_option (GNCOptionDef_t *option)
{
- g_return_if_fail (optionTable);
- g_return_if_fail (option);
+ g_return_if_fail (optionTable);
+ g_return_if_fail (option);
- /* FIXME: should protect against repeat insertion. */
- g_hash_table_insert (optionTable, (gpointer)(option->option_name), option);
+ /* FIXME: should protect against repeat insertion. */
+ g_hash_table_insert (optionTable, (gpointer)(option->option_name), option);
}
GNCOptionDef_t * gnc_options_ui_get_option (const char *option_name)
{
- GNCOptionDef_t *retval;
- g_return_val_if_fail (optionTable, NULL);
- g_return_val_if_fail (option_name, NULL);
+ GNCOptionDef_t *retval;
+ g_return_val_if_fail (optionTable, NULL);
+ g_return_val_if_fail (option_name, NULL);
- retval = g_hash_table_lookup (optionTable, option_name);
- if (!retval) {
- PERR("Option lookup for type '%s' failed!", option_name);
- }
- return retval;
+ retval = g_hash_table_lookup (optionTable, option_name);
+ if (!retval)
+ {
+ PERR("Option lookup for type '%s' failed!", option_name);
+ }
+ return retval;
}
void gnc_options_ui_initialize (void)
{
- SWIG_GetModule(NULL); /* Work-around for SWIG bug. */
- // gnc_options_register_stocks ();
- g_return_if_fail (optionTable == NULL);
- optionTable = g_hash_table_new (g_str_hash, g_str_equal);
+ SWIG_GetModule(NULL); /* Work-around for SWIG bug. */
+ // gnc_options_register_stocks ();
+ g_return_if_fail (optionTable == NULL);
+ optionTable = g_hash_table_new (g_str_hash, g_str_equal);
- /* add known types */
- gnc_options_initialize_options ();
+ /* add known types */
+ gnc_options_initialize_options ();
}
struct scm_cb
{
- SCM apply_cb;
- SCM close_cb;
+ SCM apply_cb;
+ SCM close_cb;
};
static void
scm_apply_cb (GNCOptionWin *win, gpointer data)
{
- struct scm_cb *cbdata = data;
+ struct scm_cb *cbdata = data;
- if (gnc_option_db_get_changed (win->option_db)) {
- gnc_option_db_commit (win->option_db);
- if (cbdata->apply_cb != SCM_BOOL_F) {
- scm_call_0 (cbdata->apply_cb);
+ if (gnc_option_db_get_changed (win->option_db))
+ {
+ gnc_option_db_commit (win->option_db);
+ if (cbdata->apply_cb != SCM_BOOL_F)
+ {
+ scm_call_0 (cbdata->apply_cb);
+ }
}
- }
}
static void
scm_close_cb (GNCOptionWin *win, gpointer data)
{
- struct scm_cb *cbdata = data;
+ struct scm_cb *cbdata = data;
- if (cbdata->close_cb != SCM_BOOL_F) {
- scm_call_0 (cbdata->close_cb);
- scm_gc_unprotect_object (cbdata->close_cb);
- }
+ if (cbdata->close_cb != SCM_BOOL_F)
+ {
+ scm_call_0 (cbdata->close_cb);
+ scm_gc_unprotect_object (cbdata->close_cb);
+ }
- if (cbdata->apply_cb != SCM_BOOL_F)
- scm_gc_unprotect_object (cbdata->apply_cb);
+ if (cbdata->apply_cb != SCM_BOOL_F)
+ scm_gc_unprotect_object (cbdata->apply_cb);
- g_free (cbdata);
+ g_free (cbdata);
}
/* Both apply_cb and close_cb should be scheme functions with 0 arguments.
@@ -3099,20 +3165,20 @@
*/
void
gnc_options_dialog_set_scm_callbacks (GNCOptionWin *win, SCM apply_cb,
- SCM close_cb)
+ SCM close_cb)
{
- struct scm_cb *cbdata;
+ struct scm_cb *cbdata;
- cbdata = g_new0 (struct scm_cb, 1);
- cbdata->apply_cb = apply_cb;
- cbdata->close_cb = close_cb;
+ cbdata = g_new0 (struct scm_cb, 1);
+ cbdata->apply_cb = apply_cb;
+ cbdata->close_cb = close_cb;
- if (apply_cb != SCM_BOOL_F)
- scm_gc_protect_object (cbdata->apply_cb);
+ if (apply_cb != SCM_BOOL_F)
+ scm_gc_protect_object (cbdata->apply_cb);
- if (close_cb != SCM_BOOL_F)
- scm_gc_protect_object (cbdata->close_cb);
+ if (close_cb != SCM_BOOL_F)
+ scm_gc_protect_object (cbdata->close_cb);
- gnc_options_dialog_set_apply_cb (win, scm_apply_cb, cbdata);
- gnc_options_dialog_set_close_cb (win, scm_close_cb, cbdata);
+ gnc_options_dialog_set_apply_cb (win, scm_apply_cb, cbdata);
+ gnc_options_dialog_set_close_cb (win, scm_close_cb, cbdata);
}
Modified: gnucash/trunk/src/gnome-utils/dialog-options.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-options.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-options.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -52,9 +52,9 @@
void gnc_options_dialog_set_close_cb(GNCOptionWin * win,
GNCOptionWinCallback thunk,
gpointer cb_data);
-
+
void gnc_options_dialog_set_global_help_cb(GNCOptionWinCallback thunk,
- gpointer cb_data);
+ gpointer cb_data);
void gnc_options_dialog_build_contents(GNCOptionWin *win,
GNCOptionDB *odb);
@@ -63,35 +63,36 @@
* References to these functions will be held until the close_cb is called
*/
void gnc_options_dialog_set_scm_callbacks (GNCOptionWin *win,
- SCM apply_cb,
- SCM close_cb);
+ SCM apply_cb,
+ SCM close_cb);
/*****************************************************************/
/* Option Registration */
/* Function to set the UI widget based upon the option */
typedef GtkWidget *
- (*GNCOptionUISetWidget) (GNCOption *option, GtkBox *page_box,
- GtkTooltips *tooltips,
- char *name, char *documentation,
- /* Return values */
- GtkWidget **enclosing, gboolean *packed);
+(*GNCOptionUISetWidget) (GNCOption *option, GtkBox *page_box,
+ GtkTooltips *tooltips,
+ char *name, char *documentation,
+ /* Return values */
+ GtkWidget **enclosing, gboolean *packed);
/* Function to set the UI Value for a particular option */
typedef gboolean
- (*GNCOptionUISetValue) (GNCOption *option, gboolean use_default,
- GtkWidget *widget, SCM value);
+(*GNCOptionUISetValue) (GNCOption *option, gboolean use_default,
+ GtkWidget *widget, SCM value);
/* Function to get the UI Value for a particular option */
typedef SCM
- (*GNCOptionUIGetValue) (GNCOption *option, GtkWidget *widget);
+(*GNCOptionUIGetValue) (GNCOption *option, GtkWidget *widget);
-typedef struct gnc_option_def {
- const char * option_name;
- GNCOptionUISetWidget set_widget;
- GNCOptionUISetValue set_value;
- GNCOptionUIGetValue get_value;
+typedef struct gnc_option_def
+{
+ const char * option_name;
+ GNCOptionUISetWidget set_widget;
+ GNCOptionUISetValue set_value;
+ GNCOptionUIGetValue get_value;
} GNCOptionDef_t;
Modified: gnucash/trunk/src/gnome-utils/dialog-preferences.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-preferences.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-preferences.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -92,20 +92,21 @@
/** This data structure holds the information for a single addition to
* the preferences dialog. */
-typedef struct addition_t {
- /** The relative name of the file where the glade data for this
- * addition can be found. */
- gchar *filename;
- /** The name of the widget within the glade data file that should be
- * added to the preferences dialog. This should point to a
- * GtkTable widget that has four columns. */
- gchar *widgetname;
- /** The name of the tab within the preferences dialog where these
- * widgets should be placed. */
- gchar *tabname;
- /** TRUE if this addition represents a full page in the preferences
- * dialog. FALSE if this page may be combined with other pages. */
- gboolean full_page;
+typedef struct addition_t
+{
+ /** The relative name of the file where the glade data for this
+ * addition can be found. */
+ gchar *filename;
+ /** The name of the widget within the glade data file that should be
+ * added to the preferences dialog. This should point to a
+ * GtkTable widget that has four columns. */
+ gchar *widgetname;
+ /** The name of the tab within the preferences dialog where these
+ * widgets should be placed. */
+ gchar *tabname;
+ /** TRUE if this addition represents a full page in the preferences
+ * dialog. FALSE if this page may be combined with other pages. */
+ gboolean full_page;
} addition;
/** A list of all additions that have been made to the preferences
@@ -127,22 +128,22 @@
static void
gnc_account_separator_prefs_cb (GConfEntry *unused, GtkWidget *dialog)
{
- GtkWidget *label;
- gchar *sample;
+ GtkWidget *label;
+ gchar *sample;
- label = gnc_glade_lookup_widget(dialog, "sample_account");
- /* Translators: Both %s will be the account separator character; the
- resulting string is a demonstration how the account separator
- character will look like. You can replace these three account
- names with other account names that are more suitable for your
- language - just keep in mind to have exactly two %s in your
- translation. */
- sample = g_strdup_printf(_("Income%sSalary%sTaxable"),
- gnc_get_account_separator_string(),
- gnc_get_account_separator_string());
- DEBUG(" Label set to '%s'", sample);
- gtk_label_set_text(GTK_LABEL(label), sample);
- g_free(sample);
+ label = gnc_glade_lookup_widget(dialog, "sample_account");
+ /* Translators: Both %s will be the account separator character; the
+ resulting string is a demonstration how the account separator
+ character will look like. You can replace these three account
+ names with other account names that are more suitable for your
+ language - just keep in mind to have exactly two %s in your
+ translation. */
+ sample = g_strdup_printf(_("Income%sSalary%sTaxable"),
+ gnc_get_account_separator_string(),
+ gnc_get_account_separator_string());
+ DEBUG(" Label set to '%s'", sample);
+ gtk_label_set_text(GTK_LABEL(label), sample);
+ g_free(sample);
}
@@ -159,9 +160,9 @@
*/
static gint
gnc_prefs_compare_addins (addition *a,
- addition *b)
+ addition *b)
{
- return g_utf8_collate(a->tabname, b->tabname);
+ return g_utf8_collate(a->tabname, b->tabname);
}
@@ -185,69 +186,78 @@
*/
static void
gnc_preferences_add_page_internal (const gchar *filename,
- const gchar *widgetname,
- const gchar *tabname,
- gboolean full_page)
+ const gchar *widgetname,
+ const gchar *tabname,
+ gboolean full_page)
{
- addition *add_in, *preexisting;
- gboolean error = FALSE;
- GSList *ptr;
+ addition *add_in, *preexisting;
+ gboolean error = FALSE;
+ GSList *ptr;
- ENTER("file %s, widget %s, tab %s full page %d",
- filename, widgetname, tabname, full_page);
+ ENTER("file %s, widget %s, tab %s full page %d",
+ filename, widgetname, tabname, full_page);
- add_in = g_malloc(sizeof(addition));
- if (add_in == NULL) {
- g_critical("Unable to allocate memory.\n");
- LEAVE("no memory");
- return;
- }
+ add_in = g_malloc(sizeof(addition));
+ if (add_in == NULL)
+ {
+ g_critical("Unable to allocate memory.\n");
+ LEAVE("no memory");
+ return;
+ }
- add_in->filename = g_strdup(filename);
- add_in->widgetname = g_strdup(widgetname);
- add_in->tabname = g_strdup(tabname);
- add_in->full_page = full_page;
- if (!add_in->filename || !add_in->widgetname || !add_in->tabname) {
- g_critical("Unable to allocate memory.\n");
- g_free(add_in->filename);
- g_free(add_in->widgetname);
- g_free(add_in->tabname);
- g_free(add_in);
- LEAVE("no memory");
- return;
- }
+ add_in->filename = g_strdup(filename);
+ add_in->widgetname = g_strdup(widgetname);
+ add_in->tabname = g_strdup(tabname);
+ add_in->full_page = full_page;
+ if (!add_in->filename || !add_in->widgetname || !add_in->tabname)
+ {
+ g_critical("Unable to allocate memory.\n");
+ g_free(add_in->filename);
+ g_free(add_in->widgetname);
+ g_free(add_in->tabname);
+ g_free(add_in);
+ LEAVE("no memory");
+ return;
+ }
- ptr = g_slist_find_custom(add_ins, add_in, (GCompareFunc)gnc_prefs_compare_addins);
- if (ptr) {
- /* problem? */
- preexisting = ptr->data;
+ ptr = g_slist_find_custom(add_ins, add_in, (GCompareFunc)gnc_prefs_compare_addins);
+ if (ptr)
+ {
+ /* problem? */
+ preexisting = ptr->data;
- if (preexisting->full_page) {
- g_warning("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/full)",
- add_in->tabname, add_in->filename, add_in->widgetname,
- add_in->full_page ? "full" : "partial",
- preexisting->tabname, preexisting->filename, preexisting->widgetname);
- error = TRUE;
- } else if (add_in->full_page) {
- g_warning("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/partial)",
- add_in->tabname, add_in->filename, add_in->widgetname,
- add_in->full_page ? "full" : "partial",
- preexisting->tabname, preexisting->filename, preexisting->widgetname);
- error = TRUE;
+ if (preexisting->full_page)
+ {
+ g_warning("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/full)",
+ add_in->tabname, add_in->filename, add_in->widgetname,
+ add_in->full_page ? "full" : "partial",
+ preexisting->tabname, preexisting->filename, preexisting->widgetname);
+ error = TRUE;
+ }
+ else if (add_in->full_page)
+ {
+ g_warning("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/partial)",
+ add_in->tabname, add_in->filename, add_in->widgetname,
+ add_in->full_page ? "full" : "partial",
+ preexisting->tabname, preexisting->filename, preexisting->widgetname);
+ error = TRUE;
+ }
}
- }
- if (error) {
- g_free(add_in->filename);
- g_free(add_in->widgetname);
- g_free(add_in->tabname);
- g_free(add_in);
- LEAVE("err");
- return;
- } else {
- add_ins = g_slist_append(add_ins, add_in);
- }
- LEAVE("");
+ if (error)
+ {
+ g_free(add_in->filename);
+ g_free(add_in->widgetname);
+ g_free(add_in->tabname);
+ g_free(add_in);
+ LEAVE("err");
+ return;
+ }
+ else
+ {
+ add_ins = g_slist_append(add_ins, add_in);
+ }
+ LEAVE("");
}
@@ -259,10 +269,10 @@
* of its own preferences. */
void
gnc_preferences_add_page (const gchar *filename,
- const gchar *widgetname,
- const gchar *tabname)
+ const gchar *widgetname,
+ const gchar *tabname)
{
- gnc_preferences_add_page_internal(filename, widgetname, tabname, TRUE);
+ gnc_preferences_add_page_internal(filename, widgetname, tabname, TRUE);
}
@@ -274,10 +284,10 @@
* "Data Import" page with QIF and other methods. */
void
gnc_preferences_add_to_page (const gchar *filename,
- const gchar *widgetname,
- const gchar *tabname)
+ const gchar *widgetname,
+ const gchar *tabname)
{
- gnc_preferences_add_page_internal(filename, widgetname, tabname, FALSE);
+ gnc_preferences_add_page_internal(filename, widgetname, tabname, FALSE);
}
/****************************************/
@@ -299,21 +309,22 @@
* callback from gconf. */
static void
gnc_prefs_build_widget_table (GladeXML *xml,
- GtkWidget *dialog)
+ GtkWidget *dialog)
{
- GHashTable *table;
- GList *interesting, *runner;
- const gchar *name;
- GtkWidget *widget;
+ GHashTable *table;
+ GList *interesting, *runner;
+ const gchar *name;
+ GtkWidget *widget;
- table = g_object_get_data(G_OBJECT(dialog), WIDGET_HASH);
- interesting = glade_xml_get_widget_prefix(xml, "gconf");
- for (runner = interesting; runner; runner = g_list_next(runner)) {
- widget = runner->data;
- name = gtk_widget_get_name(widget);
- g_hash_table_insert(table, (gchar *)name, widget);
- }
- g_list_free(interesting);
+ table = g_object_get_data(G_OBJECT(dialog), WIDGET_HASH);
+ interesting = glade_xml_get_widget_prefix(xml, "gconf");
+ for (runner = interesting; runner; runner = g_list_next(runner))
+ {
+ widget = runner->data;
+ name = gtk_widget_get_name(widget);
+ g_hash_table_insert(table, (gchar *)name, widget);
+ }
+ g_list_free(interesting);
}
/** This data structure is used while building the preferences dialog
@@ -321,46 +332,49 @@
* construction. It maintains state information between invocations
* of the function gnc_prefs_move_table_entry which is called via a
* foreach loop over each item in the table. */
-struct copy_data {
- /** The table being copied from. */
- GtkTable *table_from;
- /** The table being copied to. */
- GtkTable *table_to;
- /** The number of lines offset from the old table to the new
- * table. */
- gint row_offset;
+struct copy_data
+{
+ /** The table being copied from. */
+ GtkTable *table_from;
+ /** The table being copied to. */
+ GtkTable *table_to;
+ /** The number of lines offset from the old table to the new
+ * table. */
+ gint row_offset;
};
static GtkWidget *
gnc_prefs_find_page (GtkNotebook *notebook, const gchar *name)
{
- int n_pages, i;
- GtkWidget *child;
- const gchar *child_name;
+ int n_pages, i;
+ GtkWidget *child;
+ const gchar *child_name;
- g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
- g_return_val_if_fail (name, NULL);
+ g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
+ g_return_val_if_fail (name, NULL);
- ENTER("");
+ ENTER("");
- n_pages = gtk_notebook_get_n_pages (notebook);
+ n_pages = gtk_notebook_get_n_pages (notebook);
- for (i=0; i<n_pages; i++) {
- child = gtk_notebook_get_nth_page (notebook, i);
- g_return_val_if_fail (child, NULL);
+ for (i = 0; i < n_pages; i++)
+ {
+ child = gtk_notebook_get_nth_page (notebook, i);
+ g_return_val_if_fail (child, NULL);
- child_name = gtk_notebook_get_tab_label_text (notebook, child);
- g_return_val_if_fail (child_name, NULL);
+ child_name = gtk_notebook_get_tab_label_text (notebook, child);
+ g_return_val_if_fail (child_name, NULL);
- if (g_utf8_collate (name, child_name) == 0) {
- LEAVE("found at index: %d", i);
- return child;
+ if (g_utf8_collate (name, child_name) == 0)
+ {
+ LEAVE("found at index: %d", i);
+ return child;
+ }
}
- }
- LEAVE("not found");
- return NULL;
+ LEAVE("not found");
+ return NULL;
}
@@ -378,31 +392,31 @@
*/
static void
gnc_prefs_move_table_entry (GtkWidget *child,
- gpointer data)
+ gpointer data)
{
- struct copy_data *copydata = data;
- GtkAttachOptions x_opts, y_opts;
- gint bottom, top, left, right, x_pad, y_pad;
+ struct copy_data *copydata = data;
+ GtkAttachOptions x_opts, y_opts;
+ gint bottom, top, left, right, x_pad, y_pad;
- ENTER("child %p, copy data %p", child, data);
- gtk_container_child_get(GTK_CONTAINER(copydata->table_from), child,
- "bottom-attach", &bottom,
- "left-attach", &left,
- "right-attach", &right,
- "top-attach", &top,
- "x-options", &x_opts,
- "x-padding", &x_pad,
- "y-options", &y_opts,
- "y-padding", &y_pad,
- NULL);
+ ENTER("child %p, copy data %p", child, data);
+ gtk_container_child_get(GTK_CONTAINER(copydata->table_from), child,
+ "bottom-attach", &bottom,
+ "left-attach", &left,
+ "right-attach", &right,
+ "top-attach", &top,
+ "x-options", &x_opts,
+ "x-padding", &x_pad,
+ "y-options", &y_opts,
+ "y-padding", &y_pad,
+ NULL);
- gtk_widget_ref(child);
- gtk_container_remove(GTK_CONTAINER(copydata->table_from), child);
- gtk_table_attach(copydata->table_to, child, left, right,
- top + copydata->row_offset, bottom + copydata->row_offset,
- x_opts, y_opts, x_pad, y_pad);
- gtk_widget_unref(child);
- LEAVE(" ");
+ gtk_widget_ref(child);
+ gtk_container_remove(GTK_CONTAINER(copydata->table_from), child);
+ gtk_table_attach(copydata->table_to, child, left, right,
+ top + copydata->row_offset, bottom + copydata->row_offset,
+ x_opts, y_opts, x_pad, y_pad);
+ gtk_widget_unref(child);
+ LEAVE(" ");
}
@@ -419,134 +433,141 @@
*/
static void
gnc_preferences_build_page (gpointer data,
- gpointer user_data)
+ gpointer user_data)
{
- GladeXML *xml;
- GtkWidget *dialog, *existing_content, *new_content, *label;
- GtkNotebook *notebook;
- addition *add_in;
- struct copy_data copydata;
- gint rows, cols;
+ GladeXML *xml;
+ GtkWidget *dialog, *existing_content, *new_content, *label;
+ GtkNotebook *notebook;
+ addition *add_in;
+ struct copy_data copydata;
+ gint rows, cols;
- ENTER("add_in %p, dialog %p", data, user_data);
- add_in = (addition *)data;
- dialog = user_data;
+ ENTER("add_in %p, dialog %p", data, user_data);
+ add_in = (addition *)data;
+ dialog = user_data;
- DEBUG("Opening %s to get %s:", add_in->filename, add_in->widgetname);
- xml = gnc_glade_xml_new(add_in->filename, add_in->widgetname);
- new_content = glade_xml_get_widget(xml, add_in->widgetname);
- DEBUG("done");
+ DEBUG("Opening %s to get %s:", add_in->filename, add_in->widgetname);
+ xml = gnc_glade_xml_new(add_in->filename, add_in->widgetname);
+ new_content = glade_xml_get_widget(xml, add_in->widgetname);
+ DEBUG("done");
- /* Add to the list of interesting widgets */
- gnc_prefs_build_widget_table(xml, dialog);
+ /* Add to the list of interesting widgets */
+ gnc_prefs_build_widget_table(xml, dialog);
- /* Clean up the xml data structure when the dialog is destroyed */
- g_object_set_data_full(G_OBJECT(dialog), add_in->filename,
- xml, g_object_unref);
+ /* Clean up the xml data structure when the dialog is destroyed */
+ g_object_set_data_full(G_OBJECT(dialog), add_in->filename,
+ xml, g_object_unref);
- /* Connect the signals in this glade file. The dialog is passed in
- * so the the callback can find "interesting" widgets from other
- * glade files if necessary (via the WIDGET_HASH hash
- * table). Widgets from the same glade file can be found with the
- * usual gnc_glade_lookup_widget() function. */
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- dialog);
+ /* Connect the signals in this glade file. The dialog is passed in
+ * so the the callback can find "interesting" widgets from other
+ * glade files if necessary (via the WIDGET_HASH hash
+ * table). Widgets from the same glade file can be found with the
+ * usual gnc_glade_lookup_widget() function. */
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ dialog);
- /* Prepare for recursion */
- notebook = g_object_get_data(G_OBJECT(dialog), NOTEBOOK);
+ /* Prepare for recursion */
+ notebook = g_object_get_data(G_OBJECT(dialog), NOTEBOOK);
- if (add_in->full_page) {
- label = gtk_label_new(add_in->tabname);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- gtk_notebook_append_page(notebook, new_content, label);
- LEAVE("appended page");
- return;
- }
+ if (add_in->full_page)
+ {
+ label = gtk_label_new(add_in->tabname);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_notebook_append_page(notebook, new_content, label);
+ LEAVE("appended page");
+ return;
+ }
- /* Copied tables must match the size of the main table */
- if (!GTK_IS_TABLE(new_content)) {
- g_critical("The object name %s in file %s is not a GtkTable. It cannot "
- "be added to the preferences dialog.",
- add_in->widgetname, add_in->filename);
- LEAVE("");
- return;
- }
- g_object_get(G_OBJECT(new_content), "n-columns", &cols, NULL);
- if (cols != 4) {
- g_critical("The table %s in file %s does not have four columns. It cannot "
- "be added to the preferences dialog.",
- add_in->widgetname, add_in->filename);
- LEAVE("");
- return;
- }
+ /* Copied tables must match the size of the main table */
+ if (!GTK_IS_TABLE(new_content))
+ {
+ g_critical("The object name %s in file %s is not a GtkTable. It cannot "
+ "be added to the preferences dialog.",
+ add_in->widgetname, add_in->filename);
+ LEAVE("");
+ return;
+ }
+ g_object_get(G_OBJECT(new_content), "n-columns", &cols, NULL);
+ if (cols != 4)
+ {
+ g_critical("The table %s in file %s does not have four columns. It cannot "
+ "be added to the preferences dialog.",
+ add_in->widgetname, add_in->filename);
+ LEAVE("");
+ return;
+ }
- /* Does the page exist or must we create it */
- existing_content = gnc_prefs_find_page(notebook, add_in->tabname);
+ /* Does the page exist or must we create it */
+ existing_content = gnc_prefs_find_page(notebook, add_in->tabname);
- if (!existing_content) {
- /* No existing content with this name. Create a blank page */
- rows = 0;
- existing_content = gtk_table_new(0, 4, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(existing_content), 6);
- label = gtk_label_new(add_in->tabname);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- gtk_notebook_append_page(notebook, existing_content, label);
- gtk_widget_show_all(existing_content);
- DEBUG("created new page %s, appended it", add_in->tabname);
- } else {
- g_object_get(G_OBJECT(existing_content), "n-rows", &rows, NULL);
- DEBUG("found existing page %s", add_in->tabname);
- }
+ if (!existing_content)
+ {
+ /* No existing content with this name. Create a blank page */
+ rows = 0;
+ existing_content = gtk_table_new(0, 4, FALSE);
+ gtk_container_set_border_width(GTK_CONTAINER(existing_content), 6);
+ label = gtk_label_new(add_in->tabname);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_notebook_append_page(notebook, existing_content, label);
+ gtk_widget_show_all(existing_content);
+ DEBUG("created new page %s, appended it", add_in->tabname);
+ }
+ else
+ {
+ g_object_get(G_OBJECT(existing_content), "n-rows", &rows, NULL);
+ DEBUG("found existing page %s", add_in->tabname);
+ }
- /* Maybe add a spacer row */
- DEBUG("rows is %d", rows);
- if (rows > 0) {
- label = gtk_label_new("");
- gtk_widget_show(label);
- gtk_table_attach(GTK_TABLE(existing_content), label, 0, 1, rows, rows+1,
- GTK_FILL, GTK_FILL, 0, 0);
- rows++;
- }
+ /* Maybe add a spacer row */
+ DEBUG("rows is %d", rows);
+ if (rows > 0)
+ {
+ label = gtk_label_new("");
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(existing_content), label, 0, 1, rows, rows + 1,
+ GTK_FILL, GTK_FILL, 0, 0);
+ rows++;
+ }
- /* Now copy all the entries in the table */
- copydata.table_from = GTK_TABLE(new_content);
- copydata.table_to = GTK_TABLE(existing_content);
- copydata.row_offset = rows;
- gtk_container_foreach(GTK_CONTAINER(new_content), gnc_prefs_move_table_entry,
- ©data);
+ /* Now copy all the entries in the table */
+ copydata.table_from = GTK_TABLE(new_content);
+ copydata.table_to = GTK_TABLE(existing_content);
+ copydata.row_offset = rows;
+ gtk_container_foreach(GTK_CONTAINER(new_content), gnc_prefs_move_table_entry,
+ ©data);
- g_object_ref_sink(new_content);
- LEAVE("added content to page");
+ g_object_ref_sink(new_content);
+ LEAVE("added content to page");
}
static gint
tab_cmp (GtkWidget *page_a, GtkWidget *page_b, GtkNotebook *notebook)
{
- return g_utf8_collate (gtk_notebook_get_tab_label_text (notebook, page_a),
- gtk_notebook_get_tab_label_text (notebook, page_b));
+ return g_utf8_collate (gtk_notebook_get_tab_label_text (notebook, page_a),
+ gtk_notebook_get_tab_label_text (notebook, page_b));
}
static void
gnc_prefs_sort_pages (GtkNotebook *notebook)
{
- gint n_pages, i;
- GList *tabs=NULL, *iter=NULL;
+ gint n_pages, i;
+ GList *tabs = NULL, *iter = NULL;
- g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
+ g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
- /* gather tabs */
- n_pages = gtk_notebook_get_n_pages (notebook);
- for (i=n_pages-1; i>=0; i--)
- tabs = g_list_prepend (tabs, gtk_notebook_get_nth_page (notebook, i));
+ /* gather tabs */
+ n_pages = gtk_notebook_get_n_pages (notebook);
+ for (i = n_pages - 1; i >= 0; i--)
+ tabs = g_list_prepend (tabs, gtk_notebook_get_nth_page (notebook, i));
- /* sort in local copy */
- tabs = g_list_sort_with_data (tabs, (GCompareDataFunc) tab_cmp, notebook);
+ /* sort in local copy */
+ tabs = g_list_sort_with_data (tabs, (GCompareDataFunc) tab_cmp, notebook);
- /* reorder tabs */
- for (i=0, iter=tabs; iter; i++, iter=iter->next)
- gtk_notebook_reorder_child (notebook, GTK_WIDGET (iter->data), i);
+ /* reorder tabs */
+ for (i = 0, iter = tabs; iter; i++, iter = iter->next)
+ gtk_notebook_reorder_child (notebook, GTK_WIDGET (iter->data), i);
- g_list_free (tabs);
+ g_list_free (tabs);
}
@@ -568,14 +589,14 @@
gnc_prefs_font_button_user_cb (GtkFontButton *fb,
gpointer user_data)
{
- const gchar *key, *font;
+ const gchar *key, *font;
- g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
- key = gtk_widget_get_name(GTK_WIDGET(fb)) + PREFIX_LEN;
- font = gtk_font_button_get_font_name(fb);
+ g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+ key = gtk_widget_get_name(GTK_WIDGET(fb)) + PREFIX_LEN;
+ font = gtk_font_button_get_font_name(fb);
- DEBUG("font_button %s set", key);
- gnc_gconf_set_string(key, NULL, font, NULL);
+ DEBUG("font_button %s set", key);
+ gnc_gconf_set_string(key, NULL, font, NULL);
}
@@ -592,20 +613,20 @@
gnc_prefs_font_button_gconf_cb (GtkFontButton *fb,
GConfEntry *entry)
{
- const gchar *font;
+ const gchar *font;
- g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
- ENTER("fb %p, entry %p", fb, entry);
+ g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+ ENTER("fb %p, entry %p", fb, entry);
- font = gconf_value_get_string(entry->value);
+ font = gconf_value_get_string(entry->value);
- g_signal_handlers_block_by_func(G_OBJECT(fb),
- G_CALLBACK(gnc_prefs_font_button_user_cb),
- NULL);
- gtk_font_button_set_font_name(fb, font);
- g_signal_handlers_unblock_by_func(G_OBJECT(fb),
- G_CALLBACK(gnc_prefs_font_button_user_cb), NULL);
- LEAVE(" ");
+ g_signal_handlers_block_by_func(G_OBJECT(fb),
+ G_CALLBACK(gnc_prefs_font_button_user_cb),
+ NULL);
+ gtk_font_button_set_font_name(fb, font);
+ g_signal_handlers_unblock_by_func(G_OBJECT(fb),
+ G_CALLBACK(gnc_prefs_font_button_user_cb), NULL);
+ LEAVE(" ");
}
@@ -619,23 +640,23 @@
static void
gnc_prefs_connect_font_button (GtkFontButton *fb)
{
- const gchar *name;
- gchar *font;
+ const gchar *name;
+ gchar *font;
- g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+ g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
- /* Lookup font name based upon gconf setting */
- name = gtk_widget_get_name(GTK_WIDGET(fb)) + PREFIX_LEN;
- font = gnc_gconf_get_string(name, NULL, NULL);
+ /* Lookup font name based upon gconf setting */
+ name = gtk_widget_get_name(GTK_WIDGET(fb)) + PREFIX_LEN;
+ font = gnc_gconf_get_string(name, NULL, NULL);
- gtk_font_button_set_font_name(fb, font);
- DEBUG(" font_button %s set", name);
- g_free(font);
+ gtk_font_button_set_font_name(fb, font);
+ DEBUG(" font_button %s set", name);
+ g_free(font);
- g_signal_connect(G_OBJECT(fb), "font_set",
- G_CALLBACK(gnc_prefs_font_button_user_cb), NULL);
+ g_signal_connect(G_OBJECT(fb), "font_set",
+ G_CALLBACK(gnc_prefs_font_button_user_cb), NULL);
- gtk_widget_show_all(GTK_WIDGET(fb));
+ gtk_widget_show_all(GTK_WIDGET(fb));
}
@@ -655,24 +676,24 @@
*/
static void
gnc_prefs_radio_button_user_cb (GtkRadioButton *button,
- gpointer user_data)
+ gpointer user_data)
{
- gchar *key, *button_name;
- gboolean active;
+ gchar *key, *button_name;
+ gboolean active;
- g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
- active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
- if (!active)
- return;
+ g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+ active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+ if (!active)
+ return;
- /* Copy the widget name and split into gconf key and button value parts */
- key = g_strdup(gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN);
- button_name = strrchr(key, '/');
- *button_name++ = '\0';
+ /* Copy the widget name and split into gconf key and button value parts */
+ key = g_strdup(gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN);
+ button_name = strrchr(key, '/');
+ *button_name++ = '\0';
- DEBUG("Radio button group %s now set to %s", key, button_name);
- gnc_gconf_set_string(key, NULL, button_name, NULL);
- g_free(key);
+ DEBUG("Radio button group %s now set to %s", key, button_name);
+ gnc_gconf_set_string(key, NULL, button_name, NULL);
+ g_free(key);
}
@@ -687,15 +708,15 @@
static void
gnc_prefs_radio_button_gconf_cb (GtkRadioButton *button)
{
- g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
- ENTER("button %p", button);
- g_signal_handlers_block_by_func(G_OBJECT(button),
- G_CALLBACK(gnc_prefs_radio_button_user_cb),
- NULL);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
- g_signal_handlers_unblock_by_func(G_OBJECT(button),
- G_CALLBACK(gnc_prefs_radio_button_user_cb), NULL);
- LEAVE(" ");
+ g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+ ENTER("button %p", button);
+ g_signal_handlers_block_by_func(G_OBJECT(button),
+ G_CALLBACK(gnc_prefs_radio_button_user_cb),
+ NULL);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+ g_signal_handlers_unblock_by_func(G_OBJECT(button),
+ G_CALLBACK(gnc_prefs_radio_button_user_cb), NULL);
+ LEAVE(" ");
}
@@ -711,36 +732,39 @@
static void
gnc_prefs_connect_radio_button (GtkRadioButton *button)
{
- gchar *key, *button_name, *value;
- gboolean active;
- GSList *group;
+ gchar *key, *button_name, *value;
+ gboolean active;
+ GSList *group;
- g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+ g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
- /* Copy the widget name and split into gconf key and button name parts */
- key = g_strdup(gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN);
- button_name = strrchr(key, '/');
- *button_name++ = '\0';
+ /* Copy the widget name and split into gconf key and button name parts */
+ key = g_strdup(gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN);
+ button_name = strrchr(key, '/');
+ *button_name++ = '\0';
- /* Get the current value. */
- value = gnc_gconf_get_string(key, NULL, NULL);
- if (value) {
- active = (g_utf8_collate(value, button_name) == 0);
- } else {
- /* Sigh. There's no gconf default for this key. Use the first
- * button in the dialog, which is the last button in the list. */
- group = gtk_radio_button_get_group(button);
- active = (button != g_slist_nth_data(group, g_slist_length(group)));
- }
- DEBUG(" Radio set %s, button %s initially set to %d",
- key, button_name, active);
+ /* Get the current value. */
+ value = gnc_gconf_get_string(key, NULL, NULL);
+ if (value)
+ {
+ active = (g_utf8_collate(value, button_name) == 0);
+ }
+ else
+ {
+ /* Sigh. There's no gconf default for this key. Use the first
+ * button in the dialog, which is the last button in the list. */
+ group = gtk_radio_button_get_group(button);
+ active = (button != g_slist_nth_data(group, g_slist_length(group)));
+ }
+ DEBUG(" Radio set %s, button %s initially set to %d",
+ key, button_name, active);
- /* Wire up the button */
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
- g_signal_connect(G_OBJECT(button), "toggled",
- G_CALLBACK(gnc_prefs_radio_button_user_cb), NULL);
- g_free(value);
- g_free(key);
+ /* Wire up the button */
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
+ g_signal_connect(G_OBJECT(button), "toggled",
+ G_CALLBACK(gnc_prefs_radio_button_user_cb), NULL);
+ g_free(value);
+ g_free(key);
}
/**********/
@@ -757,16 +781,16 @@
*/
static void
gnc_prefs_check_button_user_cb (GtkCheckButton *button,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name;
- gboolean active;
+ const gchar *name;
+ gboolean active;
- g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
- name = gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN;
- active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
- DEBUG("Checkbox %s now %sactive", name, active ? "" : "in");
- gnc_gconf_set_bool(name, NULL, active, NULL);
+ g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
+ name = gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN;
+ active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+ DEBUG("Checkbox %s now %sactive", name, active ? "" : "in");
+ gnc_gconf_set_bool(name, NULL, active, NULL);
}
@@ -781,17 +805,17 @@
*/
static void
gnc_prefs_check_button_gconf_cb (GtkCheckButton *button,
- gboolean active)
+ gboolean active)
{
- g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
- ENTER("button %p, active %d", button, active);
- g_signal_handlers_block_by_func(G_OBJECT(button),
- G_CALLBACK(gnc_prefs_check_button_user_cb),
- NULL);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
- g_signal_handlers_unblock_by_func(G_OBJECT(button),
- G_CALLBACK(gnc_prefs_check_button_user_cb), NULL);
- LEAVE(" ");
+ g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
+ ENTER("button %p, active %d", button, active);
+ g_signal_handlers_block_by_func(G_OBJECT(button),
+ G_CALLBACK(gnc_prefs_check_button_user_cb),
+ NULL);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
+ g_signal_handlers_unblock_by_func(G_OBJECT(button),
+ G_CALLBACK(gnc_prefs_check_button_user_cb), NULL);
+ LEAVE(" ");
}
@@ -806,15 +830,15 @@
static void
gnc_prefs_connect_check_button (GtkCheckButton *button)
{
- const gchar *name;
- gboolean active;
+ const gchar *name;
+ gboolean active;
- name = gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN;
- active = gnc_gconf_get_bool(name, NULL, NULL);
- DEBUG(" Checkbox %s initially %sactive", name, active ? "" : "in");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
- g_signal_connect(G_OBJECT(button), "toggled",
- G_CALLBACK(gnc_prefs_check_button_user_cb), NULL);
+ name = gtk_widget_get_name(GTK_WIDGET(button)) + PREFIX_LEN;
+ active = gnc_gconf_get_bool(name, NULL, NULL);
+ DEBUG(" Checkbox %s initially %sactive", name, active ? "" : "in");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), active);
+ g_signal_connect(G_OBJECT(button), "toggled",
+ G_CALLBACK(gnc_prefs_check_button_user_cb), NULL);
}
/**********/
@@ -831,16 +855,16 @@
*/
static void
gnc_prefs_spin_button_user_cb (GtkSpinButton *spin,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name;
- gdouble value;
+ const gchar *name;
+ gdouble value;
- g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
- name = gtk_widget_get_name(GTK_WIDGET(spin)) + PREFIX_LEN;
- value = gtk_spin_button_get_value(spin);
- DEBUG(" Spin button %s has value %f", name, value);
- gnc_gconf_set_float(name, NULL, value, NULL);
+ g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+ name = gtk_widget_get_name(GTK_WIDGET(spin)) + PREFIX_LEN;
+ value = gtk_spin_button_get_value(spin);
+ DEBUG(" Spin button %s has value %f", name, value);
+ gnc_gconf_set_float(name, NULL, value, NULL);
}
@@ -855,17 +879,17 @@
*/
static void
gnc_prefs_spin_button_gconf_cb (GtkSpinButton *spin,
- gdouble value)
+ gdouble value)
{
- g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
- ENTER("button %p, value %f", spin, value);
- g_signal_handlers_block_by_func(G_OBJECT(spin),
- G_CALLBACK(gnc_prefs_spin_button_user_cb),
- NULL);
- gtk_spin_button_set_value(spin, value);
- g_signal_handlers_unblock_by_func(G_OBJECT(spin),
- G_CALLBACK(gnc_prefs_spin_button_user_cb), NULL);
- LEAVE(" ");
+ g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+ ENTER("button %p, value %f", spin, value);
+ g_signal_handlers_block_by_func(G_OBJECT(spin),
+ G_CALLBACK(gnc_prefs_spin_button_user_cb),
+ NULL);
+ gtk_spin_button_set_value(spin, value);
+ g_signal_handlers_unblock_by_func(G_OBJECT(spin),
+ G_CALLBACK(gnc_prefs_spin_button_user_cb), NULL);
+ LEAVE(" ");
}
@@ -880,16 +904,16 @@
static void
gnc_prefs_connect_spin_button (GtkSpinButton *spin)
{
- const gchar *name;
- gdouble value;
+ const gchar *name;
+ gdouble value;
- g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
- name = gtk_widget_get_name(GTK_WIDGET(spin)) + PREFIX_LEN;
- value = gnc_gconf_get_float(name, NULL, NULL);
- gtk_spin_button_set_value(spin, value);
- DEBUG(" Spin button %s has initial value %f", name, value);
- g_signal_connect(G_OBJECT(spin), "value-changed",
- G_CALLBACK(gnc_prefs_spin_button_user_cb), NULL);
+ g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+ name = gtk_widget_get_name(GTK_WIDGET(spin)) + PREFIX_LEN;
+ value = gnc_gconf_get_float(name, NULL, NULL);
+ gtk_spin_button_set_value(spin, value);
+ DEBUG(" Spin button %s has initial value %f", name, value);
+ g_signal_connect(G_OBJECT(spin), "value-changed",
+ G_CALLBACK(gnc_prefs_spin_button_user_cb), NULL);
}
@@ -907,16 +931,16 @@
*/
static void
gnc_prefs_combo_box_user_cb (GtkComboBox *box,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name;
- gint active;
+ const gchar *name;
+ gint active;
- g_return_if_fail(GTK_IS_COMBO_BOX(box));
- name = gtk_widget_get_name(GTK_WIDGET(box)) + PREFIX_LEN;
- active = gtk_combo_box_get_active(box);
- DEBUG("Combo box %s set to item %d", name, active);
- gnc_gconf_set_int(name, NULL, active, NULL);
+ g_return_if_fail(GTK_IS_COMBO_BOX(box));
+ name = gtk_widget_get_name(GTK_WIDGET(box)) + PREFIX_LEN;
+ active = gtk_combo_box_get_active(box);
+ DEBUG("Combo box %s set to item %d", name, active);
+ gnc_gconf_set_int(name, NULL, active, NULL);
}
@@ -931,17 +955,17 @@
*/
static void
gnc_prefs_combo_box_gconf_cb (GtkComboBox *box,
- gint value)
+ gint value)
{
- g_return_if_fail(GTK_IS_COMBO_BOX(box));
- ENTER("box %p, value %d", box, value);
- g_signal_handlers_block_by_func(G_OBJECT(box),
- G_CALLBACK(gnc_prefs_combo_box_user_cb),
- NULL);
- gtk_combo_box_set_active(box, value);
- g_signal_handlers_unblock_by_func(G_OBJECT(box),
- G_CALLBACK(gnc_prefs_combo_box_user_cb), NULL);
- LEAVE(" ");
+ g_return_if_fail(GTK_IS_COMBO_BOX(box));
+ ENTER("box %p, value %d", box, value);
+ g_signal_handlers_block_by_func(G_OBJECT(box),
+ G_CALLBACK(gnc_prefs_combo_box_user_cb),
+ NULL);
+ gtk_combo_box_set_active(box, value);
+ g_signal_handlers_unblock_by_func(G_OBJECT(box),
+ G_CALLBACK(gnc_prefs_combo_box_user_cb), NULL);
+ LEAVE(" ");
}
@@ -955,16 +979,16 @@
static void
gnc_prefs_connect_combo_box (GtkComboBox *box)
{
- const gchar *name;
- gint active;
+ const gchar *name;
+ gint active;
- g_return_if_fail(GTK_IS_COMBO_BOX(box));
- name = gtk_widget_get_name(GTK_WIDGET(box)) + PREFIX_LEN;
- active = gnc_gconf_get_int(name, NULL, NULL);
- gtk_combo_box_set_active(GTK_COMBO_BOX(box), active);
- DEBUG(" Combo box %s set to item %d", name, active);
- g_signal_connect(G_OBJECT(box), "changed",
- G_CALLBACK(gnc_prefs_combo_box_user_cb), NULL);
+ g_return_if_fail(GTK_IS_COMBO_BOX(box));
+ name = gtk_widget_get_name(GTK_WIDGET(box)) + PREFIX_LEN;
+ active = gnc_gconf_get_int(name, NULL, NULL);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(box), active);
+ DEBUG(" Combo box %s set to item %d", name, active);
+ g_signal_connect(G_OBJECT(box), "changed",
+ G_CALLBACK(gnc_prefs_combo_box_user_cb), NULL);
}
@@ -982,18 +1006,18 @@
*/
static void
gnc_prefs_currency_edit_user_cb (GNCCurrencyEdit *gce,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name, *mnemonic;
- gnc_commodity *currency;
+ const gchar *name, *mnemonic;
+ gnc_commodity *currency;
- g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
- name = gtk_widget_get_name(GTK_WIDGET(gce)) + PREFIX_LEN;
- currency = gnc_currency_edit_get_currency(gce);
- mnemonic = gnc_commodity_get_mnemonic(currency);
+ g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
+ name = gtk_widget_get_name(GTK_WIDGET(gce)) + PREFIX_LEN;
+ currency = gnc_currency_edit_get_currency(gce);
+ mnemonic = gnc_commodity_get_mnemonic(currency);
- DEBUG("currency_edit %s set to %s", name, mnemonic);
- gnc_gconf_set_string(name, NULL, mnemonic, NULL);
+ DEBUG("currency_edit %s set to %s", name, mnemonic);
+ gnc_gconf_set_string(name, NULL, mnemonic, NULL);
}
@@ -1008,33 +1032,34 @@
*/
static void
gnc_prefs_currency_edit_gconf_cb (GNCCurrencyEdit *gce,
- GConfEntry *entry)
+ GConfEntry *entry)
{
- const gchar *mnemonic;
- gnc_commodity *currency;
+ const gchar *mnemonic;
+ gnc_commodity *currency;
- g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
- ENTER("gce %p, entry %p", gce, entry);
+ g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
+ ENTER("gce %p, entry %p", gce, entry);
- mnemonic = gconf_value_get_string(entry->value);
- DEBUG("gce %p, mnemonic %s", gce, mnemonic);
- currency = gnc_commodity_table_lookup(gnc_get_current_commodities(),
- GNC_COMMODITY_NS_CURRENCY, mnemonic);
+ mnemonic = gconf_value_get_string(entry->value);
+ DEBUG("gce %p, mnemonic %s", gce, mnemonic);
+ currency = gnc_commodity_table_lookup(gnc_get_current_commodities(),
+ GNC_COMMODITY_NS_CURRENCY, mnemonic);
- /* If there isn't any such commodity, get the default */
- if (!currency) {
- currency = gnc_locale_default_currency();
- DEBUG("gce %p, default currency mnemonic %s",
- gce, gnc_commodity_get_mnemonic(currency));
- }
+ /* If there isn't any such commodity, get the default */
+ if (!currency)
+ {
+ currency = gnc_locale_default_currency();
+ DEBUG("gce %p, default currency mnemonic %s",
+ gce, gnc_commodity_get_mnemonic(currency));
+ }
- g_signal_handlers_block_by_func(G_OBJECT(gce),
- G_CALLBACK(gnc_prefs_currency_edit_user_cb),
- NULL);
- gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(gce), currency);
- g_signal_handlers_unblock_by_func(G_OBJECT(gce),
- G_CALLBACK(gnc_prefs_currency_edit_user_cb), NULL);
- LEAVE(" ");
+ g_signal_handlers_block_by_func(G_OBJECT(gce),
+ G_CALLBACK(gnc_prefs_currency_edit_user_cb),
+ NULL);
+ gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(gce), currency);
+ g_signal_handlers_unblock_by_func(G_OBJECT(gce),
+ G_CALLBACK(gnc_prefs_currency_edit_user_cb), NULL);
+ LEAVE(" ");
}
@@ -1048,32 +1073,32 @@
static void
gnc_prefs_connect_currency_edit (GNCCurrencyEdit *gce)
{
- gnc_commodity *currency;
- const gchar *name;
- gchar *mnemonic;
+ gnc_commodity *currency;
+ const gchar *name;
+ gchar *mnemonic;
- g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
+ g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
- /* Lookup commodity based upon gconf setting */
- name = gtk_widget_get_name(GTK_WIDGET(gce)) + PREFIX_LEN;
- mnemonic = gnc_gconf_get_string(name, NULL, NULL);
- currency = gnc_commodity_table_lookup(gnc_get_current_commodities(),
- GNC_COMMODITY_NS_CURRENCY, mnemonic);
- if (mnemonic)
- g_free(mnemonic);
+ /* Lookup commodity based upon gconf setting */
+ name = gtk_widget_get_name(GTK_WIDGET(gce)) + PREFIX_LEN;
+ mnemonic = gnc_gconf_get_string(name, NULL, NULL);
+ currency = gnc_commodity_table_lookup(gnc_get_current_commodities(),
+ GNC_COMMODITY_NS_CURRENCY, mnemonic);
+ if (mnemonic)
+ g_free(mnemonic);
- /* If there isn't any such commodity, get the default */
- if (!currency)
- currency = gnc_locale_default_currency();
+ /* If there isn't any such commodity, get the default */
+ if (!currency)
+ currency = gnc_locale_default_currency();
- gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(gce), currency);
- DEBUG(" currency_edit %s set to %s", name,
- gnc_commodity_get_mnemonic(currency));
+ gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(gce), currency);
+ DEBUG(" currency_edit %s set to %s", name,
+ gnc_commodity_get_mnemonic(currency));
- g_signal_connect(G_OBJECT(gce), "changed",
- G_CALLBACK(gnc_prefs_currency_edit_user_cb), NULL);
+ g_signal_connect(G_OBJECT(gce), "changed",
+ G_CALLBACK(gnc_prefs_currency_edit_user_cb), NULL);
- gtk_widget_show_all(GTK_WIDGET(gce));
+ gtk_widget_show_all(GTK_WIDGET(gce));
}
@@ -1090,15 +1115,15 @@
*/
static void
gnc_prefs_entry_user_cb (GtkEntry *entry,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name, *text;
+ const gchar *name, *text;
- g_return_if_fail(GTK_IS_ENTRY(entry));
- name = gtk_widget_get_name(GTK_WIDGET(entry)) + PREFIX_LEN;
- text = gtk_entry_get_text(entry);
- DEBUG("Entry %s set to '%s'", name, text);
- gnc_gconf_set_string(name, NULL, text, NULL);
+ g_return_if_fail(GTK_IS_ENTRY(entry));
+ name = gtk_widget_get_name(GTK_WIDGET(entry)) + PREFIX_LEN;
+ text = gtk_entry_get_text(entry);
+ DEBUG("Entry %s set to '%s'", name, text);
+ gnc_gconf_set_string(name, NULL, text, NULL);
}
@@ -1112,17 +1137,17 @@
*/
static void
gnc_prefs_entry_gconf_cb (GtkEntry *entry,
- const gchar *value)
+ const gchar *value)
{
- g_return_if_fail(GTK_IS_ENTRY(entry));
- ENTER("entry %p, value '%s'", entry, value);
- g_signal_handlers_block_by_func(G_OBJECT(entry),
- G_CALLBACK(gnc_prefs_entry_user_cb),
- NULL);
- gtk_entry_set_text(entry, value);
- g_signal_handlers_unblock_by_func(G_OBJECT(entry),
- G_CALLBACK(gnc_prefs_entry_user_cb), NULL);
- LEAVE(" ");
+ g_return_if_fail(GTK_IS_ENTRY(entry));
+ ENTER("entry %p, value '%s'", entry, value);
+ g_signal_handlers_block_by_func(G_OBJECT(entry),
+ G_CALLBACK(gnc_prefs_entry_user_cb),
+ NULL);
+ gtk_entry_set_text(entry, value);
+ g_signal_handlers_unblock_by_func(G_OBJECT(entry),
+ G_CALLBACK(gnc_prefs_entry_user_cb), NULL);
+ LEAVE(" ");
}
@@ -1136,17 +1161,17 @@
static void
gnc_prefs_connect_entry (GtkEntry *entry)
{
- const gchar *name;
- gchar *text;
+ const gchar *name;
+ gchar *text;
- g_return_if_fail(GTK_IS_ENTRY(entry));
- name = gtk_widget_get_name(GTK_WIDGET(entry)) + PREFIX_LEN;
- text = gnc_gconf_get_string(name, NULL, NULL);
- gtk_entry_set_text(GTK_ENTRY(entry), text ? text : "");
- DEBUG(" Entry %s set to '%s'", name?name:"(null)", text?text:"(null)");
- g_free(text);
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(gnc_prefs_entry_user_cb), NULL);
+ g_return_if_fail(GTK_IS_ENTRY(entry));
+ name = gtk_widget_get_name(GTK_WIDGET(entry)) + PREFIX_LEN;
+ text = gnc_gconf_get_string(name, NULL, NULL);
+ gtk_entry_set_text(GTK_ENTRY(entry), text ? text : "");
+ DEBUG(" Entry %s set to '%s'", name ? name : "(null)", text ? text : "(null)");
+ g_free(text);
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(gnc_prefs_entry_user_cb), NULL);
}
@@ -1164,16 +1189,16 @@
*/
static void
gnc_prefs_period_select_user_cb (GncPeriodSelect *period,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name;
- gint active;
+ const gchar *name;
+ gint active;
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- name = gtk_widget_get_name(GTK_WIDGET(period)) + PREFIX_LEN;
- active = gnc_period_select_get_active(period);
- DEBUG("Period select %s set to item %d", name, active);
- gnc_gconf_set_int(name, NULL, active, NULL);
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ name = gtk_widget_get_name(GTK_WIDGET(period)) + PREFIX_LEN;
+ active = gnc_period_select_get_active(period);
+ DEBUG("Period select %s set to item %d", name, active);
+ gnc_gconf_set_int(name, NULL, active, NULL);
}
@@ -1188,17 +1213,17 @@
*/
static void
gnc_prefs_period_select_gconf_cb (GncPeriodSelect *period,
- gint value)
+ gint value)
{
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- ENTER("period %p, value %d", period, value);
- g_signal_handlers_block_by_func(G_OBJECT(period),
- G_CALLBACK(gnc_prefs_period_select_user_cb),
- NULL);
- gnc_period_select_set_active(period, value);
- g_signal_handlers_unblock_by_func(G_OBJECT(period),
- G_CALLBACK(gnc_prefs_period_select_user_cb), NULL);
- LEAVE(" ");
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ ENTER("period %p, value %d", period, value);
+ g_signal_handlers_block_by_func(G_OBJECT(period),
+ G_CALLBACK(gnc_prefs_period_select_user_cb),
+ NULL);
+ gnc_period_select_set_active(period, value);
+ g_signal_handlers_unblock_by_func(G_OBJECT(period),
+ G_CALLBACK(gnc_prefs_period_select_user_cb), NULL);
+ LEAVE(" ");
}
@@ -1212,30 +1237,31 @@
static void
gnc_prefs_connect_period_select (GncPeriodSelect *period)
{
- const gchar *name;
- gint active;
- QofBook *book;
- KvpFrame *book_frame;
- gint64 month, day;
- GDate fy_end;
+ const gchar *name;
+ gint active;
+ QofBook *book;
+ KvpFrame *book_frame;
+ gint64 month, day;
+ GDate fy_end;
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- book = gnc_get_current_book();
- book_frame = qof_book_get_slots(book);
- month = kvp_frame_get_gint64(book_frame, "/book/fyear_end/month");
- day = kvp_frame_get_gint64(book_frame, "/book/fyear_end/day");
- if (g_date_valid_dmy(day, month, 2005 /* not leap year */)) {
- g_date_clear(&fy_end, 1);
- g_date_set_dmy(&fy_end, day, month, G_DATE_BAD_YEAR);
- gnc_period_select_set_fy_end(period, &fy_end);
- }
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ book = gnc_get_current_book();
+ book_frame = qof_book_get_slots(book);
+ month = kvp_frame_get_gint64(book_frame, "/book/fyear_end/month");
+ day = kvp_frame_get_gint64(book_frame, "/book/fyear_end/day");
+ if (g_date_valid_dmy(day, month, 2005 /* not leap year */))
+ {
+ g_date_clear(&fy_end, 1);
+ g_date_set_dmy(&fy_end, day, month, G_DATE_BAD_YEAR);
+ gnc_period_select_set_fy_end(period, &fy_end);
+ }
- name = gtk_widget_get_name(GTK_WIDGET(period)) + PREFIX_LEN;
- active = gnc_gconf_get_int(name, NULL, NULL);
- gnc_period_select_set_active(period, active);
- DEBUG(" Period select %s set to item %d", name, active);
- g_signal_connect(G_OBJECT(period), "changed",
- G_CALLBACK(gnc_prefs_period_select_user_cb), NULL);
+ name = gtk_widget_get_name(GTK_WIDGET(period)) + PREFIX_LEN;
+ active = gnc_gconf_get_int(name, NULL, NULL);
+ gnc_period_select_set_active(period, active);
+ DEBUG(" Period select %s set to item %d", name, active);
+ g_signal_connect(G_OBJECT(period), "changed",
+ G_CALLBACK(gnc_prefs_period_select_user_cb), NULL);
}
@@ -1253,17 +1279,17 @@
*/
static void
gnc_prefs_date_edit_user_cb (GNCDateEdit *gde,
- gpointer user_data)
+ gpointer user_data)
{
- const gchar *name;
- time_t time;
+ const gchar *name;
+ time_t time;
- g_return_if_fail(GNC_IS_DATE_EDIT(gde));
- name = gtk_widget_get_name(GTK_WIDGET(gde)) + PREFIX_LEN;
- time = gnc_date_edit_get_date(gde);
+ g_return_if_fail(GNC_IS_DATE_EDIT(gde));
+ name = gtk_widget_get_name(GTK_WIDGET(gde)) + PREFIX_LEN;
+ time = gnc_date_edit_get_date(gde);
- DEBUG("date_edit %s set", name);
- gnc_gconf_set_int(name, NULL, time, NULL);
+ DEBUG("date_edit %s set", name);
+ gnc_gconf_set_int(name, NULL, time, NULL);
}
@@ -1278,22 +1304,22 @@
*/
static void
gnc_prefs_date_edit_gconf_cb (GNCDateEdit *gde,
- GConfEntry *entry)
+ GConfEntry *entry)
{
- time_t time;
+ time_t time;
- g_return_if_fail(GNC_IS_DATE_EDIT(gde));
- ENTER("gde %p, entry %p", gde, entry);
+ g_return_if_fail(GNC_IS_DATE_EDIT(gde));
+ ENTER("gde %p, entry %p", gde, entry);
- time = gconf_value_get_int(entry->value);
+ time = gconf_value_get_int(entry->value);
- g_signal_handlers_block_by_func(G_OBJECT(gde),
- G_CALLBACK(gnc_prefs_date_edit_user_cb),
- NULL);
- gnc_date_edit_set_time(GNC_DATE_EDIT(gde), time);
- g_signal_handlers_unblock_by_func(G_OBJECT(gde),
- G_CALLBACK(gnc_prefs_date_edit_user_cb), NULL);
- LEAVE(" ");
+ g_signal_handlers_block_by_func(G_OBJECT(gde),
+ G_CALLBACK(gnc_prefs_date_edit_user_cb),
+ NULL);
+ gnc_date_edit_set_time(GNC_DATE_EDIT(gde), time);
+ g_signal_handlers_unblock_by_func(G_OBJECT(gde),
+ G_CALLBACK(gnc_prefs_date_edit_user_cb), NULL);
+ LEAVE(" ");
}
@@ -1307,22 +1333,22 @@
static void
gnc_prefs_connect_date_edit (GNCDateEdit *gde)
{
- const gchar *name;
- time_t time;
+ const gchar *name;
+ time_t time;
- g_return_if_fail(GNC_IS_DATE_EDIT(gde));
+ g_return_if_fail(GNC_IS_DATE_EDIT(gde));
- /* Lookup commodity based upon gconf setting */
- name = gtk_widget_get_name(GTK_WIDGET(gde)) + PREFIX_LEN;
- time = gnc_gconf_get_int(name, NULL, NULL);
+ /* Lookup commodity based upon gconf setting */
+ name = gtk_widget_get_name(GTK_WIDGET(gde)) + PREFIX_LEN;
+ time = gnc_gconf_get_int(name, NULL, NULL);
- gnc_date_edit_set_time(GNC_DATE_EDIT(gde), time);
- DEBUG(" date_edit %s set", name);
+ gnc_date_edit_set_time(GNC_DATE_EDIT(gde), time);
+ DEBUG(" date_edit %s set", name);
- g_signal_connect(G_OBJECT(gde), "date_changed",
- G_CALLBACK(gnc_prefs_date_edit_user_cb), NULL);
+ g_signal_connect(G_OBJECT(gde), "date_changed",
+ G_CALLBACK(gnc_prefs_date_edit_user_cb), NULL);
- gtk_widget_show_all(GTK_WIDGET(gde));
+ gtk_widget_show_all(GTK_WIDGET(gde));
}
@@ -1346,24 +1372,25 @@
void
gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
{
- switch (response) {
- case GTK_RESPONSE_HELP:
- gnc_gnome_help(HF_HELP, HL_GLOBPREFS);
- break;
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ gnc_gnome_help(HF_HELP, HL_GLOBPREFS);
+ break;
- default:
- gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
- gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS,
- dialog);
- gnc_gconf_general_remove_cb(
- KEY_ACCOUNT_SEPARATOR,
- (GncGconfGeneralCb)gnc_account_separator_prefs_cb,
- dialog);
- gnc_gconf_remove_notification(G_OBJECT(dialog), NULL,
- DIALOG_PREFERENCES_CM_CLASS);
- gtk_widget_destroy(GTK_WIDGET(dialog));
- break;
- }
+ default:
+ gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+ gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS,
+ dialog);
+ gnc_gconf_general_remove_cb(
+ KEY_ACCOUNT_SEPARATOR,
+ (GncGconfGeneralCb)gnc_account_separator_prefs_cb,
+ dialog);
+ gnc_gconf_remove_notification(G_OBJECT(dialog), NULL,
+ DIALOG_PREFERENCES_CM_CLASS);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ break;
+ }
}
/********************/
@@ -1384,42 +1411,61 @@
*/
static void
gnc_prefs_connect_one (const gchar *name,
- GtkWidget *widget,
- gpointer user_data)
+ GtkWidget *widget,
+ gpointer user_data)
{
- /* These tests must be ordered from more specific widget to less
- * specific widget. Test custom widgets first */
- if (GNC_IS_CURRENCY_EDIT(widget)) { /* must be tested before combo_box */
- DEBUG(" %s - currency_edit", name);
- gnc_prefs_connect_currency_edit(GNC_CURRENCY_EDIT(widget));
- } else if (GNC_IS_PERIOD_SELECT(widget)) {
- DEBUG(" %s - period_Select", name);
- gnc_prefs_connect_period_select(GNC_PERIOD_SELECT(widget));
- } else if (GNC_IS_DATE_EDIT(widget)) {
- DEBUG(" %s - date_edit", name);
- gnc_prefs_connect_date_edit(GNC_DATE_EDIT(widget));
- } else if (GTK_IS_FONT_BUTTON(widget)) {
- DEBUG(" %s - entry", name);
- gnc_prefs_connect_font_button(GTK_FONT_BUTTON(widget));
- } else if (GTK_IS_RADIO_BUTTON(widget)) {
- DEBUG(" %s - radio button", name);
- gnc_prefs_connect_radio_button(GTK_RADIO_BUTTON(widget));
- } else if (GTK_IS_CHECK_BUTTON(widget)) {
- DEBUG(" %s - check button", name);
- gnc_prefs_connect_check_button(GTK_CHECK_BUTTON(widget));
- } else if (GTK_IS_SPIN_BUTTON(widget)) {
- DEBUG(" %s - spin button", name);
- gnc_prefs_connect_spin_button(GTK_SPIN_BUTTON(widget));
- } else if (GTK_IS_COMBO_BOX(widget)) {
- DEBUG(" %s - combo box", name);
- gnc_prefs_connect_combo_box(GTK_COMBO_BOX(widget));
- } else if (GTK_IS_ENTRY(widget)) {
- DEBUG(" %s - entry", name);
- gnc_prefs_connect_entry(GTK_ENTRY(widget));
- } else {
- DEBUG(" %s - unsupported %s", name,
- G_OBJECT_TYPE_NAME(G_OBJECT(widget)));
- }
+ /* These tests must be ordered from more specific widget to less
+ * specific widget. Test custom widgets first */
+ if (GNC_IS_CURRENCY_EDIT(widget)) /* must be tested before combo_box */
+ {
+ DEBUG(" %s - currency_edit", name);
+ gnc_prefs_connect_currency_edit(GNC_CURRENCY_EDIT(widget));
+ }
+ else if (GNC_IS_PERIOD_SELECT(widget))
+ {
+ DEBUG(" %s - period_Select", name);
+ gnc_prefs_connect_period_select(GNC_PERIOD_SELECT(widget));
+ }
+ else if (GNC_IS_DATE_EDIT(widget))
+ {
+ DEBUG(" %s - date_edit", name);
+ gnc_prefs_connect_date_edit(GNC_DATE_EDIT(widget));
+ }
+ else if (GTK_IS_FONT_BUTTON(widget))
+ {
+ DEBUG(" %s - entry", name);
+ gnc_prefs_connect_font_button(GTK_FONT_BUTTON(widget));
+ }
+ else if (GTK_IS_RADIO_BUTTON(widget))
+ {
+ DEBUG(" %s - radio button", name);
+ gnc_prefs_connect_radio_button(GTK_RADIO_BUTTON(widget));
+ }
+ else if (GTK_IS_CHECK_BUTTON(widget))
+ {
+ DEBUG(" %s - check button", name);
+ gnc_prefs_connect_check_button(GTK_CHECK_BUTTON(widget));
+ }
+ else if (GTK_IS_SPIN_BUTTON(widget))
+ {
+ DEBUG(" %s - spin button", name);
+ gnc_prefs_connect_spin_button(GTK_SPIN_BUTTON(widget));
+ }
+ else if (GTK_IS_COMBO_BOX(widget))
+ {
+ DEBUG(" %s - combo box", name);
+ gnc_prefs_connect_combo_box(GTK_COMBO_BOX(widget));
+ }
+ else if (GTK_IS_ENTRY(widget))
+ {
+ DEBUG(" %s - entry", name);
+ gnc_prefs_connect_entry(GTK_ENTRY(widget));
+ }
+ else
+ {
+ DEBUG(" %s - unsupported %s", name,
+ G_OBJECT_TYPE_NAME(G_OBJECT(widget)));
+ }
}
@@ -1437,64 +1483,64 @@
static GtkWidget *
gnc_preferences_dialog_create(void)
{
- GladeXML *xml;
- GtkWidget *dialog, *notebook, *label;
- GHashTable *table;
- GDate* gdate;
- gchar buf[128];
- gnc_commodity *locale_currency;
- const gchar *currency_name;
+ GladeXML *xml;
+ GtkWidget *dialog, *notebook, *label;
+ GHashTable *table;
+ GDate* gdate;
+ gchar buf[128];
+ gnc_commodity *locale_currency;
+ const gchar *currency_name;
- ENTER("");
- DEBUG("Opening preferences.glade:");
- xml = gnc_glade_xml_new(GLADE_FILENAME, "GnuCash Preferences");
- dialog = glade_xml_get_widget(xml, "GnuCash Preferences");
- DEBUG("autoconnect");
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- dialog);
+ ENTER("");
+ DEBUG("Opening preferences.glade:");
+ xml = gnc_glade_xml_new(GLADE_FILENAME, "GnuCash Preferences");
+ dialog = glade_xml_get_widget(xml, "GnuCash Preferences");
+ DEBUG("autoconnect");
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ dialog);
- /* Clean up the xml data structure when the dialog is destroyed */
- g_object_set_data_full(G_OBJECT(dialog), GLADE_FILENAME,
- xml, g_object_unref);
- DEBUG("done");
+ /* Clean up the xml data structure when the dialog is destroyed */
+ g_object_set_data_full(G_OBJECT(dialog), GLADE_FILENAME,
+ xml, g_object_unref);
+ DEBUG("done");
- notebook = glade_xml_get_widget(xml, "notebook1");
- table = g_hash_table_new(g_str_hash, g_str_equal);
- g_object_set_data(G_OBJECT(dialog), NOTEBOOK, notebook);
- g_object_set_data_full(G_OBJECT(dialog), WIDGET_HASH,
- table, (GDestroyNotify)g_hash_table_destroy);
+ notebook = glade_xml_get_widget(xml, "notebook1");
+ table = g_hash_table_new(g_str_hash, g_str_equal);
+ g_object_set_data(G_OBJECT(dialog), NOTEBOOK, notebook);
+ g_object_set_data_full(G_OBJECT(dialog), WIDGET_HASH,
+ table, (GDestroyNotify)g_hash_table_destroy);
- /* Add to the list of interesting widgets */
- gnc_prefs_build_widget_table(xml, dialog);
+ /* Add to the list of interesting widgets */
+ gnc_prefs_build_widget_table(xml, dialog);
- g_slist_foreach(add_ins, gnc_preferences_build_page, dialog);
+ g_slist_foreach(add_ins, gnc_preferences_build_page, dialog);
- /* Sort tabs alphabetically */
- gnc_prefs_sort_pages(GTK_NOTEBOOK(notebook));
- gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
+ /* Sort tabs alphabetically */
+ gnc_prefs_sort_pages(GTK_NOTEBOOK(notebook));
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
- DEBUG("We have the following interesting widgets:");
- g_hash_table_foreach(table, (GHFunc)gnc_prefs_connect_one, dialog);
- DEBUG("Done with interesting widgets.");
+ DEBUG("We have the following interesting widgets:");
+ g_hash_table_foreach(table, (GHFunc)gnc_prefs_connect_one, dialog);
+ DEBUG("Done with interesting widgets.");
- /* Other stuff */
- gdate = g_date_new_dmy(31, G_DATE_JULY, 2005);
- g_date_strftime(buf, sizeof(buf), "%x", gdate);
- label = glade_xml_get_widget(xml, "locale_date_sample");
- gtk_label_set_text(GTK_LABEL(label), buf);
- g_date_free(gdate);
+ /* Other stuff */
+ gdate = g_date_new_dmy(31, G_DATE_JULY, 2005);
+ g_date_strftime(buf, sizeof(buf), "%x", gdate);
+ label = glade_xml_get_widget(xml, "locale_date_sample");
+ gtk_label_set_text(GTK_LABEL(label), buf);
+ g_date_free(gdate);
- locale_currency = gnc_locale_default_currency ();
- currency_name = gnc_commodity_get_printname(locale_currency);
- label = glade_xml_get_widget(xml, "locale_currency");
- gtk_label_set_label(GTK_LABEL(label), currency_name);
- label = glade_xml_get_widget(xml, "locale_currency2");
- gtk_label_set_label(GTK_LABEL(label), currency_name);
+ locale_currency = gnc_locale_default_currency ();
+ currency_name = gnc_commodity_get_printname(locale_currency);
+ label = glade_xml_get_widget(xml, "locale_currency");
+ gtk_label_set_label(GTK_LABEL(label), currency_name);
+ label = glade_xml_get_widget(xml, "locale_currency2");
+ gtk_label_set_label(GTK_LABEL(label), currency_name);
- gnc_account_separator_prefs_cb(NULL, dialog);
+ gnc_account_separator_prefs_cb(NULL, dialog);
- LEAVE("dialog %p", dialog);
- return dialog;
+ LEAVE("dialog %p", dialog);
+ return dialog;
}
@@ -1525,13 +1571,13 @@
*/
static gboolean
gnc_prefs_nearest_match (gpointer key,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- const gchar *widget_name = key;
- const gchar *gconf_name = user_data;
+ const gchar *widget_name = key;
+ const gchar *gconf_name = user_data;
- return (strncmp(widget_name, gconf_name, strlen(gconf_name)) == 0);
+ return (strncmp(widget_name, gconf_name, strlen(gconf_name)) == 0);
}
@@ -1548,102 +1594,126 @@
*/
static void
gnc_preferences_gconf_changed (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- gpointer dialog)
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer dialog)
{
- GConfValue *value;
- const gchar *key, *string_value;
- gchar **parts, *name, *group_name = NULL;
- GtkWidget *widget;
- GHashTable *table;
+ GConfValue *value;
+ const gchar *key, *string_value;
+ gchar **parts, *name, *group_name = NULL;
+ GtkWidget *widget;
+ GHashTable *table;
- ENTER("key %s, value %p", entry->key, entry->value);
- key = gconf_entry_get_key(entry);
- value = gconf_entry_get_value(entry);
- if (!value) {
- /* Values can be unset */
- LEAVE("Unset valued for %s", key);
- return;
- }
+ ENTER("key %s, value %p", entry->key, entry->value);
+ key = gconf_entry_get_key(entry);
+ value = gconf_entry_get_value(entry);
+ if (!value)
+ {
+ /* Values can be unset */
+ LEAVE("Unset valued for %s", key);
+ return;
+ }
- parts = g_strsplit(entry->key, "/", 4);
- name = g_strconcat("gconf/", parts[3], NULL);
- g_strfreev(parts);
- DEBUG("proposed widget name %s", name);
+ parts = g_strsplit(entry->key, "/", 4);
+ name = g_strconcat("gconf/", parts[3], NULL);
+ g_strfreev(parts);
+ DEBUG("proposed widget name %s", name);
- /* Can't just do a glade lookup here because not all of the widgets
- * came from the same xml file. That's why the extra hash table. */
- table = g_object_get_data(G_OBJECT(dialog), WIDGET_HASH);
- widget = g_hash_table_lookup(table, name);
- if ((widget == NULL) && (entry->value->type == GCONF_VALUE_STRING)) {
- string_value = gconf_value_get_string(entry->value);
- group_name = name;
- name = g_strjoin("/", group_name, string_value, NULL);
- DEBUG("proposed widget name %s", name);
+ /* Can't just do a glade lookup here because not all of the widgets
+ * came from the same xml file. That's why the extra hash table. */
+ table = g_object_get_data(G_OBJECT(dialog), WIDGET_HASH);
widget = g_hash_table_lookup(table, name);
- if (widget == NULL) {
- /* Mutter, mutter. Someone must have typed a bad string into
- * gconf. Force the value to a legal string. Do this by
- * directly setting the first widget in the group. This will
- * ensure synchronization of Gnucash, Gconf, and the Prefs
- * Dialog. */
- DEBUG("bad value");
- widget = g_hash_table_find(table, gnc_prefs_nearest_match, group_name);
- if (widget) {
- DEBUG("forcing %s", gtk_widget_get_name(widget));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
- }
- g_free(group_name);
- g_free(name);
- LEAVE("no exact match");
- return;
+ if ((widget == NULL) && (entry->value->type == GCONF_VALUE_STRING))
+ {
+ string_value = gconf_value_get_string(entry->value);
+ group_name = name;
+ name = g_strjoin("/", group_name, string_value, NULL);
+ DEBUG("proposed widget name %s", name);
+ widget = g_hash_table_lookup(table, name);
+ if (widget == NULL)
+ {
+ /* Mutter, mutter. Someone must have typed a bad string into
+ * gconf. Force the value to a legal string. Do this by
+ * directly setting the first widget in the group. This will
+ * ensure synchronization of Gnucash, Gconf, and the Prefs
+ * Dialog. */
+ DEBUG("bad value");
+ widget = g_hash_table_find(table, gnc_prefs_nearest_match, group_name);
+ if (widget)
+ {
+ DEBUG("forcing %s", gtk_widget_get_name(widget));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
+ }
+ g_free(group_name);
+ g_free(name);
+ LEAVE("no exact match");
+ return;
+ }
+ g_free(group_name);
}
- g_free(group_name);
- }
- if (widget != NULL) {
- /* These tests must be ordered from more specific widget to less
- * specific widget. Test custom widgets first */
- if (GNC_IS_CURRENCY_EDIT(widget)) { /* must come before combo box */
- DEBUG("widget %p - currency_edit", widget);
- gnc_prefs_currency_edit_gconf_cb(GNC_CURRENCY_EDIT(widget), entry);
- } else if (GNC_IS_PERIOD_SELECT(widget)) {
- DEBUG("widget %p - period_select", widget);
- gnc_prefs_period_select_gconf_cb(GNC_PERIOD_SELECT(widget),
- gconf_value_get_int(entry->value));
- } else if (GNC_IS_DATE_EDIT(widget)) {
- DEBUG("widget %p - date_edit", widget);
- gnc_prefs_date_edit_gconf_cb(GNC_DATE_EDIT(widget), entry);
- } else if (GTK_IS_FONT_BUTTON(widget)) {
- DEBUG("widget %p - font button", widget);
- gnc_prefs_font_button_gconf_cb(GTK_FONT_BUTTON(widget), entry);
- } else if (GTK_IS_RADIO_BUTTON(widget)) {
- DEBUG("widget %p - radio button", widget);
- gnc_prefs_radio_button_gconf_cb(GTK_RADIO_BUTTON(widget));
- } else if (GTK_IS_CHECK_BUTTON(widget)) {
- DEBUG("widget %p - check button", widget);
- gnc_prefs_check_button_gconf_cb(GTK_CHECK_BUTTON(widget),
- gconf_value_get_bool(entry->value));
- } else if (GTK_IS_SPIN_BUTTON(widget)) {
- DEBUG("widget %p - spin button", widget);
- gnc_prefs_spin_button_gconf_cb(GTK_SPIN_BUTTON(widget),
- gconf_value_get_float(entry->value));
- } else if (GTK_IS_COMBO_BOX(widget)) {
- DEBUG("widget %p - combo_box", widget);
- gnc_prefs_combo_box_gconf_cb(GTK_COMBO_BOX(widget),
- gconf_value_get_int(entry->value));
- } else if (GTK_IS_ENTRY(widget)) {
- DEBUG("widget %p - entry", widget);
- gnc_prefs_entry_gconf_cb(GTK_ENTRY(widget),
- gconf_value_get_string(entry->value));
- } else {
- DEBUG("widget %p - unsupported %s", widget,
- G_OBJECT_TYPE_NAME(G_OBJECT(widget)));
+ if (widget != NULL)
+ {
+ /* These tests must be ordered from more specific widget to less
+ * specific widget. Test custom widgets first */
+ if (GNC_IS_CURRENCY_EDIT(widget)) /* must come before combo box */
+ {
+ DEBUG("widget %p - currency_edit", widget);
+ gnc_prefs_currency_edit_gconf_cb(GNC_CURRENCY_EDIT(widget), entry);
+ }
+ else if (GNC_IS_PERIOD_SELECT(widget))
+ {
+ DEBUG("widget %p - period_select", widget);
+ gnc_prefs_period_select_gconf_cb(GNC_PERIOD_SELECT(widget),
+ gconf_value_get_int(entry->value));
+ }
+ else if (GNC_IS_DATE_EDIT(widget))
+ {
+ DEBUG("widget %p - date_edit", widget);
+ gnc_prefs_date_edit_gconf_cb(GNC_DATE_EDIT(widget), entry);
+ }
+ else if (GTK_IS_FONT_BUTTON(widget))
+ {
+ DEBUG("widget %p - font button", widget);
+ gnc_prefs_font_button_gconf_cb(GTK_FONT_BUTTON(widget), entry);
+ }
+ else if (GTK_IS_RADIO_BUTTON(widget))
+ {
+ DEBUG("widget %p - radio button", widget);
+ gnc_prefs_radio_button_gconf_cb(GTK_RADIO_BUTTON(widget));
+ }
+ else if (GTK_IS_CHECK_BUTTON(widget))
+ {
+ DEBUG("widget %p - check button", widget);
+ gnc_prefs_check_button_gconf_cb(GTK_CHECK_BUTTON(widget),
+ gconf_value_get_bool(entry->value));
+ }
+ else if (GTK_IS_SPIN_BUTTON(widget))
+ {
+ DEBUG("widget %p - spin button", widget);
+ gnc_prefs_spin_button_gconf_cb(GTK_SPIN_BUTTON(widget),
+ gconf_value_get_float(entry->value));
+ }
+ else if (GTK_IS_COMBO_BOX(widget))
+ {
+ DEBUG("widget %p - combo_box", widget);
+ gnc_prefs_combo_box_gconf_cb(GTK_COMBO_BOX(widget),
+ gconf_value_get_int(entry->value));
+ }
+ else if (GTK_IS_ENTRY(widget))
+ {
+ DEBUG("widget %p - entry", widget);
+ gnc_prefs_entry_gconf_cb(GTK_ENTRY(widget),
+ gconf_value_get_string(entry->value));
+ }
+ else
+ {
+ DEBUG("widget %p - unsupported %s", widget,
+ G_OBJECT_TYPE_NAME(G_OBJECT(widget)));
+ }
}
- }
- g_free(name);
- LEAVE(" ");
+ g_free(name);
+ LEAVE(" ");
}
@@ -1663,15 +1733,15 @@
*/
static gboolean
show_handler (const char *class, gint component_id,
- gpointer user_data, gpointer iter_data)
+ gpointer user_data, gpointer iter_data)
{
- GtkWidget *dialog;
+ GtkWidget *dialog;
- ENTER(" ");
- dialog = GTK_WIDGET(user_data);
- gtk_window_present(GTK_WINDOW(dialog));
- LEAVE(" ");
- return(TRUE);
+ ENTER(" ");
+ dialog = GTK_WIDGET(user_data);
+ gtk_window_present(GTK_WINDOW(dialog));
+ LEAVE(" ");
+ return(TRUE);
}
@@ -1684,13 +1754,13 @@
static void
close_handler (gpointer user_data)
{
- GtkWidget *dialog;
+ GtkWidget *dialog;
- ENTER(" ");
- dialog = GTK_WIDGET(user_data);
- gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS, dialog);
- gtk_widget_destroy(dialog);
- LEAVE(" ");
+ ENTER(" ");
+ dialog = GTK_WIDGET(user_data);
+ gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS, dialog);
+ gtk_widget_destroy(dialog);
+ LEAVE(" ");
}
@@ -1701,30 +1771,31 @@
void
gnc_preferences_dialog (void)
{
- GtkWidget *dialog;
+ GtkWidget *dialog;
- ENTER("");
- if (gnc_forall_gui_components(DIALOG_PREFERENCES_CM_CLASS,
- show_handler, NULL)) {
- LEAVE("existing window");
- return;
- }
+ ENTER("");
+ if (gnc_forall_gui_components(DIALOG_PREFERENCES_CM_CLASS,
+ show_handler, NULL))
+ {
+ LEAVE("existing window");
+ return;
+ }
- dialog = gnc_preferences_dialog_create();
+ dialog = gnc_preferences_dialog_create();
- gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
- gtk_widget_show(dialog);
+ gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+ gtk_widget_show(dialog);
- gnc_gconf_add_notification(G_OBJECT(dialog), NULL,
- gnc_preferences_gconf_changed,
- DIALOG_PREFERENCES_CM_CLASS);
- gnc_gconf_general_register_cb(KEY_ACCOUNT_SEPARATOR,
- (GncGconfGeneralCb)gnc_account_separator_prefs_cb,
- dialog);
- gnc_register_gui_component(DIALOG_PREFERENCES_CM_CLASS,
- NULL, close_handler, dialog);
+ gnc_gconf_add_notification(G_OBJECT(dialog), NULL,
+ gnc_preferences_gconf_changed,
+ DIALOG_PREFERENCES_CM_CLASS);
+ gnc_gconf_general_register_cb(KEY_ACCOUNT_SEPARATOR,
+ (GncGconfGeneralCb)gnc_account_separator_prefs_cb,
+ dialog);
+ gnc_register_gui_component(DIALOG_PREFERENCES_CM_CLASS,
+ NULL, close_handler, dialog);
- LEAVE(" ");
+ LEAVE(" ");
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/dialog-preferences.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-preferences.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-preferences.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -27,7 +27,7 @@
/** @file dialog-preferences.h
@brief Dialog for handling user preferences.
@author Copyright (c) 2005 David Hampton <hampton at employees.org>
-
+
These functions are the external API available for the new user
preference dialog. Preferences are now stored in GConf. This
code ends up being nothing more than a pretty interface to set
@@ -68,16 +68,16 @@
* dialog with the specified tab name. The tab name may not be
* duplicated. For example, the Business code might have a full page
* of its own preferences.
- *
+ *
* @param filename The name of a glade file.
- *
+ *
* @param widgetname The name of the widget to extract from the glade file.
- *
+ *
* @param tabname The (translated!) name this page of preferences should have in
* the dialog notebook. */
void gnc_preferences_add_page (const gchar *filename,
- const gchar *widgetname,
- const gchar *tabname);
+ const gchar *widgetname,
+ const gchar *tabname);
/** This function adds a partial page of preferences to the
@@ -86,16 +86,16 @@
* the preferences dialog with the specified tab name. The tab name
* may be duplicated. For example, the HBCI preferences may share a
* "Data Import" page with QIF and other methods.
- *
+ *
* @param filename The name of a glade file.
- *
+ *
* @param widgetname The name of the widget to extract from the glade file.
- *
+ *
* @param tabname The (translated!) name this page of preferences should have in
* the dialog notebook. */
void gnc_preferences_add_to_page (const gchar *filename,
- const gchar *widgetname,
- const gchar *tabname);
+ const gchar *widgetname,
+ const gchar *tabname);
/** This function creates the preferences dialog and presents it to
Modified: gnucash/trunk/src/gnome-utils/dialog-query-list.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-query-list.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-query-list.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -35,144 +35,146 @@
#include "dialog-query-list.h"
#include "gnc-query-list.h"
-struct _DialogQueryList {
- GtkWidget * dialog;
- GtkWidget * label;
- GtkWidget * qlist;
- GtkWidget * button_box;
+struct _DialogQueryList
+{
+ GtkWidget * dialog;
+ GtkWidget * label;
+ GtkWidget * qlist;
+ GtkWidget * button_box;
- GNCDisplayListButton * buttons;
- gpointer user_data;
+ GNCDisplayListButton * buttons;
+ gpointer user_data;
- GList * books;
+ GList * books;
- gint component_id;
+ gint component_id;
};
static void
dql_clear_booklist (DialogQueryList *dql)
{
- GList *node;
+ GList *node;
- g_return_if_fail (dql);
+ g_return_if_fail (dql);
- for (node = dql->books; node; node = node->next)
- xaccGUIDFree ((GUID*)node->data);
- g_list_free (dql->books);
- dql->books = NULL;
+ for (node = dql->books; node; node = node->next)
+ xaccGUIDFree ((GUID*)node->data);
+ g_list_free (dql->books);
+ dql->books = NULL;
}
static void
dql_build_booklist (DialogQueryList *dql, Query *q)
{
- GList *node;
+ GList *node;
- g_return_if_fail (dql);
+ g_return_if_fail (dql);
- for (node = gncQueryGetBooks(q); node; node=node->next) {
- GNCBook *book = node->data;
- GUID *guid = xaccGUIDMalloc();
- *guid = *(gnc_book_get_guid(book));
- dql->books = g_list_prepend(dql->books, guid);
- }
+ for (node = gncQueryGetBooks(q); node; node = node->next)
+ {
+ GNCBook *book = node->data;
+ GUID *guid = xaccGUIDMalloc();
+ *guid = *(gnc_book_get_guid(book));
+ dql->books = g_list_prepend(dql->books, guid);
+ }
}
static void
gnc_dialog_query_run_callback (GNCDisplayListButton *cb, gpointer item,
- DialogQueryList *dql)
+ DialogQueryList *dql)
{
- if (!cb)
- return;
+ if (!cb)
+ return;
- if (cb->cb_fcn)
- (cb->cb_fcn)(item, dql->user_data);
+ if (cb->cb_fcn)
+ (cb->cb_fcn)(item, dql->user_data);
}
static void
gnc_dialog_query_list_button_clicked (GtkButton *button, DialogQueryList *dql)
{
- GNCDisplayListButton *cb;
- gpointer current;
+ GNCDisplayListButton *cb;
+ gpointer current;
- g_return_if_fail (dql);
- current = gnc_query_list_get_current_entry (GNC_QUERY_LIST (dql->qlist));
- if (!current)
- return;
+ g_return_if_fail (dql);
+ current = gnc_query_list_get_current_entry (GNC_QUERY_LIST (dql->qlist));
+ if (!current)
+ return;
- cb = g_object_get_data (G_OBJECT (button), "data");
- g_return_if_fail (cb);
+ cb = g_object_get_data (G_OBJECT (button), "data");
+ g_return_if_fail (cb);
- gnc_dialog_query_run_callback (cb, current, dql);
+ gnc_dialog_query_run_callback (cb, current, dql);
}
static void
gnc_dialog_query_list_double_click_entry (GNCQueryList *list, gpointer item,
- gpointer user_data)
+ gpointer user_data)
{
- DialogQueryList *dql = user_data;
+ DialogQueryList *dql = user_data;
- g_return_if_fail (dql);
- g_return_if_fail (item);
+ g_return_if_fail (dql);
+ g_return_if_fail (item);
- if (!dql->buttons)
- return;
+ if (!dql->buttons)
+ return;
- gnc_dialog_query_run_callback (dql->buttons, item, dql);
+ gnc_dialog_query_run_callback (dql->buttons, item, dql);
}
static int
gnc_dialog_query_list_delete_cb (GtkDialog *dialog, GdkEvent *event, DialogQueryList *dql)
{
- g_return_val_if_fail (dql, TRUE);
+ g_return_val_if_fail (dql, TRUE);
- gnc_unregister_gui_component (dql->component_id);
+ gnc_unregister_gui_component (dql->component_id);
- /* XXX: Clear/destroy the param_list? */
+ /* XXX: Clear/destroy the param_list? */
- /* destroy the book list */
- dql_clear_booklist (dql);
+ /* destroy the book list */
+ dql_clear_booklist (dql);
- /* Destroy and exit */
- gtk_widget_destroy(dql->dialog);
- g_free (dql);
- return FALSE;
+ /* Destroy and exit */
+ gtk_widget_destroy(dql->dialog);
+ g_free (dql);
+ return FALSE;
}
static void
close_handler (gpointer data)
{
- DialogQueryList * dql = data;
+ DialogQueryList * dql = data;
- g_return_if_fail (dql);
- gnc_dialog_query_list_delete_cb (GTK_DIALOG(dql->dialog), NULL, dql);
+ g_return_if_fail (dql);
+ gnc_dialog_query_list_delete_cb (GTK_DIALOG(dql->dialog), NULL, dql);
}
static void
gnc_dialog_query_list_refresh_handler (GHashTable *changes, gpointer user_data)
{
- DialogQueryList *dql = (DialogQueryList *)user_data;
- const EventInfo *info;
- GList *node;
+ DialogQueryList *dql = (DialogQueryList *)user_data;
+ const EventInfo *info;
+ GList *node;
- if (changes)
- {
- for (node = dql->books; node; node = node->next)
+ if (changes)
{
- info = gnc_gui_get_entity_events (changes, (const GUID*)(node->data));
- if (info && (info->event_mask & QOF_EVENT_DESTROY))
- {
- gnc_close_gui_component (dql->component_id);
- return;
- }
+ for (node = dql->books; node; node = node->next)
+ {
+ info = gnc_gui_get_entity_events (changes, (const GUID*)(node->data));
+ if (info && (info->event_mask & QOF_EVENT_DESTROY))
+ {
+ gnc_close_gui_component (dql->component_id);
+ return;
+ }
+ }
}
- }
}
static void
gnc_dialog_query_list_close (GtkButton *button, DialogQueryList *dql)
{
- /* Don't select anything */
- gnc_dialog_query_list_destroy (dql);
+ /* Don't select anything */
+ gnc_dialog_query_list_destroy (dql);
}
/*****************************************************************/
@@ -181,143 +183,144 @@
DialogQueryList *
gnc_dialog_query_list_new (GList *param_list, Query *q)
{
- GladeXML *xml;
- DialogQueryList *dql;
- GtkWidget *scroller, *close;
- GList *node;
+ GladeXML *xml;
+ DialogQueryList *dql;
+ GtkWidget *scroller, *close;
+ GList *node;
- dql = g_new0 (DialogQueryList, 1);
- xml = gnc_glade_xml_new ("dialog-query-list.glade", "Query List Dialog");
+ dql = g_new0 (DialogQueryList, 1);
+ xml = gnc_glade_xml_new ("dialog-query-list.glade", "Query List Dialog");
- /* Grab the dialog, save the dialog info */
- dql->dialog = glade_xml_get_widget (xml, "Query List Dialog");
- g_object_set_data (G_OBJECT (dql->dialog), "dialog-info", dql);
+ /* Grab the dialog, save the dialog info */
+ dql->dialog = glade_xml_get_widget (xml, "Query List Dialog");
+ g_object_set_data (G_OBJECT (dql->dialog), "dialog-info", dql);
- /* grab the widgets */
- dql->label = glade_xml_get_widget (xml, "dialog_label");
- dql->button_box = glade_xml_get_widget (xml, "button_vbox");
- scroller = glade_xml_get_widget (xml, "result_scroller");
- close = glade_xml_get_widget (xml, "close_button");
+ /* grab the widgets */
+ dql->label = glade_xml_get_widget (xml, "dialog_label");
+ dql->button_box = glade_xml_get_widget (xml, "button_vbox");
+ scroller = glade_xml_get_widget (xml, "result_scroller");
+ close = glade_xml_get_widget (xml, "close_button");
- /* build the query list */
- dql->qlist = gnc_query_list_new (param_list, q);
- gtk_container_add (GTK_CONTAINER (scroller), dql->qlist);
+ /* build the query list */
+ dql->qlist = gnc_query_list_new (param_list, q);
+ gtk_container_add (GTK_CONTAINER (scroller), dql->qlist);
- /* connect the double-click signal of the qlist */
- g_signal_connect (G_OBJECT (dql->qlist), "double_click_entry",
- G_CALLBACK(gnc_dialog_query_list_double_click_entry), dql);
-
+ /* connect the double-click signal of the qlist */
+ g_signal_connect (G_OBJECT (dql->qlist), "double_click_entry",
+ G_CALLBACK(gnc_dialog_query_list_double_click_entry), dql);
- /* connect to the close button */
- g_signal_connect (G_OBJECT (close), "clicked",
- G_CALLBACK (gnc_dialog_query_list_close), dql);
- /* connect to the cleanup */
- g_signal_connect (G_OBJECT (dql->dialog), "delete_event",
- G_CALLBACK (gnc_dialog_query_list_delete_cb), dql);
+ /* connect to the close button */
+ g_signal_connect (G_OBJECT (close), "clicked",
+ G_CALLBACK (gnc_dialog_query_list_close), dql);
+ /* connect to the cleanup */
+ g_signal_connect (G_OBJECT (dql->dialog), "delete_event",
+ G_CALLBACK (gnc_dialog_query_list_delete_cb), dql);
- /* register ourselves */
- dql->component_id =
- gnc_register_gui_component ("GNC Dialog Query List",
- gnc_dialog_query_list_refresh_handler,
- close_handler, dql);
- /* Build the book list */
- dql_build_booklist (dql, q);
+ /* register ourselves */
+ dql->component_id =
+ gnc_register_gui_component ("GNC Dialog Query List",
+ gnc_dialog_query_list_refresh_handler,
+ close_handler, dql);
- /* and register the books */
- for (node = dql->books; node; node = node->next)
- gnc_gui_component_watch_entity (dql->component_id, (GUID*)node->data,
- QOF_EVENT_DESTROY);
+ /* Build the book list */
+ dql_build_booklist (dql, q);
- return dql;
+ /* and register the books */
+ for (node = dql->books; node; node = node->next)
+ gnc_gui_component_watch_entity (dql->component_id, (GUID*)node->data,
+ QOF_EVENT_DESTROY);
+
+ return dql;
}
void gnc_dialog_query_list_set_title (DialogQueryList *dql, const char *title)
{
- if (!dql || !title) return;
- gtk_window_set_title (GTK_WINDOW (dql->dialog), title);
+ if (!dql || !title) return;
+ gtk_window_set_title (GTK_WINDOW (dql->dialog), title);
}
void gnc_dialog_query_list_set_label (DialogQueryList *dql, const char *label)
{
- if (!dql || !label) return;
- gtk_label_set_text (GTK_LABEL(dql->label), label);
+ if (!dql || !label) return;
+ gtk_label_set_text (GTK_LABEL(dql->label), label);
}
void gnc_dialog_query_list_set_buttons (DialogQueryList *dql,
- GNCDisplayListButton *buttons,
- gpointer user_data)
+ GNCDisplayListButton *buttons,
+ gpointer user_data)
{
- GtkWidget *button;
- int i;
+ GtkWidget *button;
+ int i;
- if (!dql || !buttons) return;
- g_return_if_fail (dql->buttons == NULL);
+ if (!dql || !buttons) return;
+ g_return_if_fail (dql->buttons == NULL);
- dql->buttons = buttons;
- dql->user_data = user_data;
+ dql->buttons = buttons;
+ dql->user_data = user_data;
- /* build up the buttons */
- for (i = 0; buttons[i].label; i++) {
- button = gtk_button_new_with_label (buttons[i].label);
- g_object_set_data (G_OBJECT (button), "data", &(dql->buttons[i]));
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK(gnc_dialog_query_list_button_clicked), dql);
- gtk_box_pack_start (GTK_BOX (dql->button_box), button, FALSE, FALSE, 3);
- }
+ /* build up the buttons */
+ for (i = 0; buttons[i].label; i++)
+ {
+ button = gtk_button_new_with_label (buttons[i].label);
+ g_object_set_data (G_OBJECT (button), "data", &(dql->buttons[i]));
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK(gnc_dialog_query_list_button_clicked), dql);
+ gtk_box_pack_start (GTK_BOX (dql->button_box), button, FALSE, FALSE, 3);
+ }
}
void gnc_dialog_query_list_set_numerics (DialogQueryList *dql, gboolean abs,
- gboolean inv_sort)
+ gboolean inv_sort)
{
- if (!dql) return;
+ if (!dql) return;
- gnc_query_list_set_numerics (GNC_QUERY_LIST(dql->qlist), abs, inv_sort);
+ gnc_query_list_set_numerics (GNC_QUERY_LIST(dql->qlist), abs, inv_sort);
}
void gnc_dialog_query_list_refresh (DialogQueryList *dql)
{
- if (!dql) return;
+ if (!dql) return;
- gnc_query_list_refresh (GNC_QUERY_LIST(dql->qlist));
- gtk_widget_show_all (dql->dialog);
+ gnc_query_list_refresh (GNC_QUERY_LIST(dql->qlist));
+ gtk_widget_show_all (dql->dialog);
}
void gnc_dialog_query_list_destroy (DialogQueryList *dql)
{
- if (!dql) return;
- gnc_close_gui_component (dql->component_id);
+ if (!dql) return;
+ gnc_close_gui_component (dql->component_id);
}
DialogQueryList *
gnc_dialog_query_list_create (GList *param_list, Query *q,
- const char *title, const char *label,
- gboolean abs, gboolean inv_sort,
- GNCDisplayListButton *buttons, gpointer user_data)
+ const char *title, const char *label,
+ gboolean abs, gboolean inv_sort,
+ GNCDisplayListButton *buttons, gpointer user_data)
{
- DialogQueryList *dql;
+ DialogQueryList *dql;
- if (!param_list || !q)
- return NULL;
+ if (!param_list || !q)
+ return NULL;
- dql = gnc_dialog_query_list_new (param_list, q);
- if (!dql)
- return NULL;
+ dql = gnc_dialog_query_list_new (param_list, q);
+ if (!dql)
+ return NULL;
- if (title)
- gnc_dialog_query_list_set_title (dql, title);
+ if (title)
+ gnc_dialog_query_list_set_title (dql, title);
- if (label)
- gnc_dialog_query_list_set_label (dql, label);
+ if (label)
+ gnc_dialog_query_list_set_label (dql, label);
- gnc_dialog_query_list_set_numerics (dql, abs, inv_sort);
+ gnc_dialog_query_list_set_numerics (dql, abs, inv_sort);
- if (buttons)
- gnc_dialog_query_list_set_buttons (dql, buttons, user_data);
+ if (buttons)
+ gnc_dialog_query_list_set_buttons (dql, buttons, user_data);
- gnc_dialog_query_list_refresh (dql);
+ gnc_dialog_query_list_refresh (dql);
- return dql;
+ return dql;
}
Modified: gnucash/trunk/src/gnome-utils/dialog-query-list.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-query-list.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-query-list.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -31,9 +31,10 @@
typedef struct _DialogQueryList DialogQueryList;
typedef void (*GNCDisplayListCB)(gpointer obj, gpointer user_data);
-typedef struct {
- const char * label;
- GNCDisplayListCB cb_fcn;
+typedef struct
+{
+ const char * label;
+ GNCDisplayListCB cb_fcn;
} GNCDisplayListButton;
DialogQueryList *
@@ -42,19 +43,19 @@
void gnc_dialog_query_list_set_title (DialogQueryList *dql, const char *title);
void gnc_dialog_query_list_set_label (DialogQueryList *dql, const char *label);
void gnc_dialog_query_list_set_buttons (DialogQueryList *dql,
- GNCDisplayListButton *buttons,
- gpointer user_data);
+ GNCDisplayListButton *buttons,
+ gpointer user_data);
void gnc_dialog_query_list_set_numerics (DialogQueryList *dql, gboolean abs,
- gboolean inv_sort);
+ gboolean inv_sort);
void gnc_dialog_query_list_refresh (DialogQueryList *dql);
void gnc_dialog_query_list_destroy (DialogQueryList *dql);
DialogQueryList *
gnc_dialog_query_list_create (GList *param_list, Query *q,
- const char *title, const char *label,
- gboolean abs, gboolean inv_sort,
- GNCDisplayListButton *buttons, gpointer user_data);
+ const char *title, const char *label,
+ gboolean abs, gboolean inv_sort,
+ GNCDisplayListButton *buttons, gpointer user_data);
#endif /* GNC_DIALOG_QUERY_LIST_H */
Modified: gnucash/trunk/src/gnome-utils/dialog-reset-warnings.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-reset-warnings.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-reset-warnings.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -49,382 +49,414 @@
static void
gnc_reset_warnings_update_widgets (GtkWidget *dialog_widget)
{
- GtkWidget *box1, *box2, *nada, *buttons;
- GtkWidget *apply;
- GList *list, *tmp;
- gboolean any = FALSE, checked = FALSE;
+ GtkWidget *box1, *box2, *nada, *buttons;
+ GtkWidget *apply;
+ GList *list, *tmp;
+ gboolean any = FALSE, checked = FALSE;
- ENTER(" ");
- box1 = gnc_glade_lookup_widget(dialog_widget, "perm_vbox_and_label");
- box2 = gnc_glade_lookup_widget(dialog_widget, "perm_vbox");
- list = gtk_container_get_children(GTK_CONTAINER(box2));
- if (list) {
- gtk_widget_show_all(box1);
- for (tmp = list; tmp; tmp = g_list_next(tmp)) {
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tmp->data))) {
- checked = TRUE;
- break;
- }
+ ENTER(" ");
+ box1 = gnc_glade_lookup_widget(dialog_widget, "perm_vbox_and_label");
+ box2 = gnc_glade_lookup_widget(dialog_widget, "perm_vbox");
+ list = gtk_container_get_children(GTK_CONTAINER(box2));
+ if (list)
+ {
+ gtk_widget_show_all(box1);
+ for (tmp = list; tmp; tmp = g_list_next(tmp))
+ {
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tmp->data)))
+ {
+ checked = TRUE;
+ break;
+ }
+ }
+ g_list_free(list);
+ any = TRUE;
}
- g_list_free(list);
- any = TRUE;
- } else {
- gtk_widget_hide(box1);
- }
+ else
+ {
+ gtk_widget_hide(box1);
+ }
- box1 = gnc_glade_lookup_widget(dialog_widget, "temp_vbox_and_label");
- box2 = gnc_glade_lookup_widget(dialog_widget, "temp_vbox");
- list = gtk_container_get_children(GTK_CONTAINER(box2));
- if (list) {
- gtk_widget_show_all(box1);
- for (tmp = list; tmp; tmp = g_list_next(tmp)) {
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tmp->data))) {
- checked = TRUE;
- break;
- }
+ box1 = gnc_glade_lookup_widget(dialog_widget, "temp_vbox_and_label");
+ box2 = gnc_glade_lookup_widget(dialog_widget, "temp_vbox");
+ list = gtk_container_get_children(GTK_CONTAINER(box2));
+ if (list)
+ {
+ gtk_widget_show_all(box1);
+ for (tmp = list; tmp; tmp = g_list_next(tmp))
+ {
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tmp->data)))
+ {
+ checked = TRUE;
+ break;
+ }
+ }
+ g_list_free(list);
+ any = TRUE;
}
- g_list_free(list);
- any = TRUE;
- } else {
- gtk_widget_hide(box1);
- }
+ else
+ {
+ gtk_widget_hide(box1);
+ }
- nada = gnc_glade_lookup_widget(dialog_widget, "no_warnings");
- buttons = gnc_glade_lookup_widget(dialog_widget, "hbuttonbox");
- apply = gnc_glade_lookup_widget(dialog_widget, "applybutton");
- if (any) {
- gtk_widget_show(buttons);
- gtk_widget_hide(nada);
- gtk_widget_set_sensitive(apply, checked);
- } else {
- gtk_widget_hide(buttons);
- gtk_widget_show(nada);
- gtk_widget_set_sensitive(apply, FALSE);
- }
- LEAVE(" ");
+ nada = gnc_glade_lookup_widget(dialog_widget, "no_warnings");
+ buttons = gnc_glade_lookup_widget(dialog_widget, "hbuttonbox");
+ apply = gnc_glade_lookup_widget(dialog_widget, "applybutton");
+ if (any)
+ {
+ gtk_widget_show(buttons);
+ gtk_widget_hide(nada);
+ gtk_widget_set_sensitive(apply, checked);
+ }
+ else
+ {
+ gtk_widget_hide(buttons);
+ gtk_widget_show(nada);
+ gtk_widget_set_sensitive(apply, FALSE);
+ }
+ LEAVE(" ");
}
static void
gnc_reset_warnings_select_common (GtkButton *button,
- gboolean selected)
+ gboolean selected)
{
- GtkWidget *vbox;
+ GtkWidget *vbox;
- ENTER("button %p, selected %d", button, selected);
- vbox = gnc_glade_lookup_widget(GTK_WIDGET(button), "perm_vbox");
- gtk_container_foreach(GTK_CONTAINER(vbox),
- (GtkCallback)gtk_toggle_button_set_active,
- GINT_TO_POINTER(selected));
- vbox = gnc_glade_lookup_widget(GTK_WIDGET(button), "temp_vbox");
- gtk_container_foreach(GTK_CONTAINER(vbox),
- (GtkCallback)gtk_toggle_button_set_active,
- GINT_TO_POINTER(selected));
- gnc_reset_warnings_update_widgets(GTK_WIDGET(button));
- LEAVE(" ");
+ ENTER("button %p, selected %d", button, selected);
+ vbox = gnc_glade_lookup_widget(GTK_WIDGET(button), "perm_vbox");
+ gtk_container_foreach(GTK_CONTAINER(vbox),
+ (GtkCallback)gtk_toggle_button_set_active,
+ GINT_TO_POINTER(selected));
+ vbox = gnc_glade_lookup_widget(GTK_WIDGET(button), "temp_vbox");
+ gtk_container_foreach(GTK_CONTAINER(vbox),
+ (GtkCallback)gtk_toggle_button_set_active,
+ GINT_TO_POINTER(selected));
+ gnc_reset_warnings_update_widgets(GTK_WIDGET(button));
+ LEAVE(" ");
}
void
gnc_reset_warnings_select_all_cb (GtkButton *button,
- gpointer user_data)
+ gpointer user_data)
{
- gnc_reset_warnings_select_common(button, TRUE);
+ gnc_reset_warnings_select_common(button, TRUE);
}
void
gnc_reset_warnings_unselect_all_cb (GtkButton *button,
- gpointer user_data)
+ gpointer user_data)
{
- gnc_reset_warnings_select_common(button, FALSE);
+ gnc_reset_warnings_select_common(button, FALSE);
}
static void
gnc_reset_warnings_find_remove (GtkWidget *widget,
- const gchar *name)
+ const gchar *name)
{
- ENTER("widget %p, name %s", widget, name);
- if (strcmp(gtk_widget_get_name(widget), name) == 0) {
- DEBUG("destroying widget %s", name);
- gtk_widget_destroy(widget);
- }
- LEAVE(" ");
+ ENTER("widget %p, name %s", widget, name);
+ if (strcmp(gtk_widget_get_name(widget), name) == 0)
+ {
+ DEBUG("destroying widget %s", name);
+ gtk_widget_destroy(widget);
+ }
+ LEAVE(" ");
}
static void
gnc_reset_warnings_apply_one (GtkWidget *widget,
- GtkDialog *dialog)
+ GtkDialog *dialog)
{
- const char *name;
+ const char *name;
- ENTER("widget %p, dialog %p", widget, dialog);
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
- LEAVE("not active");
- return;
- }
+ ENTER("widget %p, dialog %p", widget, dialog);
+ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+ {
+ LEAVE("not active");
+ return;
+ }
- name = gtk_widget_get_name(widget);
- gnc_gconf_unset(NULL, name, NULL);
- gtk_widget_destroy(widget);
- LEAVE(" ");
+ name = gtk_widget_get_name(widget);
+ gnc_gconf_unset(NULL, name, NULL);
+ gtk_widget_destroy(widget);
+ LEAVE(" ");
}
static void
gnc_reset_warnings_apply_changes (GtkDialog *dialog)
{
- GtkWidget *vbox;
+ GtkWidget *vbox;
- ENTER("dialog %p", dialog);
- vbox = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "perm_vbox");
- gtk_container_foreach(GTK_CONTAINER(vbox),
- (GtkCallback)gnc_reset_warnings_apply_one,
- dialog);
- vbox = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "temp_vbox");
- gtk_container_foreach(GTK_CONTAINER(vbox),
- (GtkCallback)gnc_reset_warnings_apply_one,
- dialog);
- gnc_reset_warnings_update_widgets(GTK_WIDGET(dialog));
- LEAVE(" ");
+ ENTER("dialog %p", dialog);
+ vbox = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "perm_vbox");
+ gtk_container_foreach(GTK_CONTAINER(vbox),
+ (GtkCallback)gnc_reset_warnings_apply_one,
+ dialog);
+ vbox = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "temp_vbox");
+ gtk_container_foreach(GTK_CONTAINER(vbox),
+ (GtkCallback)gnc_reset_warnings_apply_one,
+ dialog);
+ gnc_reset_warnings_update_widgets(GTK_WIDGET(dialog));
+ LEAVE(" ");
}
static void
gnc_reset_warnings_revert_changes (GtkDialog *dialog)
{
- GSList *entries, *tmp;
- GConfEntry *entry;
+ GSList *entries, *tmp;
+ GConfEntry *entry;
- ENTER("dialog %p", dialog);
+ ENTER("dialog %p", dialog);
- entries = g_object_get_data(G_OBJECT(dialog), GCONF_ENTRY_LIST);
- for (tmp = entries; tmp; tmp = g_slist_next(tmp)) {
- entry = tmp->data;
- gnc_gconf_set_int (NULL, entry->key,
- gconf_value_get_int(entry->value), NULL);
- }
- LEAVE(" ");
+ entries = g_object_get_data(G_OBJECT(dialog), GCONF_ENTRY_LIST);
+ for (tmp = entries; tmp; tmp = g_slist_next(tmp))
+ {
+ entry = tmp->data;
+ gnc_gconf_set_int (NULL, entry->key,
+ gconf_value_get_int(entry->value), NULL);
+ }
+ LEAVE(" ");
}
void
gnc_reset_warnings_response_cb (GtkDialog *dialog,
- gint response,
- gpointer user_data)
+ gint response,
+ gpointer user_data)
{
- switch (response) {
+ switch (response)
+ {
case GTK_RESPONSE_APPLY:
- gnc_reset_warnings_apply_changes(dialog);
- break;
+ gnc_reset_warnings_apply_changes(dialog);
+ break;
case GTK_RESPONSE_OK:
- gnc_gconf_remove_notification(G_OBJECT(dialog), GCONF_WARNINGS,
- DIALOG_RESET_WARNINGS_CM_CLASS);
- gnc_reset_warnings_apply_changes(dialog);
- gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
- gnc_unregister_gui_component_by_data(DIALOG_RESET_WARNINGS_CM_CLASS,
- dialog);
- gtk_widget_destroy(GTK_WIDGET(dialog));
- break;
+ gnc_gconf_remove_notification(G_OBJECT(dialog), GCONF_WARNINGS,
+ DIALOG_RESET_WARNINGS_CM_CLASS);
+ gnc_reset_warnings_apply_changes(dialog);
+ gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+ gnc_unregister_gui_component_by_data(DIALOG_RESET_WARNINGS_CM_CLASS,
+ dialog);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ break;
default:
- gnc_gconf_remove_notification(G_OBJECT(dialog), GCONF_WARNINGS,
- DIALOG_RESET_WARNINGS_CM_CLASS);
- gnc_reset_warnings_revert_changes(dialog);
- gnc_unregister_gui_component_by_data(DIALOG_RESET_WARNINGS_CM_CLASS,
- dialog);
- gtk_widget_destroy(GTK_WIDGET(dialog));
- }
+ gnc_gconf_remove_notification(G_OBJECT(dialog), GCONF_WARNINGS,
+ DIALOG_RESET_WARNINGS_CM_CLASS);
+ gnc_reset_warnings_revert_changes(dialog);
+ gnc_unregister_gui_component_by_data(DIALOG_RESET_WARNINGS_CM_CLASS,
+ dialog);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ }
}
static void
gnc_reset_warnings_add_one (GConfEntry *entry, GtkWidget *box)
{
- const gchar *name, *schema_name, *desc, *long_desc = NULL;
- GtkWidget *checkbox;
- GConfSchema *schema = NULL;
+ const gchar *name, *schema_name, *desc, *long_desc = NULL;
+ GtkWidget *checkbox;
+ GConfSchema *schema = NULL;
- ENTER(" ");
- name = strrchr(entry->key, '/') + 1;
- schema_name = gconf_entry_get_schema_name(entry);
- if (schema_name)
- schema = gnc_gconf_get_schema(NULL, schema_name, NULL);
- if (schema) {
- DEBUG("found schema %p", schema);
- desc = gconf_schema_get_short_desc(schema);
- DEBUG("description %s", desc);
- long_desc = gconf_schema_get_long_desc(schema);
- checkbox = gtk_check_button_new_with_label(desc ? desc : name);
- if (long_desc) {
- GtkTooltips *tips;
- tips = g_object_get_data(G_OBJECT(box), TIPS_STRING);
- if (!tips) {
- tips = gtk_tooltips_new();
- g_object_set_data(G_OBJECT(box), TIPS_STRING, tips);
- }
- gtk_tooltips_set_tip(tips, checkbox, long_desc, NULL);
+ ENTER(" ");
+ name = strrchr(entry->key, '/') + 1;
+ schema_name = gconf_entry_get_schema_name(entry);
+ if (schema_name)
+ schema = gnc_gconf_get_schema(NULL, schema_name, NULL);
+ if (schema)
+ {
+ DEBUG("found schema %p", schema);
+ desc = gconf_schema_get_short_desc(schema);
+ DEBUG("description %s", desc);
+ long_desc = gconf_schema_get_long_desc(schema);
+ checkbox = gtk_check_button_new_with_label(desc ? desc : name);
+ if (long_desc)
+ {
+ GtkTooltips *tips;
+ tips = g_object_get_data(G_OBJECT(box), TIPS_STRING);
+ if (!tips)
+ {
+ tips = gtk_tooltips_new();
+ g_object_set_data(G_OBJECT(box), TIPS_STRING, tips);
+ }
+ gtk_tooltips_set_tip(tips, checkbox, long_desc, NULL);
+ }
+ gconf_schema_free(schema);
}
- gconf_schema_free(schema);
- } else {
- DEBUG("no schema");
- checkbox = gtk_check_button_new_with_label(name);
- }
+ else
+ {
+ DEBUG("no schema");
+ checkbox = gtk_check_button_new_with_label(name);
+ }
- gtk_widget_set_name(checkbox, entry->key);
- g_signal_connect_swapped(G_OBJECT(checkbox), "toggled",
- (GCallback)gnc_reset_warnings_update_widgets,
- box);
- gtk_box_pack_start_defaults(GTK_BOX(box), checkbox);
- LEAVE(" ");
+ gtk_widget_set_name(checkbox, entry->key);
+ g_signal_connect_swapped(G_OBJECT(checkbox), "toggled",
+ (GCallback)gnc_reset_warnings_update_widgets,
+ box);
+ gtk_box_pack_start_defaults(GTK_BOX(box), checkbox);
+ LEAVE(" ");
}
static GSList *
gnc_reset_warnings_add_section (const gchar *section, GtkWidget *box)
{
- GSList *entries, *tmp;
- GConfEntry *entry;
+ GSList *entries, *tmp;
+ GConfEntry *entry;
- ENTER(" ");
- entries = gnc_gconf_client_all_entries(section);
- for (tmp = entries; tmp; tmp = g_slist_next(tmp)) {
- entry = tmp->data;
- if (gconf_value_get_int(entry->value) != 0) {
- gnc_reset_warnings_add_one(entry, box);
+ ENTER(" ");
+ entries = gnc_gconf_client_all_entries(section);
+ for (tmp = entries; tmp; tmp = g_slist_next(tmp))
+ {
+ entry = tmp->data;
+ if (gconf_value_get_int(entry->value) != 0)
+ {
+ gnc_reset_warnings_add_one(entry, box);
+ }
}
- }
- LEAVE(" ");
- return entries;
+ LEAVE(" ");
+ return entries;
}
static void
gnc_reset_warnings_release_entries (GSList *entries)
{
- GSList *tmp;
+ GSList *tmp;
- ENTER(" ");
- for (tmp = entries; tmp; tmp = g_slist_next(tmp)) {
- gconf_entry_free(tmp->data);
- }
- g_slist_free(entries);
- LEAVE(" ");
+ ENTER(" ");
+ for (tmp = entries; tmp; tmp = g_slist_next(tmp))
+ {
+ gconf_entry_free(tmp->data);
+ }
+ g_slist_free(entries);
+ LEAVE(" ");
}
static void
gnc_reset_warnings_gconf_changed (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
{
- GtkWidget *dialog, *box;
- GList *list;
+ GtkWidget *dialog, *box;
+ GList *list;
- g_return_if_fail(GTK_IS_DIALOG(user_data));
+ g_return_if_fail(GTK_IS_DIALOG(user_data));
- ENTER("entry %p, data %p", entry, user_data);
- dialog = GTK_WIDGET(user_data);
- DEBUG("entry key '%s', value as %p, value as int %d", entry->key, entry->value, gconf_value_get_int(entry->value));
+ ENTER("entry %p, data %p", entry, user_data);
+ dialog = GTK_WIDGET(user_data);
+ DEBUG("entry key '%s', value as %p, value as int %d", entry->key, entry->value, gconf_value_get_int(entry->value));
- /* Which box is affected */
- if (strstr(entry->key, "permanent") != 0) {
- box = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "perm_vbox");
- } else {
- box = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "temp_vbox");
- }
+ /* Which box is affected */
+ if (strstr(entry->key, "permanent") != 0)
+ {
+ box = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "perm_vbox");
+ }
+ else
+ {
+ box = gnc_glade_lookup_widget(GTK_WIDGET(dialog), "temp_vbox");
+ }
- if (gconf_value_get_int(entry->value) != 0) {
- gnc_reset_warnings_add_one (entry, box);
- DEBUG("added checkbox for %s", entry->key);
- } else {
- /* Don't know if we were invoked by the dialog removing the
- * warning, or if the remove happened somewhere else like
- * gconf-editor. Can't hurt to run the widgets and try to remove
- * it. Worst case we can't find it because its already been
- * deleted. */
- list = gtk_container_get_children(GTK_CONTAINER(box));
- g_list_foreach(list, (GFunc)gnc_reset_warnings_find_remove, entry->key);
- g_list_free(list);
- }
- gnc_reset_warnings_update_widgets(dialog);
- LEAVE(" ");
+ if (gconf_value_get_int(entry->value) != 0)
+ {
+ gnc_reset_warnings_add_one (entry, box);
+ DEBUG("added checkbox for %s", entry->key);
+ }
+ else
+ {
+ /* Don't know if we were invoked by the dialog removing the
+ * warning, or if the remove happened somewhere else like
+ * gconf-editor. Can't hurt to run the widgets and try to remove
+ * it. Worst case we can't find it because its already been
+ * deleted. */
+ list = gtk_container_get_children(GTK_CONTAINER(box));
+ g_list_foreach(list, (GFunc)gnc_reset_warnings_find_remove, entry->key);
+ g_list_free(list);
+ }
+ gnc_reset_warnings_update_widgets(dialog);
+ LEAVE(" ");
}
static gboolean
show_handler (const char *class, gint component_id,
- gpointer user_data, gpointer iter_data)
+ gpointer user_data, gpointer iter_data)
{
- GtkWidget *dialog;
+ GtkWidget *dialog;
- ENTER(" ");
- dialog = GTK_WIDGET(user_data);
- gtk_window_present(GTK_WINDOW(dialog));
- LEAVE(" ");
- return(TRUE);
+ ENTER(" ");
+ dialog = GTK_WIDGET(user_data);
+ gtk_window_present(GTK_WINDOW(dialog));
+ LEAVE(" ");
+ return(TRUE);
}
static void
close_handler (gpointer user_data)
{
- GtkWidget *dialog = user_data;
+ GtkWidget *dialog = user_data;
- ENTER(" ");
- dialog = GTK_WIDGET(user_data);
- gnc_unregister_gui_component_by_data(DIALOG_RESET_WARNINGS_CM_CLASS, dialog);
- gtk_widget_destroy(dialog);
- LEAVE(" ");
+ ENTER(" ");
+ dialog = GTK_WIDGET(user_data);
+ gnc_unregister_gui_component_by_data(DIALOG_RESET_WARNINGS_CM_CLASS, dialog);
+ gtk_widget_destroy(dialog);
+ LEAVE(" ");
}
void
gnc_reset_warnings_dialog (GtkWidget *main_window)
{
- GtkWidget *dialog, *box;
- GladeXML *xml;
- GSList *perm_list, *temp_list;
+ GtkWidget *dialog, *box;
+ GladeXML *xml;
+ GSList *perm_list, *temp_list;
- ENTER("");
- if (gnc_forall_gui_components(DIALOG_RESET_WARNINGS_CM_CLASS,
- show_handler, NULL)) {
- LEAVE("existing window");
- return;
- }
+ ENTER("");
+ if (gnc_forall_gui_components(DIALOG_RESET_WARNINGS_CM_CLASS,
+ show_handler, NULL))
+ {
+ LEAVE("existing window");
+ return;
+ }
- DEBUG("Opening dialog-reset-warnings.glade:");
- xml = gnc_glade_xml_new("dialog-reset-warnings.glade", "Reset Warnings");
- dialog = glade_xml_get_widget(xml, "Reset Warnings");
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- dialog);
+ DEBUG("Opening dialog-reset-warnings.glade:");
+ xml = gnc_glade_xml_new("dialog-reset-warnings.glade", "Reset Warnings");
+ dialog = glade_xml_get_widget(xml, "Reset Warnings");
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ dialog);
- DEBUG("permanent");
- box = glade_xml_get_widget(xml, "perm_vbox");
- perm_list = gnc_reset_warnings_add_section(GCONF_WARNINGS_PERM, box);
+ DEBUG("permanent");
+ box = glade_xml_get_widget(xml, "perm_vbox");
+ perm_list = gnc_reset_warnings_add_section(GCONF_WARNINGS_PERM, box);
- DEBUG("temporary");
- box = glade_xml_get_widget(xml, "temp_vbox");
- temp_list = gnc_reset_warnings_add_section(GCONF_WARNINGS_TEMP, box);
+ DEBUG("temporary");
+ box = glade_xml_get_widget(xml, "temp_vbox");
+ temp_list = gnc_reset_warnings_add_section(GCONF_WARNINGS_TEMP, box);
- g_object_set_data_full(G_OBJECT(dialog), GCONF_ENTRY_LIST,
- g_slist_concat (perm_list, temp_list),
- (GDestroyNotify)gnc_reset_warnings_release_entries);
+ g_object_set_data_full(G_OBJECT(dialog), GCONF_ENTRY_LIST,
+ g_slist_concat (perm_list, temp_list),
+ (GDestroyNotify)gnc_reset_warnings_release_entries);
- gnc_reset_warnings_update_widgets(dialog);
+ gnc_reset_warnings_update_widgets(dialog);
- gnc_gconf_add_notification(G_OBJECT(dialog), GCONF_WARNINGS,
- gnc_reset_warnings_gconf_changed,
- DIALOG_RESET_WARNINGS_CM_CLASS);
+ gnc_gconf_add_notification(G_OBJECT(dialog), GCONF_WARNINGS,
+ gnc_reset_warnings_gconf_changed,
+ DIALOG_RESET_WARNINGS_CM_CLASS);
- gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+ gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
- gnc_register_gui_component (DIALOG_RESET_WARNINGS_CM_CLASS,
- NULL, close_handler, dialog);
+ gnc_register_gui_component (DIALOG_RESET_WARNINGS_CM_CLASS,
+ NULL, close_handler, dialog);
- gtk_widget_show(dialog);
- LEAVE(" ");
+ gtk_widget_show(dialog);
+ LEAVE(" ");
}
Modified: gnucash/trunk/src/gnome-utils/dialog-totd.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-totd.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-totd.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -20,7 +20,7 @@
* Free Software Foundation Voice: +1-617-542-5942
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
* Boston, MA 02110-1301, USA gnu at gnu.org
- */
+ */
#include "config.h"
@@ -77,23 +77,23 @@
*/
static void
gnc_new_tip_number (GtkWidget *widget,
- gint offset)
+ gint offset)
{
- GtkWidget *textview;
+ GtkWidget *textview;
- ENTER("widget %p, offset %d", widget, offset);
- current_tip_number += offset;
- DEBUG("clamp %d to '0 <= x < %d'", current_tip_number, tip_count);
- if (current_tip_number < 0)
- current_tip_number = tip_count - 1;
- if (current_tip_number >= tip_count)
- current_tip_number = 0;
- gnc_gconf_set_int(GCONF_SECTION, KEY_CURRENT_TIP, current_tip_number, NULL);
+ ENTER("widget %p, offset %d", widget, offset);
+ current_tip_number += offset;
+ DEBUG("clamp %d to '0 <= x < %d'", current_tip_number, tip_count);
+ if (current_tip_number < 0)
+ current_tip_number = tip_count - 1;
+ if (current_tip_number >= tip_count)
+ current_tip_number = 0;
+ gnc_gconf_set_int(GCONF_SECTION, KEY_CURRENT_TIP, current_tip_number, NULL);
- textview = gnc_glade_lookup_widget(widget, "tip_textview");
- gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)),
- _(tip_list[current_tip_number]), -1);
- LEAVE("");
+ textview = gnc_glade_lookup_widget(widget, "tip_textview");
+ gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)),
+ _(tip_list[current_tip_number]), -1);
+ LEAVE("");
}
@@ -102,39 +102,40 @@
/********************/
void gnc_totd_dialog_response (GtkDialog *dialog,
- gint response,
- gpointer user_data)
+ gint response,
+ gpointer user_data)
{
- ENTER("dialog %p, response %d, user_data %p", dialog, response, user_data);
- switch (response) {
+ ENTER("dialog %p, response %d, user_data %p", dialog, response, user_data);
+ switch (response)
+ {
case GNC_RESPONSE_FORWARD:
- gnc_new_tip_number(GTK_WIDGET(dialog), 1);
- break;
+ gnc_new_tip_number(GTK_WIDGET(dialog), 1);
+ break;
case GNC_RESPONSE_BACK:
- gnc_new_tip_number(GTK_WIDGET(dialog), -1);
- break;
+ gnc_new_tip_number(GTK_WIDGET(dialog), -1);
+ break;
case GTK_RESPONSE_CLOSE:
- gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
- /* fall through */
+ gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+ /* fall through */
default:
- gnc_unregister_gui_component_by_data(DIALOG_TOTD_CM_CLASS, dialog);
- gtk_widget_destroy(GTK_WIDGET(dialog));
- break;
- }
- LEAVE("");
+ gnc_unregister_gui_component_by_data(DIALOG_TOTD_CM_CLASS, dialog);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ break;
+ }
+ LEAVE("");
}
void
gnc_totd_dialog_startup_toggled (GtkToggleButton *button,
- gpointer user_data)
+ gpointer user_data)
{
- gboolean active;
+ gboolean active;
- active = gtk_toggle_button_get_active(button);
- gnc_gconf_set_bool(GCONF_SECTION, KEY_SHOW_TIPS, active, NULL);
+ active = gtk_toggle_button_get_active(button);
+ gnc_gconf_set_bool(GCONF_SECTION, KEY_SHOW_TIPS, active, NULL);
}
/********************/
@@ -144,56 +145,62 @@
static gboolean
gnc_totd_initialize (void)
{
- gchar *filename, *contents, *new, *found;
- gsize length;
- GError *error;
+ gchar *filename, *contents, *new, *found;
+ gsize length;
+ GError *error;
- /* Find the file */
- filename = gnc_gnome_locate_data_file("tip_of_the_day.list");
- if (!filename)
- return FALSE;
+ /* Find the file */
+ filename = gnc_gnome_locate_data_file("tip_of_the_day.list");
+ if (!filename)
+ return FALSE;
- /* Read it */
- if (!g_file_get_contents(filename, &contents, &length, &error)) {
- printf("Unable to read file: %s\n", error->message);
- g_error_free(error);
- g_free(filename);
- return FALSE;
- }
+ /* Read it */
+ if (!g_file_get_contents(filename, &contents, &length, &error))
+ {
+ printf("Unable to read file: %s\n", error->message);
+ g_error_free(error);
+ g_free(filename);
+ return FALSE;
+ }
- /* Replace maximal substrings of more than two newlines by \n\n,
- * remove leading and trailing \n\n */
- while ((found = strstr(contents, "\n\n\n")) != NULL) {
- *found++ = '\0';
- while (*found == '\n') found++;
- if (*contents && *found) {
- /* put \n\n between the two nonempty parts */
- new = g_strdup_printf("%s\n\n%s", contents, found);
- g_free(contents);
- contents = new;
- } else if (*found) {
- /* remove leading newlines */
- new = g_strdup(found);
- g_free(contents);
- contents = new;
+ /* Replace maximal substrings of more than two newlines by \n\n,
+ * remove leading and trailing \n\n */
+ while ((found = strstr(contents, "\n\n\n")) != NULL)
+ {
+ *found++ = '\0';
+ while (*found == '\n') found++;
+ if (*contents && *found)
+ {
+ /* put \n\n between the two nonempty parts */
+ new = g_strdup_printf("%s\n\n%s", contents, found);
+ g_free(contents);
+ contents = new;
+ }
+ else if (*found)
+ {
+ /* remove leading newlines */
+ new = g_strdup(found);
+ g_free(contents);
+ contents = new;
+ }
}
- }
- /* Split into multiple strings */
- tip_list = g_strsplit(contents, "\n\n", 0);
+ /* Split into multiple strings */
+ tip_list = g_strsplit(contents, "\n\n", 0);
- /* Convert any escaped characters while counting the strings */
- for (tip_count = 0; tip_list[tip_count] != NULL; tip_count++) {
+ /* Convert any escaped characters while counting the strings */
+ for (tip_count = 0; tip_list[tip_count] != NULL; tip_count++)
+ {
- g_strstrip(tip_list[tip_count]);
- new = g_strcompress(g_strdelimit(tip_list[tip_count], "\n", ' '));
- g_free(tip_list[tip_count]);
- tip_list[tip_count] = new;
- }
+ g_strstrip(tip_list[tip_count]);
+ new = g_strcompress(g_strdelimit(tip_list[tip_count], "\n", ' '));
+ g_free(tip_list[tip_count]);
+ tip_list[tip_count] = new;
+ }
- g_free(contents);
- g_free(filename);
- return TRUE;
+ g_free(contents);
+ g_free(filename);
+ return TRUE;
}
/** Raise the totd dialog to the top of the window stack. This
@@ -212,15 +219,15 @@
*/
static gboolean
show_handler (const char *class, gint component_id,
- gpointer user_data, gpointer iter_data)
+ gpointer user_data, gpointer iter_data)
{
- GtkWidget *dialog;
+ GtkWidget *dialog;
- ENTER(" ");
- dialog = GTK_WIDGET(user_data);
- gtk_window_present(GTK_WINDOW(dialog));
- LEAVE(" ");
- return(TRUE);
+ ENTER(" ");
+ dialog = GTK_WIDGET(user_data);
+ gtk_window_present(GTK_WINDOW(dialog));
+ LEAVE(" ");
+ return(TRUE);
}
/** Close the totd dialog.
@@ -232,13 +239,13 @@
static void
close_handler (gpointer user_data)
{
- GtkWidget *dialog;
+ GtkWidget *dialog;
- ENTER(" ");
- dialog = GTK_WIDGET(user_data);
- gnc_unregister_gui_component_by_data(DIALOG_TOTD_CM_CLASS, dialog);
- gtk_widget_destroy(dialog);
- LEAVE(" ");
+ ENTER(" ");
+ dialog = GTK_WIDGET(user_data);
+ gnc_unregister_gui_component_by_data(DIALOG_TOTD_CM_CLASS, dialog);
+ gtk_widget_destroy(dialog);
+ LEAVE(" ");
}
@@ -249,38 +256,40 @@
void
gnc_totd_dialog (GtkWindow *parent, gboolean startup)
{
- GladeXML *xml;
- GtkWidget *dialog, *button;
- gboolean show_tips;
+ GladeXML *xml;
+ GtkWidget *dialog, *button;
+ gboolean show_tips;
- show_tips = gnc_gconf_get_bool(GCONF_SECTION, KEY_SHOW_TIPS, NULL);
- if (startup && !show_tips)
- return;
+ show_tips = gnc_gconf_get_bool(GCONF_SECTION, KEY_SHOW_TIPS, NULL);
+ if (startup && !show_tips)
+ return;
- if (tip_count == -1) {
- if (!gnc_totd_initialize())
- return;
- current_tip_number = gnc_gconf_get_int(GCONF_SECTION, KEY_CURRENT_TIP, NULL);
- }
+ if (tip_count == -1)
+ {
+ if (!gnc_totd_initialize())
+ return;
+ current_tip_number = gnc_gconf_get_int(GCONF_SECTION, KEY_CURRENT_TIP, NULL);
+ }
- if (gnc_forall_gui_components(DIALOG_TOTD_CM_CLASS, show_handler, NULL)) {
- return;
- }
+ if (gnc_forall_gui_components(DIALOG_TOTD_CM_CLASS, show_handler, NULL))
+ {
+ return;
+ }
- xml = gnc_glade_xml_new ("totd.glade", "totd_dialog");
- dialog = glade_xml_get_widget (xml, "totd_dialog");
- gtk_window_set_transient_for(GTK_WINDOW (dialog), parent);
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- dialog);
+ xml = gnc_glade_xml_new ("totd.glade", "totd_dialog");
+ dialog = glade_xml_get_widget (xml, "totd_dialog");
+ gtk_window_set_transient_for(GTK_WINDOW (dialog), parent);
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ dialog);
- gnc_new_tip_number(dialog, 1);
+ gnc_new_tip_number(dialog, 1);
- button = glade_xml_get_widget(xml, "show_checkbutton");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (button), show_tips);
+ button = glade_xml_get_widget(xml, "show_checkbutton");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (button), show_tips);
- gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
- gtk_widget_show(GTK_WIDGET (dialog));
+ gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+ gtk_widget_show(GTK_WIDGET (dialog));
- gnc_register_gui_component(DIALOG_TOTD_CM_CLASS,
- NULL, close_handler, dialog);
+ gnc_register_gui_component(DIALOG_TOTD_CM_CLASS,
+ NULL, close_handler, dialog);
}
Modified: gnucash/trunk/src/gnome-utils/dialog-totd.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-totd.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-totd.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -19,11 +19,11 @@
* Free Software Foundation Voice: +1-617-542-5942
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
* Boston, MA 02110-1301, USA gnu at gnu.org
- */
+ */
#ifndef DIALOG_TOTD_H
#define DIALOG_TOTD_H
void gnc_totd_dialog (GtkWindow *parent, gboolean startup);
-#endif
+#endif
Modified: gnucash/trunk/src/gnome-utils/dialog-transfer.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-transfer.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-transfer.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -57,8 +57,8 @@
typedef enum
{
- XFER_DIALOG_FROM,
- XFER_DIALOG_TO
+ XFER_DIALOG_FROM,
+ XFER_DIALOG_TO
} XferDirection;
@@ -67,84 +67,84 @@
struct _xferDialog
{
- GtkWidget * dialog;
+ GtkWidget * dialog;
- GtkWidget * amount_edit;
- GtkWidget * date_entry;
- GtkWidget * num_entry;
- GtkWidget * description_entry;
- GtkWidget * memo_entry;
- GtkWidget * conv_forward;
- GtkWidget * conv_reverse;
+ GtkWidget * amount_edit;
+ GtkWidget * date_entry;
+ GtkWidget * num_entry;
+ GtkWidget * description_entry;
+ GtkWidget * memo_entry;
+ GtkWidget * conv_forward;
+ GtkWidget * conv_reverse;
- GtkWidget * from_window;
- GtkTreeView * from_tree_view;
- gnc_commodity * from_commodity;
- GtkWidget * to_window;
- GtkTreeView * to_tree_view;
- gnc_commodity * to_commodity;
+ GtkWidget * from_window;
+ GtkTreeView * from_tree_view;
+ gnc_commodity * from_commodity;
+ GtkWidget * to_window;
+ GtkTreeView * to_tree_view;
+ gnc_commodity * to_commodity;
- QuickFill * qf; /* Quickfill on transfer descriptions,
+ QuickFill * qf; /* Quickfill on transfer descriptions,
defaults to matching on the "From" account. */
- XferDirection quickfill; /* direction match on the account instead. */
+ XferDirection quickfill; /* direction match on the account instead. */
- /* stored data for the description quickfill selection function */
- gint desc_start_selection;
- gint desc_end_selection;
- guint desc_selection_source_id;
+ /* stored data for the description quickfill selection function */
+ gint desc_start_selection;
+ gint desc_end_selection;
+ guint desc_selection_source_id;
- GtkWidget * transferinfo_label;
+ GtkWidget * transferinfo_label;
- GtkWidget * from_transfer_label;
- GtkWidget * to_transfer_label;
+ GtkWidget * from_transfer_label;
+ GtkWidget * to_transfer_label;
- GtkWidget * from_currency_label;
- GtkWidget * to_currency_label;
+ GtkWidget * from_currency_label;
+ GtkWidget * to_currency_label;
- GtkWidget * from_show_button;
- GtkWidget * to_show_button;
+ GtkWidget * from_show_button;
+ GtkWidget * to_show_button;
- GtkWidget * curr_xfer_table;
+ GtkWidget * curr_xfer_table;
- GtkWidget * price_edit;
- GtkWidget * to_amount_edit;
+ GtkWidget * price_edit;
+ GtkWidget * to_amount_edit;
- GtkWidget * price_radio;
- GtkWidget * amount_radio;
+ GtkWidget * price_radio;
+ GtkWidget * amount_radio;
- GtkWidget * fetch_button;
+ GtkWidget * fetch_button;
- GtkTooltips *tips;
+ GtkTooltips *tips;
- QofBook * book;
- GNCPriceDB * pricedb;
+ QofBook * book;
+ GNCPriceDB * pricedb;
- /* Where to store the "exchange_rate" at exit (in lieu of
- * creating a transaction)
- */
- gnc_numeric * exch_rate;
+ /* Where to store the "exchange_rate" at exit (in lieu of
+ * creating a transaction)
+ */
+ gnc_numeric * exch_rate;
- /* Callback funtion to notify of the newly created Transaction */
- gnc_xfer_dialog_cb transaction_cb;
- /* , and its user_data */
- gpointer transaction_user_data;
+ /* Callback funtion to notify of the newly created Transaction */
+ gnc_xfer_dialog_cb transaction_cb;
+ /* , and its user_data */
+ gpointer transaction_user_data;
};
/** Structure passed to "filter tree accounts" function to provide it information */
typedef struct
{
- /** Show income/expense accounts in tree */
+ /** Show income/expense accounts in tree */
gboolean show_inc_exp;
- /** Show hidden accounts in tree */
- gboolean show_hidden;
+ /** Show hidden accounts in tree */
+ gboolean show_hidden;
} AccountTreeFilterInfo;
struct _acct_list_item
{
- char *acct_full_name;
- Account *acct;
+ char *acct_full_name;
+ Account *acct;
};
typedef struct _acct_list_item acct_list_item;
@@ -154,10 +154,10 @@
static void gnc_xfer_dialog_update_conv_info(XferDialog *xferData);
static Account *gnc_transfer_dialog_get_selected_account (XferDialog *dialog,
- XferDirection direction);
+ XferDirection direction);
static void gnc_transfer_dialog_set_selected_account (XferDialog *dialog,
- Account *account,
- XferDirection direction);
+ Account *account,
+ XferDirection direction);
void gnc_xfer_dialog_response_cb (GtkDialog *dialog, gint response, gpointer data);
void gnc_xfer_dialog_close_cb(GtkDialog *dialog, gpointer data);
@@ -166,84 +166,89 @@
static gnc_numeric
gnc_xfer_dialog_compute_price (XferDialog *xferData)
{
- gnc_numeric from_amt, to_amt;
+ gnc_numeric from_amt, to_amt;
- from_amt = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->amount_edit));
- to_amt = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->to_amount_edit));
+ from_amt = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->amount_edit));
+ to_amt = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->to_amount_edit));
- return(gnc_numeric_div(to_amt, from_amt, GNC_DENOM_AUTO, GNC_DENOM_REDUCE));
+ return(gnc_numeric_div(to_amt, from_amt, GNC_DENOM_AUTO, GNC_DENOM_REDUCE));
}
/* (maybe) update the price from the pricedb. */
static void
gnc_xfer_dialog_update_price (XferDialog *xferData)
{
- GNCPrice *prc;
- gnc_numeric price;
- Timespec date;
- gnc_commodity *from = xferData->from_commodity;
- gnc_commodity *to = xferData->to_commodity;
+ GNCPrice *prc;
+ gnc_numeric price;
+ Timespec date;
+ gnc_commodity *from = xferData->from_commodity;
+ gnc_commodity *to = xferData->to_commodity;
- if (!xferData) return;
- if (!xferData->from_commodity || ! xferData->to_commodity) return;
- if (gnc_commodity_equal (xferData->from_commodity, xferData->to_commodity))
- return;
- if (!xferData->pricedb) return;
+ if (!xferData) return;
+ if (!xferData->from_commodity || ! xferData->to_commodity) return;
+ if (gnc_commodity_equal (xferData->from_commodity, xferData->to_commodity))
+ return;
+ if (!xferData->pricedb) return;
- /* when do we update, and when do we NOT update? */
+ /* when do we update, and when do we NOT update? */
- /* XXX: I'm ALWAYS going to update whenver we get called */
+ /* XXX: I'm ALWAYS going to update whenver we get called */
- /* grab the price nearest to the DATE out of the pricedb */
- date = gnc_date_edit_get_date_ts (GNC_DATE_EDIT (xferData->date_entry));
- prc = gnc_pricedb_lookup_nearest_in_time (xferData->pricedb,
- from, to, date);
-
- if (prc) {
- /* grab the price from the pricedb */
- price = gnc_price_get_value (prc);
- PINFO("Found price: 1 %s = %f %s", gnc_commodity_get_mnemonic(from),
- gnc_numeric_to_double(price), gnc_commodity_get_mnemonic(to));
- } else {
+ /* grab the price nearest to the DATE out of the pricedb */
+ date = gnc_date_edit_get_date_ts (GNC_DATE_EDIT (xferData->date_entry));
prc = gnc_pricedb_lookup_nearest_in_time (xferData->pricedb,
- to, from, date);
- if (!prc)
- return;
- price = gnc_price_get_value (prc);
- PINFO("Found reverse price: 1 %s = %f %s", gnc_commodity_get_mnemonic(to),
- gnc_numeric_to_double(price), gnc_commodity_get_mnemonic(from));
- price = gnc_numeric_div (gnc_numeric_create (1, 1), price,
- GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
- }
+ from, to, date);
- /* and set the price entry */
- gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (xferData->price_edit), price);
+ if (prc)
+ {
+ /* grab the price from the pricedb */
+ price = gnc_price_get_value (prc);
+ PINFO("Found price: 1 %s = %f %s", gnc_commodity_get_mnemonic(from),
+ gnc_numeric_to_double(price), gnc_commodity_get_mnemonic(to));
+ }
+ else
+ {
+ prc = gnc_pricedb_lookup_nearest_in_time (xferData->pricedb,
+ to, from, date);
+ if (!prc)
+ return;
+ price = gnc_price_get_value (prc);
+ PINFO("Found reverse price: 1 %s = %f %s", gnc_commodity_get_mnemonic(to),
+ gnc_numeric_to_double(price), gnc_commodity_get_mnemonic(from));
+ price = gnc_numeric_div (gnc_numeric_create (1, 1), price,
+ GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
+ }
- /* And then update the to_amount */
- gnc_xfer_update_to_amount (xferData);
+ /* and set the price entry */
+ gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (xferData->price_edit), price);
+
+ /* And then update the to_amount */
+ gnc_xfer_update_to_amount (xferData);
}
static void
gnc_xfer_dialog_toggle_cb(GtkToggleButton *button, gpointer data)
{
- gnc_tree_view_account_refilter (GNC_TREE_VIEW_ACCOUNT (data));
+ gnc_tree_view_account_refilter (GNC_TREE_VIEW_ACCOUNT (data));
}
static gboolean
gnc_xfer_dialog_key_press_cb (GtkWidget *widget,
- GdkEventKey *event,
- gpointer unused)
+ GdkEventKey *event,
+ gpointer unused)
{
- GtkWidget *toplevel;
+ GtkWidget *toplevel;
- if ((event->keyval == GDK_Return) || (event->keyval == GDK_KP_Enter)) {
- toplevel = gtk_widget_get_toplevel (widget);
- if (GTK_WIDGET_TOPLEVEL(toplevel) && GTK_IS_WINDOW(toplevel)) {
- gtk_window_activate_default(GTK_WINDOW(toplevel));
- return TRUE;
+ if ((event->keyval == GDK_Return) || (event->keyval == GDK_KP_Enter))
+ {
+ toplevel = gtk_widget_get_toplevel (widget);
+ if (GTK_WIDGET_TOPLEVEL(toplevel) && GTK_IS_WINDOW(toplevel))
+ {
+ gtk_window_activate_default(GTK_WINDOW(toplevel));
+ return TRUE;
+ }
}
- }
- return FALSE;
+ return FALSE;
}
static void
@@ -252,100 +257,100 @@
const gnc_commodity *from_currency,
const gnc_commodity *to_currency)
{
- gnc_numeric from_rate;
- gnc_numeric to_rate;
- gnc_numeric price;
+ gnc_numeric from_rate;
+ gnc_numeric to_rate;
+ gnc_numeric price;
- if (!currency_active)
- {
- GtkEntry *entry;
+ if (!currency_active)
+ {
+ GtkEntry *entry;
- gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit),
- gnc_numeric_zero ());
- entry = GTK_ENTRY(gnc_amount_edit_gtk_entry
- (GNC_AMOUNT_EDIT(xferData->price_edit)));
- gtk_entry_set_text(entry, "");
+ gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit),
+ gnc_numeric_zero ());
+ entry = GTK_ENTRY(gnc_amount_edit_gtk_entry
+ (GNC_AMOUNT_EDIT(xferData->price_edit)));
+ gtk_entry_set_text(entry, "");
- gnc_xfer_update_to_amount (xferData);
+ gnc_xfer_update_to_amount (xferData);
- return;
- }
+ return;
+ }
- if (!gnc_is_euro_currency (from_currency) ||
- !gnc_is_euro_currency (to_currency))
- {
- gnc_xfer_dialog_update_price (xferData);
- return;
- }
+ if (!gnc_is_euro_currency (from_currency) ||
+ !gnc_is_euro_currency (to_currency))
+ {
+ gnc_xfer_dialog_update_price (xferData);
+ return;
+ }
- from_rate = gnc_euro_currency_get_rate (from_currency);
- to_rate = gnc_euro_currency_get_rate (to_currency);
+ from_rate = gnc_euro_currency_get_rate (from_currency);
+ to_rate = gnc_euro_currency_get_rate (to_currency);
- if (gnc_numeric_zero_p (from_rate) || gnc_numeric_zero_p (to_rate))
- gnc_xfer_dialog_update_price (xferData);
+ if (gnc_numeric_zero_p (from_rate) || gnc_numeric_zero_p (to_rate))
+ gnc_xfer_dialog_update_price (xferData);
- price = gnc_numeric_div (to_rate, from_rate, GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
+ price = gnc_numeric_div (to_rate, from_rate, GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
- gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT(xferData->price_edit), price);
+ gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT(xferData->price_edit), price);
- gnc_xfer_update_to_amount (xferData);
+ gnc_xfer_update_to_amount (xferData);
}
static void
gnc_xfer_dialog_curr_acct_activate(XferDialog *xferData)
{
- Account *to_account;
- Account *from_account;
- gboolean curr_active;
+ Account *to_account;
+ Account *from_account;
+ gboolean curr_active;
- from_account =
- gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
+ from_account =
+ gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
- to_account =
- gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
+ to_account =
+ gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
- curr_active = (xferData->exch_rate ||
- ((from_account != NULL) && (to_account != NULL)))
- && !gnc_commodity_equiv(xferData->from_commodity,
- xferData->to_commodity);
+ curr_active = (xferData->exch_rate ||
+ ((from_account != NULL) && (to_account != NULL)))
+ && !gnc_commodity_equiv(xferData->from_commodity,
+ xferData->to_commodity);
- gtk_widget_set_sensitive(xferData->curr_xfer_table, curr_active);
- gtk_widget_set_sensitive(xferData->price_edit,
- curr_active && gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(xferData->price_radio)));
- gtk_widget_set_sensitive(xferData->to_amount_edit,
- curr_active && gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(xferData->amount_radio)));
- gtk_widget_set_sensitive(xferData->price_radio, curr_active);
- gtk_widget_set_sensitive(xferData->amount_radio, curr_active);
+ gtk_widget_set_sensitive(xferData->curr_xfer_table, curr_active);
+ gtk_widget_set_sensitive(xferData->price_edit,
+ curr_active && gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(xferData->price_radio)));
+ gtk_widget_set_sensitive(xferData->to_amount_edit,
+ curr_active && gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(xferData->amount_radio)));
+ gtk_widget_set_sensitive(xferData->price_radio, curr_active);
+ gtk_widget_set_sensitive(xferData->amount_radio, curr_active);
- gnc_xfer_dialog_set_price_auto (xferData, curr_active,
- xferData->from_commodity, xferData->to_commodity);
- gnc_xfer_dialog_update_conv_info(xferData);
+ gnc_xfer_dialog_set_price_auto (xferData, curr_active,
+ xferData->from_commodity, xferData->to_commodity);
+ gnc_xfer_dialog_update_conv_info(xferData);
- if (!curr_active)
- {
- GtkEntry *entry;
+ if (!curr_active)
+ {
+ GtkEntry *entry;
- gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->to_amount_edit),
- gnc_numeric_zero ());
- entry = GTK_ENTRY(gnc_amount_edit_gtk_entry
- (GNC_AMOUNT_EDIT(xferData->to_amount_edit)));
- gtk_entry_set_text(entry, "");
- }
+ gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->to_amount_edit),
+ gnc_numeric_zero ());
+ entry = GTK_ENTRY(gnc_amount_edit_gtk_entry
+ (GNC_AMOUNT_EDIT(xferData->to_amount_edit)));
+ gtk_entry_set_text(entry, "");
+ }
}
static void
price_amount_radio_toggled_cb(GtkToggleButton *togglebutton, gpointer data)
{
- XferDialog *xferData = data;
+ XferDialog *xferData = data;
- gtk_widget_set_sensitive(xferData->price_edit, gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(xferData->price_radio)));
- gtk_widget_set_sensitive(xferData->to_amount_edit,
- gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(xferData->amount_radio)));
+ gtk_widget_set_sensitive(xferData->price_edit, gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(xferData->price_radio)));
+ gtk_widget_set_sensitive(xferData->to_amount_edit,
+ gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(xferData->amount_radio)));
}
@@ -358,212 +363,219 @@
static void
gnc_xfer_dialog_reload_quickfill( XferDialog *xferData )
{
- GList *splitlist, *node;
- Split *split;
- Transaction *trans;
- Account *account;
+ GList *splitlist, *node;
+ Split *split;
+ Transaction *trans;
+ Account *account;
- account = gnc_transfer_dialog_get_selected_account (xferData, xferData->quickfill);
+ account = gnc_transfer_dialog_get_selected_account (xferData, xferData->quickfill);
- /* get a new QuickFill to use */
- gnc_quickfill_destroy( xferData->qf );
- xferData->qf = gnc_quickfill_new();
+ /* get a new QuickFill to use */
+ gnc_quickfill_destroy( xferData->qf );
+ xferData->qf = gnc_quickfill_new();
- splitlist = xaccAccountGetSplitList( account );
+ splitlist = xaccAccountGetSplitList( account );
- for( node = splitlist; node; node = node->next )
- {
- split = node->data;
- trans = xaccSplitGetParent( split );
- gnc_quickfill_insert( xferData->qf,
- xaccTransGetDescription (trans), QUICKFILL_LIFO);
- }
+ for ( node = splitlist; node; node = node->next )
+ {
+ split = node->data;
+ trans = xaccSplitGetParent( split );
+ gnc_quickfill_insert( xferData->qf,
+ xaccTransGetDescription (trans), QUICKFILL_LIFO);
+ }
}
static void
gnc_xfer_dialog_from_tree_selection_changed_cb (GtkTreeSelection *selection,
- gpointer data)
+ gpointer data)
{
- XferDialog *xferData = data;
- GNCPrintAmountInfo print_info;
- gnc_commodity *commodity;
- Account *account;
+ XferDialog *xferData = data;
+ GNCPrintAmountInfo print_info;
+ gnc_commodity *commodity;
+ Account *account;
- account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
- if (!account)
- return;
+ account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
+ if (!account)
+ return;
- commodity = xaccAccountGetCommodity(account);
- gtk_label_set_text(GTK_LABEL(xferData->from_currency_label),
- gnc_commodity_get_printname(commodity));
+ commodity = xaccAccountGetCommodity(account);
+ gtk_label_set_text(GTK_LABEL(xferData->from_currency_label),
+ gnc_commodity_get_printname(commodity));
- xferData->from_commodity = commodity;
+ xferData->from_commodity = commodity;
- print_info = gnc_account_print_info (account, FALSE);
- gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (xferData->amount_edit),
- print_info);
- gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (xferData->amount_edit),
- xaccAccountGetCommoditySCU (account));
+ print_info = gnc_account_print_info (account, FALSE);
+ gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (xferData->amount_edit),
+ print_info);
+ gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (xferData->amount_edit),
+ xaccAccountGetCommoditySCU (account));
- gnc_xfer_dialog_curr_acct_activate(xferData);
+ gnc_xfer_dialog_curr_acct_activate(xferData);
- /* Reload the xferDialog quickfill if it is based on the from account */
- if (xferData->quickfill == XFER_DIALOG_FROM)
- gnc_xfer_dialog_reload_quickfill(xferData);
+ /* Reload the xferDialog quickfill if it is based on the from account */
+ if (xferData->quickfill == XFER_DIALOG_FROM)
+ gnc_xfer_dialog_reload_quickfill(xferData);
}
static void
gnc_xfer_dialog_to_tree_selection_changed_cb (GtkTreeSelection *selection, gpointer data)
{
- XferDialog *xferData = data;
- GNCPrintAmountInfo print_info;
- gnc_commodity *commodity;
- Account *account;
+ XferDialog *xferData = data;
+ GNCPrintAmountInfo print_info;
+ gnc_commodity *commodity;
+ Account *account;
- account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
- if (!account)
- return;
+ account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
+ if (!account)
+ return;
- commodity = xaccAccountGetCommodity(account);
- gtk_label_set_text(GTK_LABEL(xferData->to_currency_label),
- gnc_commodity_get_printname(commodity));
+ commodity = xaccAccountGetCommodity(account);
+ gtk_label_set_text(GTK_LABEL(xferData->to_currency_label),
+ gnc_commodity_get_printname(commodity));
- xferData->to_commodity = commodity;
+ xferData->to_commodity = commodity;
- print_info = gnc_account_print_info (account, FALSE);
- gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (xferData->to_amount_edit),
- print_info);
- gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (xferData->to_amount_edit),
- xaccAccountGetCommoditySCU (account));
+ print_info = gnc_account_print_info (account, FALSE);
+ gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (xferData->to_amount_edit),
+ print_info);
+ gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (xferData->to_amount_edit),
+ xaccAccountGetCommoditySCU (account));
- gnc_xfer_dialog_curr_acct_activate(xferData);
+ gnc_xfer_dialog_curr_acct_activate(xferData);
- /* Reload the xferDialog quickfill if it is based on the to account */
- if (xferData->quickfill == XFER_DIALOG_TO)
- gnc_xfer_dialog_reload_quickfill(xferData);
+ /* Reload the xferDialog quickfill if it is based on the to account */
+ if (xferData->quickfill == XFER_DIALOG_TO)
+ gnc_xfer_dialog_reload_quickfill(xferData);
}
static gboolean
gnc_xfer_dialog_show_inc_exp_visible_cb (Account *account,
- gpointer data)
+ gpointer data)
{
- AccountTreeFilterInfo* info;
- GNCAccountType type;
+ AccountTreeFilterInfo* info;
+ GNCAccountType type;
- info = (AccountTreeFilterInfo*)data;
+ info = (AccountTreeFilterInfo*)data;
- if (!info->show_hidden && xaccAccountIsHidden(account)) {
- return FALSE;
- }
+ if (!info->show_hidden && xaccAccountIsHidden(account))
+ {
+ return FALSE;
+ }
- if (info->show_inc_exp) {
- return TRUE;
- }
+ if (info->show_inc_exp)
+ {
+ return TRUE;
+ }
- type = xaccAccountGetType(account);
- return ((type != ACCT_TYPE_INCOME) && (type != ACCT_TYPE_EXPENSE));
+ type = xaccAccountGetType(account);
+ return ((type != ACCT_TYPE_INCOME) && (type != ACCT_TYPE_EXPENSE));
}
static void
gnc_xfer_dialog_fill_tree_view(XferDialog *xferData,
- XferDirection direction)
+ XferDirection direction)
{
- GtkTreeView *tree_view;
- const char *show_inc_exp_message = _("Show the income and expense accounts");
- GtkWidget *scroll_win;
- GtkWidget *button;
- GtkTreeSelection *selection;
- gboolean use_accounting_labels;
- AccountTreeFilterInfo info;
+ GtkTreeView *tree_view;
+ const char *show_inc_exp_message = _("Show the income and expense accounts");
+ GtkWidget *scroll_win;
+ GtkWidget *button;
+ GtkTreeSelection *selection;
+ gboolean use_accounting_labels;
+ AccountTreeFilterInfo info;
- use_accounting_labels = gnc_gconf_get_bool(GCONF_GENERAL,
- KEY_ACCOUNTING_LABELS, NULL);
+ use_accounting_labels = gnc_gconf_get_bool(GCONF_GENERAL,
+ KEY_ACCOUNTING_LABELS, NULL);
- /* In "normal" mode (non accounting terms) the account where the
- * money comes from is displayed on the left side and the account
- * where the money gets transferred to is displayed on the right
- * side. In accounting terms the "from" account is called the
- * "credit" account ("Haben" in german) and the "to" account is
- * called "debit" account ("Soll" in german). Accountants told me
- * that they always want the credit account on the right side
- * and the debit on the left side (like the debit and credit
- * columns in the register window). So reverse from and to account
- * trees when in "accountant" mode. -- Herbert Thoma, 2004-01-18
- */
- if(use_accounting_labels) {
- button = gnc_glade_lookup_widget (xferData->dialog,
- (direction == XFER_DIALOG_TO) ?
- "left_show_button" : "right_show_button");
- scroll_win = gnc_glade_lookup_widget (xferData->dialog,
- (direction == XFER_DIALOG_TO) ?
- "left_trans_window" : "right_trans_window");
- }
- else {
- button = gnc_glade_lookup_widget (xferData->dialog,
- (direction == XFER_DIALOG_TO) ?
- "right_show_button" : "left_show_button");
- scroll_win = gnc_glade_lookup_widget (xferData->dialog,
- (direction == XFER_DIALOG_TO) ?
- "right_trans_window" : "left_trans_window");
- }
+ /* In "normal" mode (non accounting terms) the account where the
+ * money comes from is displayed on the left side and the account
+ * where the money gets transferred to is displayed on the right
+ * side. In accounting terms the "from" account is called the
+ * "credit" account ("Haben" in german) and the "to" account is
+ * called "debit" account ("Soll" in german). Accountants told me
+ * that they always want the credit account on the right side
+ * and the debit on the left side (like the debit and credit
+ * columns in the register window). So reverse from and to account
+ * trees when in "accountant" mode. -- Herbert Thoma, 2004-01-18
+ */
+ if (use_accounting_labels)
+ {
+ button = gnc_glade_lookup_widget (xferData->dialog,
+ (direction == XFER_DIALOG_TO) ?
+ "left_show_button" : "right_show_button");
+ scroll_win = gnc_glade_lookup_widget (xferData->dialog,
+ (direction == XFER_DIALOG_TO) ?
+ "left_trans_window" : "right_trans_window");
+ }
+ else
+ {
+ button = gnc_glade_lookup_widget (xferData->dialog,
+ (direction == XFER_DIALOG_TO) ?
+ "right_show_button" : "left_show_button");
+ scroll_win = gnc_glade_lookup_widget (xferData->dialog,
+ (direction == XFER_DIALOG_TO) ?
+ "right_trans_window" : "left_trans_window");
+ }
- tree_view = GTK_TREE_VIEW(gnc_tree_view_account_new(FALSE));
- gtk_container_add(GTK_CONTAINER(scroll_win), GTK_WIDGET(tree_view));
- info.show_inc_exp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
- info.show_hidden = FALSE;
- gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT (tree_view),
- gnc_xfer_dialog_show_inc_exp_visible_cb,
- &info, /* user data */
- NULL /* destroy callback */);
+ tree_view = GTK_TREE_VIEW(gnc_tree_view_account_new(FALSE));
+ gtk_container_add(GTK_CONTAINER(scroll_win), GTK_WIDGET(tree_view));
+ info.show_inc_exp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+ info.show_hidden = FALSE;
+ gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT (tree_view),
+ gnc_xfer_dialog_show_inc_exp_visible_cb,
+ &info, /* user data */
+ NULL /* destroy callback */);
- /* Have to force the filter once. Alt is to show income/expense by default. */
- gnc_tree_view_account_refilter (GNC_TREE_VIEW_ACCOUNT (tree_view));
- gtk_widget_show(GTK_WIDGET(tree_view));
- g_signal_connect (G_OBJECT (tree_view), "key-press-event",
- G_CALLBACK (gnc_xfer_dialog_key_press_cb), NULL);
+ /* Have to force the filter once. Alt is to show income/expense by default. */
+ gnc_tree_view_account_refilter (GNC_TREE_VIEW_ACCOUNT (tree_view));
+ gtk_widget_show(GTK_WIDGET(tree_view));
+ g_signal_connect (G_OBJECT (tree_view), "key-press-event",
+ G_CALLBACK (gnc_xfer_dialog_key_press_cb), NULL);
- selection = gtk_tree_view_get_selection (tree_view);
- gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+ selection = gtk_tree_view_get_selection (tree_view);
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE);
- gtk_tooltips_set_tip (xferData->tips, GTK_WIDGET (button), show_inc_exp_message, NULL);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE);
+ gtk_tooltips_set_tip (xferData->tips, GTK_WIDGET (button), show_inc_exp_message, NULL);
- if (direction == XFER_DIALOG_TO) {
- xferData->to_tree_view = tree_view;
- xferData->to_window = scroll_win;
- xferData->to_show_button = GTK_WIDGET (button);
- g_signal_connect (G_OBJECT (selection), "changed",
- G_CALLBACK (gnc_xfer_dialog_to_tree_selection_changed_cb), xferData);
- } else {
- xferData->from_tree_view = tree_view;
- xferData->from_window = scroll_win;
- xferData->from_show_button = GTK_WIDGET (button);
- g_signal_connect (G_OBJECT (selection), "changed",
- G_CALLBACK (gnc_xfer_dialog_from_tree_selection_changed_cb), xferData);
- }
- g_signal_connect (G_OBJECT (button), "toggled",
- G_CALLBACK (gnc_xfer_dialog_toggle_cb), tree_view);
+ if (direction == XFER_DIALOG_TO)
+ {
+ xferData->to_tree_view = tree_view;
+ xferData->to_window = scroll_win;
+ xferData->to_show_button = GTK_WIDGET (button);
+ g_signal_connect (G_OBJECT (selection), "changed",
+ G_CALLBACK (gnc_xfer_dialog_to_tree_selection_changed_cb), xferData);
+ }
+ else
+ {
+ xferData->from_tree_view = tree_view;
+ xferData->from_window = scroll_win;
+ xferData->from_show_button = GTK_WIDGET (button);
+ g_signal_connect (G_OBJECT (selection), "changed",
+ G_CALLBACK (gnc_xfer_dialog_from_tree_selection_changed_cb), xferData);
+ }
+ g_signal_connect (G_OBJECT (button), "toggled",
+ G_CALLBACK (gnc_xfer_dialog_toggle_cb), tree_view);
}
static void
gnc_parse_error_dialog (XferDialog *xferData, const char *error_string)
{
- const char * parse_error_string;
+ const char * parse_error_string;
- parse_error_string = gnc_exp_parser_error_string ();
- if (parse_error_string == NULL)
- parse_error_string = "";
+ parse_error_string = gnc_exp_parser_error_string ();
+ if (parse_error_string == NULL)
+ parse_error_string = "";
- if (error_string == NULL)
- error_string = "";
+ if (error_string == NULL)
+ error_string = "";
- gnc_error_dialog (xferData->dialog,
- "%s\n\n%s: %s.",
- error_string, _("Error"),
- parse_error_string);
+ gnc_error_dialog (xferData->dialog,
+ "%s\n\n%s: %s.",
+ error_string, _("Error"),
+ parse_error_string);
}
/*** Callbacks for description quickfill. ***/
@@ -577,117 +589,120 @@
static gboolean
gnc_xfer_dialog_quickfill( XferDialog *xferData )
{
- const char *desc;
- Account *match_account; /* the matched text was from this account */
- Split *split; /* the split to autocomplete from */
- Split *other = NULL; /* the other split of the transaction */
- Account *other_acct = NULL; /* the Account of the other split */
- gboolean changed = FALSE;
+ const char *desc;
+ Account *match_account; /* the matched text was from this account */
+ Split *split; /* the split to autocomplete from */
+ Split *other = NULL; /* the other split of the transaction */
+ Account *other_acct = NULL; /* the Account of the other split */
+ gboolean changed = FALSE;
- ENTER("xferData=%p", xferData);
- if( !xferData ) {
- LEAVE("bad args");
- return( FALSE );
- }
+ ENTER("xferData=%p", xferData);
+ if ( !xferData )
+ {
+ LEAVE("bad args");
+ return( FALSE );
+ }
- match_account = gnc_transfer_dialog_get_selected_account (xferData, xferData->quickfill);
+ match_account = gnc_transfer_dialog_get_selected_account (xferData, xferData->quickfill);
- desc = gtk_entry_get_text( GTK_ENTRY(xferData->description_entry) );
+ desc = gtk_entry_get_text( GTK_ENTRY(xferData->description_entry) );
- if( !desc || desc[0] == '\0' ) /* no description to match */
- return( FALSE );
+ if ( !desc || desc[0] == '\0' ) /* no description to match */
+ return( FALSE );
- split = xaccAccountFindSplitByDesc( match_account, desc );
+ split = xaccAccountFindSplitByDesc( match_account, desc );
- if( !split ) {
- LEAVE("split not found");
- return( FALSE );
- }
- DEBUG("split=%p", split);
+ if ( !split )
+ {
+ LEAVE("split not found");
+ return( FALSE );
+ }
+ DEBUG("split=%p", split);
- /* Now update any blank fields of the transfer dialog with
- * the memo and amount from the split, and the description
- * we were passed (assumed to match the split's transaction).
- */
-
- if( gnc_numeric_zero_p(
- gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->amount_edit))))
- {
- gnc_numeric amt;
- DEBUG("updating amount");
- amt = xaccSplitGetValue( split );
-
- /* If we've matched a previous transfer, it will appear
- * to be negative in the from account.
- * Need to swap the sign in order for this value
- * to be posted as a withdrawal from the "from" account.
+ /* Now update any blank fields of the transfer dialog with
+ * the memo and amount from the split, and the description
+ * we were passed (assumed to match the split's transaction).
*/
- if( gnc_numeric_negative_p( amt ) )
- amt = gnc_numeric_neg( amt );
- gnc_amount_edit_set_amount( GNC_AMOUNT_EDIT(xferData->amount_edit), amt );
- changed = TRUE;
- }
+ if ( gnc_numeric_zero_p(
+ gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->amount_edit))))
+ {
+ gnc_numeric amt;
+ DEBUG("updating amount");
+ amt = xaccSplitGetValue( split );
- if( !safe_strcmp(gtk_entry_get_text(GTK_ENTRY(xferData->memo_entry)),"" ))
- {
- DEBUG("updating memo");
- gtk_entry_set_text( GTK_ENTRY(xferData->memo_entry),
- xaccSplitGetMemo( split ) );
- changed = TRUE;
- }
+ /* If we've matched a previous transfer, it will appear
+ * to be negative in the from account.
+ * Need to swap the sign in order for this value
+ * to be posted as a withdrawal from the "from" account.
+ */
+ if ( gnc_numeric_negative_p( amt ) )
+ amt = gnc_numeric_neg( amt );
- /* Since we're quickfilling off of one account (either from or to)
- * that account must be the account of the matched split.
- * Find the other account from the other split,
- * and select that account in the appropriate account tree.
- */
- if( ( other = xaccSplitGetOtherSplit( split ) ) &&
- ( other_acct = xaccSplitGetAccount( other ) ) )
- {
- GNCAccountType other_type;
- GtkWidget *other_button;
- XferDirection other_direction;
+ gnc_amount_edit_set_amount( GNC_AMOUNT_EDIT(xferData->amount_edit), amt );
+ changed = TRUE;
+ }
- DEBUG("updating other split");
- if (xferData->quickfill == XFER_DIALOG_FROM) {
- other_button = xferData->to_show_button;
- other_direction = XFER_DIALOG_TO;
- }
- else
+ if ( !safe_strcmp(gtk_entry_get_text(GTK_ENTRY(xferData->memo_entry)), "" ))
{
- other_button = xferData->from_show_button;
- other_direction = XFER_DIALOG_FROM;
+ DEBUG("updating memo");
+ gtk_entry_set_text( GTK_ENTRY(xferData->memo_entry),
+ xaccSplitGetMemo( split ) );
+ changed = TRUE;
}
- other_type = xaccAccountGetType(other_acct);
-
- /* Don't want to deactivate the button just because this
- * isn't an income or expense account
+ /* Since we're quickfilling off of one account (either from or to)
+ * that account must be the account of the matched split.
+ * Find the other account from the other split,
+ * and select that account in the appropriate account tree.
*/
- if( (other_type == ACCT_TYPE_EXPENSE) || (other_type == ACCT_TYPE_INCOME) )
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(other_button), TRUE);
+ if ( ( other = xaccSplitGetOtherSplit( split ) ) &&
+ ( other_acct = xaccSplitGetAccount( other ) ) )
+ {
+ GNCAccountType other_type;
+ GtkWidget *other_button;
+ XferDirection other_direction;
- gnc_transfer_dialog_set_selected_account (xferData, other_acct, other_direction);
+ DEBUG("updating other split");
+ if (xferData->quickfill == XFER_DIALOG_FROM)
+ {
+ other_button = xferData->to_show_button;
+ other_direction = XFER_DIALOG_TO;
+ }
+ else
+ {
+ other_button = xferData->from_show_button;
+ other_direction = XFER_DIALOG_FROM;
+ }
- changed = TRUE;
- }
+ other_type = xaccAccountGetType(other_acct);
- return( changed );
+ /* Don't want to deactivate the button just because this
+ * isn't an income or expense account
+ */
+ if ( (other_type == ACCT_TYPE_EXPENSE) || (other_type == ACCT_TYPE_INCOME) )
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(other_button), TRUE);
+
+ gnc_transfer_dialog_set_selected_account (xferData, other_acct, other_direction);
+
+ changed = TRUE;
+ }
+
+ return( changed );
}
static gboolean
idle_select_region(gpointer data)
{
- XferDialog *xferData = data;
- g_return_val_if_fail(xferData, FALSE);
+ XferDialog *xferData = data;
+ g_return_val_if_fail(xferData, FALSE);
- gtk_editable_select_region(GTK_EDITABLE(xferData->description_entry),
- xferData->desc_start_selection,
- xferData->desc_end_selection);
+ gtk_editable_select_region(GTK_EDITABLE(xferData->description_entry),
+ xferData->desc_start_selection,
+ xferData->desc_end_selection);
- xferData->desc_selection_source_id = 0;
- return FALSE;
+ xferData->desc_selection_source_id = 0;
+ return FALSE;
}
/* The insert_cb will do the insert and quickfill if possible and set the
@@ -701,58 +716,59 @@
gint *start_pos,
XferDialog *xferData)
{
- gchar *prefix, *suffix, *new_text;
- QuickFill *match;
- const gchar *match_str;
- gint prefix_len, new_text_len, match_str_len;
+ gchar *prefix, *suffix, *new_text;
+ QuickFill *match;
+ const gchar *match_str;
+ gint prefix_len, new_text_len, match_str_len;
- if (insert_text_len <= 0)
- return;
+ if (insert_text_len <= 0)
+ return;
- suffix = gtk_editable_get_chars(editable, *start_pos, -1);
+ suffix = gtk_editable_get_chars(editable, *start_pos, -1);
- /* If we are inserting in the middle, do nothing */
- if (*suffix) {
+ /* If we are inserting in the middle, do nothing */
+ if (*suffix)
+ {
+ g_free(suffix);
+ return;
+ }
g_free(suffix);
- return;
- }
- g_free(suffix);
- prefix = gtk_editable_get_chars(editable, 0, *start_pos);
- new_text = g_strconcat(prefix, insert_text, (gchar*) NULL);
- prefix_len = strlen(prefix);
- new_text_len = prefix_len + insert_text_len;
- g_free(prefix);
+ prefix = gtk_editable_get_chars(editable, 0, *start_pos);
+ new_text = g_strconcat(prefix, insert_text, (gchar*) NULL);
+ prefix_len = strlen(prefix);
+ new_text_len = prefix_len + insert_text_len;
+ g_free(prefix);
- if ((match = gnc_quickfill_get_string_match(xferData->qf, new_text))
- && (match_str = gnc_quickfill_string(match))
- && ((match_str_len = strlen(match_str)) > new_text_len))
- {
- g_signal_handlers_block_matched (G_OBJECT (editable),
- G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, xferData);
+ if ((match = gnc_quickfill_get_string_match(xferData->qf, new_text))
+ && (match_str = gnc_quickfill_string(match))
+ && ((match_str_len = strlen(match_str)) > new_text_len))
+ {
+ g_signal_handlers_block_matched (G_OBJECT (editable),
+ G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, xferData);
- gtk_editable_insert_text(editable,
- match_str + prefix_len,
- match_str_len - prefix_len,
- start_pos);
+ gtk_editable_insert_text(editable,
+ match_str + prefix_len,
+ match_str_len - prefix_len,
+ start_pos);
- g_signal_handlers_unblock_matched (G_OBJECT (editable),
- G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, xferData);
+ g_signal_handlers_unblock_matched (G_OBJECT (editable),
+ G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, xferData);
- /* stop the current insert */
- g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text");
+ /* stop the current insert */
+ g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text");
- /* set the position */
- *start_pos = g_utf8_strlen(new_text, -1);
+ /* set the position */
+ *start_pos = g_utf8_strlen(new_text, -1);
- /* select region on idle, because it would be reset once this function
- finishes */
- xferData->desc_start_selection = *start_pos;
- xferData->desc_end_selection = -1;
- xferData->desc_selection_source_id = g_idle_add(idle_select_region,
- xferData);
- }
- g_free(new_text);
+ /* select region on idle, because it would be reset once this function
+ finishes */
+ xferData->desc_start_selection = *start_pos;
+ xferData->desc_end_selection = -1;
+ xferData->desc_selection_source_id = g_idle_add(idle_select_region,
+ xferData);
+ }
+ g_free(new_text);
}
static gboolean
@@ -760,38 +776,38 @@
GdkEventKey *event,
XferDialog *xferData )
{
- gboolean done_with_input = FALSE;
+ gboolean done_with_input = FALSE;
- /* Most "special" keys are allowed to be handled directly by
- * the entry's key press handler, but in some cases that doesn't
- * seem to work right, so handle them here.
- */
- ENTER(" ");
- switch( event->keyval )
- {
+ /* Most "special" keys are allowed to be handled directly by
+ * the entry's key press handler, but in some cases that doesn't
+ * seem to work right, so handle them here.
+ */
+ ENTER(" ");
+ switch ( event->keyval )
+ {
case GDK_Return:
case GDK_KP_Enter:
- gnc_xfer_dialog_quickfill( xferData );
- /* NOT done with input, activate the default button of the dialog. */
- break;
+ gnc_xfer_dialog_quickfill( xferData );
+ /* NOT done with input, activate the default button of the dialog. */
+ break;
case GDK_Tab:
case GDK_ISO_Left_Tab:
- if( !( event->state & GDK_SHIFT_MASK) ) /* Complete on Tab,
+ if ( !( event->state & GDK_SHIFT_MASK) ) /* Complete on Tab,
* but not Shift-Tab */
- {
- gnc_xfer_dialog_quickfill( xferData );
- /* NOT done with input, though, since we need to focus to the next
- * field. Unselect the current field, though.
- */
- gtk_editable_select_region( GTK_EDITABLE(xferData->description_entry),
- 0, 0 );
- }
- break;
- }
+ {
+ gnc_xfer_dialog_quickfill( xferData );
+ /* NOT done with input, though, since we need to focus to the next
+ * field. Unselect the current field, though.
+ */
+ gtk_editable_select_region( GTK_EDITABLE(xferData->description_entry),
+ 0, 0 );
+ }
+ break;
+ }
- LEAVE("done=%d", done_with_input);
- return( done_with_input );
+ LEAVE("done=%d", done_with_input);
+ return( done_with_input );
}
/*** End of quickfill-specific callbacks ***/
@@ -799,144 +815,147 @@
static void
gnc_xfer_dialog_update_conv_info (XferDialog *xferData)
{
- const gchar *to_mnemonic, *from_mnemonic;
- gchar *string;
- gnc_numeric rate;
+ const gchar *to_mnemonic, *from_mnemonic;
+ gchar *string;
+ gnc_numeric rate;
- from_mnemonic = gnc_commodity_get_mnemonic(xferData->from_commodity);
- to_mnemonic = gnc_commodity_get_mnemonic(xferData->to_commodity);
+ from_mnemonic = gnc_commodity_get_mnemonic(xferData->from_commodity);
+ to_mnemonic = gnc_commodity_get_mnemonic(xferData->to_commodity);
- /* On the theory that if we don't have a mnemonic then we don't
- * have a commodity... On Solaris this crashes without a string.
- * So, just leave now and wait for the second initialization to
- * occur.
- */
- if (!from_mnemonic || !to_mnemonic)
- return;
+ /* On the theory that if we don't have a mnemonic then we don't
+ * have a commodity... On Solaris this crashes without a string.
+ * So, just leave now and wait for the second initialization to
+ * occur.
+ */
+ if (!from_mnemonic || !to_mnemonic)
+ return;
- rate = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->price_edit));
- if (gnc_numeric_zero_p(rate)) {
- string = g_strdup_printf("1 %s = x %s", from_mnemonic, to_mnemonic);
- gtk_label_set_text(GTK_LABEL(xferData->conv_forward), string);
- g_free(string);
+ rate = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->price_edit));
+ if (gnc_numeric_zero_p(rate))
+ {
+ string = g_strdup_printf("1 %s = x %s", from_mnemonic, to_mnemonic);
+ gtk_label_set_text(GTK_LABEL(xferData->conv_forward), string);
+ g_free(string);
- string = g_strdup_printf("1 %s = x %s", to_mnemonic, from_mnemonic);
- gtk_label_set_text(GTK_LABEL(xferData->conv_reverse), string);
- g_free(string);
- } else {
- string = g_strdup_printf("1 %s = %f %s", from_mnemonic,
- gnc_numeric_to_double(rate), to_mnemonic);
- gtk_label_set_text(GTK_LABEL(xferData->conv_forward), string);
- g_free(string);
+ string = g_strdup_printf("1 %s = x %s", to_mnemonic, from_mnemonic);
+ gtk_label_set_text(GTK_LABEL(xferData->conv_reverse), string);
+ g_free(string);
+ }
+ else
+ {
+ string = g_strdup_printf("1 %s = %f %s", from_mnemonic,
+ gnc_numeric_to_double(rate), to_mnemonic);
+ gtk_label_set_text(GTK_LABEL(xferData->conv_forward), string);
+ g_free(string);
- rate = gnc_numeric_div(gnc_numeric_create (1, 1), rate,
- GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
- string = g_strdup_printf("1 %s = %f %s", to_mnemonic,
- gnc_numeric_to_double(rate), from_mnemonic);
- gtk_label_set_text(GTK_LABEL(xferData->conv_reverse), string);
- g_free(string);
- }
+ rate = gnc_numeric_div(gnc_numeric_create (1, 1), rate,
+ GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
+ string = g_strdup_printf("1 %s = %f %s", to_mnemonic,
+ gnc_numeric_to_double(rate), from_mnemonic);
+ gtk_label_set_text(GTK_LABEL(xferData->conv_reverse), string);
+ g_free(string);
+ }
}
static gboolean
gnc_xfer_amount_update_cb(GtkWidget *widget, GdkEventFocus *event,
- gpointer data)
+ gpointer data)
{
- XferDialog * xferData = data;
+ XferDialog * xferData = data;
- gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->amount_edit));
+ gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->amount_edit));
- gnc_xfer_update_to_amount (xferData);
+ gnc_xfer_update_to_amount (xferData);
- return FALSE;
+ return FALSE;
}
static void
gnc_xfer_update_to_amount (XferDialog *xferData)
{
- GNCAmountEdit *amount_edit, *price_edit, *to_amount_edit;
- gnc_numeric price, to_amount;
- Account *account;
- int scu = 0;
+ GNCAmountEdit *amount_edit, *price_edit, *to_amount_edit;
+ gnc_numeric price, to_amount;
+ Account *account;
+ int scu = 0;
- g_return_if_fail(xferData);
+ g_return_if_fail(xferData);
- /* Get the amount editing controls of the dialog. */
- amount_edit = GNC_AMOUNT_EDIT(xferData->amount_edit);
- price_edit = GNC_AMOUNT_EDIT(xferData->price_edit);
- to_amount_edit = GNC_AMOUNT_EDIT(xferData->to_amount_edit);
+ /* Get the amount editing controls of the dialog. */
+ amount_edit = GNC_AMOUNT_EDIT(xferData->amount_edit);
+ price_edit = GNC_AMOUNT_EDIT(xferData->price_edit);
+ to_amount_edit = GNC_AMOUNT_EDIT(xferData->to_amount_edit);
- /* Determine the SCU (smallest commodity unit) of the "to" amount. */
- account = gnc_transfer_dialog_get_selected_account(xferData, XFER_DIALOG_TO);
- if (account == NULL)
- account = gnc_transfer_dialog_get_selected_account(xferData,
- XFER_DIALOG_FROM);
- if (account != NULL)
- scu = xaccAccountGetCommoditySCU(account);
- else if (xferData->to_commodity != NULL)
- scu = gnc_commodity_get_fraction(xferData->to_commodity);
+ /* Determine the SCU (smallest commodity unit) of the "to" amount. */
+ account = gnc_transfer_dialog_get_selected_account(xferData, XFER_DIALOG_TO);
+ if (account == NULL)
+ account = gnc_transfer_dialog_get_selected_account(xferData,
+ XFER_DIALOG_FROM);
+ if (account != NULL)
+ scu = xaccAccountGetCommoditySCU(account);
+ else if (xferData->to_commodity != NULL)
+ scu = gnc_commodity_get_fraction(xferData->to_commodity);
- /* Determine the amount to transfer. */
- if (!gnc_amount_edit_evaluate(price_edit) ||
- gnc_numeric_zero_p(price = gnc_amount_edit_get_amount(price_edit)))
- to_amount = gnc_numeric_zero();
- else
- to_amount = gnc_numeric_mul(gnc_amount_edit_get_amount(amount_edit),
- price, scu, GNC_RND_ROUND);
+ /* Determine the amount to transfer. */
+ if (!gnc_amount_edit_evaluate(price_edit) ||
+ gnc_numeric_zero_p(price = gnc_amount_edit_get_amount(price_edit)))
+ to_amount = gnc_numeric_zero();
+ else
+ to_amount = gnc_numeric_mul(gnc_amount_edit_get_amount(amount_edit),
+ price, scu, GNC_RND_ROUND);
- /* Update the dialog. */
- gnc_amount_edit_set_amount(to_amount_edit, to_amount);
- if (gnc_numeric_zero_p(to_amount))
- gtk_entry_set_text(GTK_ENTRY(gnc_amount_edit_gtk_entry(to_amount_edit)),
- "");
+ /* Update the dialog. */
+ gnc_amount_edit_set_amount(to_amount_edit, to_amount);
+ if (gnc_numeric_zero_p(to_amount))
+ gtk_entry_set_text(GTK_ENTRY(gnc_amount_edit_gtk_entry(to_amount_edit)),
+ "");
- gnc_xfer_dialog_update_conv_info(xferData);
+ gnc_xfer_dialog_update_conv_info(xferData);
}
static gboolean
gnc_xfer_price_update_cb(GtkWidget *widget, GdkEventFocus *event,
- gpointer data)
+ gpointer data)
{
- XferDialog *xferData = data;
+ XferDialog *xferData = data;
- gnc_xfer_update_to_amount (xferData);
+ gnc_xfer_update_to_amount (xferData);
- return FALSE;
+ return FALSE;
}
static gboolean
gnc_xfer_date_changed_cb(GtkWidget *widget, gpointer data)
{
- XferDialog *xferData = data;
+ XferDialog *xferData = data;
- if (xferData)
- gnc_xfer_dialog_update_price (xferData);
+ if (xferData)
+ gnc_xfer_dialog_update_price (xferData);
- return FALSE;
+ return FALSE;
}
static gboolean
gnc_xfer_to_amount_update_cb(GtkWidget *widget, GdkEventFocus *event,
gpointer data)
{
- XferDialog *xferData = data;
- gnc_numeric price;
- Account *account;
+ XferDialog *xferData = data;
+ gnc_numeric price;
+ Account *account;
- account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
- if (account == NULL)
- account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
+ account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
+ if (account == NULL)
+ account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
- gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->to_amount_edit));
+ gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->to_amount_edit));
- price = gnc_xfer_dialog_compute_price(xferData);
- price = gnc_numeric_convert (price, PRECISION, GNC_RND_ROUND);
- gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit), price);
- gnc_xfer_dialog_update_conv_info(xferData);
+ price = gnc_xfer_dialog_compute_price(xferData);
+ price = gnc_numeric_convert (price, PRECISION, GNC_RND_ROUND);
+ gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit), price);
+ gnc_xfer_dialog_update_conv_info(xferData);
- return FALSE;
+ return FALSE;
}
@@ -951,7 +970,7 @@
void
gnc_xfer_dialog_select_from_account(XferDialog *xferData, Account *account)
{
- gnc_transfer_dialog_set_selected_account (xferData, account, XFER_DIALOG_FROM);
+ gnc_transfer_dialog_set_selected_account (xferData, account, XFER_DIALOG_FROM);
}
@@ -966,77 +985,78 @@
void
gnc_xfer_dialog_select_to_account(XferDialog *xferData, Account *account)
{
- gnc_transfer_dialog_set_selected_account (xferData, account, XFER_DIALOG_TO);
+ gnc_transfer_dialog_set_selected_account (xferData, account, XFER_DIALOG_TO);
}
void
gnc_xfer_dialog_select_from_currency(XferDialog *xferData, gnc_commodity *cur)
{
- if (!xferData) return;
- if (!cur) return;
+ if (!xferData) return;
+ if (!cur) return;
- gtk_label_set_text(GTK_LABEL(xferData->from_currency_label),
- gnc_commodity_get_printname(cur));
+ gtk_label_set_text(GTK_LABEL(xferData->from_currency_label),
+ gnc_commodity_get_printname(cur));
- gnc_amount_edit_set_print_info(GNC_AMOUNT_EDIT(xferData->amount_edit),
- gnc_commodity_print_info(cur, FALSE));
- gnc_amount_edit_set_fraction(GNC_AMOUNT_EDIT(xferData->amount_edit),
- gnc_commodity_get_fraction (cur));
+ gnc_amount_edit_set_print_info(GNC_AMOUNT_EDIT(xferData->amount_edit),
+ gnc_commodity_print_info(cur, FALSE));
+ gnc_amount_edit_set_fraction(GNC_AMOUNT_EDIT(xferData->amount_edit),
+ gnc_commodity_get_fraction (cur));
- xferData->from_commodity = cur;
- gnc_xfer_dialog_curr_acct_activate(xferData);
+ xferData->from_commodity = cur;
+ gnc_xfer_dialog_curr_acct_activate(xferData);
}
void
gnc_xfer_dialog_select_to_currency(XferDialog *xferData, gnc_commodity *cur)
{
- gtk_label_set_text(GTK_LABEL(xferData->to_currency_label),
- gnc_commodity_get_printname(cur));
+ gtk_label_set_text(GTK_LABEL(xferData->to_currency_label),
+ gnc_commodity_get_printname(cur));
- gnc_amount_edit_set_print_info(GNC_AMOUNT_EDIT(xferData->to_amount_edit),
- gnc_commodity_print_info(cur, FALSE));
- gnc_amount_edit_set_fraction(GNC_AMOUNT_EDIT(xferData->to_amount_edit),
- gnc_commodity_get_fraction(cur));
+ gnc_amount_edit_set_print_info(GNC_AMOUNT_EDIT(xferData->to_amount_edit),
+ gnc_commodity_print_info(cur, FALSE));
+ gnc_amount_edit_set_fraction(GNC_AMOUNT_EDIT(xferData->to_amount_edit),
+ gnc_commodity_get_fraction(cur));
- xferData->to_commodity = cur;
- gnc_xfer_dialog_curr_acct_activate(xferData);
+ xferData->to_commodity = cur;
+ gnc_xfer_dialog_curr_acct_activate(xferData);
}
static void
gnc_xfer_dialog_lock_account_tree(XferDialog *xferData,
XferDirection direction,
- gboolean hide)
+ gboolean hide)
{
- GtkTreeView *tree_view;
- GtkWidget *show_button;
- GtkWidget *scroll_win;
+ GtkTreeView *tree_view;
+ GtkWidget *show_button;
+ GtkWidget *scroll_win;
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- switch (direction)
- {
+ switch (direction)
+ {
case XFER_DIALOG_FROM:
- tree_view = xferData->from_tree_view;
- scroll_win = xferData->from_window;
- show_button = xferData->from_show_button;
- break;
+ tree_view = xferData->from_tree_view;
+ scroll_win = xferData->from_window;
+ show_button = xferData->from_show_button;
+ break;
case XFER_DIALOG_TO:
- tree_view = xferData->to_tree_view;
- scroll_win = xferData->to_window;
- show_button = xferData->to_show_button;
- break;
+ tree_view = xferData->to_tree_view;
+ scroll_win = xferData->to_window;
+ show_button = xferData->to_show_button;
+ break;
default:
- return;
- }
+ return;
+ }
- gtk_widget_set_sensitive( GTK_WIDGET(tree_view), FALSE );
- gtk_widget_set_sensitive( GTK_WIDGET(show_button), FALSE );
+ gtk_widget_set_sensitive( GTK_WIDGET(tree_view), FALSE );
+ gtk_widget_set_sensitive( GTK_WIDGET(show_button), FALSE );
- if (hide) {
- gtk_widget_hide( scroll_win );
- gtk_widget_hide( GTK_WIDGET(show_button) );
- }
+ if (hide)
+ {
+ gtk_widget_hide( scroll_win );
+ gtk_widget_hide( GTK_WIDGET(show_button) );
+ }
}
@@ -1050,7 +1070,7 @@
void
gnc_xfer_dialog_lock_from_account_tree(XferDialog *xferData)
{
- gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_FROM, FALSE);
+ gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_FROM, FALSE);
}
@@ -1064,7 +1084,7 @@
void
gnc_xfer_dialog_lock_to_account_tree(XferDialog *xferData)
{
- gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_TO, FALSE);
+ gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_TO, FALSE);
}
@@ -1078,7 +1098,7 @@
void
gnc_xfer_dialog_hide_from_account_tree(XferDialog *xferData)
{
- gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_FROM, TRUE);
+ gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_FROM, TRUE);
}
@@ -1092,7 +1112,7 @@
void
gnc_xfer_dialog_hide_to_account_tree(XferDialog *xferData)
{
- gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_TO, TRUE);
+ gnc_xfer_dialog_lock_account_tree(xferData, XFER_DIALOG_TO, TRUE);
}
@@ -1110,26 +1130,26 @@
gnc_xfer_dialog_is_exchange_dialog (XferDialog *xferData,
gnc_numeric *exch_rate)
{
- GNCAmountEdit *gae;
+ GNCAmountEdit *gae;
- g_return_if_fail(xferData);
- ENTER("xferData=%p, exch_rate=%p (%s)", xferData, exch_rate,
- exch_rate == NULL ? "NULL" : xaccPrintAmount(*exch_rate,
- gnc_default_print_info(FALSE)));
+ g_return_if_fail(xferData);
+ ENTER("xferData=%p, exch_rate=%p (%s)", xferData, exch_rate,
+ exch_rate == NULL ? "NULL" : xaccPrintAmount(*exch_rate,
+ gnc_default_print_info(FALSE)));
- gtk_widget_set_sensitive (xferData->amount_edit, FALSE);
- gtk_widget_set_sensitive (xferData->date_entry, FALSE);
- gtk_widget_set_sensitive (xferData->num_entry, FALSE);
- gtk_widget_set_sensitive (xferData->description_entry, FALSE);
- gtk_widget_set_sensitive (xferData->memo_entry, FALSE);
+ gtk_widget_set_sensitive (xferData->amount_edit, FALSE);
+ gtk_widget_set_sensitive (xferData->date_entry, FALSE);
+ gtk_widget_set_sensitive (xferData->num_entry, FALSE);
+ gtk_widget_set_sensitive (xferData->description_entry, FALSE);
+ gtk_widget_set_sensitive (xferData->memo_entry, FALSE);
- gae = GNC_AMOUNT_EDIT (xferData->price_edit);
- gtk_widget_grab_focus (gnc_amount_edit_gtk_entry (gae));
+ gae = GNC_AMOUNT_EDIT (xferData->price_edit);
+ gtk_widget_grab_focus (gnc_amount_edit_gtk_entry (gae));
- xferData->exch_rate = exch_rate;
+ xferData->exch_rate = exch_rate;
- LEAVE(" ");
+ LEAVE(" ");
}
/********************************************************************\
@@ -1143,18 +1163,18 @@
void
gnc_xfer_dialog_set_amount(XferDialog *xferData, gnc_numeric amount)
{
- Account * account;
+ Account * account;
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- account = gnc_transfer_dialog_get_selected_account (xferData,
- XFER_DIALOG_FROM);
- if (account == NULL)
account = gnc_transfer_dialog_get_selected_account (xferData,
- XFER_DIALOG_TO);
+ XFER_DIALOG_FROM);
+ if (account == NULL)
+ account = gnc_transfer_dialog_get_selected_account (xferData,
+ XFER_DIALOG_TO);
- gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (xferData->amount_edit), amount);
+ gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (xferData->amount_edit), amount);
}
@@ -1169,11 +1189,11 @@
void
gnc_xfer_dialog_set_description(XferDialog *xferData, const char *description)
{
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- gtk_entry_set_text(GTK_ENTRY(xferData->description_entry), description);
- gnc_quickfill_insert( xferData->qf, description, QUICKFILL_LIFO );
+ gtk_entry_set_text(GTK_ENTRY(xferData->description_entry), description);
+ gnc_quickfill_insert( xferData->qf, description, QUICKFILL_LIFO );
}
/********************************************************************\
@@ -1187,11 +1207,11 @@
void
gnc_xfer_dialog_set_memo(XferDialog *xferData, const char *memo)
{
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- gtk_entry_set_text(GTK_ENTRY(xferData->memo_entry), memo);
- /* gnc_quickfill_insert( xferData->qf, memo, QUICKFILL_LIFO ); */
+ gtk_entry_set_text(GTK_ENTRY(xferData->memo_entry), memo);
+ /* gnc_quickfill_insert( xferData->qf, memo, QUICKFILL_LIFO ); */
}
/********************************************************************\
@@ -1205,11 +1225,11 @@
void
gnc_xfer_dialog_set_num(XferDialog *xferData, const char *num)
{
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- gtk_entry_set_text(GTK_ENTRY(xferData->num_entry), num);
- /* gnc_quickfill_insert( xferData->qf, num, QUICKFILL_LIFO ); */
+ gtk_entry_set_text(GTK_ENTRY(xferData->num_entry), num);
+ /* gnc_quickfill_insert( xferData->qf, num, QUICKFILL_LIFO ); */
}
/********************************************************************\
@@ -1223,609 +1243,632 @@
void
gnc_xfer_dialog_set_date(XferDialog *xferData, time_t set_date)
{
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- gnc_date_edit_set_time( GNC_DATE_EDIT(xferData->date_entry), set_date );
+ gnc_date_edit_set_time( GNC_DATE_EDIT(xferData->date_entry), set_date );
}
void
gnc_xfer_dialog_set_exchange_rate(XferDialog *xferData, gnc_numeric exchange_rate)
{
- if (xferData == NULL)
- return;
+ if (xferData == NULL)
+ return;
- if (gnc_numeric_zero_p (exchange_rate))
- return;
+ if (gnc_numeric_zero_p (exchange_rate))
+ return;
- gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (xferData->price_edit),
- exchange_rate);
+ gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (xferData->price_edit),
+ exchange_rate);
- gnc_xfer_update_to_amount (xferData);
+ gnc_xfer_update_to_amount (xferData);
}
void
gnc_xfer_dialog_response_cb (GtkDialog *dialog, gint response, gpointer data)
{
- XferDialog *xferData = data;
- Account *to_account;
- Account *from_account;
- gnc_commodity *from_commodity;
- gnc_commodity *to_commodity;
- gnc_numeric amount, to_amount;
- const char *string;
- Timespec ts;
+ XferDialog *xferData = data;
+ Account *to_account;
+ Account *from_account;
+ gnc_commodity *from_commodity;
+ gnc_commodity *to_commodity;
+ gnc_numeric amount, to_amount;
+ const char *string;
+ Timespec ts;
- gboolean curr_trans;
+ gboolean curr_trans;
- Transaction *trans;
- Split *from_split;
- Split *to_split;
+ Transaction *trans;
+ Split *from_split;
+ Split *to_split;
- ENTER(" ");
+ ENTER(" ");
- if (response == GTK_RESPONSE_APPLY)
- {
- LEAVE("fetching exchange rate");
- return;
- }
-
- if (response != GTK_RESPONSE_OK) {
- gnc_close_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);
- LEAVE("cancel, etc.");
- return;
- }
-
- from_account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
- to_account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
-
- if (xferData->exch_rate == NULL)
- {
- if ((from_account == NULL) || (to_account == NULL))
+ if (response == GTK_RESPONSE_APPLY)
{
- const char *message = _("You must specify an account to transfer from, "
- "or to, or both, for this transaction. "
- "Otherwise, it will not be recorded.");
- gnc_error_dialog(xferData->dialog, "%s", message);
- LEAVE("bad account");
- return;
+ LEAVE("fetching exchange rate");
+ return;
}
- if (from_account == to_account)
+ if (response != GTK_RESPONSE_OK)
{
- const char *message = _("You can't transfer from and to the same "
- "account!");
- gnc_error_dialog(xferData->dialog, "%s", message);
- LEAVE("same account");
- return;
+ gnc_close_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);
+ LEAVE("cancel, etc.");
+ return;
}
- if (xaccAccountGetPlaceholder(from_account) ||
- xaccAccountGetPlaceholder(to_account))
+ from_account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_FROM);
+ to_account = gnc_transfer_dialog_get_selected_account (xferData, XFER_DIALOG_TO);
+
+ if (xferData->exch_rate == NULL)
{
- const char *placeholder_format =
- _("The account %s does not allow transactions.");
- char *name;
+ if ((from_account == NULL) || (to_account == NULL))
+ {
+ const char *message = _("You must specify an account to transfer from, "
+ "or to, or both, for this transaction. "
+ "Otherwise, it will not be recorded.");
+ gnc_error_dialog(xferData->dialog, "%s", message);
+ LEAVE("bad account");
+ return;
+ }
- if (xaccAccountGetPlaceholder(from_account))
- name = gnc_account_get_full_name(from_account);
- else
- name = gnc_account_get_full_name(to_account);
- gnc_error_dialog(xferData->dialog, placeholder_format, name);
- g_free(name);
- LEAVE("placeholder");
- return;
+ if (from_account == to_account)
+ {
+ const char *message = _("You can't transfer from and to the same "
+ "account!");
+ gnc_error_dialog(xferData->dialog, "%s", message);
+ LEAVE("same account");
+ return;
+ }
+
+ if (xaccAccountGetPlaceholder(from_account) ||
+ xaccAccountGetPlaceholder(to_account))
+ {
+ const char *placeholder_format =
+ _("The account %s does not allow transactions.");
+ char *name;
+
+ if (xaccAccountGetPlaceholder(from_account))
+ name = gnc_account_get_full_name(from_account);
+ else
+ name = gnc_account_get_full_name(to_account);
+ gnc_error_dialog(xferData->dialog, placeholder_format, name);
+ g_free(name);
+ LEAVE("placeholder");
+ return;
+ }
+
+ if (!gnc_commodity_is_iso (xferData->from_commodity))
+ {
+ const char *message = _("You can't transfer from a non-currency account. "
+ "Try reversing the \"from\" and \"to\" accounts "
+ "and making the \"amount\" negative.");
+ gnc_error_dialog(xferData->dialog, "%s", message);
+ LEAVE("non-currency");
+ return;
+ }
}
- if (!gnc_commodity_is_iso (xferData->from_commodity))
+ if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->amount_edit)))
{
- const char *message = _("You can't transfer from a non-currency account. "
- "Try reversing the \"from\" and \"to\" accounts "
- "and making the \"amount\" negative.");
- gnc_error_dialog(xferData->dialog, "%s", message);
- LEAVE("non-currency");
- return;
+ gnc_parse_error_dialog (xferData, _("You must enter a valid amount."));
+ LEAVE("no account");
+ return;
}
- }
- if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->amount_edit)))
- {
- gnc_parse_error_dialog (xferData, _("You must enter a valid amount."));
- LEAVE("no account");
- return;
- }
+ from_commodity = xferData->from_commodity;
+ to_commodity = xferData->to_commodity;
- from_commodity = xferData->from_commodity;
- to_commodity = xferData->to_commodity;
+ curr_trans = !gnc_commodity_equiv(from_commodity, to_commodity);
- curr_trans = !gnc_commodity_equiv(from_commodity, to_commodity);
+ amount = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->amount_edit));
- amount = gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(xferData->amount_edit));
-
- if (gnc_numeric_zero_p (amount))
- {
- const char *message = _("You must enter an amount to transfer.");
- gnc_error_dialog(xferData->dialog, "%s", message);
- LEAVE("invalid from amount");
- return;
- }
-
- ts = gnc_date_edit_get_date_ts(GNC_DATE_EDIT(xferData->date_entry));
-
- if (curr_trans)
- {
- if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->price_edit)))
+ if (gnc_numeric_zero_p (amount))
{
- if (gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(xferData->price_radio)))
- {
- gnc_parse_error_dialog (xferData, _("You must enter a valid price."));
- LEAVE("invalid price");
- return;
- }
+ const char *message = _("You must enter an amount to transfer.");
+ gnc_error_dialog(xferData->dialog, "%s", message);
+ LEAVE("invalid from amount");
+ return;
}
- if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->to_amount_edit)))
+ ts = gnc_date_edit_get_date_ts(GNC_DATE_EDIT(xferData->date_entry));
+
+ if (curr_trans)
{
- if (gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(xferData->amount_radio)))
- {
- gnc_parse_error_dialog (xferData,
- _("You must enter a valid `to' amount."));
- LEAVE("invalid to amount");
- return;
- }
- }
+ if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->price_edit)))
+ {
+ if (gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(xferData->price_radio)))
+ {
+ gnc_parse_error_dialog (xferData, _("You must enter a valid price."));
+ LEAVE("invalid price");
+ return;
+ }
+ }
- to_amount = gnc_amount_edit_get_amount
- (GNC_AMOUNT_EDIT(xferData->to_amount_edit));
- }
- else
- to_amount = amount;
+ if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->to_amount_edit)))
+ {
+ if (gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(xferData->amount_radio)))
+ {
+ gnc_parse_error_dialog (xferData,
+ _("You must enter a valid `to' amount."));
+ LEAVE("invalid to amount");
+ return;
+ }
+ }
- gnc_suspend_gui_refresh ();
+ to_amount = gnc_amount_edit_get_amount
+ (GNC_AMOUNT_EDIT(xferData->to_amount_edit));
+ }
+ else
+ to_amount = amount;
- if (xferData->exch_rate)
- {
- gnc_numeric price;
+ gnc_suspend_gui_refresh ();
- /* If we've got the price-button set, then make sure we update the
- * to-amount before we use it.
- */
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(xferData->price_radio)))
- gnc_xfer_update_to_amount(xferData);
+ if (xferData->exch_rate)
+ {
+ gnc_numeric price;
- price = gnc_xfer_dialog_compute_price(xferData);
- *(xferData->exch_rate) = gnc_numeric_abs(price);
- }
- else
- {
- /* Create the transaction */
- trans = xaccMallocTransaction(xferData->book);
+ /* If we've got the price-button set, then make sure we update the
+ * to-amount before we use it.
+ */
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(xferData->price_radio)))
+ gnc_xfer_update_to_amount(xferData);
- xaccTransBeginEdit(trans);
+ price = gnc_xfer_dialog_compute_price(xferData);
+ *(xferData->exch_rate) = gnc_numeric_abs(price);
+ }
+ else
+ {
+ /* Create the transaction */
+ trans = xaccMallocTransaction(xferData->book);
- xaccTransSetCurrency(trans, from_commodity);
- xaccTransSetDatePostedTS(trans, &ts);
+ xaccTransBeginEdit(trans);
- string = gtk_entry_get_text(GTK_ENTRY(xferData->num_entry));
- xaccTransSetNum(trans, string);
+ xaccTransSetCurrency(trans, from_commodity);
+ xaccTransSetDatePostedTS(trans, &ts);
- string = gtk_entry_get_text(GTK_ENTRY(xferData->description_entry));
- xaccTransSetDescription(trans, string);
+ string = gtk_entry_get_text(GTK_ENTRY(xferData->num_entry));
+ xaccTransSetNum(trans, string);
- /* create from split */
- from_split = xaccMallocSplit(xferData->book);
- xaccTransAppendSplit(trans, from_split);
+ string = gtk_entry_get_text(GTK_ENTRY(xferData->description_entry));
+ xaccTransSetDescription(trans, string);
- /* create to split */
- to_split = xaccMallocSplit(xferData->book);
- xaccTransAppendSplit(trans, to_split);
+ /* create from split */
+ from_split = xaccMallocSplit(xferData->book);
+ xaccTransAppendSplit(trans, from_split);
- xaccAccountBeginEdit(from_account);
- xaccAccountInsertSplit(from_account, from_split);
+ /* create to split */
+ to_split = xaccMallocSplit(xferData->book);
+ xaccTransAppendSplit(trans, to_split);
- xaccAccountBeginEdit(to_account);
- xaccAccountInsertSplit(to_account, to_split);
+ xaccAccountBeginEdit(from_account);
+ xaccAccountInsertSplit(from_account, from_split);
- xaccSplitSetBaseValue(from_split, gnc_numeric_neg (amount), from_commodity);
- xaccSplitSetBaseValue(to_split, amount, from_commodity);
- xaccSplitSetBaseValue(to_split, to_amount, to_commodity);
+ xaccAccountBeginEdit(to_account);
+ xaccAccountInsertSplit(to_account, to_split);
- /* Set the memo fields */
- string = gtk_entry_get_text(GTK_ENTRY(xferData->memo_entry));
- xaccSplitSetMemo(from_split, string);
- xaccSplitSetMemo(to_split, string);
+ xaccSplitSetBaseValue(from_split, gnc_numeric_neg (amount), from_commodity);
+ xaccSplitSetBaseValue(to_split, amount, from_commodity);
+ xaccSplitSetBaseValue(to_split, to_amount, to_commodity);
- /* finish transaction */
- xaccTransCommitEdit(trans);
- xaccAccountCommitEdit(from_account);
- xaccAccountCommitEdit(to_account);
+ /* Set the memo fields */
+ string = gtk_entry_get_text(GTK_ENTRY(xferData->memo_entry));
+ xaccSplitSetMemo(from_split, string);
+ xaccSplitSetMemo(to_split, string);
- /* If there is a registered callback handler that should be
- notified of the newly created Transaction, call it now. */
- if (xferData->transaction_cb)
- xferData->transaction_cb(trans, xferData->transaction_user_data);
- }
+ /* finish transaction */
+ xaccTransCommitEdit(trans);
+ xaccAccountCommitEdit(from_account);
+ xaccAccountCommitEdit(to_account);
- /* try to save this to the pricedb */
- if (xferData->pricedb) {
- gnc_commodity *from = xferData->from_commodity;
- gnc_commodity *to = xferData->to_commodity;
+ /* If there is a registered callback handler that should be
+ notified of the newly created Transaction, call it now. */
+ if (xferData->transaction_cb)
+ xferData->transaction_cb(trans, xferData->transaction_user_data);
+ }
- /* only continue if the currencies are DIFFERENT and are
- * not both euroland currencies
- */
- if (!gnc_commodity_equal (from, to) &&
- !(gnc_is_euro_currency (from) && gnc_is_euro_currency (to)))
+ /* try to save this to the pricedb */
+ if (xferData->pricedb)
{
- GNCPrice *price;
- GList *prices;
+ gnc_commodity *from = xferData->from_commodity;
+ gnc_commodity *to = xferData->to_commodity;
- /* First see if an entry exists at time ts */
- prices = gnc_pricedb_lookup_at_time (xferData->pricedb, from, to, ts);
- if (prices) {
- PINFO("Found price for %s in %s", gnc_commodity_get_mnemonic(from),
- gnc_commodity_get_mnemonic(to));
- } else {
- prices = gnc_pricedb_lookup_at_time (xferData->pricedb, to, from, ts);
- if (prices) {
- PINFO("Found reverse price for %s in %s", gnc_commodity_get_mnemonic(to),
- gnc_commodity_get_mnemonic(from));
- }
- }
+ /* only continue if the currencies are DIFFERENT and are
+ * not both euroland currencies
+ */
+ if (!gnc_commodity_equal (from, to) &&
+ !(gnc_is_euro_currency (from) && gnc_is_euro_currency (to)))
+ {
+ GNCPrice *price;
+ GList *prices;
- /* If so, do nothing (well, destroy the list). if not, create one. */
- if (prices) {
- gnc_price_list_destroy (prices);
- } else {
- gnc_commodity *tmp;
- gnc_numeric value;
+ /* First see if an entry exists at time ts */
+ prices = gnc_pricedb_lookup_at_time (xferData->pricedb, from, to, ts);
+ if (prices)
+ {
+ PINFO("Found price for %s in %s", gnc_commodity_get_mnemonic(from),
+ gnc_commodity_get_mnemonic(to));
+ }
+ else
+ {
+ prices = gnc_pricedb_lookup_at_time (xferData->pricedb, to, from, ts);
+ if (prices)
+ {
+ PINFO("Found reverse price for %s in %s", gnc_commodity_get_mnemonic(to),
+ gnc_commodity_get_mnemonic(from));
+ }
+ }
- /* compute the price -- maybe we need to swap? */
- value = gnc_xfer_dialog_compute_price(xferData);
- value = gnc_numeric_abs (value);
+ /* If so, do nothing (well, destroy the list). if not, create one. */
+ if (prices)
+ {
+ gnc_price_list_destroy (prices);
+ }
+ else
+ {
+ gnc_commodity *tmp;
+ gnc_numeric value;
- /* Try to be consistent about how quotes are installed. */
- if (from == gnc_default_currency()) {
- tmp = from; from = to; to = tmp;
- value = gnc_numeric_div (gnc_numeric_create(1,1), value,
- GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
- } else if ((to != gnc_default_currency()) &&
- (strcmp (gnc_commodity_get_mnemonic(from),
- gnc_commodity_get_mnemonic(to)) < 0)) {
- tmp = from; from = to; to = tmp;
- value = gnc_numeric_div (gnc_numeric_create(1,1), value,
- GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
- }
+ /* compute the price -- maybe we need to swap? */
+ value = gnc_xfer_dialog_compute_price(xferData);
+ value = gnc_numeric_abs (value);
- price = gnc_price_create (xferData->book);
- gnc_price_begin_edit (price);
- gnc_price_set_commodity (price, from);
- gnc_price_set_currency (price, to);
- gnc_price_set_time (price, ts);
- gnc_price_set_source (price, "user:xfer-dialog");
- gnc_price_set_value (price, value);
- gnc_pricedb_add_price (xferData->pricedb, price);
- gnc_price_commit_edit (price);
- gnc_price_unref (price);
- PINFO("Created price: 1 %s = %f %s", gnc_commodity_get_mnemonic(from),
- gnc_numeric_to_double(value), gnc_commodity_get_mnemonic(to));
- }
+ /* Try to be consistent about how quotes are installed. */
+ if (from == gnc_default_currency())
+ {
+ tmp = from;
+ from = to;
+ to = tmp;
+ value = gnc_numeric_div (gnc_numeric_create(1, 1), value,
+ GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
+ }
+ else if ((to != gnc_default_currency()) &&
+ (strcmp (gnc_commodity_get_mnemonic(from),
+ gnc_commodity_get_mnemonic(to)) < 0))
+ {
+ tmp = from;
+ from = to;
+ to = tmp;
+ value = gnc_numeric_div (gnc_numeric_create(1, 1), value,
+ GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
+ }
+
+ price = gnc_price_create (xferData->book);
+ gnc_price_begin_edit (price);
+ gnc_price_set_commodity (price, from);
+ gnc_price_set_currency (price, to);
+ gnc_price_set_time (price, ts);
+ gnc_price_set_source (price, "user:xfer-dialog");
+ gnc_price_set_value (price, value);
+ gnc_pricedb_add_price (xferData->pricedb, price);
+ gnc_price_commit_edit (price);
+ gnc_price_unref (price);
+ PINFO("Created price: 1 %s = %f %s", gnc_commodity_get_mnemonic(from),
+ gnc_numeric_to_double(value), gnc_commodity_get_mnemonic(to));
+ }
+ }
}
- }
- /* Refresh everything */
- gnc_resume_gui_refresh ();
+ /* Refresh everything */
+ gnc_resume_gui_refresh ();
- DEBUG("close component");
- gnc_close_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);
- LEAVE("ok");
+ DEBUG("close component");
+ gnc_close_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);
+ LEAVE("ok");
}
void
gnc_xfer_dialog_close_cb(GtkDialog *dialog, gpointer data)
{
- XferDialog * xferData = data;
- GtkWidget *entry;
+ XferDialog * xferData = data;
+ GtkWidget *entry;
- /* Notify transaction callback to unregister here */
- if (xferData->transaction_cb)
- xferData->transaction_cb(NULL, xferData->transaction_user_data);
+ /* Notify transaction callback to unregister here */
+ if (xferData->transaction_cb)
+ xferData->transaction_cb(NULL, xferData->transaction_user_data);
- entry = gnc_amount_edit_gtk_entry(GNC_AMOUNT_EDIT(xferData->amount_edit));
- g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, xferData);
+ entry = gnc_amount_edit_gtk_entry(GNC_AMOUNT_EDIT(xferData->amount_edit));
+ g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, xferData);
- entry = gnc_amount_edit_gtk_entry(GNC_AMOUNT_EDIT(xferData->price_edit));
- g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, xferData);
+ entry = gnc_amount_edit_gtk_entry(GNC_AMOUNT_EDIT(xferData->price_edit));
+ g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, xferData);
- entry = gnc_amount_edit_gtk_entry(GNC_AMOUNT_EDIT(xferData->to_amount_edit));
- g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, xferData);
+ entry = gnc_amount_edit_gtk_entry(GNC_AMOUNT_EDIT(xferData->to_amount_edit));
+ g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, xferData);
- entry = xferData->description_entry;
- g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, xferData);
+ entry = xferData->description_entry;
+ g_signal_handlers_disconnect_matched (G_OBJECT (entry), G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, xferData);
- g_object_unref (xferData->tips);
+ g_object_unref (xferData->tips);
- DEBUG("unregister component");
- gnc_unregister_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);
+ DEBUG("unregister component");
+ gnc_unregister_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);
- gnc_quickfill_destroy (xferData->qf);
- xferData->qf = NULL;
+ gnc_quickfill_destroy (xferData->qf);
+ xferData->qf = NULL;
- if (xferData->desc_selection_source_id)
- g_source_remove (xferData->desc_selection_source_id);
+ if (xferData->desc_selection_source_id)
+ g_source_remove (xferData->desc_selection_source_id);
- g_free(xferData);
+ g_free(xferData);
- DEBUG("xfer dialog destroyed");
+ DEBUG("xfer dialog destroyed");
}
static void
gnc_xfer_dialog_fetch (GtkButton *button, XferDialog *xferData)
{
- gnc_numeric rate;
- GNCPrice *prc;
- gnc_commodity *from = xferData->from_commodity;
- gnc_commodity *to = xferData->to_commodity;
- SCM quotes_func;
- SCM book_scm;
- SCM scm_window;
+ gnc_numeric rate;
+ GNCPrice *prc;
+ gnc_commodity *from = xferData->from_commodity;
+ gnc_commodity *to = xferData->to_commodity;
+ SCM quotes_func;
+ SCM book_scm;
+ SCM scm_window;
- g_return_if_fail (xferData);
+ g_return_if_fail (xferData);
- ENTER(" ");
+ ENTER(" ");
- quotes_func = scm_c_eval_string ("gnc:book-add-quotes");
+ quotes_func = scm_c_eval_string ("gnc:book-add-quotes");
- if (!scm_is_procedure (quotes_func)) {
- LEAVE("quote retrieval failed");
- return;
- }
+ if (!scm_is_procedure (quotes_func))
+ {
+ LEAVE("quote retrieval failed");
+ return;
+ }
- book_scm = gnc_book_to_scm (xferData->book);
- if (scm_is_true (scm_not (book_scm))) {
- LEAVE("no book");
- return;
- }
+ book_scm = gnc_book_to_scm (xferData->book);
+ if (scm_is_true (scm_not (book_scm)))
+ {
+ LEAVE("no book");
+ return;
+ }
- scm_window = SWIG_NewPointerObj(xferData->dialog,
- SWIG_TypeQuery("_p_GtkWidget"), 0);
+ scm_window = SWIG_NewPointerObj(xferData->dialog,
+ SWIG_TypeQuery("_p_GtkWidget"), 0);
- if (scm_is_true (scm_not (book_scm))) {
- LEAVE("no scm window");
- return;
- }
+ if (scm_is_true (scm_not (book_scm)))
+ {
+ LEAVE("no scm window");
+ return;
+ }
- gnc_set_busy_cursor (NULL, TRUE);
- scm_call_2 (quotes_func, scm_window, book_scm);
- gnc_unset_busy_cursor (NULL);
+ gnc_set_busy_cursor (NULL, TRUE);
+ scm_call_2 (quotes_func, scm_window, book_scm);
+ gnc_unset_busy_cursor (NULL);
- /*the results should be in the price db now */
+ /*the results should be in the price db now */
- prc = gnc_pricedb_lookup_latest(xferData->pricedb, from, to);
- rate = gnc_price_get_value (prc);
- gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit), rate);
+ prc = gnc_pricedb_lookup_latest(xferData->pricedb, from, to);
+ rate = gnc_price_get_value (prc);
+ gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit), rate);
- LEAVE("quote retrieved");
+ LEAVE("quote retrieved");
}
static void
gnc_xfer_dialog_create(GtkWidget *parent, XferDialog *xferData)
{
- GtkWidget *dialog;
- GladeXML *xml;
- gboolean use_accounting_labels;
+ GtkWidget *dialog;
+ GladeXML *xml;
+ gboolean use_accounting_labels;
- use_accounting_labels = gnc_gconf_get_bool(GCONF_GENERAL,
- KEY_ACCOUNTING_LABELS, NULL);
+ use_accounting_labels = gnc_gconf_get_bool(GCONF_GENERAL,
+ KEY_ACCOUNTING_LABELS, NULL);
- ENTER(" ");
- xml = gnc_glade_xml_new ("transfer.glade", "Transfer Dialog");
+ ENTER(" ");
+ xml = gnc_glade_xml_new ("transfer.glade", "Transfer Dialog");
- dialog = glade_xml_get_widget (xml, "Transfer Dialog");
- xferData->dialog = dialog;
- g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
+ dialog = glade_xml_get_widget (xml, "Transfer Dialog");
+ xferData->dialog = dialog;
+ g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
- /* parent */
- if (parent != NULL)
- gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
+ /* parent */
+ if (parent != NULL)
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, xferData);
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, xferData);
- xferData->tips = gtk_tooltips_new();
+ xferData->tips = gtk_tooltips_new();
- g_object_ref_sink(xferData->tips);
+ g_object_ref_sink(xferData->tips);
- /* default to quickfilling off of the "From" account. */
- xferData->quickfill = XFER_DIALOG_FROM;
+ /* default to quickfilling off of the "From" account. */
+ xferData->quickfill = XFER_DIALOG_FROM;
- xferData->transferinfo_label = glade_xml_get_widget (xml, "transferinfo-label");
+ xferData->transferinfo_label = glade_xml_get_widget (xml, "transferinfo-label");
- xferData->fetch_button = glade_xml_get_widget (xml, "fetch");
- glade_xml_signal_connect_data (xml, "gnc_xfer_dialog_fetch",
- G_CALLBACK (gnc_xfer_dialog_fetch), xferData);
+ xferData->fetch_button = glade_xml_get_widget (xml, "fetch");
+ glade_xml_signal_connect_data (xml, "gnc_xfer_dialog_fetch",
+ G_CALLBACK (gnc_xfer_dialog_fetch), xferData);
- /* amount & date widgets */
- {
- GtkWidget *amount;
- GtkWidget *entry;
- GtkWidget *date;
- GtkWidget *hbox;
+ /* amount & date widgets */
+ {
+ GtkWidget *amount;
+ GtkWidget *entry;
+ GtkWidget *date;
+ GtkWidget *hbox;
- amount = gnc_amount_edit_new();
- hbox = glade_xml_get_widget (xml, "amount_hbox");
- gtk_box_pack_end(GTK_BOX(hbox), amount, TRUE, TRUE, 0);
- gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (amount), TRUE);
- xferData->amount_edit = amount;
+ amount = gnc_amount_edit_new();
+ hbox = glade_xml_get_widget (xml, "amount_hbox");
+ gtk_box_pack_end(GTK_BOX(hbox), amount, TRUE, TRUE, 0);
+ gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (amount), TRUE);
+ xferData->amount_edit = amount;
- entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (amount));
- gtk_entry_set_activates_default (GTK_ENTRY(entry), TRUE);
- g_signal_connect (G_OBJECT (entry), "focus-out-event",
- G_CALLBACK (gnc_xfer_amount_update_cb), xferData);
+ entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (amount));
+ gtk_entry_set_activates_default (GTK_ENTRY(entry), TRUE);
+ g_signal_connect (G_OBJECT (entry), "focus-out-event",
+ G_CALLBACK (gnc_xfer_amount_update_cb), xferData);
- date = gnc_date_edit_new(time (NULL), FALSE, FALSE);
- gnc_date_activates_default (GNC_DATE_EDIT(date), TRUE);
- hbox = glade_xml_get_widget (xml, "date_hbox");
+ date = gnc_date_edit_new(time (NULL), FALSE, FALSE);
+ gnc_date_activates_default (GNC_DATE_EDIT(date), TRUE);
+ hbox = glade_xml_get_widget (xml, "date_hbox");
- gtk_box_pack_end(GTK_BOX(hbox), date, TRUE, TRUE, 0);
- xferData->date_entry = date;
- g_signal_connect (G_OBJECT (date), "date_changed",
- G_CALLBACK (gnc_xfer_date_changed_cb), xferData);
- }
+ gtk_box_pack_end(GTK_BOX(hbox), date, TRUE, TRUE, 0);
+ xferData->date_entry = date;
+ g_signal_connect (G_OBJECT (date), "date_changed",
+ G_CALLBACK (gnc_xfer_date_changed_cb), xferData);
+ }
- {
- GtkWidget *entry;
+ {
+ GtkWidget *entry;
- entry = glade_xml_get_widget (xml, "num_entry");
- xferData->num_entry = entry;
+ entry = glade_xml_get_widget (xml, "num_entry");
+ xferData->num_entry = entry;
- entry = glade_xml_get_widget (xml, "description_entry");
- xferData->description_entry = entry;
+ entry = glade_xml_get_widget (xml, "description_entry");
+ xferData->description_entry = entry;
- /* Get signals from the Description for quickfill. */
- g_signal_connect (G_OBJECT (entry), "insert_text",
- G_CALLBACK (gnc_xfer_description_insert_cb), xferData);
- g_signal_connect (G_OBJECT (entry), "key_press_event",
- G_CALLBACK (gnc_xfer_description_key_press_cb), xferData);
+ /* Get signals from the Description for quickfill. */
+ g_signal_connect (G_OBJECT (entry), "insert_text",
+ G_CALLBACK (gnc_xfer_description_insert_cb), xferData);
+ g_signal_connect (G_OBJECT (entry), "key_press_event",
+ G_CALLBACK (gnc_xfer_description_key_press_cb), xferData);
- entry = glade_xml_get_widget (xml, "memo_entry");
- xferData->memo_entry = entry;
- }
+ entry = glade_xml_get_widget (xml, "memo_entry");
+ xferData->memo_entry = entry;
+ }
- /* from and to */
- {
- GtkWidget *label;
- gchar *text;
+ /* from and to */
+ {
+ GtkWidget *label;
+ gchar *text;
- gnc_xfer_dialog_fill_tree_view (xferData, XFER_DIALOG_TO);
- gnc_xfer_dialog_fill_tree_view (xferData, XFER_DIALOG_FROM);
+ gnc_xfer_dialog_fill_tree_view (xferData, XFER_DIALOG_TO);
+ gnc_xfer_dialog_fill_tree_view (xferData, XFER_DIALOG_FROM);
- /* Reverse from and to account trees when in "accountant" mode,
- see comment in function gnc_xfer_dialog_fill_tree_table */
- if(use_accounting_labels) {
- label = glade_xml_get_widget (xml, "right_trans_label");
- xferData->from_transfer_label = label;
+ /* Reverse from and to account trees when in "accountant" mode,
+ see comment in function gnc_xfer_dialog_fill_tree_table */
+ if (use_accounting_labels)
+ {
+ label = glade_xml_get_widget (xml, "right_trans_label");
+ xferData->from_transfer_label = label;
- label = glade_xml_get_widget (xml, "left_trans_label");
- xferData->to_transfer_label = label;
+ label = glade_xml_get_widget (xml, "left_trans_label");
+ xferData->to_transfer_label = label;
- text = g_strconcat ("<b>", _("Credit Account"), "</b>", NULL);
- gtk_label_set_markup (GTK_LABEL (xferData->from_transfer_label), text);
- g_free (text);
+ text = g_strconcat ("<b>", _("Credit Account"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (xferData->from_transfer_label), text);
+ g_free (text);
- text = g_strconcat ("<b>", _("Debit Account"), "</b>", NULL);
- gtk_label_set_markup (GTK_LABEL (xferData->to_transfer_label), text);
- g_free (text);
+ text = g_strconcat ("<b>", _("Debit Account"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (xferData->to_transfer_label), text);
+ g_free (text);
- label = glade_xml_get_widget (xml, "right_currency_label");
- xferData->from_currency_label = label;
+ label = glade_xml_get_widget (xml, "right_currency_label");
+ xferData->from_currency_label = label;
- label = glade_xml_get_widget (xml, "left_currency_label");
- xferData->to_currency_label = label;
- }
- else {
- label = glade_xml_get_widget (xml, "left_trans_label");
- xferData->from_transfer_label = label;
+ label = glade_xml_get_widget (xml, "left_currency_label");
+ xferData->to_currency_label = label;
+ }
+ else
+ {
+ label = glade_xml_get_widget (xml, "left_trans_label");
+ xferData->from_transfer_label = label;
- label = glade_xml_get_widget (xml, "right_trans_label");
- xferData->to_transfer_label = label;
+ label = glade_xml_get_widget (xml, "right_trans_label");
+ xferData->to_transfer_label = label;
- text = g_strconcat ("<b>", _("Transfer From"), "</b>", NULL);
- gtk_label_set_markup (GTK_LABEL (xferData->from_transfer_label), text);
- g_free (text);
+ text = g_strconcat ("<b>", _("Transfer From"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (xferData->from_transfer_label), text);
+ g_free (text);
- text = g_strconcat ("<b>", _("Transfer To"), "</b>", NULL);
- gtk_label_set_markup (GTK_LABEL (xferData->to_transfer_label), text);
+ text = g_strconcat ("<b>", _("Transfer To"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (xferData->to_transfer_label), text);
- label = glade_xml_get_widget (xml, "left_currency_label");
- xferData->from_currency_label = label;
+ label = glade_xml_get_widget (xml, "left_currency_label");
+ xferData->from_currency_label = label;
- label = glade_xml_get_widget (xml, "right_currency_label");
- xferData->to_currency_label = label;
- }
+ label = glade_xml_get_widget (xml, "right_currency_label");
+ xferData->to_currency_label = label;
+ }
- label = glade_xml_get_widget (xml, "conv_forward");
- xferData->conv_forward = label;
+ label = glade_xml_get_widget (xml, "conv_forward");
+ xferData->conv_forward = label;
- label = glade_xml_get_widget (xml, "conv_reverse");
- xferData->conv_reverse = label;
- }
+ label = glade_xml_get_widget (xml, "conv_reverse");
+ xferData->conv_reverse = label;
+ }
- /* optional intermediate currency account */
- {
- GtkWidget *table;
- GtkWidget *entry;
- GtkWidget *edit;
- GtkWidget *hbox;
- GtkWidget *button;
+ /* optional intermediate currency account */
+ {
+ GtkWidget *table;
+ GtkWidget *entry;
+ GtkWidget *edit;
+ GtkWidget *hbox;
+ GtkWidget *button;
- table = glade_xml_get_widget (xml, "curr_transfer_table");
- xferData->curr_xfer_table = table;
+ table = glade_xml_get_widget (xml, "curr_transfer_table");
+ xferData->curr_xfer_table = table;
- edit = gnc_amount_edit_new();
- gnc_amount_edit_set_print_info(GNC_AMOUNT_EDIT(edit),
- gnc_default_print_info (FALSE));
- hbox = glade_xml_get_widget (xml, "price_hbox");
- gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 0);
- xferData->price_edit = edit;
- entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (edit));
- g_signal_connect (G_OBJECT (entry), "focus-out-event",
- G_CALLBACK (gnc_xfer_price_update_cb), xferData);
- gtk_entry_set_activates_default(GTK_ENTRY (entry), TRUE);
+ edit = gnc_amount_edit_new();
+ gnc_amount_edit_set_print_info(GNC_AMOUNT_EDIT(edit),
+ gnc_default_print_info (FALSE));
+ hbox = glade_xml_get_widget (xml, "price_hbox");
+ gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 0);
+ xferData->price_edit = edit;
+ entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (edit));
+ g_signal_connect (G_OBJECT (entry), "focus-out-event",
+ G_CALLBACK (gnc_xfer_price_update_cb), xferData);
+ gtk_entry_set_activates_default(GTK_ENTRY (entry), TRUE);
- edit = gnc_amount_edit_new();
- hbox = glade_xml_get_widget (xml, "right_amount_hbox");
- gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 0);
- xferData->to_amount_edit = edit;
- entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (edit));
- g_signal_connect (G_OBJECT (entry), "focus-out-event",
- G_CALLBACK (gnc_xfer_to_amount_update_cb), xferData);
- gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
+ edit = gnc_amount_edit_new();
+ hbox = glade_xml_get_widget (xml, "right_amount_hbox");
+ gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 0);
+ xferData->to_amount_edit = edit;
+ entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (edit));
+ g_signal_connect (G_OBJECT (entry), "focus-out-event",
+ G_CALLBACK (gnc_xfer_to_amount_update_cb), xferData);
+ gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
- button = glade_xml_get_widget (xml, "price_radio");
- xferData->price_radio = button;
- g_signal_connect (G_OBJECT (xferData->price_radio), "toggled",
- G_CALLBACK (price_amount_radio_toggled_cb), xferData);
+ button = glade_xml_get_widget (xml, "price_radio");
+ xferData->price_radio = button;
+ g_signal_connect (G_OBJECT (xferData->price_radio), "toggled",
+ G_CALLBACK (price_amount_radio_toggled_cb), xferData);
- button = glade_xml_get_widget (xml, "amount_radio");
- xferData->amount_radio = button;
- g_signal_connect(G_OBJECT(xferData->amount_radio), "toggled",
- G_CALLBACK(price_amount_radio_toggled_cb),
- xferData);
- if(use_accounting_labels) {
- gtk_label_set_text(GTK_LABEL(GTK_BIN(xferData->amount_radio)->child),
- _("Debit Amount:"));
+ button = glade_xml_get_widget (xml, "amount_radio");
+ xferData->amount_radio = button;
+ g_signal_connect(G_OBJECT(xferData->amount_radio), "toggled",
+ G_CALLBACK(price_amount_radio_toggled_cb),
+ xferData);
+ if (use_accounting_labels)
+ {
+ gtk_label_set_text(GTK_LABEL(GTK_BIN(xferData->amount_radio)->child),
+ _("Debit Amount:"));
+ }
+ else
+ {
+ gtk_label_set_text(GTK_LABEL(GTK_BIN(xferData->amount_radio)->child),
+ _("To Amount:"));
+ }
}
- else {
- gtk_label_set_text(GTK_LABEL(GTK_BIN(xferData->amount_radio)->child),
- _("To Amount:"));
- }
- }
- gnc_restore_window_size (GCONF_SECTION, GTK_WINDOW (dialog));
- LEAVE(" ");
+ gnc_restore_window_size (GCONF_SECTION, GTK_WINDOW (dialog));
+ LEAVE(" ");
}
static void
close_handler (gpointer user_data)
{
- XferDialog *xferData = user_data;
- GtkWidget *dialog;
+ XferDialog *xferData = user_data;
+ GtkWidget *dialog;
- ENTER(" ");
- dialog = GTK_WIDGET (xferData->dialog);
+ ENTER(" ");
+ dialog = GTK_WIDGET (xferData->dialog);
- gnc_save_window_size (GCONF_SECTION, GTK_WINDOW (dialog));
- gtk_widget_hide (dialog);
- gnc_xfer_dialog_close_cb(GTK_DIALOG(dialog), xferData);
- gtk_widget_destroy (dialog);
- LEAVE(" ");
+ gnc_save_window_size (GCONF_SECTION, GTK_WINDOW (dialog));
+ gtk_widget_hide (dialog);
+ gnc_xfer_dialog_close_cb(GTK_DIALOG(dialog), xferData);
+ gtk_widget_destroy (dialog);
+ LEAVE(" ");
}
/********************************************************************\
@@ -1839,159 +1882,165 @@
XferDialog *
gnc_xfer_dialog (GtkWidget * parent, Account * initial)
{
- XferDialog *xferData;
- GNCAmountEdit *gae;
- GtkWidget *amount_entry;
- QofBook *book = NULL;
+ XferDialog *xferData;
+ GNCAmountEdit *gae;
+ GtkWidget *amount_entry;
+ QofBook *book = NULL;
- xferData = g_new0 (XferDialog, 1);
+ xferData = g_new0 (XferDialog, 1);
- xferData->desc_start_selection = 0;
- xferData->desc_end_selection = 0;
- xferData->desc_selection_source_id = 0;
- xferData->quickfill = XFER_DIALOG_FROM;
- xferData->transaction_cb = NULL;
+ xferData->desc_start_selection = 0;
+ xferData->desc_end_selection = 0;
+ xferData->desc_selection_source_id = 0;
+ xferData->quickfill = XFER_DIALOG_FROM;
+ xferData->transaction_cb = NULL;
- if (initial) {
- book = gnc_account_get_book (initial);
- } else {
- book = gnc_get_current_book ();
- }
+ if (initial)
+ {
+ book = gnc_account_get_book (initial);
+ }
+ else
+ {
+ book = gnc_get_current_book ();
+ }
- xferData->book = book;
- xferData->pricedb = gnc_book_get_pricedb (book);
+ xferData->book = book;
+ xferData->pricedb = gnc_book_get_pricedb (book);
- gnc_xfer_dialog_create(parent, xferData);
+ gnc_xfer_dialog_create(parent, xferData);
- DEBUG("register component");
- gnc_register_gui_component (DIALOG_TRANSFER_CM_CLASS,
- NULL, close_handler, xferData);
+ DEBUG("register component");
+ gnc_register_gui_component (DIALOG_TRANSFER_CM_CLASS,
+ NULL, close_handler, xferData);
- gae = GNC_AMOUNT_EDIT(xferData->amount_edit);
- amount_entry = gnc_amount_edit_gtk_entry (gae);
+ gae = GNC_AMOUNT_EDIT(xferData->amount_edit);
+ amount_entry = gnc_amount_edit_gtk_entry (gae);
- gtk_widget_grab_focus(amount_entry);
+ gtk_widget_grab_focus(amount_entry);
- gnc_xfer_dialog_select_from_account(xferData, initial);
- gnc_xfer_dialog_select_to_account(xferData, initial);
+ gnc_xfer_dialog_select_from_account(xferData, initial);
+ gnc_xfer_dialog_select_to_account(xferData, initial);
- gnc_xfer_dialog_curr_acct_activate(xferData);
+ gnc_xfer_dialog_curr_acct_activate(xferData);
- gtk_widget_show_all(xferData->dialog);
+ gtk_widget_show_all(xferData->dialog);
- gnc_window_adjust_for_screen(GTK_WINDOW(xferData->dialog));
+ gnc_window_adjust_for_screen(GTK_WINDOW(xferData->dialog));
- return xferData;
+ return xferData;
}
void
gnc_xfer_dialog_close( XferDialog *xferData )
{
- if( xferData ) {
- DEBUG("close component");
- gtk_dialog_response( GTK_DIALOG(xferData->dialog), GTK_RESPONSE_NONE );
- }
+ if ( xferData )
+ {
+ DEBUG("close component");
+ gtk_dialog_response( GTK_DIALOG(xferData->dialog), GTK_RESPONSE_NONE );
+ }
}
void
gnc_xfer_dialog_set_title( XferDialog *xferData, const gchar *title )
{
- if( xferData && title )
- {
- gtk_window_set_title (GTK_WINDOW (xferData->dialog), title);
- }
+ if ( xferData && title )
+ {
+ gtk_window_set_title (GTK_WINDOW (xferData->dialog), title);
+ }
}
void
gnc_xfer_dialog_set_information_label( XferDialog *xferData,
- const gchar *text )
+ const gchar *text )
{
- if(xferData && text) {
- gchar *markup_text = g_strdup_printf ("<b>%s</b>", text);
- gtk_label_set_markup (GTK_LABEL (xferData->transferinfo_label), markup_text);
- g_free (markup_text);
- }
+ if (xferData && text)
+ {
+ gchar *markup_text = g_strdup_printf ("<b>%s</b>", text);
+ gtk_label_set_markup (GTK_LABEL (xferData->transferinfo_label), markup_text);
+ g_free (markup_text);
+ }
}
static void
gnc_xfer_dialog_set_account_label( XferDialog *xferData,
- const gchar *text,
- XferDirection direction )
+ const gchar *text,
+ XferDirection direction )
{
- if(xferData && text) {
- gchar *markup_text = g_strdup_printf ("<b>%s</b>", text);
- gtk_label_set_markup (GTK_LABEL ((direction == XFER_DIALOG_FROM ?
- xferData->from_transfer_label :
- xferData->to_transfer_label)),
- markup_text);
- g_free (markup_text);
- }
+ if (xferData && text)
+ {
+ gchar *markup_text = g_strdup_printf ("<b>%s</b>", text);
+ gtk_label_set_markup (GTK_LABEL ((direction == XFER_DIALOG_FROM ?
+ xferData->from_transfer_label :
+ xferData->to_transfer_label)),
+ markup_text);
+ g_free (markup_text);
+ }
}
void
gnc_xfer_dialog_set_from_account_label( XferDialog *xferData,
- const gchar *label )
+ const gchar *label )
{
- gnc_xfer_dialog_set_account_label (xferData, label, XFER_DIALOG_FROM);
+ gnc_xfer_dialog_set_account_label (xferData, label, XFER_DIALOG_FROM);
}
void
gnc_xfer_dialog_set_to_account_label( XferDialog *xferData,
- const gchar *label )
+ const gchar *label )
{
- gnc_xfer_dialog_set_account_label (xferData, label, XFER_DIALOG_TO);
+ gnc_xfer_dialog_set_account_label (xferData, label, XFER_DIALOG_TO);
}
void
gnc_xfer_dialog_set_from_show_button_active( XferDialog *xferData,
- gboolean set_value )
+ gboolean set_value )
{
- if( xferData && xferData->from_show_button )
- {
- gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(xferData->from_show_button),
- set_value );
- }
+ if ( xferData && xferData->from_show_button )
+ {
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(xferData->from_show_button),
+ set_value );
+ }
}
void
gnc_xfer_dialog_set_to_show_button_active( XferDialog *xferData,
- gboolean set_value )
+ gboolean set_value )
{
- if( xferData && xferData->to_show_button )
- {
- gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(xferData->to_show_button),
- set_value );
- }
+ if ( xferData && xferData->to_show_button )
+ {
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(xferData->to_show_button),
+ set_value );
+ }
}
/* Add a button with a user-specified label and "clicked" callback */
void gnc_xfer_dialog_add_user_specified_button( XferDialog *xferData,
- const gchar *label,
- GCallback callback,
- gpointer user_data )
+ const gchar *label,
+ GCallback callback,
+ gpointer user_data )
{
- if( xferData && label && callback )
- {
- GtkWidget *button = gtk_button_new_with_label( label );
- GtkWidget *box = gnc_glade_lookup_widget (xferData->dialog,
- "transfermain-vbox" );
- gtk_box_pack_end( GTK_BOX(box), button, FALSE, FALSE, 0 );
- g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (callback), user_data);
- gtk_widget_show( button );
- }
+ if ( xferData && label && callback )
+ {
+ GtkWidget *button = gtk_button_new_with_label( label );
+ GtkWidget *box = gnc_glade_lookup_widget (xferData->dialog,
+ "transfermain-vbox" );
+ gtk_box_pack_end( GTK_BOX(box), button, FALSE, FALSE, 0 );
+ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (callback), user_data);
+ gtk_widget_show( button );
+ }
}
void gnc_xfer_dialog_toggle_currency_table( XferDialog *xferData,
- gboolean show_table )
+ gboolean show_table )
{
- if (xferData && xferData->curr_xfer_table)
- {
- if (show_table)
- gtk_widget_show(xferData->curr_xfer_table);
- else
- gtk_widget_hide(xferData->curr_xfer_table);
- }
+ if (xferData && xferData->curr_xfer_table)
+ {
+ if (show_table)
+ gtk_widget_show(xferData->curr_xfer_table);
+ else
+ gtk_widget_hide(xferData->curr_xfer_table);
+ }
}
@@ -1999,7 +2048,7 @@
static gboolean
find_xfer (gpointer find_data, gpointer user_data)
{
- return( find_data == user_data );
+ return( find_data == user_data );
}
/* Run the dialog until the user has either successfully completed the
@@ -2008,56 +2057,59 @@
*/
gboolean gnc_xfer_dialog_run_until_done( XferDialog *xferData )
{
- GtkDialog *dialog;
- gint count, response;
+ GtkDialog *dialog;
+ gint count, response;
- ENTER("xferData=%p", xferData);
- if( xferData == NULL ) {
- LEAVE("bad args");
- return( FALSE );
- }
+ ENTER("xferData=%p", xferData);
+ if ( xferData == NULL )
+ {
+ LEAVE("bad args");
+ return( FALSE );
+ }
- dialog = GTK_DIALOG (xferData->dialog);
+ dialog = GTK_DIALOG (xferData->dialog);
- /*
- * We need to call the response_cb function by hand. Calling it
- * automatically on a button click can destroy the window, and
- * that's bad mojo whole gtk_dialog_run is still in control.
- */
- count = g_signal_handlers_disconnect_by_func(dialog,
- gnc_xfer_dialog_response_cb,
- xferData);
- g_assert(count == 1);
+ /*
+ * We need to call the response_cb function by hand. Calling it
+ * automatically on a button click can destroy the window, and
+ * that's bad mojo whole gtk_dialog_run is still in control.
+ */
+ count = g_signal_handlers_disconnect_by_func(dialog,
+ gnc_xfer_dialog_response_cb,
+ xferData);
+ g_assert(count == 1);
- while( TRUE ) {
- DEBUG("calling gtk_dialog_run");
- response = gtk_dialog_run (dialog);
- DEBUG("gtk_dialog_run returned %d", response);
- gnc_xfer_dialog_response_cb (dialog, response, xferData);
+ while ( TRUE )
+ {
+ DEBUG("calling gtk_dialog_run");
+ response = gtk_dialog_run (dialog);
+ DEBUG("gtk_dialog_run returned %d", response);
+ gnc_xfer_dialog_response_cb (dialog, response, xferData);
- if ((response != GTK_RESPONSE_OK) && (response != GTK_RESPONSE_APPLY)) {
- LEAVE("not ok");
- return FALSE;
- }
+ if ((response != GTK_RESPONSE_OK) && (response != GTK_RESPONSE_APPLY))
+ {
+ LEAVE("not ok");
+ return FALSE;
+ }
- /* See if the dialog is still there. For various reasons, the
- * user could have hit OK but remained in the dialog. We don't
- * want to return processing back to anyone else until we clear
- * off this dialog, so if the dialog is still there we'll just
- * run it again.
- */
- if( !gnc_find_first_gui_component( DIALOG_TRANSFER_CM_CLASS,
- find_xfer, xferData ) )
- {
- /* no more dialog, and OK was clicked, so assume it's all good */
- LEAVE("ok");
- return TRUE;
- }
+ /* See if the dialog is still there. For various reasons, the
+ * user could have hit OK but remained in the dialog. We don't
+ * want to return processing back to anyone else until we clear
+ * off this dialog, so if the dialog is still there we'll just
+ * run it again.
+ */
+ if ( !gnc_find_first_gui_component( DIALOG_TRANSFER_CM_CLASS,
+ find_xfer, xferData ) )
+ {
+ /* no more dialog, and OK was clicked, so assume it's all good */
+ LEAVE("ok");
+ return TRUE;
+ }
- /* else run the dialog again */
- }
+ /* else run the dialog again */
+ }
- g_assert_not_reached();
+ g_assert_not_reached();
}
@@ -2069,81 +2121,83 @@
gnc_xfer_dialog_quickfill_to_account(XferDialog *xferData,
gboolean qf_to_account )
{
- XferDirection old = xferData->quickfill;
+ XferDirection old = xferData->quickfill;
- xferData->quickfill = qf_to_account ? XFER_DIALOG_TO : XFER_DIALOG_FROM;
+ xferData->quickfill = qf_to_account ? XFER_DIALOG_TO : XFER_DIALOG_FROM;
- /* reload the quickfill if necessary */
- if( old != xferData->quickfill )
- gnc_xfer_dialog_reload_quickfill( xferData );
+ /* reload the quickfill if necessary */
+ if ( old != xferData->quickfill )
+ gnc_xfer_dialog_reload_quickfill( xferData );
}
static Account *
gnc_transfer_dialog_get_selected_account (XferDialog *dialog,
- XferDirection direction)
+ XferDirection direction)
{
- GtkTreeView *tree_view;
- Account *account;
+ GtkTreeView *tree_view;
+ Account *account;
- switch (direction) {
- case XFER_DIALOG_FROM:
- tree_view = dialog->from_tree_view;
- break;
- case XFER_DIALOG_TO:
- tree_view = dialog->to_tree_view;
- break;
- default:
- g_assert_not_reached ();
- return NULL;
- }
+ switch (direction)
+ {
+ case XFER_DIALOG_FROM:
+ tree_view = dialog->from_tree_view;
+ break;
+ case XFER_DIALOG_TO:
+ tree_view = dialog->to_tree_view;
+ break;
+ default:
+ g_assert_not_reached ();
+ return NULL;
+ }
- account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (tree_view));
- return account;
+ account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (tree_view));
+ return account;
}
static void
gnc_transfer_dialog_set_selected_account (XferDialog *dialog,
- Account *account,
- XferDirection direction)
+ Account *account,
+ XferDirection direction)
{
- GtkTreeView *tree_view;
- GtkCheckButton *show_button;
- GNCAccountType type;
+ GtkTreeView *tree_view;
+ GtkCheckButton *show_button;
+ GNCAccountType type;
- if (account == NULL)
- return;
+ if (account == NULL)
+ return;
- switch (direction) {
- case XFER_DIALOG_FROM:
- tree_view = dialog->from_tree_view;
- show_button = GTK_CHECK_BUTTON (dialog->from_show_button);
- break;
- case XFER_DIALOG_TO:
- tree_view = dialog->to_tree_view;
- show_button = GTK_CHECK_BUTTON (dialog->to_show_button);
- break;
- default:
- g_assert_not_reached ();
- return;
- }
+ switch (direction)
+ {
+ case XFER_DIALOG_FROM:
+ tree_view = dialog->from_tree_view;
+ show_button = GTK_CHECK_BUTTON (dialog->from_show_button);
+ break;
+ case XFER_DIALOG_TO:
+ tree_view = dialog->to_tree_view;
+ show_button = GTK_CHECK_BUTTON (dialog->to_show_button);
+ break;
+ default:
+ g_assert_not_reached ();
+ return;
+ }
- type = xaccAccountGetType (account);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (show_button),
- (type == ACCT_TYPE_EXPENSE) ||
- (type == ACCT_TYPE_INCOME));
+ type = xaccAccountGetType (account);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (show_button),
+ (type == ACCT_TYPE_EXPENSE) ||
+ (type == ACCT_TYPE_INCOME));
- gnc_tree_view_account_set_selected_account (GNC_TREE_VIEW_ACCOUNT (tree_view),
- account);
+ gnc_tree_view_account_set_selected_account (GNC_TREE_VIEW_ACCOUNT (tree_view),
+ account);
}
void gnc_xfer_dialog_set_txn_cb(XferDialog *xferData,
- gnc_xfer_dialog_cb handler,
- gpointer user_data)
+ gnc_xfer_dialog_cb handler,
+ gpointer user_data)
{
- g_assert(xferData);
- xferData->transaction_cb = handler;
- xferData->transaction_user_data = user_data;
+ g_assert(xferData);
+ xferData->transaction_cb = handler;
+ xferData->transaction_user_data = user_data;
}
@@ -2158,31 +2212,37 @@
g_return_val_if_fail(txn_cur, TRUE);
- if (xaccTransUseTradingAccounts (txn)) {
- /* If we're using commodity trading accounts then "amount" is
- really the split's amount and it's in xfer_com. We need an
- exchange rate that will convert this amount into a value in
- the transaction currency. */
- if (gnc_commodity_equal(xfer_com, txn_cur)) {
- /* Transaction is in the same currency as the split, exchange
- rate is 1. */
- *exch_rate = gnc_numeric_create(1, 1);
- return FALSE;
- }
- swap_amounts = TRUE;
+ if (xaccTransUseTradingAccounts (txn))
+ {
+ /* If we're using commodity trading accounts then "amount" is
+ really the split's amount and it's in xfer_com. We need an
+ exchange rate that will convert this amount into a value in
+ the transaction currency. */
+ if (gnc_commodity_equal(xfer_com, txn_cur))
+ {
+ /* Transaction is in the same currency as the split, exchange
+ rate is 1. */
+ *exch_rate = gnc_numeric_create(1, 1);
+ return FALSE;
+ }
+ swap_amounts = TRUE;
- /* We know that "amount" is always in the reg_com currency.
- * Unfortunately it is possible that neither xfer_com or txn_cur are
- * the same as reg_com, in which case we need to convert to the txn
- * currency... Or, if the register commodity is the xfer_com, then we
- * need to flip-flop the commodities and the exchange rates.
- */
+ /* We know that "amount" is always in the reg_com currency.
+ * Unfortunately it is possible that neither xfer_com or txn_cur are
+ * the same as reg_com, in which case we need to convert to the txn
+ * currency... Or, if the register commodity is the xfer_com, then we
+ * need to flip-flop the commodities and the exchange rates.
+ */
- } else if (gnc_commodity_equal(reg_com, txn_cur)) {
+ }
+ else if (gnc_commodity_equal(reg_com, txn_cur))
+ {
/* we're working in the txn currency. Great. Nothing to do! */
swap_amounts = FALSE;
- } else if (gnc_commodity_equal(reg_com, xfer_com)) {
+ }
+ else if (gnc_commodity_equal(reg_com, xfer_com))
+ {
/* We're working in the xfer commodity. Great. Just swap the
amounts. */
swap_amounts = TRUE;
@@ -2190,7 +2250,9 @@
/* XXX: Do we need to check for expanded v. non-expanded
accounts here? */
- } else {
+ }
+ else
+ {
/* UGGH -- we're not in either. That means we need to convert
* 'amount' from the register commodity to the txn currency.
*/
@@ -2198,19 +2260,22 @@
/* XXX: should we tell the user we've done the conversion? */
amount = gnc_numeric_div(
- amount, rate,
- gnc_commodity_get_fraction(txn_cur), GNC_DENOM_REDUCE);
+ amount, rate,
+ gnc_commodity_get_fraction(txn_cur), GNC_DENOM_REDUCE);
}
/* enter the accounts */
- if (swap_amounts) {
+ if (swap_amounts)
+ {
gnc_xfer_dialog_select_to_currency(xfer, txn_cur);
gnc_xfer_dialog_select_from_currency(xfer, xfer_com);
if (!gnc_numeric_zero_p(*exch_rate))
*exch_rate = gnc_numeric_div(gnc_numeric_create(1, 1), *exch_rate,
GNC_DENOM_AUTO, GNC_DENOM_REDUCE);
amount = gnc_numeric_neg(amount);
- } else {
+ }
+ else
+ {
gnc_xfer_dialog_select_to_currency(xfer, xfer_com);
gnc_xfer_dialog_select_from_currency(xfer, txn_cur);
}
Modified: gnucash/trunk/src/gnome-utils/dialog-transfer.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-transfer.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-transfer.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -30,10 +30,10 @@
typedef struct _xferDialog XferDialog;
/** Opens up a window to do an automatic transfer between accounts
- *
- * Args: parent - the parent of the window to be created
- * initial - the initial account in the from/to fields
- * Return: XferDialog structure
+ *
+ * Args: parent - the parent of the window to be created
+ * initial - the initial account in the from/to fields
+ * Return: XferDialog structure
*/
XferDialog * gnc_xfer_dialog(GtkWidget * parent, Account *initial);
@@ -50,21 +50,21 @@
/** Set the label of the topmost table */
void gnc_xfer_dialog_set_information_label( XferDialog *,
- const gchar * );
+ const gchar * );
/** Add a button with a user-specified label and "clicked" callback.
* For now this doesn't offer a lot of flexibility, but it doesn't have to.
*/
void gnc_xfer_dialog_add_user_specified_button( XferDialog *xferData,
- const gchar *label,
- GCallback callback,
- gpointer user_data );
+ const gchar *label,
+ GCallback callback,
+ gpointer user_data );
void gnc_xfer_dialog_toggle_currency_table ( XferDialog *xferData,
- gboolean show_table );
+ gboolean show_table );
void gnc_xfer_dialog_set_from_account_label( XferDialog *,
- const gchar * );
+ const gchar * );
void gnc_xfer_dialog_set_to_account_label( XferDialog *, const gchar * );
/** Set the buttons for "Show Income/Expense" */
@@ -73,7 +73,7 @@
/** select the from account in a xfer dialog */
void gnc_xfer_dialog_select_from_account(XferDialog *xferData,
- Account *account);
+ Account *account);
/** select the to account in a xfer dialog */
void gnc_xfer_dialog_select_to_account(XferDialog *xferData,
Account *account);
@@ -92,64 +92,64 @@
/**
- * set the amount in the given xfer dialog
- *
- * Args: xferData - xfer dialog structure
- * amount - the amount to set
- * Return: none
+ * set the amount in the given xfer dialog
+ *
+ * Args: xferData - xfer dialog structure
+ * amount - the amount to set
+ * Return: none
*/
void gnc_xfer_dialog_set_amount(XferDialog *xferData, gnc_numeric amount);
/**
- * set the description in the given xfer dialog
- *
- * Args: xferData - xfer dialog structure
- * description - the description to set
- * Return: none
+ * set the description in the given xfer dialog
+ *
+ * Args: xferData - xfer dialog structure
+ * description - the description to set
+ * Return: none
*/
void gnc_xfer_dialog_set_description(XferDialog *xferData,
const char *description);
-/** set the memo in the given xfer dialog
- *
- * Args: xferData - xfer dialog structure
- * memo - the memo to set
- * Return: none
+/** set the memo in the given xfer dialog
+ *
+ * Args: xferData - xfer dialog structure
+ * memo - the memo to set
+ * Return: none
*/
void gnc_xfer_dialog_set_memo(XferDialog *xferData, const char *memo);
/**
- * set the num in the given xfer dialog
- *
- * Args: xferData - xfer dialog structure
- * num - the num to set
- * Return: none
+ * set the num in the given xfer dialog
+ *
+ * Args: xferData - xfer dialog structure
+ * num - the num to set
+ * Return: none
*/
void gnc_xfer_dialog_set_num(XferDialog *xferData, const char *num);
/**
- * Set the date in the given xfer dialog
- *
- * Args: xferData - xfer dialog structure
- * set_date - the date to set
- * Return: none
+ * Set the date in the given xfer dialog
+ *
+ * Args: xferData - xfer dialog structure
+ * set_date - the date to set
+ * Return: none
*/
void gnc_xfer_dialog_set_date(XferDialog *xferData, time_t set_time);
/** Set the exchange rate. If exchange-rate is 0, then do nothing */
void gnc_xfer_dialog_set_exchange_rate(XferDialog *xferData,
- gnc_numeric exchange_rate);
+ gnc_numeric exchange_rate);
/** Indicate whether the dialog should quickfill based on the "To" account,
* rather than the default which is the "From" account.
*/
void gnc_xfer_dialog_quickfill_to_account(XferDialog *xferData,
- gboolean qf_to_account );
+ gboolean qf_to_account );
/**
- * Set the dialog as an "exchange-dialog", which means that the
- * Transfer Information table read-only (and the dialog
- * will NOT create a transaction when it is closed).
+ * Set the dialog as an "exchange-dialog", which means that the
+ * Transfer Information table read-only (and the dialog
+ * will NOT create a transaction when it is closed).
*
* In other words: Indicate that this is just trying to obtain the
* to_amount, so make the Transfer Information read-only and the
@@ -158,12 +158,12 @@
* caller should call the dialog 'run' function to make sure exch_rate
* pointer remains valid.
*
- * Args: xferData - xfer dialog structure
- * exch_rate - place to store the exchange rate at exit
- * Return: none
+ * Args: xferData - xfer dialog structure
+ * exch_rate - place to store the exchange rate at exit
+ * Return: none
*/
void gnc_xfer_dialog_is_exchange_dialog(XferDialog *xferData,
- gnc_numeric * exch_rate);
+ gnc_numeric * exch_rate);
/** Callback function type for gnc_xfer_dialog_set_txn_cb().
@@ -173,10 +173,10 @@
*
* @param user_data User-supplied pointer to some data */
typedef void (*gnc_xfer_dialog_cb)(Transaction *new_trans,
- gpointer user_data);
+ gpointer user_data);
/** Register a callback function to be called with the created
- * Transaction as soon as it is created.
+ * Transaction as soon as it is created.
*
* Note: The caller is responsible to unregister this function in case
* it becomes invalid. In other words, you have to reset the handler
@@ -187,16 +187,16 @@
* transaction==NULL to notify the callback of destruction of the
* XferData structure.
*
- * @param xferData Dialog data structure
+ * @param xferData Dialog data structure
*
* @param handler Callback function that should be notified of the
- * newly created Transaction
+ * newly created Transaction
*
* @param user_data User-supplied pointer that will be passed to
* handler. */
void gnc_xfer_dialog_set_txn_cb(XferDialog *xferData,
- gnc_xfer_dialog_cb handler,
- gpointer user_data);
+ gnc_xfer_dialog_cb handler,
+ gpointer user_data);
/* Uses the XferDialog to obtain from the user an explicit exchange
rate. This exchange rate will then be uses to converting 'amount',
@@ -210,7 +210,7 @@
TRUE is returned and the 'exch_rate' argument is undefined.
*/
gboolean gnc_xfer_dialog_run_exchange_dialog(
- XferDialog *xfer, gnc_numeric *exch_rate, gnc_numeric amount,
+ XferDialog *xfer, gnc_numeric *exch_rate, gnc_numeric amount,
Account *reg_acc, Transaction *txn, gnc_commodity *xfer_com);
#endif
Modified: gnucash/trunk/src/gnome-utils/dialog-utils.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-utils.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-utils.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -53,24 +53,24 @@
static void
gnc_option_menu_cb(GtkWidget *w, gpointer data)
{
- GNCOptionCallback cb;
- gpointer _index;
- gint index;
+ GNCOptionCallback cb;
+ gpointer _index;
+ gint index;
- cb = g_object_get_data(G_OBJECT(w), "gnc_option_cb");
+ cb = g_object_get_data(G_OBJECT(w), "gnc_option_cb");
- _index = g_object_get_data(G_OBJECT(w), "gnc_option_index");
- index = GPOINTER_TO_INT(_index);
+ _index = g_object_get_data(G_OBJECT(w), "gnc_option_index");
+ index = GPOINTER_TO_INT(_index);
- cb(w, index, data);
+ cb(w, index, data);
}
static void
option_menu_destroy_cb (GtkObject *obj, gpointer data)
{
- GtkTooltips *tips = data;
+ GtkTooltips *tips = data;
- g_object_unref (tips);
+ g_object_unref (tips);
}
/********************************************************************\
@@ -84,54 +84,54 @@
GtkWidget *
gnc_build_option_menu(GNCOptionInfo *option_info, gint num_options)
{
- GtkTooltips *tooltips;
- GtkWidget *omenu;
- GtkWidget *menu;
- GtkWidget *menu_item;
- gint i;
+ GtkTooltips *tooltips;
+ GtkWidget *omenu;
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+ gint i;
- omenu = gtk_option_menu_new();
- gtk_widget_show(omenu);
+ omenu = gtk_option_menu_new();
+ gtk_widget_show(omenu);
- menu = gtk_menu_new();
- gtk_widget_show(menu);
+ menu = gtk_menu_new();
+ gtk_widget_show(menu);
- tooltips = gtk_tooltips_new();
+ tooltips = gtk_tooltips_new();
- g_object_ref_sink(tooltips);
+ g_object_ref_sink(tooltips);
- for (i = 0; i < num_options; i++)
- {
- menu_item = gtk_menu_item_new_with_label(option_info[i].name);
- gtk_tooltips_set_tip(tooltips, menu_item, option_info[i].tip, NULL);
- gtk_widget_show(menu_item);
+ for (i = 0; i < num_options; i++)
+ {
+ menu_item = gtk_menu_item_new_with_label(option_info[i].name);
+ gtk_tooltips_set_tip(tooltips, menu_item, option_info[i].tip, NULL);
+ gtk_widget_show(menu_item);
- g_object_set_data(G_OBJECT(menu_item),
- "gnc_option_cb",
- option_info[i].callback);
+ g_object_set_data(G_OBJECT(menu_item),
+ "gnc_option_cb",
+ option_info[i].callback);
- g_object_set_data(G_OBJECT(menu_item),
- "gnc_option_index",
- GINT_TO_POINTER(i));
+ g_object_set_data(G_OBJECT(menu_item),
+ "gnc_option_index",
+ GINT_TO_POINTER(i));
- g_object_set_data(G_OBJECT(menu_item),
- "gnc_option_menu",
- omenu);
+ g_object_set_data(G_OBJECT(menu_item),
+ "gnc_option_menu",
+ omenu);
- if (option_info[i].callback != NULL)
- g_signal_connect(menu_item, "activate",
- G_CALLBACK(gnc_option_menu_cb),
- option_info[i].user_data);
+ if (option_info[i].callback != NULL)
+ g_signal_connect(menu_item, "activate",
+ G_CALLBACK(gnc_option_menu_cb),
+ option_info[i].user_data);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
- }
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
+ }
- gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
- g_signal_connect (omenu, "destroy",
- G_CALLBACK (option_menu_destroy_cb), tooltips);
+ g_signal_connect (omenu, "destroy",
+ G_CALLBACK (option_menu_destroy_cb), tooltips);
- return omenu;
+ return omenu;
}
@@ -145,25 +145,26 @@
GtkToolbarStyle
gnc_get_toolbar_style(void)
{
- GtkToolbarStyle tbstyle = GTK_TOOLBAR_BOTH;
- char *style_string;
+ GtkToolbarStyle tbstyle = GTK_TOOLBAR_BOTH;
+ char *style_string;
- style_string = gnc_gconf_get_string(GCONF_GENERAL,
- KEY_TOOLBAR_STYLE, NULL);
- if (!style_string || strcmp(style_string, "system") == 0) {
- if (style_string)
- g_free(style_string);
- style_string = gnc_gconf_get_string(DESKTOP_GNOME_INTERFACE,
- KEY_TOOLBAR_STYLE, NULL);
- }
+ style_string = gnc_gconf_get_string(GCONF_GENERAL,
+ KEY_TOOLBAR_STYLE, NULL);
+ if (!style_string || strcmp(style_string, "system") == 0)
+ {
+ if (style_string)
+ g_free(style_string);
+ style_string = gnc_gconf_get_string(DESKTOP_GNOME_INTERFACE,
+ KEY_TOOLBAR_STYLE, NULL);
+ }
- if (style_string == NULL)
- return GTK_TOOLBAR_BOTH;
- tbstyle = gnc_enum_from_nick(GTK_TYPE_TOOLBAR_STYLE, style_string,
- GTK_TOOLBAR_BOTH);
- g_free(style_string);
+ if (style_string == NULL)
+ return GTK_TOOLBAR_BOTH;
+ tbstyle = gnc_enum_from_nick(GTK_TYPE_TOOLBAR_STYLE, style_string,
+ GTK_TOOLBAR_BOTH);
+ g_free(style_string);
- return tbstyle;
+ return tbstyle;
}
/********************************************************************\
@@ -176,9 +177,9 @@
void
gnc_get_deficit_color(GdkColor *color)
{
- color->red = 50000;
- color->green = 0;
- color->blue = 0;
+ color->red = 50000;
+ color->green = 0;
+ color->blue = 0;
}
@@ -193,32 +194,32 @@
void
gnc_set_label_color(GtkWidget *label, gnc_numeric value)
{
- gboolean deficit;
- GdkColormap *cm;
- GtkStyle *style;
+ gboolean deficit;
+ GdkColormap *cm;
+ GtkStyle *style;
- if (!gnc_gconf_get_bool(GCONF_GENERAL, "red_for_negative", NULL))
- return;
+ if (!gnc_gconf_get_bool(GCONF_GENERAL, "red_for_negative", NULL))
+ return;
- cm = gtk_widget_get_colormap(GTK_WIDGET(label));
- gtk_widget_ensure_style(GTK_WIDGET(label));
- style = gtk_widget_get_style(GTK_WIDGET(label));
+ cm = gtk_widget_get_colormap(GTK_WIDGET(label));
+ gtk_widget_ensure_style(GTK_WIDGET(label));
+ style = gtk_widget_get_style(GTK_WIDGET(label));
- style = gtk_style_copy(style);
+ style = gtk_style_copy(style);
- deficit = gnc_numeric_negative_p (value);
+ deficit = gnc_numeric_negative_p (value);
- if (deficit)
- {
- gnc_get_deficit_color(&style->fg[GTK_STATE_NORMAL]);
- gdk_colormap_alloc_color(cm, &style->fg[GTK_STATE_NORMAL], FALSE, TRUE);
- }
- else
- style->fg[GTK_STATE_NORMAL] = style->black;
+ if (deficit)
+ {
+ gnc_get_deficit_color(&style->fg[GTK_STATE_NORMAL]);
+ gdk_colormap_alloc_color(cm, &style->fg[GTK_STATE_NORMAL], FALSE, TRUE);
+ }
+ else
+ style->fg[GTK_STATE_NORMAL] = style->black;
- gtk_widget_set_style(label, style);
+ gtk_widget_set_style(label, style);
- g_object_unref(style);
+ g_object_unref(style);
}
@@ -235,33 +236,35 @@
void
gnc_restore_window_size(const char *section, GtkWindow *window)
{
- GSList *coord_list;
- gint coords[2];
+ GSList *coord_list;
+ gint coords[2];
- g_return_if_fail(section != NULL);
- g_return_if_fail(window != NULL);
+ g_return_if_fail(section != NULL);
+ g_return_if_fail(window != NULL);
- if (!gnc_gconf_get_bool(GCONF_GENERAL, KEY_SAVE_GEOMETRY, NULL))
- return;
+ if (!gnc_gconf_get_bool(GCONF_GENERAL, KEY_SAVE_GEOMETRY, NULL))
+ return;
- coord_list = gnc_gconf_get_list(section, WINDOW_POSITION,
- GCONF_VALUE_INT, NULL);
- if (coord_list) {
- coords[0] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 0));
- coords[1] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 1));
- gtk_window_move(window, coords[0], coords[1]);
- g_slist_free(coord_list);
- }
+ coord_list = gnc_gconf_get_list(section, WINDOW_POSITION,
+ GCONF_VALUE_INT, NULL);
+ if (coord_list)
+ {
+ coords[0] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 0));
+ coords[1] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 1));
+ gtk_window_move(window, coords[0], coords[1]);
+ g_slist_free(coord_list);
+ }
- coord_list = gnc_gconf_get_list(section, WINDOW_GEOMETRY,
- GCONF_VALUE_INT, NULL);
- if (coord_list) {
- coords[0] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 0));
- coords[1] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 1));
- if ((coords[0] != 0) && (coords[1] != 0))
- gtk_window_resize(window, coords[0], coords[1]);
- g_slist_free(coord_list);
- }
+ coord_list = gnc_gconf_get_list(section, WINDOW_GEOMETRY,
+ GCONF_VALUE_INT, NULL);
+ if (coord_list)
+ {
+ coords[0] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 0));
+ coords[1] = GPOINTER_TO_INT(g_slist_nth_data(coord_list, 1));
+ if ((coords[0] != 0) && (coords[1] != 0))
+ gtk_window_resize(window, coords[0], coords[1]);
+ g_slist_free(coord_list);
+ }
}
@@ -278,101 +281,102 @@
void
gnc_save_window_size(const char *section, GtkWindow *window)
{
- GSList *coord_list = NULL;
- gint coords[2];
+ GSList *coord_list = NULL;
+ gint coords[2];
- g_return_if_fail(section != NULL);
- g_return_if_fail(window != NULL);
+ g_return_if_fail(section != NULL);
+ g_return_if_fail(window != NULL);
- if (GTK_OBJECT_FLAGS(window) & GTK_IN_DESTRUCTION)
- return;
+ if (GTK_OBJECT_FLAGS(window) & GTK_IN_DESTRUCTION)
+ return;
- if (!gnc_gconf_get_bool(GCONF_GENERAL, KEY_SAVE_GEOMETRY, NULL))
- return;
+ if (!gnc_gconf_get_bool(GCONF_GENERAL, KEY_SAVE_GEOMETRY, NULL))
+ return;
- gtk_window_get_size(GTK_WINDOW(window), &coords[0], &coords[1]);
- coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[0]));
- coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[1]));
- gnc_gconf_set_list(section, WINDOW_GEOMETRY, GCONF_VALUE_INT,
- coord_list, NULL);
- g_slist_free(coord_list);
- coord_list = NULL;
+ gtk_window_get_size(GTK_WINDOW(window), &coords[0], &coords[1]);
+ coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[0]));
+ coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[1]));
+ gnc_gconf_set_list(section, WINDOW_GEOMETRY, GCONF_VALUE_INT,
+ coord_list, NULL);
+ g_slist_free(coord_list);
+ coord_list = NULL;
- gtk_window_get_position(GTK_WINDOW(window), &coords[0], &coords[1]);
- coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[0]));
- coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[1]));
- gnc_gconf_set_list(section, WINDOW_POSITION, GCONF_VALUE_INT,
- coord_list, NULL);
- g_slist_free(coord_list);
+ gtk_window_get_position(GTK_WINDOW(window), &coords[0], &coords[1]);
+ coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[0]));
+ coord_list = g_slist_append(coord_list, GUINT_TO_POINTER(coords[1]));
+ gnc_gconf_set_list(section, WINDOW_POSITION, GCONF_VALUE_INT,
+ coord_list, NULL);
+ g_slist_free(coord_list);
}
void
gnc_option_menu_init(GtkWidget * w)
{
- GtkWidget * menu;
- GtkWidget * active;
- unsigned int i;
+ GtkWidget * menu;
+ GtkWidget * active;
+ unsigned int i;
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(w));
+ menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(w));
- for(i = 0; i < g_list_length(GTK_MENU_SHELL(menu)->children); i++)
- {
- gtk_option_menu_set_history(GTK_OPTION_MENU(w), i);
- active = gtk_menu_get_active(GTK_MENU(menu));
- g_object_set_data(G_OBJECT(active),
- "option_index",
- GINT_TO_POINTER(i));
- }
+ for (i = 0; i < g_list_length(GTK_MENU_SHELL(menu)->children); i++)
+ {
+ gtk_option_menu_set_history(GTK_OPTION_MENU(w), i);
+ active = gtk_menu_get_active(GTK_MENU(menu));
+ g_object_set_data(G_OBJECT(active),
+ "option_index",
+ GINT_TO_POINTER(i));
+ }
- gtk_option_menu_set_history(GTK_OPTION_MENU(w), 0);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(w), 0);
}
-typedef struct {
- int i;
- GCallback f;
- gpointer cb_data;
+typedef struct
+{
+ int i;
+ GCallback f;
+ gpointer cb_data;
} menu_init_data;
static void
gnc_option_menu_set_one_item (gpointer loop_data, gpointer user_data)
{
- GObject *item = G_OBJECT(loop_data);
- menu_init_data *args = (menu_init_data *) user_data;
+ GObject *item = G_OBJECT(loop_data);
+ menu_init_data *args = (menu_init_data *) user_data;
- g_object_set_data(item, "option_index", GINT_TO_POINTER(args->i++));
- g_signal_connect(item, "activate", args->f, args->cb_data);
+ g_object_set_data(item, "option_index", GINT_TO_POINTER(args->i++));
+ g_signal_connect(item, "activate", args->f, args->cb_data);
}
void
gnc_option_menu_init_w_signal(GtkWidget * w, GCallback f, gpointer cb_data)
{
- GtkWidget * menu;
- menu_init_data foo;
+ GtkWidget * menu;
+ menu_init_data foo;
- foo.i = 0;
- foo.f = f;
- foo.cb_data = cb_data;
+ foo.i = 0;
+ foo.f = f;
+ foo.cb_data = cb_data;
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(w));
- g_list_foreach(GTK_MENU_SHELL(menu)->children,
- gnc_option_menu_set_one_item, &foo);
- gtk_option_menu_set_history(GTK_OPTION_MENU(w), 0);
+ menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(w));
+ g_list_foreach(GTK_MENU_SHELL(menu)->children,
+ gnc_option_menu_set_one_item, &foo);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(w), 0);
}
int
gnc_option_menu_get_active(GtkWidget * w)
{
- GtkWidget * menu;
- GtkWidget * menuitem;
+ GtkWidget * menu;
+ GtkWidget * menuitem;
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(w));
- menuitem = gtk_menu_get_active(GTK_MENU(menu));
+ menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(w));
+ menuitem = gtk_menu_get_active(GTK_MENU(menu));
- return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem),
- "option_index"));
+ return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem),
+ "option_index"));
}
@@ -386,33 +390,33 @@
void
gnc_window_adjust_for_screen(GtkWindow * window)
{
- gint screen_width;
- gint screen_height;
- gint width;
- gint height;
+ gint screen_width;
+ gint screen_height;
+ gint width;
+ gint height;
- if (window == NULL)
- return;
+ if (window == NULL)
+ return;
- g_return_if_fail(GTK_IS_WINDOW(window));
- if (GTK_WIDGET(window)->window == NULL)
- return;
+ g_return_if_fail(GTK_IS_WINDOW(window));
+ if (GTK_WIDGET(window)->window == NULL)
+ return;
- screen_width = gdk_screen_width();
- screen_height = gdk_screen_height();
- gdk_drawable_get_size(GTK_WIDGET(window)->window, &width, &height);
+ screen_width = gdk_screen_width();
+ screen_height = gdk_screen_height();
+ gdk_drawable_get_size(GTK_WIDGET(window)->window, &width, &height);
- if ((width <= screen_width) && (height <= screen_height))
- return;
+ if ((width <= screen_width) && (height <= screen_height))
+ return;
- width = MIN(width, screen_width - 10);
- width = MAX(width, 0);
+ width = MIN(width, screen_width - 10);
+ width = MAX(width, 0);
- height = MIN(height, screen_height - 10);
- height = MAX(height, 0);
+ height = MIN(height, screen_height - 10);
+ height = MAX(height, 0);
- gdk_window_resize(GTK_WIDGET(window)->window, width, height);
- gtk_widget_queue_resize(GTK_WIDGET(window));
+ gdk_window_resize(GTK_WIDGET(window)->window, width, height);
+ gtk_widget_queue_resize(GTK_WIDGET(window));
}
gboolean
@@ -420,372 +424,372 @@
struct tm *tm,
const char *date_str)
{
- GDate gdate;
+ GDate gdate;
- g_return_val_if_fail (event != NULL, FALSE);
- g_return_val_if_fail (tm != NULL, FALSE);
- g_return_val_if_fail (date_str != NULL, FALSE);
+ g_return_val_if_fail (event != NULL, FALSE);
+ g_return_val_if_fail (tm != NULL, FALSE);
+ g_return_val_if_fail (date_str != NULL, FALSE);
- if (event->type != GDK_KEY_PRESS)
- return FALSE;
+ if (event->type != GDK_KEY_PRESS)
+ return FALSE;
- if ((tm->tm_mday <= 0) || (tm->tm_mon == -1) || (tm->tm_year == -1))
- return FALSE;
+ if ((tm->tm_mday <= 0) || (tm->tm_mon == -1) || (tm->tm_year == -1))
+ return FALSE;
- g_date_set_dmy (&gdate,
- tm->tm_mday,
- tm->tm_mon + 1,
- tm->tm_year + 1900);
+ g_date_set_dmy (&gdate,
+ tm->tm_mday,
+ tm->tm_mon + 1,
+ tm->tm_year + 1900);
- /*
- * Check those keys where the code does different things depending
- * upon the modifiers.
- */
- switch (event->keyval)
- {
+ /*
+ * Check those keys where the code does different things depending
+ * upon the modifiers.
+ */
+ switch (event->keyval)
+ {
case GDK_KP_Add:
case GDK_plus:
case GDK_equal:
- if (event->state & GDK_SHIFT_MASK)
- g_date_add_days (&gdate, 7);
- else if (event->state & GDK_MOD1_MASK)
- g_date_add_months (&gdate, 1);
- else if (event->state & GDK_CONTROL_MASK)
- g_date_add_years (&gdate, 1);
- else
- g_date_add_days (&gdate, 1);
- g_date_to_struct_tm (&gdate, tm);
- return TRUE;
+ if (event->state & GDK_SHIFT_MASK)
+ g_date_add_days (&gdate, 7);
+ else if (event->state & GDK_MOD1_MASK)
+ g_date_add_months (&gdate, 1);
+ else if (event->state & GDK_CONTROL_MASK)
+ g_date_add_years (&gdate, 1);
+ else
+ g_date_add_days (&gdate, 1);
+ g_date_to_struct_tm (&gdate, tm);
+ return TRUE;
case GDK_minus:
case GDK_KP_Subtract:
case GDK_underscore:
- if ((strlen (date_str) != 0) && (dateSeparator () == '-'))
- {
- const char *c;
- gunichar uc;
- int count = 0;
+ if ((strlen (date_str) != 0) && (dateSeparator () == '-'))
+ {
+ const char *c;
+ gunichar uc;
+ int count = 0;
- /* rough check for existing date */
- c = date_str;
- while (*c)
- {
- uc = g_utf8_get_char (c);
- if (uc == '-')
- count++;
- c = g_utf8_next_char (c);
+ /* rough check for existing date */
+ c = date_str;
+ while (*c)
+ {
+ uc = g_utf8_get_char (c);
+ if (uc == '-')
+ count++;
+ c = g_utf8_next_char (c);
+ }
+
+ if (count < 2)
+ return FALSE;
}
- if (count < 2)
- return FALSE;
- }
+ if (event->state & GDK_SHIFT_MASK)
+ g_date_subtract_days (&gdate, 7);
+ else if (event->state & GDK_MOD1_MASK)
+ g_date_subtract_months (&gdate, 1);
+ else if (event->state & GDK_CONTROL_MASK)
+ g_date_subtract_years (&gdate, 1);
+ else
+ g_date_subtract_days (&gdate, 1);
+ g_date_to_struct_tm (&gdate, tm);
+ return TRUE;
- if (event->state & GDK_SHIFT_MASK)
- g_date_subtract_days (&gdate, 7);
- else if (event->state & GDK_MOD1_MASK)
- g_date_subtract_months (&gdate, 1);
- else if (event->state & GDK_CONTROL_MASK)
- g_date_subtract_years (&gdate, 1);
- else
- g_date_subtract_days (&gdate, 1);
- g_date_to_struct_tm (&gdate, tm);
- return TRUE;
-
default:
- break;
- }
+ break;
+ }
- /*
- * Control and Alt key combinations should be ignored by this
- * routine so that the menu system gets to handle them. This
- * prevents weird behavior of the menu accelerators (i.e. work in
- * some widgets but not others.)
- */
- if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))
- return FALSE;
+ /*
+ * Control and Alt key combinations should be ignored by this
+ * routine so that the menu system gets to handle them. This
+ * prevents weird behavior of the menu accelerators (i.e. work in
+ * some widgets but not others.)
+ */
+ if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))
+ return FALSE;
- /* Now check for the remaining keystrokes. */
- switch (event->keyval)
- {
+ /* Now check for the remaining keystrokes. */
+ switch (event->keyval)
+ {
case GDK_braceright:
case GDK_bracketright:
- /* increment month */
- g_date_add_months (&gdate, 1);
- break;
+ /* increment month */
+ g_date_add_months (&gdate, 1);
+ break;
case GDK_braceleft:
case GDK_bracketleft:
- /* decrement month */
- g_date_subtract_months (&gdate, 1);
- break;
+ /* decrement month */
+ g_date_subtract_months (&gdate, 1);
+ break;
case GDK_M:
case GDK_m:
- /* beginning of month */
- g_date_set_day (&gdate, 1);
- break;
+ /* beginning of month */
+ g_date_set_day (&gdate, 1);
+ break;
case GDK_H:
case GDK_h:
- /* end of month */
- g_date_set_day (&gdate, 1);
- g_date_add_months (&gdate, 1);
- g_date_subtract_days (&gdate, 1);
- break;
+ /* end of month */
+ g_date_set_day (&gdate, 1);
+ g_date_add_months (&gdate, 1);
+ g_date_subtract_days (&gdate, 1);
+ break;
case GDK_Y:
case GDK_y:
- /* beginning of year */
- g_date_set_day (&gdate, 1);
- g_date_set_month (&gdate, 1);
- break;
+ /* beginning of year */
+ g_date_set_day (&gdate, 1);
+ g_date_set_month (&gdate, 1);
+ break;
case GDK_R:
case GDK_r:
- /* end of year */
- g_date_set_day (&gdate, 1);
- g_date_set_month (&gdate, 1);
- g_date_add_years (&gdate, 1);
- g_date_subtract_days (&gdate, 1);
- break;
+ /* end of year */
+ g_date_set_day (&gdate, 1);
+ g_date_set_month (&gdate, 1);
+ g_date_add_years (&gdate, 1);
+ g_date_subtract_days (&gdate, 1);
+ break;
case GDK_T:
case GDK_t:
- {
+ {
/* today */
GTime gtime;
gtime = time (NULL);
g_date_set_time_t (&gdate, gtime);
break;
- }
+ }
default:
- return FALSE;
- }
+ return FALSE;
+ }
- g_date_to_struct_tm (&gdate, tm);
+ g_date_to_struct_tm (&gdate, tm);
- return TRUE;
+ return TRUE;
}
typedef struct
{
- int row;
- int col;
- gboolean checked;
+ int row;
+ int col;
+ gboolean checked;
} GNCCListCheckNode;
typedef struct
{
- GdkPixmap *on_pixmap;
- GdkPixmap *off_pixmap;
- GdkBitmap *mask;
+ GdkPixmap *on_pixmap;
+ GdkPixmap *off_pixmap;
+ GdkBitmap *mask;
- GList *pending_checks;
+ GList *pending_checks;
} GNCCListCheckInfo;
static void
free_check_list (GList *list)
{
- GList *node;
+ GList *node;
- for (node = list; node; node = node->next)
- g_free (node->data);
+ for (node = list; node; node = node->next)
+ g_free (node->data);
- g_list_free (list);
+ g_list_free (list);
}
static void
check_realize (GtkWidget *widget, gpointer user_data)
{
- GNCCListCheckInfo *check_info = user_data;
- GdkGCValues gc_values;
- GtkCList *clist;
- gint font_height;
- gint check_size;
- GdkColormap *cm;
- GtkStyle *style;
- GList *list;
- GList *node;
- GdkGC *gc;
- PangoLayout *layout;
+ GNCCListCheckInfo *check_info = user_data;
+ GdkGCValues gc_values;
+ GtkCList *clist;
+ gint font_height;
+ gint check_size;
+ GdkColormap *cm;
+ GtkStyle *style;
+ GList *list;
+ GList *node;
+ GdkGC *gc;
+ PangoLayout *layout;
- if (check_info->mask)
- return;
+ if (check_info->mask)
+ return;
- layout = gtk_widget_create_pango_layout(widget, "sample");
- pango_layout_get_pixel_size(layout, NULL, &font_height);
- g_object_unref(layout);
- check_size = (font_height > 0) ? font_height - 6 : 9;
+ layout = gtk_widget_create_pango_layout(widget, "sample");
+ pango_layout_get_pixel_size(layout, NULL, &font_height);
+ g_object_unref(layout);
+ check_size = (font_height > 0) ? font_height - 6 : 9;
- check_info->mask = gdk_pixmap_new (NULL, check_size, check_size, 1);
+ check_info->mask = gdk_pixmap_new (NULL, check_size, check_size, 1);
- check_info->on_pixmap = gdk_pixmap_new (widget->window,
- check_size, check_size, -1);
+ check_info->on_pixmap = gdk_pixmap_new (widget->window,
+ check_size, check_size, -1);
- check_info->off_pixmap = gdk_pixmap_new (widget->window,
- check_size, check_size, -1);
+ check_info->off_pixmap = gdk_pixmap_new (widget->window,
+ check_size, check_size, -1);
- style = gtk_widget_get_style (widget);
- gc_values.foreground = style->white;
- gc = gtk_gc_get (1, gtk_widget_get_colormap (widget),
- &gc_values, GDK_GC_FOREGROUND);
+ style = gtk_widget_get_style (widget);
+ gc_values.foreground = style->white;
+ gc = gtk_gc_get (1, gtk_widget_get_colormap (widget),
+ &gc_values, GDK_GC_FOREGROUND);
- gdk_draw_rectangle (check_info->mask, gc, TRUE,
- 0, 0, check_size, check_size);
+ gdk_draw_rectangle (check_info->mask, gc, TRUE,
+ 0, 0, check_size, check_size);
- gtk_gc_release (gc);
+ gtk_gc_release (gc);
- gc = style->base_gc[GTK_STATE_NORMAL];
+ gc = style->base_gc[GTK_STATE_NORMAL];
- gdk_draw_rectangle (check_info->on_pixmap, gc, TRUE,
- 0, 0, check_size, check_size);
- gdk_draw_rectangle (check_info->off_pixmap, gc, TRUE,
- 0, 0, check_size, check_size);
+ gdk_draw_rectangle (check_info->on_pixmap, gc, TRUE,
+ 0, 0, check_size, check_size);
+ gdk_draw_rectangle (check_info->off_pixmap, gc, TRUE,
+ 0, 0, check_size, check_size);
- cm = gtk_widget_get_colormap (widget);
+ cm = gtk_widget_get_colormap (widget);
- gc_values.foreground.red = 0;
- gc_values.foreground.green = 65535 / 2;
- gc_values.foreground.blue = 0;
+ gc_values.foreground.red = 0;
+ gc_values.foreground.green = 65535 / 2;
+ gc_values.foreground.blue = 0;
- gdk_colormap_alloc_color (cm, &gc_values.foreground, FALSE, TRUE);
+ gdk_colormap_alloc_color (cm, &gc_values.foreground, FALSE, TRUE);
- gc = gdk_gc_new_with_values (widget->window, &gc_values, GDK_GC_FOREGROUND);
+ gc = gdk_gc_new_with_values (widget->window, &gc_values, GDK_GC_FOREGROUND);
- gdk_draw_line (check_info->on_pixmap, gc,
- 1, check_size / 2,
- check_size / 3, check_size - 5);
- gdk_draw_line (check_info->on_pixmap, gc,
- 1, check_size / 2 + 1,
- check_size / 3, check_size - 4);
+ gdk_draw_line (check_info->on_pixmap, gc,
+ 1, check_size / 2,
+ check_size / 3, check_size - 5);
+ gdk_draw_line (check_info->on_pixmap, gc,
+ 1, check_size / 2 + 1,
+ check_size / 3, check_size - 4);
- gdk_draw_line (check_info->on_pixmap, gc,
- check_size / 3, check_size - 5,
- check_size - 3, 2);
- gdk_draw_line (check_info->on_pixmap, gc,
- check_size / 3, check_size - 4,
- check_size - 3, 1);
+ gdk_draw_line (check_info->on_pixmap, gc,
+ check_size / 3, check_size - 5,
+ check_size - 3, 2);
+ gdk_draw_line (check_info->on_pixmap, gc,
+ check_size / 3, check_size - 4,
+ check_size - 3, 1);
- g_object_unref (gc);
+ g_object_unref (gc);
- clist = GTK_CLIST (widget);
+ clist = GTK_CLIST (widget);
- list = check_info->pending_checks;
- check_info->pending_checks = NULL;
+ list = check_info->pending_checks;
+ check_info->pending_checks = NULL;
- /* reverse so we apply in the order of the calls */
- list = g_list_reverse (list);
+ /* reverse so we apply in the order of the calls */
+ list = g_list_reverse (list);
- for (node = list; node; node = node->next)
- {
- GNCCListCheckNode *cl_node = node->data;
+ for (node = list; node; node = node->next)
+ {
+ GNCCListCheckNode *cl_node = node->data;
- gnc_clist_set_check (clist, cl_node->row, cl_node->col, cl_node->checked);
- }
+ gnc_clist_set_check (clist, cl_node->row, cl_node->col, cl_node->checked);
+ }
- free_check_list (list);
+ free_check_list (list);
}
static void
check_unrealize (GtkWidget *widget, gpointer user_data)
{
- GNCCListCheckInfo *check_info = user_data;
+ GNCCListCheckInfo *check_info = user_data;
- if (check_info->mask)
- g_object_unref (check_info->mask);
+ if (check_info->mask)
+ g_object_unref (check_info->mask);
- if (check_info->on_pixmap)
- g_object_unref (check_info->on_pixmap);
+ if (check_info->on_pixmap)
+ g_object_unref (check_info->on_pixmap);
- if (check_info->off_pixmap)
- g_object_unref (check_info->off_pixmap);
+ if (check_info->off_pixmap)
+ g_object_unref (check_info->off_pixmap);
- check_info->mask = NULL;
- check_info->on_pixmap = NULL;
- check_info->off_pixmap = NULL;
+ check_info->mask = NULL;
+ check_info->on_pixmap = NULL;
+ check_info->off_pixmap = NULL;
}
static void
check_destroy (GtkWidget *widget, gpointer user_data)
{
- GNCCListCheckInfo *check_info = user_data;
+ GNCCListCheckInfo *check_info = user_data;
- free_check_list (check_info->pending_checks);
- check_info->pending_checks = NULL;
+ free_check_list (check_info->pending_checks);
+ check_info->pending_checks = NULL;
- g_free (check_info);
+ g_free (check_info);
}
static GNCCListCheckInfo *
gnc_clist_add_check (GtkCList *list)
{
- GNCCListCheckInfo *check_info;
- GObject *object;
+ GNCCListCheckInfo *check_info;
+ GObject *object;
- object = G_OBJECT (list);
+ object = G_OBJECT (list);
- check_info = g_object_get_data (object, "gnc-check-info");
- if (check_info)
- {
- PWARN ("clist already has check");
- return check_info;
- }
+ check_info = g_object_get_data (object, "gnc-check-info");
+ if (check_info)
+ {
+ PWARN ("clist already has check");
+ return check_info;
+ }
- check_info = g_new0 (GNCCListCheckInfo, 1);
+ check_info = g_new0 (GNCCListCheckInfo, 1);
- g_object_set_data (object, "gnc-check-info", check_info);
+ g_object_set_data (object, "gnc-check-info", check_info);
- g_signal_connect (object, "realize",
- G_CALLBACK (check_realize), check_info);
- g_signal_connect (object, "unrealize",
- G_CALLBACK (check_unrealize), check_info);
- g_signal_connect (object, "destroy",
- G_CALLBACK (check_destroy), check_info);
+ g_signal_connect (object, "realize",
+ G_CALLBACK (check_realize), check_info);
+ g_signal_connect (object, "unrealize",
+ G_CALLBACK (check_unrealize), check_info);
+ g_signal_connect (object, "destroy",
+ G_CALLBACK (check_destroy), check_info);
- if (GTK_WIDGET_REALIZED (GTK_WIDGET (list)))
- check_realize (GTK_WIDGET (list), check_info);
+ if (GTK_WIDGET_REALIZED (GTK_WIDGET (list)))
+ check_realize (GTK_WIDGET (list), check_info);
- return check_info;
+ return check_info;
}
void
gnc_clist_set_check (GtkCList *list, int row, int col, gboolean checked)
{
- GNCCListCheckInfo *check_info;
- GdkPixmap *pixmap;
+ GNCCListCheckInfo *check_info;
+ GdkPixmap *pixmap;
- g_return_if_fail (GTK_IS_CLIST (list));
+ g_return_if_fail (GTK_IS_CLIST (list));
- check_info = g_object_get_data (G_OBJECT (list), "gnc-check-info");
- if (!check_info)
- check_info = gnc_clist_add_check (list);
+ check_info = g_object_get_data (G_OBJECT (list), "gnc-check-info");
+ if (!check_info)
+ check_info = gnc_clist_add_check (list);
- if (!GTK_WIDGET_REALIZED (GTK_WIDGET (list)))
- {
- GNCCListCheckNode *node;
+ if (!GTK_WIDGET_REALIZED (GTK_WIDGET (list)))
+ {
+ GNCCListCheckNode *node;
- node = g_new0 (GNCCListCheckNode, 1);
+ node = g_new0 (GNCCListCheckNode, 1);
- node->row = row;
- node->col = col;
- node->checked = checked;
+ node->row = row;
+ node->col = col;
+ node->checked = checked;
- check_info->pending_checks =
- g_list_prepend (check_info->pending_checks, node);
+ check_info->pending_checks =
+ g_list_prepend (check_info->pending_checks, node);
- return;
- }
+ return;
+ }
- pixmap = checked ? check_info->on_pixmap : check_info->off_pixmap;
+ pixmap = checked ? check_info->on_pixmap : check_info->off_pixmap;
- if (checked)
- gtk_clist_set_pixmap (list, row, col, pixmap, check_info->mask);
- else
- gtk_clist_set_text (list, row, col, "");
+ if (checked)
+ gtk_clist_set_pixmap (list, row, col, pixmap, check_info->mask);
+ else
+ gtk_clist_set_text (list, row, col, "");
}
/* Glade Stuff
@@ -802,28 +806,28 @@
GladeXML *
gnc_glade_xml_new (const char *filename, const char *root)
{
- GladeXML *xml;
- char *fname;
- gchar *gnc_glade_dir;
+ GladeXML *xml;
+ char *fname;
+ gchar *gnc_glade_dir;
- g_return_val_if_fail (filename != NULL, NULL);
- g_return_val_if_fail (root != NULL, NULL);
+ g_return_val_if_fail (filename != NULL, NULL);
+ g_return_val_if_fail (root != NULL, NULL);
- if (!glade_inited)
- {
- glade_gnome_init ();
- glade_inited = TRUE;
- }
+ if (!glade_inited)
+ {
+ glade_gnome_init ();
+ glade_inited = TRUE;
+ }
- gnc_glade_dir = gnc_path_get_gladedir ();
- fname = g_build_filename(gnc_glade_dir, filename, (char *)NULL);
- g_free (gnc_glade_dir);
+ gnc_glade_dir = gnc_path_get_gladedir ();
+ fname = g_build_filename(gnc_glade_dir, filename, (char *)NULL);
+ g_free (gnc_glade_dir);
- xml = glade_xml_new (fname, root, NULL);
+ xml = glade_xml_new (fname, root, NULL);
- g_free (fname);
+ g_free (fname);
- return xml;
+ return xml;
}
/* gnc_glade_lookup_widget: Given a root (or at least ancestor) widget,
@@ -832,19 +836,19 @@
GtkWidget *
gnc_glade_lookup_widget (GtkWidget *widget, const char *name)
{
- GladeXML *xml;
- GtkWidget *wid;
+ GladeXML *xml;
+ GtkWidget *wid;
- if (!widget || !name) return NULL;
+ if (!widget || !name) return NULL;
- xml = glade_get_widget_tree (widget);
- if (!xml) return NULL;
+ xml = glade_get_widget_tree (widget);
+ if (!xml) return NULL;
- wid = glade_xml_get_widget (xml, name);
- if (!wid)
- PWARN("I know nothing of this '%s' whom you seek.", name);
+ wid = glade_xml_get_widget (xml, name);
+ if (!wid)
+ PWARN("I know nothing of this '%s' whom you seek.", name);
- return wid;
+ return wid;
}
/*
@@ -854,71 +858,78 @@
void
gnc_glade_autoconnect_full_func(const gchar *handler_name,
- GObject *signal_object,
- const gchar *signal_name,
- const gchar *signal_data,
- GObject *other_object,
- gboolean signal_after,
- gpointer user_data)
+ GObject *signal_object,
+ const gchar *signal_name,
+ const gchar *signal_data,
+ GObject *other_object,
+ gboolean signal_after,
+ gpointer user_data)
{
- GCallback func;
- GCallback *p_func = &func;
+ GCallback func;
+ GCallback *p_func = &func;
- if (allsymbols == NULL) {
- /* get a handle on the main executable -- use this to find symbols */
- allsymbols = g_module_open(NULL, 0);
- }
+ if (allsymbols == NULL)
+ {
+ /* get a handle on the main executable -- use this to find symbols */
+ allsymbols = g_module_open(NULL, 0);
+ }
- if (!g_module_symbol(allsymbols, handler_name, (gpointer *)p_func)) {
+ if (!g_module_symbol(allsymbols, handler_name, (gpointer *)p_func))
+ {
#ifdef HAVE_DLSYM
- /* Fallback to dlsym -- necessary for *BSD linkers */
- func = dlsym(RTLD_DEFAULT, handler_name);
+ /* Fallback to dlsym -- necessary for *BSD linkers */
+ func = dlsym(RTLD_DEFAULT, handler_name);
#else
- func = NULL;
+ func = NULL;
#endif
- if (func == NULL) {
- g_warning("ggaff: could not find signal handler '%s'.", handler_name);
- return;
+ if (func == NULL)
+ {
+ g_warning("ggaff: could not find signal handler '%s'.", handler_name);
+ return;
+ }
}
- }
- if (other_object) {
- if (signal_after)
- g_signal_connect_object (signal_object, signal_name, func,
- other_object, G_CONNECT_AFTER);
+ if (other_object)
+ {
+ if (signal_after)
+ g_signal_connect_object (signal_object, signal_name, func,
+ other_object, G_CONNECT_AFTER);
+ else
+ g_signal_connect_object (signal_object, signal_name, func, other_object, 0);
+ }
else
- g_signal_connect_object (signal_object, signal_name, func, other_object, 0);
- } else {
- if (signal_after)
- g_signal_connect_after(signal_object, signal_name, func, user_data);
- else
- g_signal_connect(signal_object, signal_name, func, user_data);
- }
+ {
+ if (signal_after)
+ g_signal_connect_after(signal_object, signal_name, func, user_data);
+ else
+ g_signal_connect(signal_object, signal_name, func, user_data);
+ }
}
void
gnc_gtk_dialog_add_button (GtkWidget *dialog, const gchar *label, const gchar *stock_id, guint response)
{
- GtkWidget *button;
+ GtkWidget *button;
- button = gtk_button_new_with_mnemonic(label);
- if (stock_id) {
- GtkWidget *image;
+ button = gtk_button_new_with_mnemonic(label);
+ if (stock_id)
+ {
+ GtkWidget *image;
- image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(GTK_BUTTON(button), image);
- }
- gtk_widget_show_all(button);
- gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, response);
+ image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image(GTK_BUTTON(button), image);
+ }
+ gtk_widget_show_all(button);
+ gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, response);
}
static void
gnc_perm_button_cb (GtkButton *perm, gpointer user_data)
{
- gboolean perm_active;
+ gboolean perm_active;
- perm_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm));
- gtk_widget_set_sensitive(user_data, !perm_active);
+ perm_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm));
+ gtk_widget_set_sensitive(user_data, !perm_active);
}
gint
@@ -932,29 +943,32 @@
* previous answer. */
response = gnc_gconf_get_int(GCONF_WARNINGS_PERM, gconf_key, NULL);
if (response != 0)
- return response;
+ return response;
response = gnc_gconf_get_int(GCONF_WARNINGS_TEMP, gconf_key, NULL);
if (response != 0)
- return response;
+ return response;
/* Add in the checkboxes to find out if the answer should be remembered. */
#if 0
- if (GTK_IS_MESSAGE_DIALOG(dialog)) {
- GtkMessageType type;
- g_object_get(dialog, "message-type", &type, (gchar*)NULL);
- ask = (type == GTK_MESSAGE_QUESTION);
- } else {
- ask = FALSE;
+ if (GTK_IS_MESSAGE_DIALOG(dialog))
+ {
+ GtkMessageType type;
+ g_object_get(dialog, "message-type", &type, (gchar*)NULL);
+ ask = (type == GTK_MESSAGE_QUESTION);
}
+ else
+ {
+ ask = FALSE;
+ }
#endif
perm = gtk_check_button_new_with_mnemonic
- (ask
- ? _("Remember and don't _ask me again.")
- : _("Don't _tell me again."));
+ (ask
+ ? _("Remember and don't _ask me again.")
+ : _("Don't _tell me again."));
temp = gtk_check_button_new_with_mnemonic
- (ask
- ? _("Remember and don't ask me again this _session.")
- : _("Don't tell me again this _session."));
+ (ask
+ ? _("Remember and don't ask me again this _session.")
+ : _("Don't tell me again this _session."));
gtk_widget_show(perm);
gtk_widget_show(temp);
gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), perm);
@@ -963,16 +977,20 @@
/* OK. Present the dialog. */
response = gtk_dialog_run(dialog);
- if ((response == GTK_RESPONSE_NONE) || (response == GTK_RESPONSE_DELETE_EVENT)) {
- return GTK_RESPONSE_NO;
+ if ((response == GTK_RESPONSE_NONE) || (response == GTK_RESPONSE_DELETE_EVENT))
+ {
+ return GTK_RESPONSE_NO;
}
/* Save the answer? */
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm))) {
- gnc_gconf_set_int(GCONF_WARNINGS_PERM, gconf_key, response, NULL);
- } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp))) {
- gnc_gconf_set_int(GCONF_WARNINGS_TEMP, gconf_key, response, NULL);
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm)))
+ {
+ gnc_gconf_set_int(GCONF_WARNINGS_PERM, gconf_key, response, NULL);
}
+ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp)))
+ {
+ gnc_gconf_set_int(GCONF_WARNINGS_TEMP, gconf_key, response, NULL);
+ }
return response;
}
Modified: gnucash/trunk/src/gnome-utils/dialog-utils.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-utils.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/dialog-utils.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -43,17 +43,17 @@
typedef struct _GNCOptionInfo GNCOptionInfo;
struct _GNCOptionInfo
{
- char *name;
- char *tip;
- GNCOptionCallback callback;
- gpointer user_data;
+ char *name;
+ char *tip;
+ GNCOptionCallback callback;
+ gpointer user_data;
};
/**** PROTOTYPES *************************************************/
GtkWidget * gnc_build_option_menu (GNCOptionInfo *option_info,
- gint num_options);
+ gint num_options);
GtkToolbarStyle gnc_get_toolbar_style (void);
@@ -86,8 +86,8 @@
void gnc_option_menu_init (GtkWidget * option_menu);
void gnc_option_menu_init_w_signal(GtkWidget * w,
- GCallback f,
- gpointer cb_data);
+ GCallback f,
+ gpointer cb_data);
int gnc_option_menu_get_active (GtkWidget * option_menu);
/********************************************************************\
@@ -114,19 +114,19 @@
* after you have built the list. This only applies to unrealized
* widgets. */
#ifdef __GTK_CLIST_H__
-void gnc_clist_set_check (GtkCList *list, int row, int col,
- gboolean checked);
+void gnc_clist_set_check (GtkCList *list, int row, int col,
+ gboolean checked);
#endif
GladeXML * gnc_glade_xml_new (const char *filename, const char *root);
GtkWidget * gnc_glade_lookup_widget (GtkWidget *widget, const char *name);
void gnc_glade_autoconnect_full_func(const gchar *handler_name,
- GObject *signal_object,
- const gchar *signal_name,
- const gchar *signal_data,
- GObject *connect_object,
- gboolean after,
- gpointer user_data);
+ GObject *signal_object,
+ const gchar *signal_name,
+ const gchar *signal_data,
+ GObject *connect_object,
+ gboolean after,
+ gpointer user_data);
/** This function generates a button with icon and adds it to a
* GtkDialog. This is similar to just adding a stock button to the
@@ -136,15 +136,15 @@
* @param dialog The dialog where the button should be added.
*
* @param label The text of the button.
- *
+ *
* @param stock_id The name of the stock button to use.
*
* @param response The response id to return if this button is
* clicked.*/
void gnc_gtk_dialog_add_button (GtkWidget *dialog,
- const gchar *label,
- const gchar *stock_id,
- guint response);
+ const gchar *label,
+ const gchar *stock_id,
+ guint response);
/** Note: This dialog is modal! (It calls gtk_dialog_run() which is modal.)
Modified: gnucash/trunk/src/gnome-utils/druid-gconf-setup.c
===================================================================
--- gnucash/trunk/src/gnome-utils/druid-gconf-setup.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/druid-gconf-setup.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -110,66 +110,72 @@
static gboolean
druid_gconf_update_path (GError **error)
{
- gchar *path_filename, *data_filename;
- gchar *contents, **lines, *line;
- gboolean found_user_dir = FALSE;
- FILE *output;
- gchar *gconfdir;
+ gchar *path_filename, *data_filename;
+ gchar *contents, **lines, *line;
+ gboolean found_user_dir = FALSE;
+ FILE *output;
+ gchar *gconfdir;
- data_filename = g_build_filename(g_get_home_dir(), ".gconf", (char *)NULL);
- path_filename = g_build_filename(g_get_home_dir(), ".gconf.path", (char *)NULL);
- if (g_file_test(path_filename, G_FILE_TEST_EXISTS)) {
- if (!g_file_get_contents(path_filename, &contents, NULL, error)) {
- g_free(path_filename);
- g_free(data_filename);
- return FALSE;
+ data_filename = g_build_filename(g_get_home_dir(), ".gconf", (char *)NULL);
+ path_filename = g_build_filename(g_get_home_dir(), ".gconf.path", (char *)NULL);
+ if (g_file_test(path_filename, G_FILE_TEST_EXISTS))
+ {
+ if (!g_file_get_contents(path_filename, &contents, NULL, error))
+ {
+ g_free(path_filename);
+ g_free(data_filename);
+ return FALSE;
+ }
+
+ lines = g_strsplit_set(contents, "\r\n", -1);
+ for (line = *lines; line; line++)
+ {
+ if (line[0] == '#')
+ continue;
+ if ((strstr(line, "$(HOME)/.gconf") == 0) ||
+ (strstr(line, "~/.gconf") == 0) ||
+ (strstr(line, data_filename)))
+ {
+ found_user_dir = TRUE;
+ break;
+ }
+ }
+ g_strfreev(lines);
}
-
- lines = g_strsplit_set(contents, "\r\n", -1);
- for (line = *lines; line; line++) {
- if (line[0] == '#')
- continue;
- if ((strstr(line, "$(HOME)/.gconf") == 0) ||
- (strstr(line, "~/.gconf") == 0) ||
- (strstr(line, data_filename))) {
- found_user_dir = TRUE;
- break;
- }
+
+ output = g_fopen(path_filename, "a");
+ if (output == NULL)
+ {
+ *error = g_error_new (G_FILE_ERROR,
+ g_file_error_from_errno(errno),
+ "Error opening file %s for writing.",
+ path_filename);
+ g_free(path_filename);
+ g_free(data_filename);
+ return FALSE;
}
- g_strfreev(lines);
- }
- output = g_fopen(path_filename, "a");
- if (output == NULL) {
- *error = g_error_new (G_FILE_ERROR,
- g_file_error_from_errno(errno),
- "Error opening file %s for writing.",
- path_filename);
- g_free(path_filename);
- g_free(data_filename);
- return FALSE;
- }
+ fprintf(output, "\n######## The following lines were added by GnuCash. ########\n");
+ if (!found_user_dir)
+ fprintf(output, PATH_STRING1);
+ gconfdir = gnc_path_get_gconfdir (TRUE);
+ fprintf(output, PATH_STRING2, gconfdir);
+ g_free (gconfdir);
+ fprintf(output, "############## End of lines added by GnuCash. ##############\n");
+ if (fclose(output) != 0)
+ {
+ *error = g_error_new (G_FILE_ERROR,
+ g_file_error_from_errno(errno),
+ "Error closing file %s.",
+ path_filename);
+ g_free(path_filename);
+ g_free(data_filename);
+ return FALSE;
+ }
- fprintf(output, "\n######## The following lines were added by GnuCash. ########\n");
- if (!found_user_dir)
- fprintf(output, PATH_STRING1);
- gconfdir = gnc_path_get_gconfdir (TRUE);
- fprintf(output, PATH_STRING2, gconfdir);
- g_free (gconfdir);
- fprintf(output, "############## End of lines added by GnuCash. ##############\n");
- if (fclose(output) != 0) {
- *error = g_error_new (G_FILE_ERROR,
- g_file_error_from_errno(errno),
- "Error closing file %s.",
- path_filename);
g_free(path_filename);
g_free(data_filename);
- return FALSE;
- }
-
- g_free(path_filename);
- g_free(data_filename);
- return TRUE;
+ return TRUE;
}
@@ -190,7 +196,7 @@
static gboolean
druid_gconf_install_keys (GError **error)
{
- return g_spawn_command_line_sync(SCRIPT_NAME, NULL, NULL, NULL, error);
+ return g_spawn_command_line_sync(SCRIPT_NAME, NULL, NULL, NULL, error);
}
/********************
@@ -204,11 +210,11 @@
*/
gboolean
druid_gconf_delete_event (GtkWidget *window,
- GdkEvent *event,
- gpointer user_data)
+ GdkEvent *event,
+ gpointer user_data)
{
- gtk_widget_destroy(GTK_WIDGET(window));
- exit(40);
+ gtk_widget_destroy(GTK_WIDGET(window));
+ exit(40);
}
@@ -217,13 +223,13 @@
*/
void
druid_gconf_cancel (GnomeDruid *druid,
- gpointer user_data)
+ gpointer user_data)
{
- GtkWidget *window;
+ GtkWidget *window;
- window = gnc_glade_lookup_widget(GTK_WIDGET(druid), "GConf Install Druid");
- gtk_widget_destroy(GTK_WIDGET(window));
- exit(41);
+ window = gnc_glade_lookup_widget(GTK_WIDGET(druid), "GConf Install Druid");
+ gtk_widget_destroy(GTK_WIDGET(window));
+ exit(41);
}
@@ -238,8 +244,8 @@
*/
void
druid_gconf_choose_page_prepare (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
}
@@ -251,22 +257,25 @@
*/
gboolean
druid_gconf_choose_page_next (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkWidget *page, *button;
+ GtkWidget *page, *button;
- button = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "update_path");
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) {
- page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "update_page");
- g_object_set_data(G_OBJECT(druid), HOW, GINT_TO_POINTER(HOW_UPDATE));
- } else {
- page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "install_page");
- g_object_set_data(G_OBJECT(druid), HOW, GINT_TO_POINTER(HOW_INSTALL));
- }
+ button = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "update_path");
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
+ {
+ page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "update_page");
+ g_object_set_data(G_OBJECT(druid), HOW, GINT_TO_POINTER(HOW_UPDATE));
+ }
+ else
+ {
+ page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "install_page");
+ g_object_set_data(G_OBJECT(druid), HOW, GINT_TO_POINTER(HOW_INSTALL));
+ }
- gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
- return TRUE;
+ gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
+ return TRUE;
}
@@ -282,19 +291,19 @@
*/
void
druid_gconf_update_page_prepare (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkTextBuffer *textbuffer;
- GtkWidget *textview;
- gchar *msg;
- gchar *gconfdir = gnc_path_get_gconfdir (TRUE);
+ GtkTextBuffer *textbuffer;
+ GtkWidget *textview;
+ gchar *msg;
+ gchar *gconfdir = gnc_path_get_gconfdir (TRUE);
- textview = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "update_text");
- textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
- msg = g_strdup_printf(PATH_STRING1 PATH_STRING2, gconfdir);
- gtk_text_buffer_set_text(textbuffer, msg, -1);
- g_free (gconfdir);
+ textview = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "update_text");
+ textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
+ msg = g_strdup_printf(PATH_STRING1 PATH_STRING2, gconfdir);
+ gtk_text_buffer_set_text(textbuffer, msg, -1);
+ g_free (gconfdir);
}
@@ -304,24 +313,29 @@
*/
gboolean
druid_gconf_update_page_next (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkWidget *page, *button1, *button2;
+ GtkWidget *page, *button1, *button2;
- button1 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "program1");
- button2 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "user1");
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button1))) {
- g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_GNUCASH));
- } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button2))) {
- g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_USER));
- } else {
- g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_ALREADY_DONE));
- }
+ button1 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "program1");
+ button2 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "user1");
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button1)))
+ {
+ g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_GNUCASH));
+ }
+ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button2)))
+ {
+ g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_USER));
+ }
+ else
+ {
+ g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_ALREADY_DONE));
+ }
- page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "finish_page");
- gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
- return TRUE;
+ page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "finish_page");
+ gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
+ return TRUE;
}
/********************
@@ -334,15 +348,15 @@
*/
void
druid_gconf_install_page_prepare (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkTextBuffer *textbuffer;
- GtkWidget *textview;
+ GtkTextBuffer *textbuffer;
+ GtkWidget *textview;
- textview = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "install_text");
- textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
- gtk_text_buffer_set_text(textbuffer, SCRIPT_NAME, -1);
+ textview = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "install_text");
+ textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
+ gtk_text_buffer_set_text(textbuffer, SCRIPT_NAME, -1);
}
@@ -352,24 +366,29 @@
*/
gboolean
druid_gconf_install_page_next (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkWidget *page, *button1, *button2;
+ GtkWidget *page, *button1, *button2;
- button1 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "program2");
- button2 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "user2");
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button1))) {
- g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_GNUCASH));
- } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button2))) {
- g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_USER));
- } else {
- g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_ALREADY_DONE));
- }
+ button1 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "program2");
+ button2 = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "user2");
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button1)))
+ {
+ g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_GNUCASH));
+ }
+ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button2)))
+ {
+ g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_USER));
+ }
+ else
+ {
+ g_object_set_data(G_OBJECT(druid), WHO_DOES, GINT_TO_POINTER(WHO_ALREADY_DONE));
+ }
- page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "finish_page");
- gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
- return TRUE;
+ page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "finish_page");
+ gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
+ return TRUE;
}
@@ -378,14 +397,14 @@
*/
gboolean
druid_gconf_install_page_back (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkWidget *page;
+ GtkWidget *page;
- page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "choose_page");
- gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
- return TRUE;
+ page = gnc_glade_lookup_widget(GTK_WIDGET(druidpage), "choose_page");
+ gnome_druid_set_page(druid, GNOME_DRUID_PAGE(page));
+ return TRUE;
}
@@ -400,64 +419,71 @@
*/
void
druid_gconf_finish_page_prepare (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- gint who, how;
- gchar *text;
- const gchar *pgm_path =
- _("When you click Apply, GnuCash will modify your ~/.gconf.path file "
- "and restart the gconf backend.");
- const gchar *pgm_install =
- _("When you click Apply, GnuCash will install the gconf data into your "
- "local ~/.gconf file and restart the gconf backend. The %s script "
- "must be found in your search path for this to work correctly.");
- const gchar *user_path =
- _("You have chosen to correct the problem by yourself. When you click "
- "Apply, GnuCash will exit. Please correct the problem and restart "
- "the gconf backend with the command 'gconftool-2 --shutdown' before "
- "restarting GnuCash. If you have not already done so, you can click "
- "the Back button and copy the necessary text from the dialog.");
- const gchar *user_install =
- _("You have chosen to correct the problem by yourself. When you "
- "click Apply, GnuCash will exit. Please run the %s script which "
- "will install the configuration data and restart the gconf backend.");
- const gchar *user_did =
- _("You have already corrected the problem and restarted the gconf "
- "backend with the command 'gconftool-2 --shutdown'. When you click "
- "Apply, GnuCash will continue loading.");
+ gint who, how;
+ gchar *text;
+ const gchar *pgm_path =
+ _("When you click Apply, GnuCash will modify your ~/.gconf.path file "
+ "and restart the gconf backend.");
+ const gchar *pgm_install =
+ _("When you click Apply, GnuCash will install the gconf data into your "
+ "local ~/.gconf file and restart the gconf backend. The %s script "
+ "must be found in your search path for this to work correctly.");
+ const gchar *user_path =
+ _("You have chosen to correct the problem by yourself. When you click "
+ "Apply, GnuCash will exit. Please correct the problem and restart "
+ "the gconf backend with the command 'gconftool-2 --shutdown' before "
+ "restarting GnuCash. If you have not already done so, you can click "
+ "the Back button and copy the necessary text from the dialog.");
+ const gchar *user_install =
+ _("You have chosen to correct the problem by yourself. When you "
+ "click Apply, GnuCash will exit. Please run the %s script which "
+ "will install the configuration data and restart the gconf backend.");
+ const gchar *user_did =
+ _("You have already corrected the problem and restarted the gconf "
+ "backend with the command 'gconftool-2 --shutdown'. When you click "
+ "Apply, GnuCash will continue loading.");
- who = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), WHO_DOES));
- switch (who) {
+ who = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), WHO_DOES));
+ switch (who)
+ {
case WHO_ALREADY_DONE:
- gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage),
- user_did);
- break;
+ gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage),
+ user_did);
+ break;
case WHO_USER:
- how = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), HOW));
- if (how == HOW_INSTALL) {
- text = g_strdup_printf(user_install, SCRIPT_NAME);
- gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage), text);
- g_free(text);
- } else {
- gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage),
- user_path);
- }
- break;
+ how = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), HOW));
+ if (how == HOW_INSTALL)
+ {
+ text = g_strdup_printf(user_install, SCRIPT_NAME);
+ gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage), text);
+ g_free(text);
+ }
+ else
+ {
+ gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage),
+ user_path);
+ }
+ break;
default:
- how = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), HOW));
- if (how == HOW_INSTALL) {
- text = g_strdup_printf(pgm_install, SCRIPT_NAME);
- gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage), text);
- g_free(text);
- } else {
- gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage),
- pgm_path);
- }
- break;
- }
+ how = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), HOW));
+ if (how == HOW_INSTALL)
+ {
+ text = g_strdup_printf(pgm_install, SCRIPT_NAME);
+ gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage), text);
+ g_free(text);
+ }
+ else
+ {
+ gnome_druid_page_edge_set_text(GNOME_DRUID_PAGE_EDGE(druidpage),
+ pgm_path);
+ }
+ break;
+ }
}
@@ -467,10 +493,10 @@
*/
gboolean
druid_gconf_finish_page_back (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- return druid_gconf_choose_page_next(druidpage, druid, user_data);
+ return druid_gconf_choose_page_next(druidpage, druid, user_data);
}
@@ -481,53 +507,60 @@
*/
void
druid_gconf_finish_page_finish (GnomeDruidPage *druidpage,
- GnomeDruid *druid,
- gpointer user_data)
+ GnomeDruid *druid,
+ gpointer user_data)
{
- GtkWidget *window;
- gint value, value2;
- GError *error = NULL;
- gboolean keep_going = TRUE;
+ GtkWidget *window;
+ gint value, value2;
+ GError *error = NULL;
+ gboolean keep_going = TRUE;
- /* What to do... what to do... */
- value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), WHO_DOES));
- switch (value) {
+ /* What to do... what to do... */
+ value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), WHO_DOES));
+ switch (value)
+ {
case WHO_ALREADY_DONE:
- break;
+ break;
case WHO_USER:
- keep_going = FALSE;
- break;
+ keep_going = FALSE;
+ break;
default:
- value2 = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), HOW));
- switch(value2) {
- case HOW_INSTALL:
- if (!druid_gconf_install_keys(&error)) {
- keep_going = FALSE;
- gnc_error_dialog(NULL, "%s", error->message);
- g_error_free(error);
- }
- break;
+ value2 = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(druid), HOW));
+ switch (value2)
+ {
+ case HOW_INSTALL:
+ if (!druid_gconf_install_keys(&error))
+ {
+ keep_going = FALSE;
+ gnc_error_dialog(NULL, "%s", error->message);
+ g_error_free(error);
+ }
+ break;
- default:
- if (!druid_gconf_update_path(&error)) {
- keep_going = FALSE;
- gnc_error_dialog(NULL, "%s", error->message);
- g_error_free(error);
- }
- break;
- }
- break;
- }
+ default:
+ if (!druid_gconf_update_path(&error))
+ {
+ keep_going = FALSE;
+ gnc_error_dialog(NULL, "%s", error->message);
+ g_error_free(error);
+ }
+ break;
+ }
+ break;
+ }
- window = gnc_glade_lookup_widget(GTK_WIDGET(druid), "GConf Install Druid");
- gtk_widget_destroy(GTK_WIDGET(window));
- if (keep_going) {
- gtk_main_quit();
- } else {
- exit(42);
- }
+ window = gnc_glade_lookup_widget(GTK_WIDGET(druid), "GConf Install Druid");
+ gtk_widget_destroy(GTK_WIDGET(window));
+ if (keep_going)
+ {
+ gtk_main_quit();
+ }
+ else
+ {
+ exit(42);
+ }
}
@@ -538,26 +571,28 @@
static void
druid_gconf_fix_textview_color (GtkWidget *window)
{
- GdkColor *color;
- GtkWidget *widget;
- gint i;
- const gchar *names[] = {
- "textview1",
- "textview2",
- "textview3",
- "textview4",
- "textview5",
- "textview6",
- NULL
- };
+ GdkColor *color;
+ GtkWidget *widget;
+ gint i;
+ const gchar *names[] =
+ {
+ "textview1",
+ "textview2",
+ "textview3",
+ "textview4",
+ "textview5",
+ "textview6",
+ NULL
+ };
- widget = gnc_glade_lookup_widget(window, "choose_page");
- color = &GNOME_DRUID_PAGE_STANDARD(widget)->contents_background;
+ widget = gnc_glade_lookup_widget(window, "choose_page");
+ color = &GNOME_DRUID_PAGE_STANDARD(widget)->contents_background;
- for (i = 0; names[i]; i++) {
- widget = gnc_glade_lookup_widget(widget, names[i]);
- gtk_widget_modify_base(widget, GTK_STATE_INSENSITIVE, color);
- }
+ for (i = 0; names[i]; i++)
+ {
+ widget = gnc_glade_lookup_widget(widget, names[i]);
+ gtk_widget_modify_base(widget, GTK_STATE_INSENSITIVE, color);
+ }
}
/** This function build and presents the druid that presents the user
@@ -571,25 +606,26 @@
static void
gnc_gnome_install_gconf_schemas (void)
{
- GladeXML *xml;
- GtkWidget *window;
- GError *error = NULL;
+ GladeXML *xml;
+ GtkWidget *window;
+ GError *error = NULL;
- xml = gnc_glade_xml_new ("druid-gconf-setup.glade", "GConf Install Druid");
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, NULL);
- window = glade_xml_get_widget (xml, "GConf Install Druid");
- druid_gconf_fix_textview_color(window);
- gtk_widget_show_all(window);
+ xml = gnc_glade_xml_new ("druid-gconf-setup.glade", "GConf Install Druid");
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, NULL);
+ window = glade_xml_get_widget (xml, "GConf Install Druid");
+ druid_gconf_fix_textview_color(window);
+ gtk_widget_show_all(window);
- /* This won't return until the dialog is finished */
- gtk_main();
+ /* This won't return until the dialog is finished */
+ gtk_main();
- /* Kill the backend daemon. When it restarts it will find our changes */
- if (!g_spawn_command_line_sync("gconftool-2 --shutdown", NULL, NULL,
- NULL, &error)) {
- gnc_warning_dialog(NULL, "%s", error->message);
- g_error_free(error);
- }
+ /* Kill the backend daemon. When it restarts it will find our changes */
+ if (!g_spawn_command_line_sync("gconftool-2 --shutdown", NULL, NULL,
+ NULL, &error))
+ {
+ gnc_warning_dialog(NULL, "%s", error->message);
+ g_error_free(error);
+ }
}
@@ -605,64 +641,72 @@
void
druid_gconf_install_check_schemas (void)
{
- GladeXML *xml;
- GtkWidget *dialog;
- gboolean done = FALSE;
- gint response;
+ GladeXML *xml;
+ GtkWidget *dialog;
+ gboolean done = FALSE;
+ gint response;
- if (gnc_gconf_schemas_found()) {
- gnc_gconf_unset_dir(GCONF_WARNINGS_TEMP, NULL);
- return;
- }
+ if (gnc_gconf_schemas_found())
+ {
+ gnc_gconf_unset_dir(GCONF_WARNINGS_TEMP, NULL);
+ return;
+ }
#ifdef G_OS_WIN32
- {
- /* automatically update the search path on windows */
- GError *error = NULL;
- if (!druid_gconf_update_path (&error)) {
- gnc_error_dialog (NULL, error->message);
- g_error_free (error);
- exit(42);
- } else {
- if (!g_spawn_command_line_sync("gconftool-2 --shutdown", NULL, NULL,
- NULL, &error)) {
- gnc_warning_dialog(NULL, error->message);
- g_error_free(error);
- }
- return;
+ {
+ /* automatically update the search path on windows */
+ GError *error = NULL;
+ if (!druid_gconf_update_path (&error))
+ {
+ gnc_error_dialog (NULL, error->message);
+ g_error_free (error);
+ exit(42);
+ }
+ else
+ {
+ if (!g_spawn_command_line_sync("gconftool-2 --shutdown", NULL, NULL,
+ NULL, &error))
+ {
+ gnc_warning_dialog(NULL, error->message);
+ g_error_free(error);
+ }
+ return;
+ }
}
- }
#endif /* G_OS_WIN32 */
- xml = gnc_glade_xml_new ("druid-gconf-setup.glade", "GConf Query");
- dialog = glade_xml_get_widget (xml, "GConf Query");
- do {
- response = gtk_dialog_run(GTK_DIALOG(dialog));
+ xml = gnc_glade_xml_new ("druid-gconf-setup.glade", "GConf Query");
+ dialog = glade_xml_get_widget (xml, "GConf Query");
+ do
+ {
+ response = gtk_dialog_run(GTK_DIALOG(dialog));
- switch (response) {
- case GTK_RESPONSE_CANCEL:
- default:
- gnc_shutdown(42);
- /* never returns */
+ switch (response)
+ {
+ case GTK_RESPONSE_CANCEL:
+ default:
+ gnc_shutdown(42);
+ /* never returns */
- case GTK_RESPONSE_NO:
- /* User wants to run without setting up gconf */
- done = TRUE;
- break;
+ case GTK_RESPONSE_NO:
+ /* User wants to run without setting up gconf */
+ done = TRUE;
+ break;
- case GTK_RESPONSE_ACCEPT:
- gtk_widget_hide(dialog);
- gnc_gnome_install_gconf_schemas();
- done = TRUE;
- break;
+ case GTK_RESPONSE_ACCEPT:
+ gtk_widget_hide(dialog);
+ gnc_gnome_install_gconf_schemas();
+ done = TRUE;
+ break;
- case GTK_RESPONSE_HELP:
- gnc_gnome_help(HF_HELP, HL_GCONF);
- break;
+ case GTK_RESPONSE_HELP:
+ gnc_gnome_help(HF_HELP, HL_GCONF);
+ break;
+ }
}
- } while (!done);
+ while (!done);
- gtk_widget_destroy(dialog);
+ gtk_widget_destroy(dialog);
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/druid-gnc-xml-import.c
===================================================================
--- gnucash/trunk/src/gnome-utils/druid-gnc-xml-import.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/druid-gnc-xml-import.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -50,91 +50,98 @@
* - as pointer, containing above gquark, used in lists
*/
-typedef enum {
- XML_CONVERT_SINGLE_FILE,
- XML_MERGE_FILES
+typedef enum
+{
+ XML_CONVERT_SINGLE_FILE,
+ XML_MERGE_FILES
} GncXmlImportType;
-typedef struct {
- GncXmlImportType import_type;
+typedef struct
+{
+ GncXmlImportType import_type;
- GtkWidget *dialog; /* global window */
- GtkWidget *druid; /* druid */
- GtkWidget *file_chooser; /* file chooser widget on load file page */
- GtkWidget *default_encoding_combo; /* top combo on conversion page */
- GtkWidget *summary_label; /* label on conversion page */
- GtkWidget *string_box; /* vbox of combos on conversion page */
- GtkWidget *encodings_dialog; /* dialog for selection of encodings */
- GtkTreeView *available_encs_view; /* list view of standard encodings */
- GtkTreeView *selected_encs_view; /* list view of selected encodings */
- GtkListStore *file_list_store; /* list store for loaded files */
- GtkTreeView *file_list_view; /* list view for loaded files */
+ GtkWidget *dialog; /* global window */
+ GtkWidget *druid; /* druid */
+ GtkWidget *file_chooser; /* file chooser widget on load file page */
+ GtkWidget *default_encoding_combo; /* top combo on conversion page */
+ GtkWidget *summary_label; /* label on conversion page */
+ GtkWidget *string_box; /* vbox of combos on conversion page */
+ GtkWidget *encodings_dialog; /* dialog for selection of encodings */
+ GtkTreeView *available_encs_view; /* list view of standard encodings */
+ GtkTreeView *selected_encs_view; /* list view of selected encodings */
+ GtkListStore *file_list_store; /* list store for loaded files */
+ GtkTreeView *file_list_view; /* list view for loaded files */
- GList *files; /* list of loaded files */
+ GList *files; /* list of loaded files */
- GList *encodings; /* list of GQuarks for encodings */
- GQuark default_encoding; /* default GQuark, may be zero */
+ GList *encodings; /* list of GQuarks for encodings */
+ GQuark default_encoding; /* default GQuark, may be zero */
- /* hash table that maps byte sequences to conversions, i.e. in the current
- encodings setting, there is only one possible conversion */
- GHashTable *unique;
+ /* hash table that maps byte sequences to conversions, i.e. in the current
+ encodings setting, there is only one possible conversion */
+ GHashTable *unique;
- /* hash table that maps byte sequences to a list of conversions, i.e. in the
- current encodings setting, there exactly these conversions are possible */
- GHashTable *ambiguous_ht;
+ /* hash table that maps byte sequences to a list of conversions, i.e. in the
+ current encodings setting, there exactly these conversions are possible */
+ GHashTable *ambiguous_ht;
- /* sorted list of ambiguous words, used for the construction of the combos */
- GList *ambiguous_list;
+ /* sorted list of ambiguous words, used for the construction of the combos */
+ GList *ambiguous_list;
- /* hash table that maps byte sequences to conversions. these reflect the
- choices the user made, accumulated and updated in the whole conversion.
- Note: this may contain conversions that are not available in the current
- encodings setting, just imagine, user accidentally removed an important
- encoding from the list */
- GHashTable *choices;
+ /* hash table that maps byte sequences to conversions. these reflect the
+ choices the user made, accumulated and updated in the whole conversion.
+ Note: this may contain conversions that are not available in the current
+ encodings setting, just imagine, user accidentally removed an important
+ encoding from the list */
+ GHashTable *choices;
- /* number of byte sequences that have multiple possible conversions, but not in
- the default encoding. and the user has not decided yet, of course. */
- gint n_unassigned;
+ /* number of byte sequences that have multiple possible conversions, but not in
+ the default encoding. and the user has not decided yet, of course. */
+ gint n_unassigned;
- /* number of byte sequences without any reasonable interpretation */
- gint n_impossible;
+ /* number of byte sequences without any reasonable interpretation */
+ gint n_impossible;
- /* hash table that maps byte sequences to other byte sequences to be replaced
- by them. */
- GHashTable *subst;
+ /* hash table that maps byte sequences to other byte sequences to be replaced
+ by them. */
+ GHashTable *subst;
- gchar *filename;
- QofSession *session;
+ gchar *filename;
+ QofSession *session;
} GncXmlImportData;
-typedef struct {
- gchar *filename;
- GtkTreeIter *file_list_iter;
+typedef struct
+{
+ gchar *filename;
+ GtkTreeIter *file_list_iter;
} GncXmlImportFile;
/* used for the string combos, see ambiguous_free */
-typedef struct {
- gchar *byte_sequence;
- GList *conv_list;
+typedef struct
+{
+ gchar *byte_sequence;
+ GList *conv_list;
} ambiguous_type;
-enum {
- FILE_COL_NAME = 0,
- FILE_COL_INFO,
- FILE_NUM_COLS
+enum
+{
+ FILE_COL_NAME = 0,
+ FILE_COL_INFO,
+ FILE_NUM_COLS
};
-enum {
- WORD_COL_STRING = 0,
- WORD_COL_ENCODING,
- WORD_NUM_COLS
+enum
+{
+ WORD_COL_STRING = 0,
+ WORD_COL_ENCODING,
+ WORD_NUM_COLS
};
-enum {
- ENC_COL_STRING = 0,
- ENC_COL_QUARK,
- ENC_NUM_COLS
+enum
+{
+ ENC_COL_STRING = 0,
+ ENC_COL_QUARK,
+ ENC_NUM_COLS
};
static void gxi_data_destroy (GncXmlImportData *data);
@@ -150,7 +157,7 @@
static void gxi_update_string_box (GncXmlImportData *data);
static void gxi_update_conversion_forward (GncXmlImportData *data);
static GnomeDruidPage *gxi_get_named_page (GncXmlImportData *data,
- const gchar *name);
+ const gchar *name);
void gxi_dialog_destroy_cb (GtkObject *object, GncXmlImportData *data);
void gxi_cancel_cb (GnomeDruid *druid, GncXmlImportData *data);
void gxi_chooser_file_activated_cb (GtkFileChooser *chooser,
@@ -160,9 +167,9 @@
void gxi_conversion_prepare_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data);
static void gxi_default_enc_combo_changed_cb (GtkComboBox *combo,
- GncXmlImportData *data);
+ GncXmlImportData *data);
static void gxi_string_combo_changed_cb (GtkComboBox *combo,
- GncXmlImportData *data);
+ GncXmlImportData *data);
void gxi_edit_encodings_clicked_cb (GtkButton *button, GncXmlImportData *data);
void gxi_available_enc_activated_cb (GtkTreeView *view, GtkTreePath *path,
GtkTreeViewColumn *column,
@@ -186,33 +193,33 @@
GncXmlImportData *data);
static const gchar *encodings_doc_string = N_(
- "The file you are trying to load is from an older version of "
- "GnuCash. The file format in the older versions was missing the "
- "detailed specification of the character encoding being used. This "
- "means the text in your data file could be read in multiple ambiguous "
- "ways. This ambiguity cannot be resolved automatically, but the new "
- "GnuCash 2.0.0 file format will include all necessary specifications so "
- "that you do not have to go through this step again."
- "\n\n"
- "GnuCash will try to guess the correct character encoding for your data "
- "file. On the next page GnuCash will show the resulting texts when "
- "using this guess. You have to check whether the words look as "
- "expected. Either everything looks fine and you can simply press "
- "'Forward'. Or the words contain unexpected characters, in which "
- "case you should select different character encodings to see "
- "different results. You may have to edit the list of character "
- "encodings by clicking on the respective button."
- "\n\n"
- "Press 'Forward' now to select the correct character encoding for "
- "your data file.");
+ "The file you are trying to load is from an older version of "
+ "GnuCash. The file format in the older versions was missing the "
+ "detailed specification of the character encoding being used. This "
+ "means the text in your data file could be read in multiple ambiguous "
+ "ways. This ambiguity cannot be resolved automatically, but the new "
+ "GnuCash 2.0.0 file format will include all necessary specifications so "
+ "that you do not have to go through this step again."
+ "\n\n"
+ "GnuCash will try to guess the correct character encoding for your data "
+ "file. On the next page GnuCash will show the resulting texts when "
+ "using this guess. You have to check whether the words look as "
+ "expected. Either everything looks fine and you can simply press "
+ "'Forward'. Or the words contain unexpected characters, in which "
+ "case you should select different character encodings to see "
+ "different results. You may have to edit the list of character "
+ "encodings by clicking on the respective button."
+ "\n\n"
+ "Press 'Forward' now to select the correct character encoding for "
+ "your data file.");
static const gchar *encodings_doc_page_title = N_("Ambiguous character encoding");
static const gchar *finish_convert_string = N_(
- "The file has been loaded successfully. If you click 'Apply' it will be saved "
- "and reloaded into the main application. That way you will have a working "
- "file as backup in the same directory.\n\n"
- "You can also go back and verify your selections by clicking on 'Back'.");
+ "The file has been loaded successfully. If you click 'Apply' it will be saved "
+ "and reloaded into the main application. That way you will have a working "
+ "file as backup in the same directory.\n\n"
+ "You can also go back and verify your selections by clicking on 'Back'.");
/* The debugging module that this .o belongs to. */
static QofLogModule log_module = GNC_MOD_GUI;
@@ -224,1144 +231,1260 @@
/* this is used for a static tree of system encodings. encoding may be NULL.
parent declares how often to go up in the path of the previous element and use
that as parent, e.g. 0 -> child of previous, 1 -> same level as previous */
-typedef struct {
- gchar *text;
- gchar *encoding;
- gint parent;
+typedef struct
+{
+ gchar *text;
+ gchar *encoding;
+ gint parent;
} system_encoding_type;
static system_encoding_type system_encodings [] =
{
- { N_("Unicode"), NULL, 2 },
- { "UTF-8", "UTF-8", 0 },
- { N_("European"), NULL, 2 },
- { N_("ISO-8859-1 (West European)"), "ISO-8859-1", 0 },
- { N_("ISO-8859-2 (East European)"), "ISO-8859-2", 1 },
- { N_("ISO-8859-3 (South European)"), "ISO-8859-3", 1 },
- { N_("ISO-8859-4 (North European)"), "ISO-8859-4", 1 },
- { N_("ISO-8859-5 (Cyrillic)"), "ISO-8859-5", 1 },
- { N_("ISO-8859-6 (Arabic)"), "ISO-8859-6", 1 },
- { N_("ISO-8859-7 (Greek)"), "ISO-8859-7", 1 },
- { N_("ISO-8859-8 (Hebrew)"), "ISO-8859-8", 1 },
- { N_("ISO-8859-9 (Turkish)"), "ISO-8859-9", 1 },
- { N_("ISO-8859-10 (Nordic)"), "ISO-8859-10", 1 },
- { N_("ISO-8859-11 (Thai)"), "ISO-8859-11", 1 },
- { N_("ISO-8859-13 (Baltic)"), "ISO-8859-13", 1 },
- { N_("ISO-8859-14 (Celtic)"), "ISO-8859-14", 1 },
- { N_("ISO-8859-15 (West European, Euro sign)"), "ISO-8859-15", 1 },
- { N_("ISO-8859-16 (South-East European)"), "ISO-8859-16", 1 },
- { N_("Cyrillic"), NULL, 2 },
- { N_("KOI8-R (Russian)"), "KOI8-R", 0 },
- { N_("KOI8-U (Ukrainian)"), "KOI8-U", 1 },
+ { N_("Unicode"), NULL, 2 },
+ { "UTF-8", "UTF-8", 0 },
+ { N_("European"), NULL, 2 },
+ { N_("ISO-8859-1 (West European)"), "ISO-8859-1", 0 },
+ { N_("ISO-8859-2 (East European)"), "ISO-8859-2", 1 },
+ { N_("ISO-8859-3 (South European)"), "ISO-8859-3", 1 },
+ { N_("ISO-8859-4 (North European)"), "ISO-8859-4", 1 },
+ { N_("ISO-8859-5 (Cyrillic)"), "ISO-8859-5", 1 },
+ { N_("ISO-8859-6 (Arabic)"), "ISO-8859-6", 1 },
+ { N_("ISO-8859-7 (Greek)"), "ISO-8859-7", 1 },
+ { N_("ISO-8859-8 (Hebrew)"), "ISO-8859-8", 1 },
+ { N_("ISO-8859-9 (Turkish)"), "ISO-8859-9", 1 },
+ { N_("ISO-8859-10 (Nordic)"), "ISO-8859-10", 1 },
+ { N_("ISO-8859-11 (Thai)"), "ISO-8859-11", 1 },
+ { N_("ISO-8859-13 (Baltic)"), "ISO-8859-13", 1 },
+ { N_("ISO-8859-14 (Celtic)"), "ISO-8859-14", 1 },
+ { N_("ISO-8859-15 (West European, Euro sign)"), "ISO-8859-15", 1 },
+ { N_("ISO-8859-16 (South-East European)"), "ISO-8859-16", 1 },
+ { N_("Cyrillic"), NULL, 2 },
+ { N_("KOI8-R (Russian)"), "KOI8-R", 0 },
+ { N_("KOI8-U (Ukrainian)"), "KOI8-U", 1 },
};
static guint n_system_encodings = G_N_ELEMENTS (system_encodings);
gboolean
gnc_xml_convert_single_file (const gchar *filename)
{
- GncXmlImportData *data;
- GtkWidget *dialog, *widget;
- GladeXML *xml;
- gboolean success;
+ GncXmlImportData *data;
+ GtkWidget *dialog, *widget;
+ GladeXML *xml;
+ gboolean success;
- data = g_new0 (GncXmlImportData, 1);
- data->import_type = XML_CONVERT_SINGLE_FILE;
- data->filename = g_strdup (filename);
+ data = g_new0 (GncXmlImportData, 1);
+ data->import_type = XML_CONVERT_SINGLE_FILE;
+ data->filename = g_strdup (filename);
- /* gather ambiguous info */
- gxi_check_file (data);
- if (data->n_impossible == -1)
- return FALSE;
+ /* gather ambiguous info */
+ gxi_check_file (data);
+ if (data->n_impossible == -1)
+ return FALSE;
- if (!g_hash_table_size (data->ambiguous_ht)) {
+ if (!g_hash_table_size (data->ambiguous_ht))
+ {
- /* no ambiguous strings */
- success =
- gxi_parse_file (data) &&
- gxi_save_file (data);
+ /* no ambiguous strings */
+ success =
+ gxi_parse_file (data) &&
+ gxi_save_file (data);
- gxi_data_destroy (data);
+ gxi_data_destroy (data);
- } else {
+ }
+ else
+ {
- /* common druid initialization */
- xml = gnc_glade_xml_new (XML_GLADE_FILE, "GnuCash XML Import Dialog");
+ /* common druid initialization */
+ xml = gnc_glade_xml_new (XML_GLADE_FILE, "GnuCash XML Import Dialog");
- dialog = glade_xml_get_widget (xml, "GnuCash XML Import Dialog");
- gtk_widget_hide ((GTK_DIALOG (dialog))->action_area);
- data->dialog = dialog;
- g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
- glade_xml_signal_autoconnect_full (xml, gnc_glade_autoconnect_full_func,
- data);
+ dialog = glade_xml_get_widget (xml, "GnuCash XML Import Dialog");
+ gtk_widget_hide ((GTK_DIALOG (dialog))->action_area);
+ data->dialog = dialog;
+ g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
+ glade_xml_signal_autoconnect_full (xml, gnc_glade_autoconnect_full_func,
+ data);
- data->druid = glade_xml_get_widget (xml, "gnc_xml_import_druid");
- gnc_druid_set_colors (GNOME_DRUID (data->druid));
+ data->druid = glade_xml_get_widget (xml, "gnc_xml_import_druid");
+ gnc_druid_set_colors (GNOME_DRUID (data->druid));
- /* start page, explanations */
- widget = glade_xml_get_widget (xml, "start_page");
- gnome_druid_page_edge_set_text (GNOME_DRUID_PAGE_EDGE (widget),
- gettext (encodings_doc_string));
- gnome_druid_page_edge_set_title (GNOME_DRUID_PAGE_EDGE (widget),
- gettext (encodings_doc_page_title));
- gtk_widget_show (widget);
+ /* start page, explanations */
+ widget = glade_xml_get_widget (xml, "start_page");
+ gnome_druid_page_edge_set_text (GNOME_DRUID_PAGE_EDGE (widget),
+ gettext (encodings_doc_string));
+ gnome_druid_page_edge_set_title (GNOME_DRUID_PAGE_EDGE (widget),
+ gettext (encodings_doc_page_title));
+ gtk_widget_show (widget);
- gtk_widget_hide (glade_xml_get_widget (xml, "encodings_doc_page"));
- gtk_widget_hide (glade_xml_get_widget (xml, "load_file_page"));
- gtk_widget_hide (glade_xml_get_widget (xml, "loaded_files_page"));
- gtk_widget_hide (glade_xml_get_widget (xml, "merge_page"));
+ gtk_widget_hide (glade_xml_get_widget (xml, "encodings_doc_page"));
+ gtk_widget_hide (glade_xml_get_widget (xml, "load_file_page"));
+ gtk_widget_hide (glade_xml_get_widget (xml, "loaded_files_page"));
+ gtk_widget_hide (glade_xml_get_widget (xml, "merge_page"));
- /* finish page */
- widget = glade_xml_get_widget (xml, "end_page");
- gnome_druid_page_edge_set_text (GNOME_DRUID_PAGE_EDGE (widget),
- gettext (finish_convert_string));
- gtk_widget_show (widget);
+ /* finish page */
+ widget = glade_xml_get_widget (xml, "end_page");
+ gnome_druid_page_edge_set_text (GNOME_DRUID_PAGE_EDGE (widget),
+ gettext (finish_convert_string));
+ gtk_widget_show (widget);
- gxi_update_default_enc_combo (data);
- gxi_update_string_box (data);
+ gxi_update_default_enc_combo (data);
+ gxi_update_string_box (data);
- success =
- gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_APPLY &&
- gxi_save_file (data);
+ success =
+ gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_APPLY &&
+ gxi_save_file (data);
- gtk_widget_destroy (data->dialog);
- }
+ gtk_widget_destroy (data->dialog);
+ }
- return success;
+ return success;
}
/* this is NOT fully implemented */
void
gnc_xml_merge_files (void)
{
- GncXmlImportData *data;
- GtkWidget *dialog, *widget, *box;
- GladeXML *xml;
+ GncXmlImportData *data;
+ GtkWidget *dialog, *widget, *box;
+ GladeXML *xml;
- data = g_new0 (GncXmlImportData, 1);
- data->import_type = XML_MERGE_FILES;
+ data = g_new0 (GncXmlImportData, 1);
+ data->import_type = XML_MERGE_FILES;
- /* common druid initialization */
- xml = gnc_glade_xml_new (XML_GLADE_FILE, "GnuCash XML Import Dialog");
+ /* common druid initialization */
+ xml = gnc_glade_xml_new (XML_GLADE_FILE, "GnuCash XML Import Dialog");
- dialog = glade_xml_get_widget (xml, "GnuCash XML Import Dialog");
- gtk_widget_hide ((GTK_DIALOG (dialog))->action_area);
- data->dialog = dialog;
- g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
- glade_xml_signal_autoconnect_full (xml, gnc_glade_autoconnect_full_func,
- data);
+ dialog = glade_xml_get_widget (xml, "GnuCash XML Import Dialog");
+ gtk_widget_hide ((GTK_DIALOG (dialog))->action_area);
+ data->dialog = dialog;
+ g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
+ glade_xml_signal_autoconnect_full (xml, gnc_glade_autoconnect_full_func,
+ data);
- data->druid = glade_xml_get_widget (xml, "gnc_xml_import_druid");
- gnc_druid_set_colors (GNOME_DRUID (data->druid));
+ data->druid = glade_xml_get_widget (xml, "gnc_xml_import_druid");
+ gnc_druid_set_colors (GNOME_DRUID (data->druid));
- /* encodings explanations */
- widget = glade_xml_get_widget (xml, "encodings_doc_label");
- gtk_label_set_text (GTK_LABEL (widget), gettext (encodings_doc_string));
- widget = glade_xml_get_widget (xml, "encodings_doc_page");
- gnome_druid_page_standard_set_title (GNOME_DRUID_PAGE_STANDARD (widget),
- gettext (encodings_doc_page_title));
+ /* encodings explanations */
+ widget = glade_xml_get_widget (xml, "encodings_doc_label");
+ gtk_label_set_text (GTK_LABEL (widget), gettext (encodings_doc_string));
+ widget = glade_xml_get_widget (xml, "encodings_doc_page");
+ gnome_druid_page_standard_set_title (GNOME_DRUID_PAGE_STANDARD (widget),
+ gettext (encodings_doc_page_title));
- gtk_widget_show (glade_xml_get_widget (xml, "start_page"));
- gtk_widget_show (glade_xml_get_widget (xml, "end_page"));
+ gtk_widget_show (glade_xml_get_widget (xml, "start_page"));
+ gtk_widget_show (glade_xml_get_widget (xml, "end_page"));
- /* file chooser */
- data->file_chooser = gtk_file_chooser_widget_new (
- GTK_FILE_CHOOSER_ACTION_OPEN);
- box = glade_xml_get_widget (xml, "file_chooser_box");
- gtk_box_pack_start (GTK_BOX (box), data->file_chooser, TRUE, TRUE, 0);
- g_signal_connect (G_OBJECT (data->file_chooser), "file-activated",
- G_CALLBACK (gxi_chooser_file_activated_cb), data);
- gtk_widget_show (data->file_chooser);
+ /* file chooser */
+ data->file_chooser = gtk_file_chooser_widget_new (
+ GTK_FILE_CHOOSER_ACTION_OPEN);
+ box = glade_xml_get_widget (xml, "file_chooser_box");
+ gtk_box_pack_start (GTK_BOX (box), data->file_chooser, TRUE, TRUE, 0);
+ g_signal_connect (G_OBJECT (data->file_chooser), "file-activated",
+ G_CALLBACK (gxi_chooser_file_activated_cb), data);
+ gtk_widget_show (data->file_chooser);
- /* selected file list */
- data->file_list_store = gtk_list_store_new (FILE_NUM_COLS,
- G_TYPE_STRING, G_TYPE_POINTER);
- data->file_list_view = GTK_TREE_VIEW (glade_xml_get_widget (
- xml, "selected_file_list"));
- gtk_tree_view_insert_column_with_attributes (
- data->file_list_view, -1, NULL,
- gtk_cell_renderer_text_new (), "text", FILE_COL_NAME, NULL);
- gtk_tree_view_set_model (data->file_list_view,
- GTK_TREE_MODEL (data->file_list_store));
- g_object_unref (data->file_list_store);
+ /* selected file list */
+ data->file_list_store = gtk_list_store_new (FILE_NUM_COLS,
+ G_TYPE_STRING, G_TYPE_POINTER);
+ data->file_list_view = GTK_TREE_VIEW (glade_xml_get_widget (
+ xml, "selected_file_list"));
+ gtk_tree_view_insert_column_with_attributes (
+ data->file_list_view, -1, NULL,
+ gtk_cell_renderer_text_new (), "text", FILE_COL_NAME, NULL);
+ gtk_tree_view_set_model (data->file_list_view,
+ GTK_TREE_MODEL (data->file_list_store));
+ g_object_unref (data->file_list_store);
- gtk_widget_show (dialog);
+ gtk_widget_show (dialog);
}
static void
gxi_data_destroy (GncXmlImportData *data)
{
- if (!data)
- return;
+ if (!data)
+ return;
- if (data->dialog)
- gtk_widget_hide (data->dialog);
+ if (data->dialog)
+ gtk_widget_hide (data->dialog);
- if (data->file_chooser) {
- gtk_widget_destroy (data->file_chooser);
- data->file_chooser = NULL;
- }
+ if (data->file_chooser)
+ {
+ gtk_widget_destroy (data->file_chooser);
+ data->file_chooser = NULL;
+ }
- if (data->filename) {
- g_free (data->filename);
- data->filename = NULL;
- }
+ if (data->filename)
+ {
+ g_free (data->filename);
+ data->filename = NULL;
+ }
- gxi_session_destroy (data);
- gxi_ambiguous_info_destroy (data);
+ gxi_session_destroy (data);
+ gxi_ambiguous_info_destroy (data);
- if (data->choices) {
- g_hash_table_destroy (data->choices);
- data->choices = NULL;
- }
+ if (data->choices)
+ {
+ g_hash_table_destroy (data->choices);
+ data->choices = NULL;
+ }
- if (data->string_box) {
- gtk_widget_destroy (data->string_box);
- data->string_box = NULL;
- }
+ if (data->string_box)
+ {
+ gtk_widget_destroy (data->string_box);
+ data->string_box = NULL;
+ }
- if (data->dialog) {
- gtk_widget_destroy (data->dialog);
- data->dialog = NULL;
- }
+ if (data->dialog)
+ {
+ gtk_widget_destroy (data->dialog);
+ data->dialog = NULL;
+ }
- g_free (data);
+ g_free (data);
}
static void
-conv_free (conv_type *conv) {
- if (conv) {
- g_free(conv->utf8_string);
- g_free(conv);
- }
+conv_free (conv_type *conv)
+{
+ if (conv)
+ {
+ g_free(conv->utf8_string);
+ g_free(conv);
+ }
}
static conv_type *
-conv_copy (const conv_type *conv) {
- conv_type *new = NULL;
- if (conv) {
- new = g_new(conv_type, 1);
- new->encoding = conv->encoding;
- new->utf8_string = g_strdup (conv->utf8_string);
- }
- return new;
+conv_copy (const conv_type *conv)
+{
+ conv_type *new = NULL;
+ if (conv)
+ {
+ new = g_new(conv_type, 1);
+ new->encoding = conv->encoding;
+ new->utf8_string = g_strdup (conv->utf8_string);
+ }
+ return new;
}
static gint
conv_enc_cmp (const conv_type *conv, const GQuark *enc)
{
- return conv->encoding - *enc;
+ return conv->encoding - *enc;
}
static const gchar *
get_decoded_string (const ambiguous_type *amb, const GQuark enc)
{
- GList *found = g_list_find_custom (amb->conv_list, &enc,
- (GCompareFunc) conv_enc_cmp);
+ GList *found = g_list_find_custom (amb->conv_list, &enc,
+ (GCompareFunc) conv_enc_cmp);
- if (found) {
- return ((conv_type*) found->data)->utf8_string;
- } else {
- return NULL;
- }
+ if (found)
+ {
+ return ((conv_type*) found->data)->utf8_string;
+ }
+ else
+ {
+ return NULL;
+ }
}
static gint
ambiguous_cmp (const ambiguous_type *a, const ambiguous_type *b,
GncXmlImportData *data)
{
- const gchar *string_a = get_decoded_string (a, data->default_encoding);
- const gchar *string_b = get_decoded_string (b, data->default_encoding);
+ const gchar *string_a = get_decoded_string (a, data->default_encoding);
+ const gchar *string_b = get_decoded_string (b, data->default_encoding);
- if (string_a) {
- if (string_b) {
- /* both look good, usual compare */
- return strcmp (string_a, string_b);
- } else {
- /* a look good, b not. put b to the top */
- return 1;
+ if (string_a)
+ {
+ if (string_b)
+ {
+ /* both look good, usual compare */
+ return strcmp (string_a, string_b);
+ }
+ else
+ {
+ /* a look good, b not. put b to the top */
+ return 1;
+ }
}
- } else {
- if (string_b) {
- /* b looks good, a not. put a to the top */
- return -1;
- } else {
- /* both look suboptimal, see whether one has a decision attached to it */
- conv_type *conv_a = g_hash_table_lookup (data->choices, a->byte_sequence);
- conv_type *conv_b = g_hash_table_lookup (data->choices, b->byte_sequence);
- if (conv_a && !conv_b) return 1;
- if (conv_b && !conv_a) return -1;
- return strcmp (a->byte_sequence, b->byte_sequence);
+ else
+ {
+ if (string_b)
+ {
+ /* b looks good, a not. put a to the top */
+ return -1;
+ }
+ else
+ {
+ /* both look suboptimal, see whether one has a decision attached to it */
+ conv_type *conv_a = g_hash_table_lookup (data->choices, a->byte_sequence);
+ conv_type *conv_b = g_hash_table_lookup (data->choices, b->byte_sequence);
+ if (conv_a && !conv_b) return 1;
+ if (conv_b && !conv_a) return -1;
+ return strcmp (a->byte_sequence, b->byte_sequence);
+ }
}
- }
}
static void
ambiguous_list_insert (gchar *byte_sequence, GList *conv_list,
GncXmlImportData *data)
{
- GList *iter;
+ GList *iter;
- ambiguous_type *amb = g_new (ambiguous_type, 1);
- amb->byte_sequence = g_strdup (byte_sequence);
- amb->conv_list = NULL;
- for (iter = g_list_last (conv_list); iter; iter = iter->prev)
- amb->conv_list = g_list_prepend (amb->conv_list, conv_copy (iter->data));
+ ambiguous_type *amb = g_new (ambiguous_type, 1);
+ amb->byte_sequence = g_strdup (byte_sequence);
+ amb->conv_list = NULL;
+ for (iter = g_list_last (conv_list); iter; iter = iter->prev)
+ amb->conv_list = g_list_prepend (amb->conv_list, conv_copy (iter->data));
- data->ambiguous_list = g_list_prepend (data->ambiguous_list, amb);
+ data->ambiguous_list = g_list_prepend (data->ambiguous_list, amb);
}
static void
-ambiguous_free (ambiguous_type *amb) {
- if (amb) {
- g_free (amb->byte_sequence);
- g_list_foreach (amb->conv_list, (GFunc) conv_free, NULL);
- g_list_free (amb->conv_list);
- g_free (amb);
- }
+ambiguous_free (ambiguous_type *amb)
+{
+ if (amb)
+ {
+ g_free (amb->byte_sequence);
+ g_list_foreach (amb->conv_list, (GFunc) conv_free, NULL);
+ g_list_free (amb->conv_list);
+ g_free (amb);
+ }
}
static void
gxi_ambiguous_info_destroy (GncXmlImportData *data)
{
- if (data->unique) {
- g_hash_table_destroy (data->unique);
- data->unique = NULL;
- }
- if (data->ambiguous_ht) {
- g_hash_table_destroy (data->ambiguous_ht);
- data->unique = NULL;
- }
- if (data->ambiguous_list) {
- g_list_foreach (data->ambiguous_list, (GFunc) ambiguous_free, NULL);
- g_list_free (data->ambiguous_list);
- data->ambiguous_list = NULL;
- }
+ if (data->unique)
+ {
+ g_hash_table_destroy (data->unique);
+ data->unique = NULL;
+ }
+ if (data->ambiguous_ht)
+ {
+ g_hash_table_destroy (data->ambiguous_ht);
+ data->unique = NULL;
+ }
+ if (data->ambiguous_list)
+ {
+ g_list_foreach (data->ambiguous_list, (GFunc) ambiguous_free, NULL);
+ g_list_free (data->ambiguous_list);
+ data->ambiguous_list = NULL;
+ }
}
static void
gxi_session_destroy (GncXmlImportData *data)
{
- if (data->session) {
- xaccLogDisable ();
- qof_session_destroy (data->session);
- xaccLogEnable ();
- data->session = NULL;
- }
+ if (data->session)
+ {
+ xaccLogDisable ();
+ qof_session_destroy (data->session);
+ xaccLogEnable ();
+ data->session = NULL;
+ }
}
static void
gxi_check_file (GncXmlImportData *data)
{
- if (!data->encodings) {
- gboolean is_utf8;
- const gchar *locale_enc;
- gchar *enc_string, **enc_array, **enc_cursor;
- gpointer enc_ptr;
- GIConv iconv;
+ if (!data->encodings)
+ {
+ gboolean is_utf8;
+ const gchar *locale_enc;
+ gchar *enc_string, **enc_array, **enc_cursor;
+ gpointer enc_ptr;
+ GIConv iconv;
- /* first locale encoding */
- is_utf8 = g_get_charset (&locale_enc);
- enc_string = g_ascii_strup (locale_enc, -1);
- enc_ptr = GUINT_TO_POINTER (g_quark_from_string (enc_string));
- g_free (enc_string);
- data->encodings = g_list_append (NULL, enc_ptr);
+ /* first locale encoding */
+ is_utf8 = g_get_charset (&locale_enc);
+ enc_string = g_ascii_strup (locale_enc, -1);
+ enc_ptr = GUINT_TO_POINTER (g_quark_from_string (enc_string));
+ g_free (enc_string);
+ data->encodings = g_list_append (NULL, enc_ptr);
- /* add utf-8 */
- if (!is_utf8) {
- enc_ptr = GUINT_TO_POINTER (g_quark_from_string ("UTF-8"));
- data->encodings = g_list_append (data->encodings, enc_ptr);
- }
+ /* add utf-8 */
+ if (!is_utf8)
+ {
+ enc_ptr = GUINT_TO_POINTER (g_quark_from_string ("UTF-8"));
+ data->encodings = g_list_append (data->encodings, enc_ptr);
+ }
- /* Translators: Please insert encodings here that are typically used in your
- * locale, separated by spaces. No need for ASCII or UTF-8, check `locale -m`
- * for assistance with spelling. */
- enc_array = g_strsplit (_("ISO-8859-1 KOI8-U"), " ", 0);
+ /* Translators: Please insert encodings here that are typically used in your
+ * locale, separated by spaces. No need for ASCII or UTF-8, check `locale -m`
+ * for assistance with spelling. */
+ enc_array = g_strsplit (_("ISO-8859-1 KOI8-U"), " ", 0);
- /* loop through typical encodings */
- for (enc_cursor = enc_array; *enc_cursor; enc_cursor++) {
- if (!**enc_cursor) continue;
- enc_string = g_ascii_strup (*enc_cursor, -1);
- enc_ptr = GUINT_TO_POINTER (g_quark_from_string (enc_string));
+ /* loop through typical encodings */
+ for (enc_cursor = enc_array; *enc_cursor; enc_cursor++)
+ {
+ if (!**enc_cursor) continue;
+ enc_string = g_ascii_strup (*enc_cursor, -1);
+ enc_ptr = GUINT_TO_POINTER (g_quark_from_string (enc_string));
- if (!g_list_find (data->encodings, enc_ptr)) {
- /* test whether we like this encoding */
- iconv = g_iconv_open ("UTF-8", enc_string);
- if (iconv != (GIConv) -1)
- /* we like it */
- data->encodings = g_list_append (data->encodings, enc_ptr);
- g_iconv_close (iconv);
- }
- g_free (enc_string);
+ if (!g_list_find (data->encodings, enc_ptr))
+ {
+ /* test whether we like this encoding */
+ iconv = g_iconv_open ("UTF-8", enc_string);
+ if (iconv != (GIConv) - 1)
+ /* we like it */
+ data->encodings = g_list_append (data->encodings, enc_ptr);
+ g_iconv_close (iconv);
+ }
+ g_free (enc_string);
+ }
+ g_strfreev (enc_array);
}
- g_strfreev (enc_array);
- }
- if (!data->default_encoding) {
- /* choose top one */
- data->default_encoding = GPOINTER_TO_UINT (data->encodings->data);
- }
+ if (!data->default_encoding)
+ {
+ /* choose top one */
+ data->default_encoding = GPOINTER_TO_UINT (data->encodings->data);
+ }
- if (!data->choices) {
- data->choices = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, (GDestroyNotify) conv_free);
- }
+ if (!data->choices)
+ {
+ data->choices = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, (GDestroyNotify) conv_free);
+ }
- gxi_ambiguous_info_destroy (data);
+ gxi_ambiguous_info_destroy (data);
- /* analyze file */
- data->n_impossible = gnc_xml2_find_ambiguous (
- data->filename, data->encodings, &data->unique, &data->ambiguous_ht, NULL);
+ /* analyze file */
+ data->n_impossible = gnc_xml2_find_ambiguous (
+ data->filename, data->encodings, &data->unique, &data->ambiguous_ht, NULL);
- if (data->n_impossible != -1) {
- /* sort ambiguous words */
- g_hash_table_foreach (data->ambiguous_ht, (GHFunc)ambiguous_list_insert,
- data);
- gxi_sort_ambiguous_list (data);
- }
+ if (data->n_impossible != -1)
+ {
+ /* sort ambiguous words */
+ g_hash_table_foreach (data->ambiguous_ht, (GHFunc)ambiguous_list_insert,
+ data);
+ gxi_sort_ambiguous_list (data);
+ }
}
static void
gxi_sort_ambiguous_list (GncXmlImportData *data)
{
- data->ambiguous_list = g_list_sort_with_data (
- data->ambiguous_list, (GCompareDataFunc) ambiguous_cmp, data);
+ data->ambiguous_list = g_list_sort_with_data (
+ data->ambiguous_list, (GCompareDataFunc) ambiguous_cmp, data);
}
static void
subst_insert_amb (gchar *byte_sequence, GList *conv_list, GncXmlImportData *data)
{
- conv_type *choice;
- GList *default_conv;
- gchar *default_utf8;
+ conv_type *choice;
+ GList *default_conv;
+ gchar *default_utf8;
- if (!data->subst)
- return;
- choice = g_hash_table_lookup (data->choices, byte_sequence);
- if (choice) {
- /* user choice */
- g_hash_table_insert (data->subst, g_strdup (byte_sequence),
- g_strdup (choice->utf8_string));
- } else {
- default_conv = g_list_find_custom (conv_list, &data->default_encoding,
- (GCompareFunc) conv_enc_cmp);
- if (default_conv) {
- /* default conversion */
- default_utf8 = ((conv_type*) default_conv->data)->utf8_string;
- g_hash_table_insert (data->subst, g_strdup (byte_sequence),
- g_strdup (default_utf8));
- } else {
- /* no conversion avaiable, stop filling of subst */
- g_hash_table_destroy (data->subst);
- data->subst = NULL;
+ if (!data->subst)
+ return;
+ choice = g_hash_table_lookup (data->choices, byte_sequence);
+ if (choice)
+ {
+ /* user choice */
+ g_hash_table_insert (data->subst, g_strdup (byte_sequence),
+ g_strdup (choice->utf8_string));
}
- }
+ else
+ {
+ default_conv = g_list_find_custom (conv_list, &data->default_encoding,
+ (GCompareFunc) conv_enc_cmp);
+ if (default_conv)
+ {
+ /* default conversion */
+ default_utf8 = ((conv_type*) default_conv->data)->utf8_string;
+ g_hash_table_insert (data->subst, g_strdup (byte_sequence),
+ g_strdup (default_utf8));
+ }
+ else
+ {
+ /* no conversion avaiable, stop filling of subst */
+ g_hash_table_destroy (data->subst);
+ data->subst = NULL;
+ }
+ }
}
static void
subst_insert_unique (gchar *byte_sequence, conv_type *conv,
GncXmlImportData *data)
{
- if (!data->subst)
- return;
- g_hash_table_insert (data->subst, g_strdup (byte_sequence),
- g_strdup (conv->utf8_string));
+ if (!data->subst)
+ return;
+ g_hash_table_insert (data->subst, g_strdup (byte_sequence),
+ g_strdup (conv->utf8_string));
}
static gboolean
gxi_parse_file (GncXmlImportData *data)
{
- QofSession *session=NULL;
- QofBook *book;
- FileBackend *backend;
- QofBackendError io_err = ERR_BACKEND_NO_ERR;
- gchar *logpath, *message=NULL;
- gboolean success=FALSE;
+ QofSession *session = NULL;
+ QofBook *book;
+ FileBackend *backend;
+ QofBackendError io_err = ERR_BACKEND_NO_ERR;
+ gchar *logpath, *message = NULL;
+ gboolean success = FALSE;
- if (data->n_unassigned || data->n_impossible)
- goto cleanup_parse_file;
+ if (data->n_unassigned || data->n_impossible)
+ goto cleanup_parse_file;
- /* fill subst hash table with byte sequence substitutions */
- data->subst = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
- g_hash_table_foreach (data->ambiguous_ht, (GHFunc) subst_insert_amb, data);
- g_hash_table_foreach (data->unique, (GHFunc) subst_insert_unique, data);
+ /* fill subst hash table with byte sequence substitutions */
+ data->subst = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ g_hash_table_foreach (data->ambiguous_ht, (GHFunc) subst_insert_amb, data);
+ g_hash_table_foreach (data->unique, (GHFunc) subst_insert_unique, data);
- if (!data->subst)
- goto cleanup_parse_file;
+ if (!data->subst)
+ goto cleanup_parse_file;
- /* create a temporary QofSession */
- gxi_session_destroy (data);
- session = qof_session_new ();
- data->session = session;
- qof_session_begin (session, data->filename, TRUE, FALSE);
- io_err = qof_session_get_error (session);
- if (io_err != ERR_BACKEND_NO_ERR) {
- message = _("The file could not be reopened.");
- goto cleanup_parse_file;
- }
+ /* create a temporary QofSession */
+ gxi_session_destroy (data);
+ session = qof_session_new ();
+ data->session = session;
+ qof_session_begin (session, data->filename, TRUE, FALSE);
+ io_err = qof_session_get_error (session);
+ if (io_err != ERR_BACKEND_NO_ERR)
+ {
+ message = _("The file could not be reopened.");
+ goto cleanup_parse_file;
+ }
- logpath = xaccResolveFilePath (data->filename);
- xaccLogSetBaseName (logpath);
- xaccLogDisable ();
- gxi_update_progress_bar (_("Reading file..."), 0.0);
- qof_session_load (session, gxi_update_progress_bar);
- gxi_update_progress_bar (NULL, -1.0);
- xaccLogEnable ();
+ logpath = xaccResolveFilePath (data->filename);
+ xaccLogSetBaseName (logpath);
+ xaccLogDisable ();
+ gxi_update_progress_bar (_("Reading file..."), 0.0);
+ qof_session_load (session, gxi_update_progress_bar);
+ gxi_update_progress_bar (NULL, -1.0);
+ xaccLogEnable ();
- io_err = qof_session_get_error (session);
- if (io_err == ERR_BACKEND_NO_ERR) {
- /* loaded sucessfully now. strange, but ok */
- success = TRUE;
- goto cleanup_parse_file;
- } else if (io_err != ERR_FILEIO_NO_ENCODING) {
- /* another error, cannot handle this here */
- message = _("The file could not be reopened.");
- goto cleanup_parse_file;
- }
+ io_err = qof_session_get_error (session);
+ if (io_err == ERR_BACKEND_NO_ERR)
+ {
+ /* loaded sucessfully now. strange, but ok */
+ success = TRUE;
+ goto cleanup_parse_file;
+ }
+ else if (io_err != ERR_FILEIO_NO_ENCODING)
+ {
+ /* another error, cannot handle this here */
+ message = _("The file could not be reopened.");
+ goto cleanup_parse_file;
+ }
- qof_session_pop_error (session);
- book = qof_session_get_book (session);
- backend = (FileBackend*) qof_book_get_backend (book);
+ qof_session_pop_error (session);
+ book = qof_session_get_book (session);
+ backend = (FileBackend*) qof_book_get_backend (book);
- gxi_update_progress_bar (_("Parsing file..."), 0.0);
- success = gnc_xml2_parse_with_subst (backend, book, data->subst);
- gxi_update_progress_bar (NULL, -1.0);
+ gxi_update_progress_bar (_("Parsing file..."), 0.0);
+ success = gnc_xml2_parse_with_subst (backend, book, data->subst);
+ gxi_update_progress_bar (NULL, -1.0);
- if (success)
- data->session = session;
- else
- message = _("There was an error parsing the file.");
+ if (success)
+ data->session = session;
+ else
+ message = _("There was an error parsing the file.");
- cleanup_parse_file:
+cleanup_parse_file:
- if (data->subst) {
- g_hash_table_destroy (data->subst);
- data->subst = NULL;
- }
- if (message) {
- gnc_error_dialog (data->dialog, "%s", message);
- }
- if (!success)
- gxi_session_destroy (data);
+ if (data->subst)
+ {
+ g_hash_table_destroy (data->subst);
+ data->subst = NULL;
+ }
+ if (message)
+ {
+ gnc_error_dialog (data->dialog, "%s", message);
+ }
+ if (!success)
+ gxi_session_destroy (data);
- return success;
+ return success;
}
static gboolean
gxi_save_file (GncXmlImportData *data)
{
- QofBackendError io_err;
- g_return_val_if_fail (data && data->session, FALSE);
+ QofBackendError io_err;
+ g_return_val_if_fail (data && data->session, FALSE);
- gxi_update_progress_bar (_("Writing file..."), 0.0);
- qof_session_save (data->session, gxi_update_progress_bar);
- gxi_update_progress_bar (NULL, -1.0);
+ gxi_update_progress_bar (_("Writing file..."), 0.0);
+ qof_session_save (data->session, gxi_update_progress_bar);
+ gxi_update_progress_bar (NULL, -1.0);
- io_err = qof_session_get_error (data->session);
+ io_err = qof_session_get_error (data->session);
- if (io_err == ERR_BACKEND_NO_ERR) {
- return TRUE;
- } else {
- gxi_session_destroy (data);
- return FALSE;
- }
+ if (io_err == ERR_BACKEND_NO_ERR)
+ {
+ return TRUE;
+ }
+ else
+ {
+ gxi_session_destroy (data);
+ return FALSE;
+ }
}
static void
gxi_update_progress_bar (const gchar *message, double percentage)
{
- if (!progress_window) {
- progress_window = gtk_window_new (GTK_WINDOW_POPUP);
- progress_bar = GTK_PROGRESS_BAR (gtk_progress_bar_new ());
- gtk_container_set_border_width (GTK_CONTAINER (progress_window), 12);
- gtk_container_add (GTK_CONTAINER (progress_window),
- GTK_WIDGET (progress_bar));
- gtk_widget_show (GTK_WIDGET (progress_bar));
- }
+ if (!progress_window)
+ {
+ progress_window = gtk_window_new (GTK_WINDOW_POPUP);
+ progress_bar = GTK_PROGRESS_BAR (gtk_progress_bar_new ());
+ gtk_container_set_border_width (GTK_CONTAINER (progress_window), 12);
+ gtk_container_add (GTK_CONTAINER (progress_window),
+ GTK_WIDGET (progress_bar));
+ gtk_widget_show (GTK_WIDGET (progress_bar));
+ }
- if (percentage < 0) {
- gtk_progress_bar_set_text (progress_bar, NULL);
- gtk_progress_bar_set_fraction (progress_bar, 0.0);
- gtk_widget_hide (progress_window);
- } else {
- gtk_progress_bar_set_text (progress_bar, message);
- if (percentage <= 100)
- gtk_progress_bar_set_fraction (progress_bar, percentage/100);
+ if (percentage < 0)
+ {
+ gtk_progress_bar_set_text (progress_bar, NULL);
+ gtk_progress_bar_set_fraction (progress_bar, 0.0);
+ gtk_widget_hide (progress_window);
+ }
else
- gtk_progress_bar_pulse (progress_bar);
- gtk_widget_show (progress_window);
- }
+ {
+ gtk_progress_bar_set_text (progress_bar, message);
+ if (percentage <= 100)
+ gtk_progress_bar_set_fraction (progress_bar, percentage / 100);
+ else
+ gtk_progress_bar_pulse (progress_bar);
+ gtk_widget_show (progress_window);
+ }
}
static void
gxi_update_default_enc_combo (GncXmlImportData *data)
{
- GtkComboBox *combo;
- GList *enc_iter;
+ GtkComboBox *combo;
+ GList *enc_iter;
- /* add encodings list */
- if (data->default_encoding_combo)
- gtk_widget_destroy (data->default_encoding_combo);
- data->default_encoding_combo = gtk_combo_box_new_text ();
- combo = GTK_COMBO_BOX (data->default_encoding_combo);
+ /* add encodings list */
+ if (data->default_encoding_combo)
+ gtk_widget_destroy (data->default_encoding_combo);
+ data->default_encoding_combo = gtk_combo_box_new_text ();
+ combo = GTK_COMBO_BOX (data->default_encoding_combo);
- for (enc_iter = data->encodings; enc_iter; enc_iter = enc_iter->next) {
- gtk_combo_box_append_text (
- combo, g_quark_to_string (GPOINTER_TO_UINT (enc_iter->data)));
- }
- gtk_combo_box_set_active (
- combo,
- g_list_index (data->encodings, GUINT_TO_POINTER (data->default_encoding)));
+ for (enc_iter = data->encodings; enc_iter; enc_iter = enc_iter->next)
+ {
+ gtk_combo_box_append_text (
+ combo, g_quark_to_string (GPOINTER_TO_UINT (enc_iter->data)));
+ }
+ gtk_combo_box_set_active (
+ combo,
+ g_list_index (data->encodings, GUINT_TO_POINTER (data->default_encoding)));
- /* show encodings */
- g_signal_connect (G_OBJECT (combo), "changed",
- G_CALLBACK (gxi_default_enc_combo_changed_cb), data);
- gtk_container_add (GTK_CONTAINER (gnc_glade_lookup_widget (
- data->druid, "default_enc_box")),
- GTK_WIDGET (combo));
- gtk_widget_show (GTK_WIDGET (combo));
+ /* show encodings */
+ g_signal_connect (G_OBJECT (combo), "changed",
+ G_CALLBACK (gxi_default_enc_combo_changed_cb), data);
+ gtk_container_add (GTK_CONTAINER (gnc_glade_lookup_widget (
+ data->druid, "default_enc_box")),
+ GTK_WIDGET (combo));
+ gtk_widget_show (GTK_WIDGET (combo));
}
static void
gxi_update_summary_label (GncXmlImportData *data)
{
- gchar *string=NULL;
- gboolean show=FALSE;
+ gchar *string = NULL;
+ gboolean show = FALSE;
- if (data->n_unassigned) {
- if (data->n_impossible) {
- string = g_strdup_printf (
- _("There are %d unassigned and %d undecodable words. "
- "Please add encodings."),
- data->n_unassigned, data->n_impossible);
- show = TRUE;
- } else {
- string = g_strdup_printf (
- _("There are %d unassigned words. "
- "Please decide on them or add encodings."),
- data->n_unassigned);
- show = TRUE;
+ if (data->n_unassigned)
+ {
+ if (data->n_impossible)
+ {
+ string = g_strdup_printf (
+ _("There are %d unassigned and %d undecodable words. "
+ "Please add encodings."),
+ data->n_unassigned, data->n_impossible);
+ show = TRUE;
+ }
+ else
+ {
+ string = g_strdup_printf (
+ _("There are %d unassigned words. "
+ "Please decide on them or add encodings."),
+ data->n_unassigned);
+ show = TRUE;
+ }
}
- } else {
- if (data->n_impossible) {
- string = g_strdup_printf (
- _("There are %d undecodable words. "
- "Please add encodings."),
- data->n_impossible);
- show = TRUE;
- } else {
- show = FALSE;
+ else
+ {
+ if (data->n_impossible)
+ {
+ string = g_strdup_printf (
+ _("There are %d undecodable words. "
+ "Please add encodings."),
+ data->n_impossible);
+ show = TRUE;
+ }
+ else
+ {
+ show = FALSE;
+ }
}
- }
- if (show) {
- gtk_label_set_text (GTK_LABEL (data->summary_label), string);
- g_free (string);
- gtk_widget_show (data->summary_label);
- } else {
- gtk_widget_hide (data->summary_label);
- }
+ if (show)
+ {
+ gtk_label_set_text (GTK_LABEL (data->summary_label), string);
+ g_free (string);
+ gtk_widget_show (data->summary_label);
+ }
+ else
+ {
+ gtk_widget_hide (data->summary_label);
+ }
}
static void
gxi_update_string_box (GncXmlImportData *data)
{
- gchar *string;
- const gchar *utf8;
- GtkBox *vbox;
- GtkComboBox *combo;
- GtkListStore *store;
- GList *word_iter, *conv_iter;
- GtkCellRenderer *renderer;
- GtkTreeIter iter;
- GQuark chosen_encoding;
- GtkTreeIter *chosen_iter, *default_iter;
- ambiguous_type *amb;
- conv_type *conv;
+ gchar *string;
+ const gchar *utf8;
+ GtkBox *vbox;
+ GtkComboBox *combo;
+ GtkListStore *store;
+ GList *word_iter, *conv_iter;
+ GtkCellRenderer *renderer;
+ GtkTreeIter iter;
+ GQuark chosen_encoding;
+ GtkTreeIter *chosen_iter, *default_iter;
+ ambiguous_type *amb;
+ conv_type *conv;
- if (data->string_box)
- gtk_widget_destroy (data->string_box);
+ if (data->string_box)
+ gtk_widget_destroy (data->string_box);
- data->string_box = gtk_vbox_new (FALSE, 6);
- vbox = GTK_BOX (data->string_box);
+ data->string_box = gtk_vbox_new (FALSE, 6);
+ vbox = GTK_BOX (data->string_box);
- data->n_unassigned = 0;
+ data->n_unassigned = 0;
- /* loop through words */
- for (word_iter=data->ambiguous_list; word_iter; word_iter=word_iter->next) {
+ /* loop through words */
+ for (word_iter = data->ambiguous_list; word_iter; word_iter = word_iter->next)
+ {
- store = gtk_list_store_new (WORD_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER);
- combo = GTK_COMBO_BOX (gtk_combo_box_new_with_model (
- GTK_TREE_MODEL (store)));
- g_object_unref (store);
- renderer = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
- "text", WORD_COL_STRING, NULL);
+ store = gtk_list_store_new (WORD_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER);
+ combo = GTK_COMBO_BOX (gtk_combo_box_new_with_model (
+ GTK_TREE_MODEL (store)));
+ g_object_unref (store);
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
+ "text", WORD_COL_STRING, NULL);
- /* add default string, if possible */
- amb = (ambiguous_type*) word_iter->data;
- utf8 = get_decoded_string (amb, data->default_encoding);
- default_iter = NULL;
- if (utf8) {
- string = g_strdup_printf ("%s (default)", utf8);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, WORD_COL_STRING, string,
- WORD_COL_ENCODING,
- GUINT_TO_POINTER (data->default_encoding), -1);
- g_free (string);
- default_iter = gtk_tree_iter_copy (&iter);
- }
+ /* add default string, if possible */
+ amb = (ambiguous_type*) word_iter->data;
+ utf8 = get_decoded_string (amb, data->default_encoding);
+ default_iter = NULL;
+ if (utf8)
+ {
+ string = g_strdup_printf ("%s (default)", utf8);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, WORD_COL_STRING, string,
+ WORD_COL_ENCODING,
+ GUINT_TO_POINTER (data->default_encoding), -1);
+ g_free (string);
+ default_iter = gtk_tree_iter_copy (&iter);
+ }
- /* user has selected this previously */
- conv = (conv_type*) g_hash_table_lookup (data->choices, amb->byte_sequence);
- chosen_encoding = (conv) ? conv->encoding : 0;
- chosen_iter = NULL;
+ /* user has selected this previously */
+ conv = (conv_type*) g_hash_table_lookup (data->choices, amb->byte_sequence);
+ chosen_encoding = (conv) ? conv->encoding : 0;
+ chosen_iter = NULL;
- /* loop through conversions */
- for (conv_iter = amb->conv_list; conv_iter; conv_iter = conv_iter->next) {
- conv = (conv_type*) conv_iter->data;
- string = g_strdup_printf ("%s (%s)", conv->utf8_string,
- g_quark_to_string (conv->encoding));
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, WORD_COL_STRING, string,
- WORD_COL_ENCODING,
- GUINT_TO_POINTER (conv->encoding), -1);
- g_free (string);
+ /* loop through conversions */
+ for (conv_iter = amb->conv_list; conv_iter; conv_iter = conv_iter->next)
+ {
+ conv = (conv_type*) conv_iter->data;
+ string = g_strdup_printf ("%s (%s)", conv->utf8_string,
+ g_quark_to_string (conv->encoding));
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, WORD_COL_STRING, string,
+ WORD_COL_ENCODING,
+ GUINT_TO_POINTER (conv->encoding), -1);
+ g_free (string);
- if (chosen_encoding && conv->encoding == chosen_encoding) {
- chosen_iter = gtk_tree_iter_copy (&iter);
- }
- } /* next conversion */
+ if (chosen_encoding && conv->encoding == chosen_encoding)
+ {
+ chosen_iter = gtk_tree_iter_copy (&iter);
+ }
+ } /* next conversion */
- if (chosen_iter) {
- /* select previous selection again, are not we cute */
- gtk_combo_box_set_active_iter (combo, chosen_iter);
- gtk_tree_iter_free (chosen_iter);
- } else {
- if (default_iter) {
- /* select default entry */
- gtk_combo_box_set_active_iter (combo, default_iter);
- } else {
- /* count it */
- data->n_unassigned++;
- }
- }
+ if (chosen_iter)
+ {
+ /* select previous selection again, are not we cute */
+ gtk_combo_box_set_active_iter (combo, chosen_iter);
+ gtk_tree_iter_free (chosen_iter);
+ }
+ else
+ {
+ if (default_iter)
+ {
+ /* select default entry */
+ gtk_combo_box_set_active_iter (combo, default_iter);
+ }
+ else
+ {
+ /* count it */
+ data->n_unassigned++;
+ }
+ }
- /* wire up combo */
- g_object_set_data (G_OBJECT (combo), "ambiguous", amb);
- g_signal_connect (G_OBJECT (combo), "changed",
- G_CALLBACK (gxi_string_combo_changed_cb), data);
- gtk_box_pack_start (vbox, GTK_WIDGET (combo), FALSE, FALSE, 0);
- gtk_widget_show (GTK_WIDGET (combo));
+ /* wire up combo */
+ g_object_set_data (G_OBJECT (combo), "ambiguous", amb);
+ g_signal_connect (G_OBJECT (combo), "changed",
+ G_CALLBACK (gxi_string_combo_changed_cb), data);
+ gtk_box_pack_start (vbox, GTK_WIDGET (combo), FALSE, FALSE, 0);
+ gtk_widget_show (GTK_WIDGET (combo));
- } /* next word */
+ } /* next word */
- /* wire up whole string vbox */
- gtk_container_add (GTK_CONTAINER (gnc_glade_lookup_widget (
- data->druid, "string_box_container")),
- GTK_WIDGET (vbox));
- gtk_widget_show (GTK_WIDGET (vbox));
+ /* wire up whole string vbox */
+ gtk_container_add (GTK_CONTAINER (gnc_glade_lookup_widget (
+ data->druid, "string_box_container")),
+ GTK_WIDGET (vbox));
+ gtk_widget_show (GTK_WIDGET (vbox));
- /* update label now, n_unassigned is calculated */
- if (!data->summary_label)
- data->summary_label = gnc_glade_lookup_widget (data->druid,
- "impossible_label");
- gxi_update_summary_label (data);
+ /* update label now, n_unassigned is calculated */
+ if (!data->summary_label)
+ data->summary_label = gnc_glade_lookup_widget (data->druid,
+ "impossible_label");
+ gxi_update_summary_label (data);
}
static void
gxi_update_conversion_forward (GncXmlImportData *data)
{
- if (data->n_unassigned || data->n_impossible)
- gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid),
- TRUE, FALSE, TRUE, TRUE);
- else
- gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid),
- TRUE, TRUE, TRUE, TRUE);
+ if (data->n_unassigned || data->n_impossible)
+ gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid),
+ TRUE, FALSE, TRUE, TRUE);
+ else
+ gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid),
+ TRUE, TRUE, TRUE, TRUE);
}
static GnomeDruidPage *
gxi_get_named_page (GncXmlImportData *data, const gchar *name)
{
- return GNOME_DRUID_PAGE (gnc_glade_lookup_widget (data->dialog, name));
+ return GNOME_DRUID_PAGE (gnc_glade_lookup_widget (data->dialog, name));
}
void
gxi_dialog_destroy_cb (GtkObject *object, GncXmlImportData *data)
{
- data->dialog = NULL;
- gxi_data_destroy (data);
+ data->dialog = NULL;
+ gxi_data_destroy (data);
}
void
gxi_cancel_cb (GnomeDruid *druid, GncXmlImportData *data)
{
- if (data->import_type == XML_CONVERT_SINGLE_FILE) {
- gtk_dialog_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_CANCEL);
- } else {
- gtk_widget_destroy (data->dialog);
- }
+ if (data->import_type == XML_CONVERT_SINGLE_FILE)
+ {
+ gtk_dialog_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_CANCEL);
+ }
+ else
+ {
+ gtk_widget_destroy (data->dialog);
+ }
}
static gint
file_filename_cmp (const GncXmlImportFile *file, const gchar *filename)
{
- return strcmp (file->filename, filename);
+ return strcmp (file->filename, filename);
}
static void
gxi_load_file (GncXmlImportData *data)
{
- GncXmlImportFile *file;
- gchar *filename;
- GtkTreeIter iter;
+ GncXmlImportFile *file;
+ gchar *filename;
+ GtkTreeIter iter;
- g_return_if_fail (data != NULL);
+ g_return_if_fail (data != NULL);
- filename = gtk_file_chooser_get_filename (
- GTK_FILE_CHOOSER (data->file_chooser));
+ filename = gtk_file_chooser_get_filename (
+ GTK_FILE_CHOOSER (data->file_chooser));
- if (filename == NULL) {
- return;
- }
- if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR)) {
- g_free (filename);
- return;
- }
+ if (filename == NULL)
+ {
+ return;
+ }
+ if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR))
+ {
+ g_free (filename);
+ return;
+ }
- if (g_list_find_custom (data->files, filename,
- (GCompareFunc) file_filename_cmp)) {
- const gchar *message = _(
- "That GnuCash XML file is already loaded. Please select another file.");
- gnc_error_dialog (data->dialog, "%s", message);
- g_free (filename);
- return;
- }
+ if (g_list_find_custom (data->files, filename,
+ (GCompareFunc) file_filename_cmp))
+ {
+ const gchar *message = _(
+ "That GnuCash XML file is already loaded. Please select another file.");
+ gnc_error_dialog (data->dialog, "%s", message);
+ g_free (filename);
+ return;
+ }
- file = g_new0 (GncXmlImportFile, 1);
- file->filename = filename;
+ file = g_new0 (GncXmlImportFile, 1);
+ file->filename = filename;
- data->files = g_list_append (data->files, file);
+ data->files = g_list_append (data->files, file);
- gtk_list_store_append (data->file_list_store, &iter);
- gtk_list_store_set (data->file_list_store, &iter,
- FILE_COL_NAME, filename,
- FILE_COL_INFO, file,
- -1);
- file->file_list_iter = gtk_tree_iter_copy (&iter);
+ gtk_list_store_append (data->file_list_store, &iter);
+ gtk_list_store_set (data->file_list_store, &iter,
+ FILE_COL_NAME, filename,
+ FILE_COL_INFO, file,
+ -1);
+ file->file_list_iter = gtk_tree_iter_copy (&iter);
- gnome_druid_set_page (
- GNOME_DRUID (data->druid),
-/* gxi_get_named_page (data, "loaded_files_page")); */
- gxi_get_named_page (data, "encodings_doc_page"));
+ gnome_druid_set_page (
+ GNOME_DRUID (data->druid),
+ /* gxi_get_named_page (data, "loaded_files_page")); */
+ gxi_get_named_page (data, "encodings_doc_page"));
}
static void
gxi_unload_file (GncXmlImportData *data, GncXmlImportFile *file)
{
- g_return_if_fail (data != NULL && file != NULL);
+ g_return_if_fail (data != NULL && file != NULL);
- data->files = g_list_remove (data->files, file);
- gtk_list_store_remove (data->file_list_store, file->file_list_iter);
- gtk_tree_iter_free (file->file_list_iter);
+ data->files = g_list_remove (data->files, file);
+ gtk_list_store_remove (data->file_list_store, file->file_list_iter);
+ gtk_tree_iter_free (file->file_list_iter);
- g_free (file->filename);
+ g_free (file->filename);
}
void
gxi_chooser_file_activated_cb (GtkFileChooser *chooser, GncXmlImportData *data)
{
- gxi_load_file (data);
+ gxi_load_file (data);
}
gboolean
gxi_load_file_next_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data)
{
- GtkFileChooser *chooser = GTK_FILE_CHOOSER (data->file_chooser);
- gchar *filename = gtk_file_chooser_get_filename (chooser);
+ GtkFileChooser *chooser = GTK_FILE_CHOOSER (data->file_chooser);
+ gchar *filename = gtk_file_chooser_get_filename (chooser);
- if (filename != NULL) {
- if (g_file_test (filename, G_FILE_TEST_IS_DIR)) {
- gtk_file_chooser_set_current_folder (chooser, filename);
- } else {
- gxi_load_file (data);
+ if (filename != NULL)
+ {
+ if (g_file_test (filename, G_FILE_TEST_IS_DIR))
+ {
+ gtk_file_chooser_set_current_folder (chooser, filename);
+ }
+ else
+ {
+ gxi_load_file (data);
+ }
+ g_free (filename);
}
- g_free (filename);
- }
- return TRUE;
+ return TRUE;
}
void
gxi_conversion_prepare_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data)
{
- gxi_update_conversion_forward (data);
+ gxi_update_conversion_forward (data);
}
static void
gxi_default_enc_combo_changed_cb (GtkComboBox *combo, GncXmlImportData *data)
{
- GtkTreeIter iter;
- gchar *enc_string;
- GQuark curr_enc;
+ GtkTreeIter iter;
+ gchar *enc_string;
+ GQuark curr_enc;
- if (!gtk_combo_box_get_active_iter (combo, &iter))
- return;
+ if (!gtk_combo_box_get_active_iter (combo, &iter))
+ return;
- gtk_tree_model_get (gtk_combo_box_get_model (combo), &iter,
- 0, &enc_string, -1);
- curr_enc = g_quark_from_string (enc_string);
- g_free (enc_string);
+ gtk_tree_model_get (gtk_combo_box_get_model (combo), &iter,
+ 0, &enc_string, -1);
+ curr_enc = g_quark_from_string (enc_string);
+ g_free (enc_string);
- if (data->default_encoding == curr_enc)
- return;
- if (!g_list_find (data->encodings, GUINT_TO_POINTER (curr_enc))) {
- /* should not happen */
- PERR("invalid encoding selection");
- return;
- }
+ if (data->default_encoding == curr_enc)
+ return;
+ if (!g_list_find (data->encodings, GUINT_TO_POINTER (curr_enc)))
+ {
+ /* should not happen */
+ PERR("invalid encoding selection");
+ return;
+ }
- data->default_encoding = curr_enc;
- gxi_sort_ambiguous_list (data);
- gxi_update_string_box (data);
- gxi_update_conversion_forward (data);
+ data->default_encoding = curr_enc;
+ gxi_sort_ambiguous_list (data);
+ gxi_update_string_box (data);
+ gxi_update_conversion_forward (data);
}
static void
gxi_string_combo_changed_cb (GtkComboBox *combo, GncXmlImportData *data)
{
- GtkTreeIter iter;
- GList *found, *default_conv;
- gboolean is_active;
- ambiguous_type *amb;
- conv_type *prev_conv, *curr_conv=NULL;
- gpointer ptr;
- GQuark prev_enc, curr_enc;
+ GtkTreeIter iter;
+ GList *found, *default_conv;
+ gboolean is_active;
+ ambiguous_type *amb;
+ conv_type *prev_conv, *curr_conv = NULL;
+ gpointer ptr;
+ GQuark prev_enc, curr_enc;
- amb = (ambiguous_type*) g_object_get_data (G_OBJECT (combo), "ambiguous");
- prev_conv = (conv_type*) g_hash_table_lookup (data->choices,
- amb->byte_sequence);
- if (prev_conv)
- prev_enc = prev_conv->encoding;
+ amb = (ambiguous_type*) g_object_get_data (G_OBJECT (combo), "ambiguous");
+ prev_conv = (conv_type*) g_hash_table_lookup (data->choices,
+ amb->byte_sequence);
+ if (prev_conv)
+ prev_enc = prev_conv->encoding;
- default_conv = g_list_find_custom (amb->conv_list, &data->default_encoding,
- (GCompareFunc) conv_enc_cmp);
+ default_conv = g_list_find_custom (amb->conv_list, &data->default_encoding,
+ (GCompareFunc) conv_enc_cmp);
- is_active = gtk_combo_box_get_active_iter (combo, &iter);
- if (is_active) {
- gtk_tree_model_get (gtk_combo_box_get_model (combo), &iter,
- WORD_COL_ENCODING, &ptr, -1);
- curr_enc = GPOINTER_TO_UINT (ptr);
- found = g_list_find_custom (amb->conv_list, &curr_enc,
- (GCompareFunc) conv_enc_cmp);
- if (found) {
- curr_conv = (conv_type*) found->data;
- } else {
- /* should not happen */
- PERR("invalid string selection");
- is_active = FALSE;
+ is_active = gtk_combo_box_get_active_iter (combo, &iter);
+ if (is_active)
+ {
+ gtk_tree_model_get (gtk_combo_box_get_model (combo), &iter,
+ WORD_COL_ENCODING, &ptr, -1);
+ curr_enc = GPOINTER_TO_UINT (ptr);
+ found = g_list_find_custom (amb->conv_list, &curr_enc,
+ (GCompareFunc) conv_enc_cmp);
+ if (found)
+ {
+ curr_conv = (conv_type*) found->data;
+ }
+ else
+ {
+ /* should not happen */
+ PERR("invalid string selection");
+ is_active = FALSE;
+ }
}
- }
- if (is_active) {
- if (prev_conv) {
- if (curr_enc == prev_enc)
- return;
+ if (is_active)
+ {
+ if (prev_conv)
+ {
+ if (curr_enc == prev_enc)
+ return;
- /* remember new choice */
- g_hash_table_replace (data->choices, g_strdup (amb->byte_sequence),
- conv_copy (curr_conv));
+ /* remember new choice */
+ g_hash_table_replace (data->choices, g_strdup (amb->byte_sequence),
+ conv_copy (curr_conv));
- found = g_list_find_custom (amb->conv_list, &prev_enc,
- (GCompareFunc) conv_enc_cmp);
- if (!found && !default_conv) {
- /* user selected encoding for a byte sequence undecodable in the default
- encoding, for the first time. previous selection is invalid now */
- data->n_unassigned--;
- gxi_update_summary_label (data);
- gxi_update_conversion_forward (data);
- }
- }
- else {
- /* first choice ever */
- g_hash_table_insert (data->choices, g_strdup (amb->byte_sequence),
- conv_copy (curr_conv));
+ found = g_list_find_custom (amb->conv_list, &prev_enc,
+ (GCompareFunc) conv_enc_cmp);
+ if (!found && !default_conv)
+ {
+ /* user selected encoding for a byte sequence undecodable in the default
+ encoding, for the first time. previous selection is invalid now */
+ data->n_unassigned--;
+ gxi_update_summary_label (data);
+ gxi_update_conversion_forward (data);
+ }
+ }
+ else
+ {
+ /* first choice ever */
+ g_hash_table_insert (data->choices, g_strdup (amb->byte_sequence),
+ conv_copy (curr_conv));
- if (!default_conv) {
- /* user selected encoding for a byte sequence undecodable in the default
- encoding, for the first time. no previous selection */
- data->n_unassigned--;
- gxi_update_summary_label (data);
- gxi_update_conversion_forward (data);
- }
+ if (!default_conv)
+ {
+ /* user selected encoding for a byte sequence undecodable in the default
+ encoding, for the first time. no previous selection */
+ data->n_unassigned--;
+ gxi_update_summary_label (data);
+ gxi_update_conversion_forward (data);
+ }
+ }
}
- }
- else {
- if (prev_conv) {
- /* user decided not to decide... however he did that */
- g_hash_table_remove (data->choices, amb->byte_sequence);
+ else
+ {
+ if (prev_conv)
+ {
+ /* user decided not to decide... however he did that */
+ g_hash_table_remove (data->choices, amb->byte_sequence);
- if (!default_conv) {
- /* user deselected encoding for a byte sequence undecodable in the
- default encoding */
- data->n_unassigned++;
- gxi_update_summary_label (data);
- gxi_update_conversion_forward (data);
- }
+ if (!default_conv)
+ {
+ /* user deselected encoding for a byte sequence undecodable in the
+ default encoding */
+ data->n_unassigned++;
+ gxi_update_summary_label (data);
+ gxi_update_conversion_forward (data);
+ }
+ }
+ /* the missing else clause means pure ignorance of this dialog ;-) */
}
- /* the missing else clause means pure ignorance of this dialog ;-) */
- }
}
void
gxi_edit_encodings_clicked_cb (GtkButton *button, GncXmlImportData *data)
{
- GladeXML *xml;
- GtkWidget *dialog;
- GtkListStore *list_store;
- GtkTreeStore *tree_store;
- GtkTreeIter iter, parent, *parent_ptr;
- GList *encodings_bak, *enc_iter;
- const gchar *encoding;
- gchar *string;
- system_encoding_type *system_enc;
- gpointer enc_ptr;
- gint i, j;
+ GladeXML *xml;
+ GtkWidget *dialog;
+ GtkListStore *list_store;
+ GtkTreeStore *tree_store;
+ GtkTreeIter iter, parent, *parent_ptr;
+ GList *encodings_bak, *enc_iter;
+ const gchar *encoding;
+ gchar *string;
+ system_encoding_type *system_enc;
+ gpointer enc_ptr;
+ gint i, j;
- xml = gnc_glade_xml_new (XML_GLADE_FILE, "Encodings Dialog");
- dialog = glade_xml_get_widget (xml, "Encodings Dialog");
- data->encodings_dialog = dialog;
- g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
- glade_xml_signal_autoconnect_full (xml, gnc_glade_autoconnect_full_func, data);
- gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (data->dialog));
+ xml = gnc_glade_xml_new (XML_GLADE_FILE, "Encodings Dialog");
+ dialog = glade_xml_get_widget (xml, "Encodings Dialog");
+ data->encodings_dialog = dialog;
+ g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
+ glade_xml_signal_autoconnect_full (xml, gnc_glade_autoconnect_full_func, data);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (data->dialog));
- data->available_encs_view = GTK_TREE_VIEW (glade_xml_get_widget (
- xml, "available_encs_view"));
+ data->available_encs_view = GTK_TREE_VIEW (glade_xml_get_widget (
+ xml, "available_encs_view"));
- /* set up selected encodings list */
- data->selected_encs_view = GTK_TREE_VIEW (glade_xml_get_widget (
- xml, "selected_encs_view"));
- list_store = gtk_list_store_new (ENC_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER);
- for (enc_iter = data->encodings; enc_iter; enc_iter = enc_iter->next) {
- encoding = g_quark_to_string (GPOINTER_TO_UINT (enc_iter->data));
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter, ENC_COL_STRING, encoding,
- ENC_COL_QUARK, enc_iter->data, -1);
- }
- gtk_tree_view_insert_column_with_attributes (
- data->selected_encs_view, -1, NULL,
- gtk_cell_renderer_text_new (), "text", ENC_COL_STRING, NULL);
- gtk_tree_view_set_model (data->selected_encs_view,
- GTK_TREE_MODEL (list_store));
- g_object_unref (list_store);
+ /* set up selected encodings list */
+ data->selected_encs_view = GTK_TREE_VIEW (glade_xml_get_widget (
+ xml, "selected_encs_view"));
+ list_store = gtk_list_store_new (ENC_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER);
+ for (enc_iter = data->encodings; enc_iter; enc_iter = enc_iter->next)
+ {
+ encoding = g_quark_to_string (GPOINTER_TO_UINT (enc_iter->data));
+ gtk_list_store_append (list_store, &iter);
+ gtk_list_store_set (list_store, &iter, ENC_COL_STRING, encoding,
+ ENC_COL_QUARK, enc_iter->data, -1);
+ }
+ gtk_tree_view_insert_column_with_attributes (
+ data->selected_encs_view, -1, NULL,
+ gtk_cell_renderer_text_new (), "text", ENC_COL_STRING, NULL);
+ gtk_tree_view_set_model (data->selected_encs_view,
+ GTK_TREE_MODEL (list_store));
+ g_object_unref (list_store);
- /* set up system encodings list */
- data->available_encs_view = GTK_TREE_VIEW (glade_xml_get_widget (
- xml, "available_encs_view"));
- tree_store = gtk_tree_store_new (ENC_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER);
- for (i = 0, system_enc = system_encodings;
- i < n_system_encodings;
- i++, system_enc++) {
- if (i == 0) {
- /* first system encoding */
- parent_ptr = NULL;
- } else {
- parent_ptr = &iter;
- for (j = 0; j < system_enc->parent; j++)
- if (gtk_tree_model_iter_parent (GTK_TREE_MODEL (tree_store),
- &parent, &iter)) {
- /* go up one level */
- iter = parent;
- } else {
- /* no parent to toplevel element */
- parent_ptr = NULL;
+ /* set up system encodings list */
+ data->available_encs_view = GTK_TREE_VIEW (glade_xml_get_widget (
+ xml, "available_encs_view"));
+ tree_store = gtk_tree_store_new (ENC_NUM_COLS, G_TYPE_STRING, G_TYPE_POINTER);
+ for (i = 0, system_enc = system_encodings;
+ i < n_system_encodings;
+ i++, system_enc++)
+ {
+ if (i == 0)
+ {
+ /* first system encoding */
+ parent_ptr = NULL;
}
+ else
+ {
+ parent_ptr = &iter;
+ for (j = 0; j < system_enc->parent; j++)
+ if (gtk_tree_model_iter_parent (GTK_TREE_MODEL (tree_store),
+ &parent, &iter))
+ {
+ /* go up one level */
+ iter = parent;
+ }
+ else
+ {
+ /* no parent to toplevel element */
+ parent_ptr = NULL;
+ }
+ }
+ if (system_enc->encoding)
+ enc_ptr = GUINT_TO_POINTER (g_quark_from_string (system_enc->encoding));
+ else
+ enc_ptr = NULL;
+ string = gettext (system_enc->text);
+ gtk_tree_store_append (tree_store, &iter, parent_ptr);
+ gtk_tree_store_set (tree_store, &iter, ENC_COL_STRING,
+ gettext (system_enc->text), ENC_COL_QUARK, enc_ptr, -1);
}
- if (system_enc->encoding)
- enc_ptr = GUINT_TO_POINTER (g_quark_from_string (system_enc->encoding));
- else
- enc_ptr = NULL;
- string = gettext (system_enc->text);
- gtk_tree_store_append (tree_store, &iter, parent_ptr);
- gtk_tree_store_set (tree_store, &iter, ENC_COL_STRING,
- gettext (system_enc->text), ENC_COL_QUARK, enc_ptr, -1);
- }
- gtk_tree_view_insert_column_with_attributes (
- data->available_encs_view, -1, NULL,
- gtk_cell_renderer_text_new (), "text", ENC_COL_STRING, NULL);
- gtk_tree_view_set_model (data->available_encs_view,
- GTK_TREE_MODEL (tree_store));
- g_object_unref (tree_store);
+ gtk_tree_view_insert_column_with_attributes (
+ data->available_encs_view, -1, NULL,
+ gtk_cell_renderer_text_new (), "text", ENC_COL_STRING, NULL);
+ gtk_tree_view_set_model (data->available_encs_view,
+ GTK_TREE_MODEL (tree_store));
+ g_object_unref (tree_store);
- /* run the dialog */
- encodings_bak = g_list_copy (data->encodings);
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- g_list_free (encodings_bak);
- if (!g_list_find (data->encodings,
- GUINT_TO_POINTER (data->default_encoding))) {
- /* choose top level encoding then */
- data->default_encoding = GPOINTER_TO_UINT (data->encodings->data);
+ /* run the dialog */
+ encodings_bak = g_list_copy (data->encodings);
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
+ {
+ g_list_free (encodings_bak);
+ if (!g_list_find (data->encodings,
+ GUINT_TO_POINTER (data->default_encoding)))
+ {
+ /* choose top level encoding then */
+ data->default_encoding = GPOINTER_TO_UINT (data->encodings->data);
+ }
+
+ /* update whole page */
+ gxi_check_file (data);
+ gxi_update_default_enc_combo (data);
+ gxi_update_string_box (data);
+ gxi_update_conversion_forward (data);
}
+ else
+ {
+ g_list_free (data->encodings);
+ data->encodings = encodings_bak;
+ }
- /* update whole page */
- gxi_check_file (data);
- gxi_update_default_enc_combo (data);
- gxi_update_string_box (data);
- gxi_update_conversion_forward (data);
- }
- else {
- g_list_free (data->encodings);
- data->encodings = encodings_bak;
- }
-
- gtk_widget_destroy (dialog);
- data->encodings_dialog = NULL;
+ gtk_widget_destroy (dialog);
+ data->encodings_dialog = NULL;
}
static void
gxi_add_encoding (GncXmlImportData *data, gpointer encoding_ptr)
{
- GIConv iconv;
- const gchar *message;
- gchar *enc_string;
- GtkListStore *store;
- GtkTreeIter iter;
+ GIConv iconv;
+ const gchar *message;
+ gchar *enc_string;
+ GtkListStore *store;
+ GtkTreeIter iter;
- enc_string = g_ascii_strup (
- g_quark_to_string (GPOINTER_TO_UINT (encoding_ptr)), -1);
- encoding_ptr = GUINT_TO_POINTER (g_quark_from_string (enc_string));
+ enc_string = g_ascii_strup (
+ g_quark_to_string (GPOINTER_TO_UINT (encoding_ptr)), -1);
+ encoding_ptr = GUINT_TO_POINTER (g_quark_from_string (enc_string));
- if (g_list_find (data->encodings, encoding_ptr)) {
- message = _("This encoding has been added to the list already.");
- gnc_error_dialog (data->encodings_dialog, "%s", message);
- return;
- }
+ if (g_list_find (data->encodings, encoding_ptr))
+ {
+ message = _("This encoding has been added to the list already.");
+ gnc_error_dialog (data->encodings_dialog, "%s", message);
+ return;
+ }
- /* test whether we like this encoding */
- iconv = g_iconv_open ("UTF-8", enc_string);
- if (iconv == (GIConv) -1) {
+ /* test whether we like this encoding */
+ iconv = g_iconv_open ("UTF-8", enc_string);
+ if (iconv == (GIConv) - 1)
+ {
+ g_iconv_close (iconv);
+ g_free (enc_string);
+ message = _("This is an invalid encoding.");
+ gnc_error_dialog (data->encodings_dialog, "%s", message);
+ return;
+ }
g_iconv_close (iconv);
- g_free (enc_string);
- message = _("This is an invalid encoding.");
- gnc_error_dialog (data->encodings_dialog, "%s", message);
- return;
- }
- g_iconv_close (iconv);
- /* add to the list */
- data->encodings = g_list_append (data->encodings, encoding_ptr);
- store = GTK_LIST_STORE (gtk_tree_view_get_model (data->selected_encs_view));
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, ENC_COL_STRING, enc_string,
- ENC_COL_QUARK, encoding_ptr, -1);
+ /* add to the list */
+ data->encodings = g_list_append (data->encodings, encoding_ptr);
+ store = GTK_LIST_STORE (gtk_tree_view_get_model (data->selected_encs_view));
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, ENC_COL_STRING, enc_string,
+ ENC_COL_QUARK, encoding_ptr, -1);
- g_free (enc_string);
+ g_free (enc_string);
- if (!data->encodings->next)
- gtk_dialog_set_response_sensitive (GTK_DIALOG (data->encodings_dialog),
- GTK_RESPONSE_OK, TRUE);
+ if (!data->encodings->next)
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (data->encodings_dialog),
+ GTK_RESPONSE_OK, TRUE);
}
void
@@ -1369,157 +1492,161 @@
GtkTreeViewColumn *column,
GncXmlImportData *data)
{
- GtkTreeModel *model;
- GtkTreeIter iter;
- gpointer enc_ptr;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gpointer enc_ptr;
- model = gtk_tree_view_get_model (data->available_encs_view);
- if (!gtk_tree_model_get_iter (model, &iter, path))
- return;
- gtk_tree_model_get (model, &iter, ENC_COL_QUARK, &enc_ptr, -1);
- if (!enc_ptr)
- return;
- gxi_add_encoding (data, enc_ptr);
+ model = gtk_tree_view_get_model (data->available_encs_view);
+ if (!gtk_tree_model_get_iter (model, &iter, path))
+ return;
+ gtk_tree_model_get (model, &iter, ENC_COL_QUARK, &enc_ptr, -1);
+ if (!enc_ptr)
+ return;
+ gxi_add_encoding (data, enc_ptr);
}
void
gxi_add_enc_clicked_cb (GtkButton *button, GncXmlImportData *data)
{
- GtkTreeSelection *selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
- gpointer enc_ptr;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gpointer enc_ptr;
- selection = gtk_tree_view_get_selection (data->available_encs_view);
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- return;
- gtk_tree_model_get (model, &iter, ENC_COL_QUARK, &enc_ptr, -1);
- if (!enc_ptr)
- return;
- gxi_add_encoding (data, enc_ptr);
+ selection = gtk_tree_view_get_selection (data->available_encs_view);
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ return;
+ gtk_tree_model_get (model, &iter, ENC_COL_QUARK, &enc_ptr, -1);
+ if (!enc_ptr)
+ return;
+ gxi_add_encoding (data, enc_ptr);
}
void
gxi_custom_enc_activate_cb (GtkEntry *entry, GncXmlImportData *data)
{
- const gchar *enc_string;
+ const gchar *enc_string;
- enc_string = gtk_entry_get_text (entry);
- if (!enc_string)
- return;
- gxi_add_encoding (data, GUINT_TO_POINTER (g_quark_from_string (enc_string)));
+ enc_string = gtk_entry_get_text (entry);
+ if (!enc_string)
+ return;
+ gxi_add_encoding (data, GUINT_TO_POINTER (g_quark_from_string (enc_string)));
}
void
gxi_add_custom_enc_clicked_cb (GtkButton *button, GncXmlImportData *data)
{
- GtkWidget *entry = gnc_glade_lookup_widget (data->encodings_dialog,
- "custom_enc_entry");
- gxi_custom_enc_activate_cb (GTK_ENTRY (entry), data);
+ GtkWidget *entry = gnc_glade_lookup_widget (data->encodings_dialog,
+ "custom_enc_entry");
+ gxi_custom_enc_activate_cb (GTK_ENTRY (entry), data);
}
static void
gxi_remove_encoding (GncXmlImportData *data, GtkTreeModel *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- gpointer enc_ptr;
+ gpointer enc_ptr;
- gtk_tree_model_get (model, iter, ENC_COL_QUARK, &enc_ptr, -1);
- data->encodings = g_list_remove (data->encodings, enc_ptr);
- gtk_list_store_remove (GTK_LIST_STORE (model), iter);
- if (!data->encodings)
- gtk_dialog_set_response_sensitive (GTK_DIALOG (data->encodings_dialog),
- GTK_RESPONSE_OK, FALSE);
+ gtk_tree_model_get (model, iter, ENC_COL_QUARK, &enc_ptr, -1);
+ data->encodings = g_list_remove (data->encodings, enc_ptr);
+ gtk_list_store_remove (GTK_LIST_STORE (model), iter);
+ if (!data->encodings)
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (data->encodings_dialog),
+ GTK_RESPONSE_OK, FALSE);
}
void
gxi_selected_enc_activated_cb (GtkTreeView *view, GtkTreePath *path,
GtkTreeViewColumn *column, GncXmlImportData *data)
{
- GtkTreeModel *model;
- GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
- model = gtk_tree_view_get_model (data->selected_encs_view);
- if (!gtk_tree_model_get_iter (model, &iter, path))
- return;
- gxi_remove_encoding (data, model, &iter);
+ model = gtk_tree_view_get_model (data->selected_encs_view);
+ if (!gtk_tree_model_get_iter (model, &iter, path))
+ return;
+ gxi_remove_encoding (data, model, &iter);
}
void
gxi_remove_enc_clicked_cb (GtkButton *button, GncXmlImportData *data)
{
- GtkTreeSelection *selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
- selection = gtk_tree_view_get_selection (data->selected_encs_view);
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- return;
- gxi_remove_encoding (data, model, &iter);
+ selection = gtk_tree_view_get_selection (data->selected_encs_view);
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ return;
+ gxi_remove_encoding (data, model, &iter);
}
gboolean
gxi_conversion_next_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data)
{
- return !gxi_parse_file (data);
+ return !gxi_parse_file (data);
}
void
gxi_loaded_files_prepare_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data)
{
- gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid),
- FALSE, TRUE, TRUE, TRUE);
+ gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid),
+ FALSE, TRUE, TRUE, TRUE);
}
gboolean
gxi_loaded_files_next_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data)
{
- if (!g_list_first (data->files)) {
- const gchar *message = _(
- "No files to merge. Please add ones by clicking on 'Load another file'.");
- gnc_error_dialog (data->dialog, "%s", message);
- return TRUE;
- }
+ if (!g_list_first (data->files))
+ {
+ const gchar *message = _(
+ "No files to merge. Please add ones by clicking on 'Load another file'.");
+ gnc_error_dialog (data->dialog, "%s", message);
+ return TRUE;
+ }
- return FALSE;
+ return FALSE;
}
void
gxi_unload_file_clicked_cb (GtkButton *button, GncXmlImportData *data)
{
- GtkTreeSelection *selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GncXmlImportFile *file;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GncXmlImportFile *file;
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->file_list_view));
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- return;
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->file_list_view));
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ return;
- gtk_tree_model_get (model, &iter, FILE_COL_INFO, &file, -1);
+ gtk_tree_model_get (model, &iter, FILE_COL_INFO, &file, -1);
- gxi_unload_file (data, file);
+ gxi_unload_file (data, file);
}
void
gxi_load_file_clicked_cb (GtkButton *button, GncXmlImportData *data)
{
- gnome_druid_set_page (GNOME_DRUID (data->druid),
- gxi_get_named_page (data, "load_file_page"));
+ gnome_druid_set_page (GNOME_DRUID (data->druid),
+ gxi_get_named_page (data, "load_file_page"));
}
void
gxi_end_finish_cb (GnomeDruidPage *page, GtkWidget *widget,
GncXmlImportData *data)
{
- if (data->import_type == XML_CONVERT_SINGLE_FILE) {
- gtk_dialog_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_APPLY);
- } else {
- gtk_widget_destroy (data->dialog);
- }
+ if (data->import_type == XML_CONVERT_SINGLE_FILE)
+ {
+ gtk_dialog_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_APPLY);
+ }
+ else
+ {
+ gtk_widget_destroy (data->dialog);
+ }
}
Modified: gnucash/trunk/src/gnome-utils/druid-utils.c
===================================================================
--- gnucash/trunk/src/gnome-utils/druid-utils.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/druid-utils.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -33,115 +33,122 @@
void
gnc_druid_set_watermark_images (GnomeDruid *druid,
- const char *top_path,
- const char *side_path)
+ const char *top_path,
+ const char *side_path)
{
- GdkPixbuf *top_pixbuf, *side_pixbuf;
- GList *page_list, *item;
- GtkWidget *page;
+ GdkPixbuf *top_pixbuf, *side_pixbuf;
+ GList *page_list, *item;
+ GtkWidget *page;
- page_list = gtk_container_get_children(GTK_CONTAINER(druid));
- top_pixbuf = gnc_gnome_get_gdkpixbuf(top_path);
- side_pixbuf = gnc_gnome_get_gdkpixbuf(side_path);
+ page_list = gtk_container_get_children(GTK_CONTAINER(druid));
+ top_pixbuf = gnc_gnome_get_gdkpixbuf(top_path);
+ side_pixbuf = gnc_gnome_get_gdkpixbuf(side_path);
- for (item = page_list; item; item = g_list_next(item)) {
- page = item->data;
- if (GNOME_IS_DRUID_PAGE_EDGE (page)) {
- GnomeDruidPageEdge *page_edge;
+ for (item = page_list; item; item = g_list_next(item))
+ {
+ page = item->data;
+ if (GNOME_IS_DRUID_PAGE_EDGE (page))
+ {
+ GnomeDruidPageEdge *page_edge;
- page_edge = GNOME_DRUID_PAGE_EDGE (page);
- gnome_druid_page_edge_set_top_watermark (page_edge, top_pixbuf);
- gnome_druid_page_edge_set_watermark (page_edge, side_pixbuf);
- } else {
- GnomeDruidPageStandard *page_standard;
+ page_edge = GNOME_DRUID_PAGE_EDGE (page);
+ gnome_druid_page_edge_set_top_watermark (page_edge, top_pixbuf);
+ gnome_druid_page_edge_set_watermark (page_edge, side_pixbuf);
+ }
+ else
+ {
+ GnomeDruidPageStandard *page_standard;
- page_standard = GNOME_DRUID_PAGE_STANDARD (page);
- gnome_druid_page_standard_set_top_watermark (page_standard, top_pixbuf);
+ page_standard = GNOME_DRUID_PAGE_STANDARD (page);
+ gnome_druid_page_standard_set_top_watermark (page_standard, top_pixbuf);
+ }
}
- }
- g_object_unref (G_OBJECT(side_pixbuf));
- g_object_unref (G_OBJECT(top_pixbuf));
- g_list_free(page_list);
+ g_object_unref (G_OBJECT(side_pixbuf));
+ g_object_unref (G_OBJECT(top_pixbuf));
+ g_list_free(page_list);
}
void
gnc_druid_set_logo_image (GnomeDruid *druid, char *image_path)
{
- GdkPixbuf *logo_pixbuf;
- GList *page_list, *item;
- GtkWidget *page;
+ GdkPixbuf *logo_pixbuf;
+ GList *page_list, *item;
+ GtkWidget *page;
- page_list = gtk_container_get_children(GTK_CONTAINER(druid));
- logo_pixbuf = gnc_gnome_get_gdkpixbuf(image_path);
+ page_list = gtk_container_get_children(GTK_CONTAINER(druid));
+ logo_pixbuf = gnc_gnome_get_gdkpixbuf(image_path);
- for (item = page_list; item; item = g_list_next(item)) {
- page = item->data;
- if (GNOME_IS_DRUID_PAGE_EDGE (page))
+ for (item = page_list; item; item = g_list_next(item))
{
- GnomeDruidPageEdge *page_edge;
+ page = item->data;
+ if (GNOME_IS_DRUID_PAGE_EDGE (page))
+ {
+ GnomeDruidPageEdge *page_edge;
- page_edge = GNOME_DRUID_PAGE_EDGE (page);
- gnome_druid_page_edge_set_logo (page_edge, logo_pixbuf);
- } else {
- GnomeDruidPageStandard *page_standard;
+ page_edge = GNOME_DRUID_PAGE_EDGE (page);
+ gnome_druid_page_edge_set_logo (page_edge, logo_pixbuf);
+ }
+ else
+ {
+ GnomeDruidPageStandard *page_standard;
- page_standard = GNOME_DRUID_PAGE_STANDARD (page);
- gnome_druid_page_standard_set_logo (page_standard, logo_pixbuf);
- }
- }
+ page_standard = GNOME_DRUID_PAGE_STANDARD (page);
+ gnome_druid_page_standard_set_logo (page_standard, logo_pixbuf);
+ }
+ }
- g_object_unref (G_OBJECT(logo_pixbuf));
- g_list_free(page_list);
+ g_object_unref (G_OBJECT(logo_pixbuf));
+ g_list_free(page_list);
}
void
gnc_druid_set_colors (GnomeDruid *druid)
{
- GList *pages = gtk_container_get_children (GTK_CONTAINER (druid));
- GList *item = pages;
- GdkColor bluish;
- GdkColor white;
- GdkColormap *cm;
+ GList *pages = gtk_container_get_children (GTK_CONTAINER (druid));
+ GList *item = pages;
+ GdkColor bluish;
+ GdkColor white;
+ GdkColormap *cm;
- if (!druid) return;
- if (!GNOME_IS_DRUID (druid)) return;
+ if (!druid) return;
+ if (!GNOME_IS_DRUID (druid)) return;
- bluish.red = (gushort) (.40 * 65535);
- bluish.green = (gushort) (.40 * 65535);
- bluish.blue = (gushort) (.60 * 65535);
+ bluish.red = (gushort) (.40 * 65535);
+ bluish.green = (gushort) (.40 * 65535);
+ bluish.blue = (gushort) (.60 * 65535);
- white.red = 65535;
- white.green = 65535;
- white.blue = 65535;
+ white.red = 65535;
+ white.green = 65535;
+ white.blue = 65535;
- cm = gtk_widget_get_colormap (GTK_WIDGET (druid));
+ cm = gtk_widget_get_colormap (GTK_WIDGET (druid));
- gdk_colormap_alloc_color(cm, &bluish, FALSE, TRUE);
- gdk_colormap_alloc_color(cm, &white, FALSE, TRUE);
+ gdk_colormap_alloc_color(cm, &bluish, FALSE, TRUE);
+ gdk_colormap_alloc_color(cm, &white, FALSE, TRUE);
- while (item != NULL)
- {
- GnomeDruidPage *page = GNOME_DRUID_PAGE (item->data);
-
- if (GNOME_IS_DRUID_PAGE_EDGE (page))
+ while (item != NULL)
{
- GnomeDruidPageEdge *page_edge;
+ GnomeDruidPage *page = GNOME_DRUID_PAGE (item->data);
- page_edge = GNOME_DRUID_PAGE_EDGE (page);
- gnome_druid_page_edge_set_bg_color (page_edge, &bluish);
- gnome_druid_page_edge_set_logo_bg_color (page_edge, &bluish);
+ if (GNOME_IS_DRUID_PAGE_EDGE (page))
+ {
+ GnomeDruidPageEdge *page_edge;
+
+ page_edge = GNOME_DRUID_PAGE_EDGE (page);
+ gnome_druid_page_edge_set_bg_color (page_edge, &bluish);
+ gnome_druid_page_edge_set_logo_bg_color (page_edge, &bluish);
+ }
+ else
+ {
+ GnomeDruidPageStandard *page_standard;
+
+ page_standard = GNOME_DRUID_PAGE_STANDARD (page);
+ gnome_druid_page_standard_set_background (page_standard, &bluish);
+ gnome_druid_page_standard_set_logo_background (page_standard, &bluish);
+ gnome_druid_page_standard_set_title_foreground (page_standard, &white);
+ }
+ item = item->next;
}
- else
- {
- GnomeDruidPageStandard *page_standard;
-
- page_standard = GNOME_DRUID_PAGE_STANDARD (page);
- gnome_druid_page_standard_set_background (page_standard, &bluish);
- gnome_druid_page_standard_set_logo_background (page_standard, &bluish);
- gnome_druid_page_standard_set_title_foreground (page_standard, &white);
- }
- item = item->next;
- }
- g_list_free(pages);
+ g_list_free(pages);
}
Modified: gnucash/trunk/src/gnome-utils/druid-utils.h
===================================================================
--- gnucash/trunk/src/gnome-utils/druid-utils.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/druid-utils.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -27,8 +27,8 @@
#include <libgnomeui/gnome-druid.h>
void gnc_druid_set_watermark_images (GnomeDruid *druid,
- const char *top_path,
- const char *side_path);
+ const char *top_path,
+ const char *side_path);
void gnc_druid_set_logo_image (GnomeDruid *druid, char *image_path);
void gnc_druid_set_colors (GnomeDruid *druid);
Modified: gnucash/trunk/src/gnome-utils/gnc-account-sel.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-account-sel.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-account-sel.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -43,14 +43,15 @@
/* Signal codes */
enum
{
- ACCOUNT_SEL_CHANGED,
- LAST_SIGNAL
+ ACCOUNT_SEL_CHANGED,
+ LAST_SIGNAL
};
-enum account_cols {
- ACCT_COL_NAME = 0,
- ACCT_COL_PTR,
- NUM_ACCT_COLS
+enum account_cols
+{
+ ACCT_COL_NAME = 0,
+ ACCT_COL_PTR,
+ NUM_ACCT_COLS
};
static guint account_sel_signals [LAST_SIGNAL] = { 0 };
@@ -71,27 +72,29 @@
GType
gnc_account_sel_get_type (void)
{
- static GType account_sel_type = 0;
+ static GType account_sel_type = 0;
- if (account_sel_type == 0) {
- GTypeInfo account_sel_info = {
- sizeof (GNCAccountSelClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_account_sel_class_init,
- NULL,
- NULL,
- sizeof (GNCAccountSel),
- 0,
- (GInstanceInitFunc) gnc_account_sel_init
- };
+ if (account_sel_type == 0)
+ {
+ GTypeInfo account_sel_info =
+ {
+ sizeof (GNCAccountSelClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_account_sel_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCAccountSel),
+ 0,
+ (GInstanceInitFunc) gnc_account_sel_init
+ };
- account_sel_type = g_type_register_static (GTK_TYPE_HBOX,
- "GNCAccountSel",
- &account_sel_info, 0);
- }
+ account_sel_type = g_type_register_static (GTK_TYPE_HBOX,
+ "GNCAccountSel",
+ &account_sel_info, 0);
+ }
- return account_sel_type;
+ return account_sel_type;
}
static
@@ -99,412 +102,438 @@
gnc_account_sel_event_cb( QofInstance *entity,
QofEventId event_type,
gpointer user_data,
- gpointer event_data )
+ gpointer event_data )
{
- if ( ! ( event_type == QOF_EVENT_CREATE
- || event_type == QOF_EVENT_MODIFY
- || event_type == QOF_EVENT_DESTROY )
- || !GNC_IS_ACCOUNT(entity) ) {
- return;
- }
- gas_populate_list( (GNCAccountSel*)user_data );
+ if ( ! ( event_type == QOF_EVENT_CREATE
+ || event_type == QOF_EVENT_MODIFY
+ || event_type == QOF_EVENT_DESTROY )
+ || !GNC_IS_ACCOUNT(entity) )
+ {
+ return;
+ }
+ gas_populate_list( (GNCAccountSel*)user_data );
}
static
void
gnc_account_sel_class_init (GNCAccountSelClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = gnc_account_sel_finalize;
- object_class->dispose = gnc_account_sel_dispose;
+ object_class->finalize = gnc_account_sel_finalize;
+ object_class->dispose = gnc_account_sel_dispose;
- account_sel_signals [ACCOUNT_SEL_CHANGED] =
- g_signal_new ("account_sel_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCAccountSelClass, account_sel_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ account_sel_signals [ACCOUNT_SEL_CHANGED] =
+ g_signal_new ("account_sel_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCAccountSelClass, account_sel_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
static void
combo_changed_cb(GNCAccountSel *gas, gpointer combo)
{
- g_signal_emit_by_name(gas, "account_sel_changed");
+ g_signal_emit_by_name(gas, "account_sel_changed");
}
static void
gnc_account_sel_init (GNCAccountSel *gas)
{
- GtkWidget *widget;
+ GtkWidget *widget;
- gas->initDone = FALSE;
- gas->acctTypeFilters = FALSE;
- gas->newAccountButton = NULL;
+ gas->initDone = FALSE;
+ gas->acctTypeFilters = FALSE;
+ gas->newAccountButton = NULL;
- g_object_set(gas, "spacing", 2, (gchar*)NULL);
+ g_object_set(gas, "spacing", 2, (gchar*)NULL);
- gas->store = gtk_list_store_new(NUM_ACCT_COLS, G_TYPE_STRING, G_TYPE_POINTER);
- widget =
- gtk_combo_box_entry_new_with_model(GTK_TREE_MODEL(gas->store), ACCT_COL_NAME);
- gas->combo = GTK_COMBO_BOX_ENTRY(widget);
- gtk_combo_box_set_model(GTK_COMBO_BOX(widget),
- GTK_TREE_MODEL(gas->store));
- g_object_unref(gas->store);
- g_signal_connect_swapped(gas->combo, "changed",
- G_CALLBACK(combo_changed_cb), gas);
- gtk_container_add( GTK_CONTAINER(gas), widget );
+ gas->store = gtk_list_store_new(NUM_ACCT_COLS, G_TYPE_STRING, G_TYPE_POINTER);
+ widget =
+ gtk_combo_box_entry_new_with_model(GTK_TREE_MODEL(gas->store), ACCT_COL_NAME);
+ gas->combo = GTK_COMBO_BOX_ENTRY(widget);
+ gtk_combo_box_set_model(GTK_COMBO_BOX(widget),
+ GTK_TREE_MODEL(gas->store));
+ g_object_unref(gas->store);
+ g_signal_connect_swapped(gas->combo, "changed",
+ G_CALLBACK(combo_changed_cb), gas);
+ gtk_container_add( GTK_CONTAINER(gas), widget );
- /* Add completion. */
- gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(widget));
+ /* Add completion. */
+ gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(widget));
- /* Get the accounts, place into combo list */
- gas_populate_list( gas );
+ /* Get the accounts, place into combo list */
+ gas_populate_list( gas );
- gas->eventHandlerId =
- qof_event_register_handler( gnc_account_sel_event_cb, gas );
+ gas->eventHandlerId =
+ qof_event_register_handler( gnc_account_sel_event_cb, gas );
- gas->initDone = TRUE;
+ gas->initDone = TRUE;
}
-typedef struct {
- GNCAccountSel *gas;
- GList **outList;
+typedef struct
+{
+ GNCAccountSel *gas;
+ GList **outList;
} account_filter_data;
static
void
gas_populate_list( GNCAccountSel *gas )
{
- account_filter_data atnd;
- Account *root;
- Account *acc;
- GtkTreeIter iter;
- GtkEntry *entry;
- gint i, active = -1;
- GList *accts, *ptr, *filteredAccts;
- gchar *currentSel, *name;
+ account_filter_data atnd;
+ Account *root;
+ Account *acc;
+ GtkTreeIter iter;
+ GtkEntry *entry;
+ gint i, active = -1;
+ GList *accts, *ptr, *filteredAccts;
+ gchar *currentSel, *name;
- entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gas->combo)));
- currentSel = gtk_editable_get_chars(
- GTK_EDITABLE(entry), 0, -1 );
+ entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gas->combo)));
+ currentSel = gtk_editable_get_chars(
+ GTK_EDITABLE(entry), 0, -1 );
- root = gnc_book_get_root_account( gnc_get_current_book() );
- accts = gnc_account_get_descendants_sorted( root );
+ root = gnc_book_get_root_account( gnc_get_current_book() );
+ accts = gnc_account_get_descendants_sorted( root );
- filteredAccts = NULL;
- atnd.gas = gas;
- atnd.outList = &filteredAccts;
+ filteredAccts = NULL;
+ atnd.gas = gas;
+ atnd.outList = &filteredAccts;
- g_list_foreach( accts, gas_filter_accounts, (gpointer)&atnd );
- g_list_free( accts );
+ g_list_foreach( accts, gas_filter_accounts, (gpointer)&atnd );
+ g_list_free( accts );
- gtk_list_store_clear(gas->store);
- for (ptr = filteredAccts, i = 0; ptr; ptr = g_list_next(ptr), i++) {
- acc = ptr->data;
- name = gnc_account_get_full_name(acc);
- gtk_list_store_append(gas->store, &iter);
- gtk_list_store_set(gas->store, &iter,
- ACCT_COL_NAME, name,
- ACCT_COL_PTR, acc,
- -1);
- if (g_utf8_collate(name, currentSel) == 0) {
- active = i;
- g_free(name);
- }
- }
+ gtk_list_store_clear(gas->store);
+ for (ptr = filteredAccts, i = 0; ptr; ptr = g_list_next(ptr), i++)
+ {
+ acc = ptr->data;
+ name = gnc_account_get_full_name(acc);
+ gtk_list_store_append(gas->store, &iter);
+ gtk_list_store_set(gas->store, &iter,
+ ACCT_COL_NAME, name,
+ ACCT_COL_PTR, acc,
+ -1);
+ if (g_utf8_collate(name, currentSel) == 0)
+ {
+ active = i;
+ g_free(name);
+ }
+ }
- /* If the account which was in the text box before still exists, then
- * reset to it. */
- if (active != -1)
- gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), active);
+ /* If the account which was in the text box before still exists, then
+ * reset to it. */
+ if (active != -1)
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), active);
- g_list_free( filteredAccts );
- if ( currentSel ) {
- g_free( currentSel );
- }
+ g_list_free( filteredAccts );
+ if ( currentSel )
+ {
+ g_free( currentSel );
+ }
}
static
void
gas_filter_accounts( gpointer data, gpointer user_data )
{
- account_filter_data *atnd;
- Account *a;
+ account_filter_data *atnd;
+ Account *a;
- atnd = (account_filter_data*)user_data;
- a = (Account*)data;
- /* Filter as we've been configured to do. */
- if ( atnd->gas->acctTypeFilters ) {
- /* g_list_find is the poor-mans '(member ...)', especially
- * easy when the data pointers in the list are just casted
- * account type identifiers. */
- if ( g_list_find( atnd->gas->acctTypeFilters,
- GINT_TO_POINTER(xaccAccountGetType( a )) )
- == NULL ) {
- return;
- }
+ atnd = (account_filter_data*)user_data;
+ a = (Account*)data;
+ /* Filter as we've been configured to do. */
+ if ( atnd->gas->acctTypeFilters )
+ {
+ /* g_list_find is the poor-mans '(member ...)', especially
+ * easy when the data pointers in the list are just casted
+ * account type identifiers. */
+ if ( g_list_find( atnd->gas->acctTypeFilters,
+ GINT_TO_POINTER(xaccAccountGetType( a )) )
+ == NULL )
+ {
+ return;
}
+ }
- if ( atnd->gas->acctCommodityFilters ) {
- if ( g_list_find_custom( atnd->gas->acctCommodityFilters,
- GINT_TO_POINTER(xaccAccountGetCommodity( a )),
- gnc_commodity_compare_void)
- == NULL ) {
- return;
- }
+ if ( atnd->gas->acctCommodityFilters )
+ {
+ if ( g_list_find_custom( atnd->gas->acctCommodityFilters,
+ GINT_TO_POINTER(xaccAccountGetCommodity( a )),
+ gnc_commodity_compare_void)
+ == NULL )
+ {
+ return;
}
+ }
-
- *atnd->outList = g_list_append( *atnd->outList, a );
+
+ *atnd->outList = g_list_append( *atnd->outList, a );
}
GtkWidget *
gnc_account_sel_new (void)
{
- GNCAccountSel *gas;
+ GNCAccountSel *gas;
- gas = g_object_new (GNC_TYPE_ACCOUNT_SEL, NULL);
+ gas = g_object_new (GNC_TYPE_ACCOUNT_SEL, NULL);
- return GTK_WIDGET (gas);
+ return GTK_WIDGET (gas);
}
-typedef struct {
- GNCAccountSel *gas;
- Account *acct;
+typedef struct
+{
+ GNCAccountSel *gas;
+ Account *acct;
} gas_find_data;
static
gboolean
gnc_account_sel_find_account (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gas_find_data *data)
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gas_find_data *data)
{
- Account *model_acc;
+ Account *model_acc;
- gtk_tree_model_get(model, iter, ACCT_COL_PTR, &model_acc, -1);
- if (data->acct != model_acc)
- return FALSE;
+ gtk_tree_model_get(model, iter, ACCT_COL_PTR, &model_acc, -1);
+ if (data->acct != model_acc)
+ return FALSE;
- gtk_combo_box_set_active_iter(GTK_COMBO_BOX(data->gas->combo), iter);
- return TRUE;
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(data->gas->combo), iter);
+ return TRUE;
}
void
gnc_account_sel_set_account( GNCAccountSel *gas, Account *acct, gboolean set_default_acct )
{
- gas_find_data data;
+ gas_find_data data;
- if (set_default_acct)
- {
- gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), 0);
- }
- else
- {
- gtk_combo_box_set_active( GTK_COMBO_BOX(gas->combo), -1 );
- }
- if ( acct == NULL )
- return;
+ if (set_default_acct)
+ {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), 0);
+ }
+ else
+ {
+ gtk_combo_box_set_active( GTK_COMBO_BOX(gas->combo), -1 );
+ }
+ if ( acct == NULL )
+ return;
- data.gas = gas;
- data.acct = acct;
- gtk_tree_model_foreach(GTK_TREE_MODEL(gas->store),
- (GtkTreeModelForeachFunc)gnc_account_sel_find_account,
- &data);
+ data.gas = gas;
+ data.acct = acct;
+ gtk_tree_model_foreach(GTK_TREE_MODEL(gas->store),
+ (GtkTreeModelForeachFunc)gnc_account_sel_find_account,
+ &data);
}
Account*
gnc_account_sel_get_account( GNCAccountSel *gas )
{
- GtkTreeIter iter;
- Account *acc;
+ GtkTreeIter iter;
+ Account *acc;
- if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(gas->combo), &iter))
- return NULL;
+ if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(gas->combo), &iter))
+ return NULL;
- gtk_tree_model_get(GTK_TREE_MODEL(gas->store), &iter,
- ACCT_COL_PTR, &acc,
- -1);
- return acc;
+ gtk_tree_model_get(GTK_TREE_MODEL(gas->store), &iter,
+ ACCT_COL_PTR, &acc,
+ -1);
+ return acc;
}
void
gnc_account_sel_set_acct_filters( GNCAccountSel *gas, GList *typeFilters, GList *commodityFilters )
{
- GList *src=NULL;
- GList *dest=NULL;
- gnc_commodity* commClone=NULL;
+ GList *src = NULL;
+ GList *dest = NULL;
+ gnc_commodity* commClone = NULL;
- if ( gas->acctTypeFilters != NULL ) {
- g_list_free( gas->acctTypeFilters );
- gas->acctTypeFilters = NULL;
- }
+ if ( gas->acctTypeFilters != NULL )
+ {
+ g_list_free( gas->acctTypeFilters );
+ gas->acctTypeFilters = NULL;
+ }
- if ( gas->acctCommodityFilters != NULL) {
- g_list_free( gas->acctCommodityFilters );
- gas->acctCommodityFilters = NULL;
- }
+ if ( gas->acctCommodityFilters != NULL)
+ {
+ g_list_free( gas->acctCommodityFilters );
+ gas->acctCommodityFilters = NULL;
+ }
- /* If both filters are null, then no filters exist. */
- if (( ! typeFilters ) && ( ! commodityFilters)) {
- return;
- }
+ /* If both filters are null, then no filters exist. */
+ if (( ! typeFilters ) && ( ! commodityFilters))
+ {
+ return;
+ }
- /* This works because the GNCAccountTypes in the list are
- * ints-casted-as-pointers. */
- if (typeFilters)
- {
- gas->acctTypeFilters = g_list_copy( typeFilters );
- }
+ /* This works because the GNCAccountTypes in the list are
+ * ints-casted-as-pointers. */
+ if (typeFilters)
+ {
+ gas->acctTypeFilters = g_list_copy( typeFilters );
+ }
- /* Save the commodity filter list */
- if (commodityFilters)
- {
- gas->acctCommodityFilters = g_list_copy(commodityFilters);
- }
+ /* Save the commodity filter list */
+ if (commodityFilters)
+ {
+ gas->acctCommodityFilters = g_list_copy(commodityFilters);
+ }
- gas_populate_list( gas );
+ gas_populate_list( gas );
}
static void
gnc_account_sel_finalize (GObject *object)
{
- GNCAccountSel *gas;
-
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_ACCOUNT_SEL (object));
+ GNCAccountSel *gas;
- gas = GNC_ACCOUNT_SEL (object);
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_ACCOUNT_SEL (object));
- if (gas->acctTypeFilters) {
- g_list_free (gas->acctTypeFilters);
- }
+ gas = GNC_ACCOUNT_SEL (object);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ if (gas->acctTypeFilters)
+ {
+ g_list_free (gas->acctTypeFilters);
+ }
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gnc_account_sel_dispose (GObject *object)
{
- GNCAccountSel *gas;
-
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_ACCOUNT_SEL (object));
+ GNCAccountSel *gas;
- gas = GNC_ACCOUNT_SEL (object);
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_ACCOUNT_SEL (object));
- if (gas->eventHandlerId) {
- qof_event_unregister_handler (gas->eventHandlerId);
- gas->eventHandlerId = 0;
- }
+ gas = GNC_ACCOUNT_SEL (object);
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ if (gas->eventHandlerId)
+ {
+ qof_event_unregister_handler (gas->eventHandlerId);
+ gas->eventHandlerId = 0;
+ }
+
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
void
gnc_account_sel_set_new_account_ability( GNCAccountSel *gas,
- gboolean state )
+ gboolean state )
{
- g_return_if_fail (gas != NULL);
+ g_return_if_fail (gas != NULL);
- if ( state == (gas->newAccountButton != NULL) ) {
- /* We're already in that state; don't do anything. */
- return;
- }
+ if ( state == (gas->newAccountButton != NULL) )
+ {
+ /* We're already in that state; don't do anything. */
+ return;
+ }
- if ( gas->newAccountButton ) {
- g_assert( state == TRUE );
- /* destroy the existing button. */
- gtk_container_remove( GTK_CONTAINER(gas),
- gas->newAccountButton );
- gtk_widget_destroy( gas->newAccountButton );
- gas->newAccountButton = NULL;
- return;
- }
-
- /* create the button. */
- gas->newAccountButton = gtk_button_new_with_label( _("New...") );
- g_signal_connect( gas->newAccountButton,
- "clicked",
- G_CALLBACK( gas_new_account_click ),
- gas );
- gtk_box_pack_start( GTK_BOX(gas), gas->newAccountButton,
- FALSE, FALSE, 0 );
+ if ( gas->newAccountButton )
+ {
+ g_assert( state == TRUE );
+ /* destroy the existing button. */
+ gtk_container_remove( GTK_CONTAINER(gas),
+ gas->newAccountButton );
+ gtk_widget_destroy( gas->newAccountButton );
+ gas->newAccountButton = NULL;
+ return;
+ }
+
+ /* create the button. */
+ gas->newAccountButton = gtk_button_new_with_label( _("New...") );
+ g_signal_connect( gas->newAccountButton,
+ "clicked",
+ G_CALLBACK( gas_new_account_click ),
+ gas );
+ gtk_box_pack_start( GTK_BOX(gas), gas->newAccountButton,
+ FALSE, FALSE, 0 );
}
void
gnc_account_sel_set_new_account_modal( GNCAccountSel *gas,
- gboolean state )
+ gboolean state )
{
- g_return_if_fail (gas != NULL);
- gas->isModal = state;
+ g_return_if_fail (gas != NULL);
+ gas->isModal = state;
}
static void
gas_new_account_click( GtkButton *b, gpointer ud )
{
- GNCAccountSel *gas = (GNCAccountSel*)ud;
- if (gas->isModal)
- gnc_ui_new_accounts_from_name_window_with_types ( NULL,
- gas->acctTypeFilters );
- else
- gnc_ui_new_account_with_types( gnc_get_current_book(), gas->acctTypeFilters );
+ GNCAccountSel *gas = (GNCAccountSel*)ud;
+ if (gas->isModal)
+ gnc_ui_new_accounts_from_name_window_with_types ( NULL,
+ gas->acctTypeFilters );
+ else
+ gnc_ui_new_account_with_types( gnc_get_current_book(), gas->acctTypeFilters );
}
gint
gnc_account_sel_get_num_account( GNCAccountSel *gas )
{
- if (NULL == gas)
- return 0;
- return gtk_tree_model_iter_n_children( GTK_TREE_MODEL(gas->store), NULL );
+ if (NULL == gas)
+ return 0;
+ return gtk_tree_model_iter_n_children( GTK_TREE_MODEL(gas->store), NULL );
}
void
gnc_account_sel_purge_account( GNCAccountSel *gas,
- Account *target,
- gboolean recursive)
+ Account *target,
+ gboolean recursive)
{
- GtkTreeModel *model = GTK_TREE_MODEL(gas->store);
- GtkTreeIter iter;
- Account *acc;
- gboolean more;
+ GtkTreeModel *model = GTK_TREE_MODEL(gas->store);
+ GtkTreeIter iter;
+ Account *acc;
+ gboolean more;
- if (!gtk_tree_model_get_iter_first(model, &iter))
- return;
+ if (!gtk_tree_model_get_iter_first(model, &iter))
+ return;
- if (!recursive) {
- do {
- gtk_tree_model_get(model, &iter, ACCT_COL_PTR, &acc, -1);
- if (acc == target) {
- gtk_list_store_remove(gas->store, &iter);
- break;
- }
- } while (gtk_tree_model_iter_next(model, &iter));
- } else {
- do {
- gtk_tree_model_get(model, &iter, ACCT_COL_PTR, &acc, -1);
- while (acc) {
- if (acc == target)
- break;
- acc = gnc_account_get_parent(acc);
- }
+ if (!recursive)
+ {
+ do
+ {
+ gtk_tree_model_get(model, &iter, ACCT_COL_PTR, &acc, -1);
+ if (acc == target)
+ {
+ gtk_list_store_remove(gas->store, &iter);
+ break;
+ }
+ }
+ while (gtk_tree_model_iter_next(model, &iter));
+ }
+ else
+ {
+ do
+ {
+ gtk_tree_model_get(model, &iter, ACCT_COL_PTR, &acc, -1);
+ while (acc)
+ {
+ if (acc == target)
+ break;
+ acc = gnc_account_get_parent(acc);
+ }
- if (acc == target)
- more = gtk_list_store_remove(gas->store, &iter);
- else
- more = gtk_tree_model_iter_next(model, &iter);
- } while (more);
- }
+ if (acc == target)
+ more = gtk_list_store_remove(gas->store, &iter);
+ else
+ more = gtk_tree_model_iter_next(model, &iter);
+ }
+ while (more);
+ }
- gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), 0);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), 0);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-account-sel.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-account-sel.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-account-sel.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -33,36 +33,36 @@
#include "Account.h"
-#define GNC_TYPE_ACCOUNT_SEL (gnc_account_sel_get_type())
+#define GNC_TYPE_ACCOUNT_SEL (gnc_account_sel_get_type())
#define GNC_ACCOUNT_SEL(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, GNC_TYPE_ACCOUNT_SEL, GNCAccountSel)
#define GNC_ACCOUNT_SEL_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, GNC_TYPE_ACCOUNT_SEL, GNCAccountSelClass)
#define GNC_IS_ACCOUNT_SEL(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, GNC_TYPE_ACCOUNT_SEL)
typedef struct
{
- GtkHBox hbox;
- gboolean initDone;
- gboolean isModal;
- GtkListStore *store;
- GtkComboBoxEntry *combo;
- GList *acctTypeFilters;
- GList *acctCommodityFilters;
- gint eventHandlerId;
- /* The state of this pointer also serves as a flag about what state
- * the widget is in WRT the new-account-button ability. */
- GtkWidget *newAccountButton;
+ GtkHBox hbox;
+ gboolean initDone;
+ gboolean isModal;
+ GtkListStore *store;
+ GtkComboBoxEntry *combo;
+ GList *acctTypeFilters;
+ GList *acctCommodityFilters;
+ gint eventHandlerId;
+ /* The state of this pointer also serves as a flag about what state
+ * the widget is in WRT the new-account-button ability. */
+ GtkWidget *newAccountButton;
#if 0 /* completion not implemented. */
- GCompletion *completion;
+ GCompletion *completion;
#endif /* 0 - completion not implemented */
} GNCAccountSel;
typedef struct
{
- GtkHBoxClass parent_class;
+ GtkHBoxClass parent_class;
- /* Signals for notification/filtering of changes */
- void (*account_sel_changed) (GNCAccountSel *gas);
+ /* Signals for notification/filtering of changes */
+ void (*account_sel_changed) (GNCAccountSel *gas);
} GNCAccountSelClass;
GType gnc_account_sel_get_type (void);
@@ -94,14 +94,14 @@
* @param state TRUE if the new-account button is desired, FALSE otherwise.
**/
void gnc_account_sel_set_new_account_ability( GNCAccountSel *gas,
- gboolean state );
+ gboolean state );
/**
* Conditional call of the new-account window in modal mode.
* @param state TRUE if the new-account window should be modal, FALSE otherwise.
**/
void gnc_account_sel_set_new_account_modal( GNCAccountSel *gas,
- gboolean state );
+ gboolean state );
gint gnc_account_sel_get_num_account( GNCAccountSel *gas );
void gnc_account_sel_purge_account( GNCAccountSel *gas, Account *acc, gboolean recursive);
Modified: gnucash/trunk/src/gnome-utils/gnc-amount-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-amount-edit.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-amount-edit.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -46,8 +46,8 @@
/* Signal codes */
enum
{
- AMOUNT_CHANGED,
- LAST_SIGNAL
+ AMOUNT_CHANGED,
+ LAST_SIGNAL
};
@@ -58,7 +58,7 @@
static void gnc_amount_edit_class_init (GNCAmountEditClass *class);
static void gnc_amount_edit_changed (GtkEditable *gae, gpointer data);
static gint gnc_amount_edit_key_press (GtkWidget *widget,
- GdkEventKey *event);
+ GdkEventKey *event);
static GtkEntryClass *parent_class;
@@ -71,113 +71,117 @@
GType
gnc_amount_edit_get_type (void)
{
- static GType amount_edit_type = 0;
+ static GType amount_edit_type = 0;
- if (amount_edit_type == 0) {
- GTypeInfo amount_edit_info = {
- sizeof (GNCAmountEditClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_amount_edit_class_init,
- NULL,
- NULL,
- sizeof (GNCAmountEdit),
- 0,
- (GInstanceInitFunc) gnc_amount_edit_init
- };
-
- amount_edit_type = g_type_register_static (GTK_TYPE_ENTRY,
- "GNCAmountEdit",
- &amount_edit_info,
- 0);
- }
+ if (amount_edit_type == 0)
+ {
+ GTypeInfo amount_edit_info =
+ {
+ sizeof (GNCAmountEditClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_amount_edit_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCAmountEdit),
+ 0,
+ (GInstanceInitFunc) gnc_amount_edit_init
+ };
- return amount_edit_type;
+ amount_edit_type = g_type_register_static (GTK_TYPE_ENTRY,
+ "GNCAmountEdit",
+ &amount_edit_info,
+ 0);
+ }
+
+ return amount_edit_type;
}
static void
gnc_amount_edit_class_init (GNCAmountEditClass *klass)
{
- GObjectClass *object_class;
- GtkWidgetClass *widget_class;
- /* GtkEditableClass *editable_class; */
+ GObjectClass *object_class;
+ GtkWidgetClass *widget_class;
+ /* GtkEditableClass *editable_class; */
- object_class = G_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- /* editable_class = GTK_EDITABLE_CLASS (g_type_interface_peek (klass, GTK_TYPE_EDITABLE)); */
+ object_class = G_OBJECT_CLASS (klass);
+ widget_class = GTK_WIDGET_CLASS (klass);
+ /* editable_class = GTK_EDITABLE_CLASS (g_type_interface_peek (klass, GTK_TYPE_EDITABLE)); */
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- amount_edit_signals [AMOUNT_CHANGED] =
- g_signal_new ("amount_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCAmountEditClass, amount_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ amount_edit_signals [AMOUNT_CHANGED] =
+ g_signal_new ("amount_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCAmountEditClass, amount_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
- widget_class->key_press_event = gnc_amount_edit_key_press;
+ widget_class->key_press_event = gnc_amount_edit_key_press;
- /* editable_class->changed = gnc_amount_edit_changed; */
+ /* editable_class->changed = gnc_amount_edit_changed; */
}
static void
gnc_amount_edit_init (GNCAmountEdit *gae)
{
- gae->need_to_parse = FALSE;
- gae->amount = gnc_numeric_zero ();
- gae->print_info = gnc_default_print_info (FALSE);
- gae->fraction = 0;
- gae->evaluate_on_enter = FALSE;
+ gae->need_to_parse = FALSE;
+ gae->amount = gnc_numeric_zero ();
+ gae->print_info = gnc_default_print_info (FALSE);
+ gae->fraction = 0;
+ gae->evaluate_on_enter = FALSE;
- g_signal_connect (G_OBJECT (gae), "changed",
- G_CALLBACK (gnc_amount_edit_changed), NULL);
+ g_signal_connect (G_OBJECT (gae), "changed",
+ G_CALLBACK (gnc_amount_edit_changed), NULL);
}
static void
gnc_amount_edit_changed (GtkEditable *editable, gpointer data)
{
- /*GTK_EDITABLE_CLASS (parent_class)->changed(editable);*/
+ /*GTK_EDITABLE_CLASS (parent_class)->changed(editable);*/
- GNC_AMOUNT_EDIT(editable)->need_to_parse = TRUE;
+ GNC_AMOUNT_EDIT(editable)->need_to_parse = TRUE;
}
static gint
gnc_amount_edit_key_press(GtkWidget *widget, GdkEventKey *event)
{
- GNCAmountEdit *gae = GNC_AMOUNT_EDIT(widget);
- gint result;
+ GNCAmountEdit *gae = GNC_AMOUNT_EDIT(widget);
+ gint result;
- if (event->keyval == GDK_KP_Decimal) {
- if (gae->print_info.monetary) {
- struct lconv *lc = gnc_localeconv ();
- event->keyval = lc->decimal_point[0];
- event->string[0] = lc->decimal_point[0];
+ if (event->keyval == GDK_KP_Decimal)
+ {
+ if (gae->print_info.monetary)
+ {
+ struct lconv *lc = gnc_localeconv ();
+ event->keyval = lc->decimal_point[0];
+ event->string[0] = lc->decimal_point[0];
+ }
}
- }
- result = (* GTK_WIDGET_CLASS (parent_class)->key_press_event)(widget, event);
+ result = (* GTK_WIDGET_CLASS (parent_class)->key_press_event)(widget, event);
- switch (event->keyval)
- {
+ switch (event->keyval)
+ {
case GDK_Return:
- if (gae->evaluate_on_enter)
+ if (gae->evaluate_on_enter)
+ break;
+ if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK))
+ break;
+ return result;
+ case GDK_KP_Enter:
break;
- if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK))
- break;
- return result;
- case GDK_KP_Enter:
- break;
default:
- return result;
- }
+ return result;
+ }
- gnc_amount_edit_evaluate (gae);
+ gnc_amount_edit_evaluate (gae);
- return TRUE;
+ return TRUE;
}
/**
@@ -186,18 +190,18 @@
* Creates a new GNCAmountEdit widget which can be used to provide
* an easy to use way for entering amounts, allowing the user to
* enter and evaluate expressions.
- *
+ *
* Returns a GNCAmountEdit widget.
*/
GtkWidget *
gnc_amount_edit_new (void)
{
- GNCAmountEdit *gae;
+ GNCAmountEdit *gae;
- gae = g_object_new (GNC_TYPE_AMOUNT_EDIT, NULL);
- gtk_widget_show (GTK_WIDGET(gae));
+ gae = g_object_new (GNC_TYPE_AMOUNT_EDIT, NULL);
+ gtk_widget_show (GTK_WIDGET(gae));
- return GTK_WIDGET (gae);
+ return GTK_WIDGET (gae);
}
/**
@@ -214,54 +218,54 @@
gboolean
gnc_amount_edit_evaluate (GNCAmountEdit *gae)
{
- const char *string;
- char *error_loc;
- gnc_numeric amount;
- gboolean ok;
+ const char *string;
+ char *error_loc;
+ gnc_numeric amount;
+ gboolean ok;
- g_return_val_if_fail(gae != NULL, FALSE);
- g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), FALSE);
+ g_return_val_if_fail(gae != NULL, FALSE);
+ g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), FALSE);
- if (!gae->need_to_parse)
- return TRUE;
+ if (!gae->need_to_parse)
+ return TRUE;
- string = gtk_entry_get_text(GTK_ENTRY(gae));
- if (!string || *string == '\0')
- {
- gnc_numeric old_amount = gae->amount;
+ string = gtk_entry_get_text(GTK_ENTRY(gae));
+ if (!string || *string == '\0')
+ {
+ gnc_numeric old_amount = gae->amount;
- gnc_amount_edit_set_amount (gae, gnc_numeric_zero ());
+ gnc_amount_edit_set_amount (gae, gnc_numeric_zero ());
- if (!gnc_numeric_equal (gnc_numeric_zero (), old_amount))
- g_signal_emit (gae, amount_edit_signals [AMOUNT_CHANGED], 0);
+ if (!gnc_numeric_equal (gnc_numeric_zero (), old_amount))
+ g_signal_emit (gae, amount_edit_signals [AMOUNT_CHANGED], 0);
- return TRUE;
- }
+ return TRUE;
+ }
- error_loc = NULL;
+ error_loc = NULL;
- ok = gnc_exp_parser_parse (string, &amount, &error_loc);
+ ok = gnc_exp_parser_parse (string, &amount, &error_loc);
- if (ok)
- {
- gnc_numeric old_amount = gae->amount;
+ if (ok)
+ {
+ gnc_numeric old_amount = gae->amount;
- if (gae->fraction > 0)
- amount = gnc_numeric_convert (amount, gae->fraction, GNC_RND_ROUND);
+ if (gae->fraction > 0)
+ amount = gnc_numeric_convert (amount, gae->fraction, GNC_RND_ROUND);
- gnc_amount_edit_set_amount (gae, amount);
+ gnc_amount_edit_set_amount (gae, amount);
- if (!gnc_numeric_equal (amount, old_amount))
- g_signal_emit (gae, amount_edit_signals [AMOUNT_CHANGED], 0);
+ if (!gnc_numeric_equal (amount, old_amount))
+ g_signal_emit (gae, amount_edit_signals [AMOUNT_CHANGED], 0);
- return TRUE;
- }
+ return TRUE;
+ }
- /* Not ok */
- if (error_loc != NULL)
- gtk_editable_set_position (GTK_EDITABLE(gae), error_loc - string);
+ /* Not ok */
+ if (error_loc != NULL)
+ gtk_editable_set_position (GTK_EDITABLE(gae), error_loc - string);
- return FALSE;
+ return FALSE;
}
@@ -276,12 +280,12 @@
gnc_numeric
gnc_amount_edit_get_amount (GNCAmountEdit *gae)
{
- g_return_val_if_fail(gae != NULL, gnc_numeric_zero ());
- g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), gnc_numeric_zero ());
+ g_return_val_if_fail(gae != NULL, gnc_numeric_zero ());
+ g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), gnc_numeric_zero ());
- gnc_amount_edit_evaluate (gae);
+ gnc_amount_edit_evaluate (gae);
- return gae->amount;
+ return gae->amount;
}
@@ -296,12 +300,12 @@
double
gnc_amount_edit_get_damount (GNCAmountEdit *gae)
{
- g_return_val_if_fail(gae != NULL, 0.0);
- g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), 0.0);
+ g_return_val_if_fail(gae != NULL, 0.0);
+ g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), 0.0);
- gnc_amount_edit_evaluate (gae);
+ gnc_amount_edit_evaluate (gae);
- return gnc_numeric_to_double (gae->amount);
+ return gnc_numeric_to_double (gae->amount);
}
@@ -315,18 +319,18 @@
void
gnc_amount_edit_set_amount (GNCAmountEdit *gae, gnc_numeric amount)
{
- const char * amount_string;
+ const char * amount_string;
- g_return_if_fail(gae != NULL);
- g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
- g_return_if_fail(!gnc_numeric_check (amount));
+ g_return_if_fail(gae != NULL);
+ g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
+ g_return_if_fail(!gnc_numeric_check (amount));
- /* Update the display. */
- amount_string = xaccPrintAmount (amount, gae->print_info);
- gtk_entry_set_text (GTK_ENTRY(gae), amount_string);
+ /* Update the display. */
+ amount_string = xaccPrintAmount (amount, gae->print_info);
+ gtk_entry_set_text (GTK_ENTRY(gae), amount_string);
- gae->amount = amount;
- gae->need_to_parse = FALSE;
+ gae->amount = amount;
+ gae->need_to_parse = FALSE;
}
/**
@@ -339,20 +343,20 @@
void
gnc_amount_edit_set_damount (GNCAmountEdit *gae, double damount)
{
- gnc_numeric amount;
- int fraction;
+ gnc_numeric amount;
+ int fraction;
- g_return_if_fail(gae != NULL);
- g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
+ g_return_if_fail(gae != NULL);
+ g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
- if (gae->fraction > 0)
- fraction = gae->fraction;
- else
- fraction = 100000;
+ if (gae->fraction > 0)
+ fraction = gae->fraction;
+ else
+ fraction = 100000;
- amount = double_to_gnc_numeric (damount, fraction, GNC_RND_ROUND);
+ amount = double_to_gnc_numeric (damount, fraction, GNC_RND_ROUND);
- gnc_amount_edit_set_amount (gae, amount);
+ gnc_amount_edit_set_amount (gae, amount);
}
/**
@@ -366,11 +370,11 @@
gnc_amount_edit_set_print_info (GNCAmountEdit *gae,
GNCPrintAmountInfo print_info)
{
- g_return_if_fail(gae != NULL);
- g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
+ g_return_if_fail(gae != NULL);
+ g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
- gae->print_info = print_info;
- gae->print_info.use_symbol = 0;
+ gae->print_info = print_info;
+ gae->print_info.use_symbol = 0;
}
@@ -384,12 +388,12 @@
void
gnc_amount_edit_set_fraction (GNCAmountEdit *gae, int fraction)
{
- g_return_if_fail(gae != NULL);
- g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
+ g_return_if_fail(gae != NULL);
+ g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
- fraction = MAX (0, fraction);
+ fraction = MAX (0, fraction);
- gae->fraction = fraction;
+ gae->fraction = fraction;
}
@@ -402,10 +406,10 @@
GtkWidget *
gnc_amount_edit_gtk_entry (GNCAmountEdit *gae)
{
- g_return_val_if_fail(gae != NULL, NULL);
- g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), NULL);
+ g_return_val_if_fail(gae != NULL, NULL);
+ g_return_val_if_fail(GNC_IS_AMOUNT_EDIT(gae), NULL);
- return (GtkWidget *)gae;
+ return (GtkWidget *)gae;
}
@@ -420,8 +424,8 @@
gnc_amount_edit_set_evaluate_on_enter (GNCAmountEdit *gae,
gboolean evaluate_on_enter)
{
- g_return_if_fail(gae != NULL);
- g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
+ g_return_if_fail(gae != NULL);
+ g_return_if_fail(GNC_IS_AMOUNT_EDIT(gae));
- gae->evaluate_on_enter = evaluate_on_enter;
+ gae->evaluate_on_enter = evaluate_on_enter;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-amount-edit.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-amount-edit.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-amount-edit.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -27,7 +27,7 @@
*/
#ifndef GNC_AMOUNT_EDIT_H
-#define GNC_AMOUNT_EDIT_H
+#define GNC_AMOUNT_EDIT_H
#include "qof.h"
#include "gnc-ui-util.h"
@@ -39,26 +39,26 @@
typedef struct
{
- GtkEntry entry;
+ GtkEntry entry;
- gboolean need_to_parse;
+ gboolean need_to_parse;
- GNCPrintAmountInfo print_info;
+ GNCPrintAmountInfo print_info;
- gnc_numeric amount;
+ gnc_numeric amount;
- int fraction;
+ int fraction;
- gboolean evaluate_on_enter;
+ gboolean evaluate_on_enter;
} GNCAmountEdit;
typedef struct
{
- GtkEntryClass parent_class;
+ GtkEntryClass parent_class;
- /* Signals for notification/filtering of changes */
- void (*amount_changed) (GNCAmountEdit *gae);
+ /* Signals for notification/filtering of changes */
+ void (*amount_changed) (GNCAmountEdit *gae);
} GNCAmountEditClass;
GType gnc_amount_edit_get_type (void);
@@ -68,9 +68,9 @@
GtkWidget *gnc_amount_edit_gtk_entry (GNCAmountEdit *gae);
void gnc_amount_edit_set_amount (GNCAmountEdit *gae,
- gnc_numeric amount);
+ gnc_numeric amount);
void gnc_amount_edit_set_damount (GNCAmountEdit *gae,
- double amount);
+ double amount);
gnc_numeric gnc_amount_edit_get_amount (GNCAmountEdit *gae);
double gnc_amount_edit_get_damount (GNCAmountEdit *gae);
@@ -78,10 +78,10 @@
gboolean gnc_amount_edit_evaluate (GNCAmountEdit *gae);
void gnc_amount_edit_set_print_info (GNCAmountEdit *gae,
- GNCPrintAmountInfo print_info);
+ GNCPrintAmountInfo print_info);
void gnc_amount_edit_set_fraction (GNCAmountEdit *gae, int fraction);
void gnc_amount_edit_set_evaluate_on_enter (GNCAmountEdit *gae,
- gboolean evaluate_on_enter);
+ gboolean evaluate_on_enter);
#endif
Modified: gnucash/trunk/src/gnome-utils/gnc-autosave.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-autosave.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-autosave.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-autosave.c -- Functions related to the auto-save feature.
*
* Copyright (C) 2007 Christian Stimming <stimming at tuhh.de>
@@ -44,10 +44,10 @@
#endif
#define G_LOG_DOMAIN "gnc.gui.autosave"
-static void
+static void
autosave_remove_timer_cb(QofBook *book, gpointer key, gpointer user_data);
-/* Here's how autosave works:
+/* Here's how autosave works:
*
* Initially, the book is in state "undirty". Once the book changes
* state to "dirty", hence calling
@@ -77,211 +77,225 @@
static gboolean autosave_confirm(GtkWidget *toplevel)
{
- GtkWidget *dialog, *label;
- guint interval_mins =
- gnc_gconf_get_float(GCONF_GENERAL, KEY_AUTOSAVE_INTERVAL, NULL);
- gboolean switch_off_autosave, show_expl_again, save_now;
- gchar *message;
- gint response;
+ GtkWidget *dialog, *label;
+ guint interval_mins =
+ gnc_gconf_get_float(GCONF_GENERAL, KEY_AUTOSAVE_INTERVAL, NULL);
+ gboolean switch_off_autosave, show_expl_again, save_now;
+ gchar *message;
+ gint response;
#define YES_THIS_TIME 1
#define YES_ALWAYS 2
#define NO_NEVER 3
#define NO_NOT_THIS_TIME 4
- /* The autosave timeout has occurred, and we should show the
- explanation dialog. */
- dialog =
- gtk_message_dialog_new(GTK_WINDOW(toplevel),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE,
- "%s",
- _("Save file automatically?"));
- gtk_message_dialog_format_secondary_text
+ /* The autosave timeout has occurred, and we should show the
+ explanation dialog. */
+ dialog =
+ gtk_message_dialog_new(GTK_WINDOW(toplevel),
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_NONE,
+ "%s",
+ _("Save file automatically?"));
+ gtk_message_dialog_format_secondary_text
(GTK_MESSAGE_DIALOG(dialog),
_("Your data file needs to be saved to your hard disk to save your changes. GnuCash has a feature to save the file automatically every %d minutes, just as if you had pressed the \"Save\" button each time. \n\n"
"You can change the time interval or turn off this feature under Edit -> Preferences -> General -> Auto-save time interval. \n\n"
"Should your file be saved automatically?"),
interval_mins);
- gtk_dialog_add_buttons(GTK_DIALOG(dialog),
- _("_Yes, this time"), YES_THIS_TIME,
- _("Yes, _always"), YES_ALWAYS,
- _("No, n_ever"), NO_NEVER,
- _("_No, not this time"), NO_NOT_THIS_TIME,
- NULL);
- gtk_dialog_set_default_response( GTK_DIALOG(dialog), NO_NOT_THIS_TIME);
+ gtk_dialog_add_buttons(GTK_DIALOG(dialog),
+ _("_Yes, this time"), YES_THIS_TIME,
+ _("Yes, _always"), YES_ALWAYS,
+ _("No, n_ever"), NO_NEVER,
+ _("_No, not this time"), NO_NOT_THIS_TIME,
+ NULL);
+ gtk_dialog_set_default_response( GTK_DIALOG(dialog), NO_NOT_THIS_TIME);
- /* Run the modal dialog */
- response = gtk_dialog_run( GTK_DIALOG( dialog ) );
- gtk_widget_destroy( dialog );
+ /* Run the modal dialog */
+ response = gtk_dialog_run( GTK_DIALOG( dialog ) );
+ gtk_widget_destroy( dialog );
- /* Evaluate the response */
- switch (response) {
- case YES_THIS_TIME:
- switch_off_autosave = FALSE;
- show_expl_again = TRUE;
- save_now = TRUE;
- break;
- case YES_ALWAYS:
- switch_off_autosave = FALSE;
- show_expl_again = FALSE;
- save_now = TRUE;
- break;
- case NO_NEVER:
- switch_off_autosave = TRUE;
- show_expl_again = FALSE;
- save_now = FALSE;
- break;
- default:
- case NO_NOT_THIS_TIME:
- switch_off_autosave = FALSE;
- show_expl_again = TRUE;
- save_now = FALSE;
- };
+ /* Evaluate the response */
+ switch (response)
+ {
+ case YES_THIS_TIME:
+ switch_off_autosave = FALSE;
+ show_expl_again = TRUE;
+ save_now = TRUE;
+ break;
+ case YES_ALWAYS:
+ switch_off_autosave = FALSE;
+ show_expl_again = FALSE;
+ save_now = TRUE;
+ break;
+ case NO_NEVER:
+ switch_off_autosave = TRUE;
+ show_expl_again = FALSE;
+ save_now = FALSE;
+ break;
+ default:
+ case NO_NOT_THIS_TIME:
+ switch_off_autosave = FALSE;
+ show_expl_again = TRUE;
+ save_now = FALSE;
+ };
- /* Should we show this explanation again? */
- gnc_gconf_set_bool(GCONF_GENERAL, KEY_AUTOSAVE_SHOW_EXPLANATION, show_expl_again, NULL);
- g_debug("autosave_timeout_cb: Show explanation again=%s\n",
- (show_expl_again ? "TRUE" : "FALSE"));
+ /* Should we show this explanation again? */
+ gnc_gconf_set_bool(GCONF_GENERAL, KEY_AUTOSAVE_SHOW_EXPLANATION, show_expl_again, NULL);
+ g_debug("autosave_timeout_cb: Show explanation again=%s\n",
+ (show_expl_again ? "TRUE" : "FALSE"));
- /* Should we switch off autosave? */
- if (switch_off_autosave) {
- gnc_gconf_set_float(GCONF_GENERAL, KEY_AUTOSAVE_INTERVAL, 0, NULL);
- g_debug("autosave_timeout_cb: User chose to disable auto-save.\n");
- }
+ /* Should we switch off autosave? */
+ if (switch_off_autosave)
+ {
+ gnc_gconf_set_float(GCONF_GENERAL, KEY_AUTOSAVE_INTERVAL, 0, NULL);
+ g_debug("autosave_timeout_cb: User chose to disable auto-save.\n");
+ }
- return save_now;
+ return save_now;
}
static gboolean autosave_timeout_cb(gpointer user_data)
{
- QofBook *book = user_data;
- gboolean show_explanation;
- gboolean save_now = TRUE;
- GtkWidget *toplevel;
+ QofBook *book = user_data;
+ gboolean show_explanation;
+ gboolean save_now = TRUE;
+ GtkWidget *toplevel;
- g_debug("autosave_timeout_cb called\n");
+ g_debug("autosave_timeout_cb called\n");
- /* Is there already a save in progress? If yes, return FALSE so that
- the timeout is automatically destroyed and the function will not
- be called again. */
- if (gnc_file_save_in_progress() || !gnc_current_session_exist())
- return FALSE;
+ /* Is there already a save in progress? If yes, return FALSE so that
+ the timeout is automatically destroyed and the function will not
+ be called again. */
+ if (gnc_file_save_in_progress() || !gnc_current_session_exist())
+ return FALSE;
- /* Store the current toplevel window for later use. */
- toplevel = gnc_ui_get_toplevel();
+ /* Store the current toplevel window for later use. */
+ toplevel = gnc_ui_get_toplevel();
- /* Lookup gconf key to show an explanatory dialog, if wanted. */
- show_explanation =
- gnc_gconf_get_bool(GCONF_GENERAL, KEY_AUTOSAVE_SHOW_EXPLANATION, NULL);
- if (show_explanation) {
- save_now = autosave_confirm(toplevel);
- }
+ /* Lookup gconf key to show an explanatory dialog, if wanted. */
+ show_explanation =
+ gnc_gconf_get_bool(GCONF_GENERAL, KEY_AUTOSAVE_SHOW_EXPLANATION, NULL);
+ if (show_explanation)
+ {
+ save_now = autosave_confirm(toplevel);
+ }
- if (save_now) {
- g_debug("autosave_timeout_cb: Really trigger auto-save now.\n");
+ if (save_now)
+ {
+ g_debug("autosave_timeout_cb: Really trigger auto-save now.\n");
- /* Timeout has passed - save the file. */
- if (GNC_IS_MAIN_WINDOW(toplevel))
- gnc_main_window_set_progressbar_window( GNC_MAIN_WINDOW( toplevel ) );
- else
- g_debug("autosave_timeout_cb: toplevel is not a GNC_MAIN_WINDOW\n");
- if (GNC_IS_WINDOW(toplevel))
- gnc_window_set_progressbar_window( GNC_WINDOW( toplevel ) );
- else
- g_debug("autosave_timeout_cb: toplevel is not a GNC_WINDOW\n");
+ /* Timeout has passed - save the file. */
+ if (GNC_IS_MAIN_WINDOW(toplevel))
+ gnc_main_window_set_progressbar_window( GNC_MAIN_WINDOW( toplevel ) );
+ else
+ g_debug("autosave_timeout_cb: toplevel is not a GNC_MAIN_WINDOW\n");
+ if (GNC_IS_WINDOW(toplevel))
+ gnc_window_set_progressbar_window( GNC_WINDOW( toplevel ) );
+ else
+ g_debug("autosave_timeout_cb: toplevel is not a GNC_WINDOW\n");
- gnc_file_save();
+ gnc_file_save();
- gnc_main_window_set_progressbar_window(NULL);
+ gnc_main_window_set_progressbar_window(NULL);
- /* Return FALSE so that the timeout is automatically destroyed and
- the function will not be called again. However, at least in my
- glib-2.12.4 the timer event source still exists after returning
- FALSE?! */
- return FALSE;
- } else {
- g_debug("autosave_timeout_cb: No auto-save this time, let the timeout run again.\n");
- /* Return TRUE so that the timeout is not removed but will be
- triggered again after the next time interval. */
- return TRUE;
- }
+ /* Return FALSE so that the timeout is automatically destroyed and
+ the function will not be called again. However, at least in my
+ glib-2.12.4 the timer event source still exists after returning
+ FALSE?! */
+ return FALSE;
+ }
+ else
+ {
+ g_debug("autosave_timeout_cb: No auto-save this time, let the timeout run again.\n");
+ /* Return TRUE so that the timeout is not removed but will be
+ triggered again after the next time interval. */
+ return TRUE;
+ }
}
-static void
+static void
autosave_remove_timer_cb(QofBook *book, gpointer key, gpointer user_data)
{
- guint autosave_source_id = GPOINTER_TO_UINT(user_data);
- gboolean res;
- /* Remove the timer that would have triggered the next autosave */
- if (autosave_source_id > 0) {
- res = g_source_remove (autosave_source_id);
- g_debug("Removing auto save timer with id %d, result=%s\n",
- autosave_source_id, (res ? "TRUE" : "FALSE"));
+ guint autosave_source_id = GPOINTER_TO_UINT(user_data);
+ gboolean res;
+ /* Remove the timer that would have triggered the next autosave */
+ if (autosave_source_id > 0)
+ {
+ res = g_source_remove (autosave_source_id);
+ g_debug("Removing auto save timer with id %d, result=%s\n",
+ autosave_source_id, (res ? "TRUE" : "FALSE"));
- /* Set the event source id to zero. */
- qof_book_set_data_fin(book, AUTOSAVE_SOURCE_ID,
- GUINT_TO_POINTER(0), autosave_remove_timer_cb);
- }
+ /* Set the event source id to zero. */
+ qof_book_set_data_fin(book, AUTOSAVE_SOURCE_ID,
+ GUINT_TO_POINTER(0), autosave_remove_timer_cb);
+ }
}
void gnc_autosave_remove_timer(QofBook *book)
{
- autosave_remove_timer_cb(book, AUTOSAVE_SOURCE_ID,
- qof_book_get_data(book, AUTOSAVE_SOURCE_ID));
+ autosave_remove_timer_cb(book, AUTOSAVE_SOURCE_ID,
+ qof_book_get_data(book, AUTOSAVE_SOURCE_ID));
}
static void gnc_autosave_add_timer(QofBook *book)
{
- guint interval_mins =
- gnc_gconf_get_float(GCONF_GENERAL, KEY_AUTOSAVE_INTERVAL, NULL);
+ guint interval_mins =
+ gnc_gconf_get_float(GCONF_GENERAL, KEY_AUTOSAVE_INTERVAL, NULL);
- /* Interval zero means auto-save is turned off. */
- if ( interval_mins > 0
- && ( ! gnc_file_save_in_progress() )
- && gnc_current_session_exist() ) {
- /* Add a new timer (timeout) that runs until the next autosave
- timeout. */
- guint autosave_source_id =
+ /* Interval zero means auto-save is turned off. */
+ if ( interval_mins > 0
+ && ( ! gnc_file_save_in_progress() )
+ && gnc_current_session_exist() )
+ {
+ /* Add a new timer (timeout) that runs until the next autosave
+ timeout. */
+ guint autosave_source_id =
#if GLIB_CHECK_VERSION(2, 14, 0)
- /* g_timeout_add_seconds is much more suitable here, but is new in
- glib-2.14. */
- g_timeout_add_seconds(interval_mins * 60,
- autosave_timeout_cb, book);
+ /* g_timeout_add_seconds is much more suitable here, but is new in
+ glib-2.14. */
+ g_timeout_add_seconds(interval_mins * 60,
+ autosave_timeout_cb, book);
#else
- g_timeout_add(interval_mins * 60 * 1000,
- autosave_timeout_cb, book);
+ g_timeout_add(interval_mins * 60 * 1000,
+ autosave_timeout_cb, book);
#endif
- g_debug("Adding new auto-save timer with id %d\n", autosave_source_id);
+ g_debug("Adding new auto-save timer with id %d\n", autosave_source_id);
- /* Save the event source id for a potential removal, and also
- set the callback upon book closing */
- qof_book_set_data_fin(book, AUTOSAVE_SOURCE_ID,
- GUINT_TO_POINTER(autosave_source_id),
- autosave_remove_timer_cb);
- }
+ /* Save the event source id for a potential removal, and also
+ set the callback upon book closing */
+ qof_book_set_data_fin(book, AUTOSAVE_SOURCE_ID,
+ GUINT_TO_POINTER(autosave_source_id),
+ autosave_remove_timer_cb);
+ }
}
void gnc_autosave_dirty_handler (QofBook *book, gboolean dirty)
{
- g_debug("gnc_main_window_autosave_dirty(dirty = %s)\n",
- (dirty ? "TRUE" : "FALSE"));
- if (dirty) {
- /* Book state changed from non-dirty to dirty. */
- if (!qof_book_shutting_down(book)) {
- /* Start the autosave timer.
- First stop a potentially running old timer. */
- gnc_autosave_remove_timer(book);
- /* Add a new timer (timeout) that runs until the next autosave
- timeout. */
- gnc_autosave_add_timer(book);
- } else {
- g_debug("Shutting down book, ignoring dirty book");
+ g_debug("gnc_main_window_autosave_dirty(dirty = %s)\n",
+ (dirty ? "TRUE" : "FALSE"));
+ if (dirty)
+ {
+ /* Book state changed from non-dirty to dirty. */
+ if (!qof_book_shutting_down(book))
+ {
+ /* Start the autosave timer.
+ First stop a potentially running old timer. */
+ gnc_autosave_remove_timer(book);
+ /* Add a new timer (timeout) that runs until the next autosave
+ timeout. */
+ gnc_autosave_add_timer(book);
+ }
+ else
+ {
+ g_debug("Shutting down book, ignoring dirty book");
+ }
}
- } else {
- /* Book state changed from dirty to non-dirty (probably due to
- saving). Delete the running autosave timer. */
- gnc_autosave_remove_timer(book);
- }
+ else
+ {
+ /* Book state changed from dirty to non-dirty (probably due to
+ saving). Delete the running autosave timer. */
+ gnc_autosave_remove_timer(book);
+ }
}
Modified: gnucash/trunk/src/gnome-utils/gnc-autosave.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-autosave.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-autosave.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-autosave.h -- Functions related to the auto-save feature.
*
* Copyright (C) 2007 Christian Stimming <stimming at tuhh.de>
Modified: gnucash/trunk/src/gnome-utils/gnc-commodity-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-commodity-edit.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-commodity-edit.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -42,19 +42,19 @@
const char * gnc_commodity_edit_get_string (gpointer ptr)
{
- gnc_commodity * comm = (gnc_commodity *)ptr;
- return gnc_commodity_get_printname(comm);
+ gnc_commodity * comm = (gnc_commodity *)ptr;
+ return gnc_commodity_get_printname(comm);
}
gpointer gnc_commodity_edit_new_select (gpointer arg, gpointer ptr,
- GtkWidget *toplevel)
+ GtkWidget *toplevel)
{
- gnc_commodity * comm = (gnc_commodity *)ptr;
- dialog_commodity_mode *mode_ptr = arg;
- dialog_commodity_mode mode;
+ gnc_commodity * comm = (gnc_commodity *)ptr;
+ dialog_commodity_mode *mode_ptr = arg;
+ dialog_commodity_mode mode;
- mode = mode_ptr ? *mode_ptr : DIAG_COMM_ALL;
- return gnc_ui_select_commodity_modal(comm, toplevel, mode);
+ mode = mode_ptr ? *mode_ptr : DIAG_COMM_ALL;
+ return gnc_ui_select_commodity_modal(comm, toplevel, mode);
}
/*
Modified: gnucash/trunk/src/gnome-utils/gnc-commodity-edit.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-commodity-edit.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-commodity-edit.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -43,7 +43,7 @@
* enum. This tells the dialog how to limit the namespaces provided.
*/
gpointer gnc_commodity_edit_new_select (gpointer arg, gpointer ptr,
- GtkWidget *toplevel);
+ GtkWidget *toplevel);
#endif
Modified: gnucash/trunk/src/gnome-utils/gnc-currency-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-currency-edit.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-currency-edit.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -75,7 +75,7 @@
/** The instance private data for a content plugin. */
typedef struct _GNCCurrencyEditPrivate
{
- gint dummy;
+ gint dummy;
} GNCCurrencyEditPrivate;
#define GET_PRIVATE(o) \
@@ -89,28 +89,30 @@
GType
gnc_currency_edit_get_type (void)
{
- static GType currency_edit_type = 0;
+ static GType currency_edit_type = 0;
- if (currency_edit_type == 0) {
- static const GTypeInfo currency_edit_info = {
- sizeof (GNCCurrencyEditClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_currency_edit_class_init,
- NULL,
- NULL,
- sizeof (GNCCurrencyEdit),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_currency_edit_init,
- NULL
- };
+ if (currency_edit_type == 0)
+ {
+ static const GTypeInfo currency_edit_info =
+ {
+ sizeof (GNCCurrencyEditClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_currency_edit_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCCurrencyEdit),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_currency_edit_init,
+ NULL
+ };
- currency_edit_type = g_type_register_static (GTK_TYPE_COMBO_BOX_ENTRY,
- "GNCCurrencyEdit",
- ¤cy_edit_info, 0);
- }
+ currency_edit_type = g_type_register_static (GTK_TYPE_COMBO_BOX_ENTRY,
+ "GNCCurrencyEdit",
+ ¤cy_edit_info, 0);
+ }
- return currency_edit_type;
+ return currency_edit_type;
}
@@ -123,9 +125,9 @@
static void
gnc_currency_edit_class_init (GNCCurrencyEditClass *klass)
{
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private(klass, sizeof(GNCCurrencyEditPrivate));
+ g_type_class_add_private(klass, sizeof(GNCCurrencyEditPrivate));
}
@@ -155,10 +157,10 @@
static void
add_item(gnc_commodity *commodity, GNCCurrencyEdit *gce)
{
- const char *string;
+ const char *string;
- string = gnc_commodity_get_printname(commodity);
- gtk_combo_box_append_text(GTK_COMBO_BOX(gce), string);
+ string = gnc_commodity_get_printname(commodity);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gce), string);
}
@@ -173,43 +175,43 @@
static void
fill_currencies(GNCCurrencyEdit *gce)
{
- GList *currencies;
+ GList *currencies;
- currencies = gnc_commodity_table_get_commodities
- (gnc_get_current_commodities (), GNC_COMMODITY_NS_CURRENCY);
- g_list_foreach(currencies, (GFunc)add_item, gce);
- g_list_free(currencies);
+ currencies = gnc_commodity_table_get_commodities
+ (gnc_get_current_commodities (), GNC_COMMODITY_NS_CURRENCY);
+ g_list_foreach(currencies, (GFunc)add_item, gce);
+ g_list_free(currencies);
}
/* Create a new GNCCurrencyEdit widget which can be used to provide
* an easy way to enter ISO currency codes.
- *
+ *
* @return A GNCCurrencyEdit widget.
*/
GtkWidget *
gnc_currency_edit_new (void)
{
- GNCCurrencyEdit *gce;
- GtkListStore *store;
+ GNCCurrencyEdit *gce;
+ GtkListStore *store;
- store = gtk_list_store_new (1, G_TYPE_STRING);
- gce = g_object_new (GNC_TYPE_CURRENCY_EDIT,
- "model", store,
- "text-column", 0,
- NULL);
- g_object_unref (store);
+ store = gtk_list_store_new (1, G_TYPE_STRING);
+ gce = g_object_new (GNC_TYPE_CURRENCY_EDIT,
+ "model", store,
+ "text-column", 0,
+ NULL);
+ g_object_unref (store);
- /* Now the signals to make sure the user can't leave the
- widget without a valid currency. */
- gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(gce));
+ /* Now the signals to make sure the user can't leave the
+ widget without a valid currency. */
+ gnc_cbe_require_list_item(GTK_COMBO_BOX_ENTRY(gce));
- /* Fill in all the data. */
- fill_currencies (gce);
- gtk_tree_sortable_set_sort_column_id
- (GTK_TREE_SORTABLE(store), 0, GTK_SORT_ASCENDING);
+ /* Fill in all the data. */
+ fill_currencies (gce);
+ gtk_tree_sortable_set_sort_column_id
+ (GTK_TREE_SORTABLE(store), 0, GTK_SORT_ASCENDING);
- return GTK_WIDGET (gce);
+ return GTK_WIDGET (gce);
}
/** @} */
@@ -228,14 +230,14 @@
gnc_currency_edit_set_currency (GNCCurrencyEdit *gce,
const gnc_commodity *currency)
{
- const gchar *printname;
+ const gchar *printname;
- g_return_if_fail(gce != NULL);
- g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
- g_return_if_fail(currency != NULL);
-
- printname = gnc_commodity_get_printname(currency);
- gnc_cbe_set_by_string(GTK_COMBO_BOX_ENTRY(gce), printname);
+ g_return_if_fail(gce != NULL);
+ g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
+ g_return_if_fail(currency != NULL);
+
+ printname = gnc_commodity_get_printname(currency);
+ gnc_cbe_set_by_string(GTK_COMBO_BOX_ENTRY(gce), printname);
}
@@ -249,37 +251,40 @@
gnc_commodity *
gnc_currency_edit_get_currency (GNCCurrencyEdit *gce)
{
- gnc_commodity *commodity;
- const char *fullname;
- char *mnemonic, *name;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GValue value = { 0 };
+ gnc_commodity *commodity;
+ const char *fullname;
+ char *mnemonic, *name;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GValue value = { 0 };
- g_return_val_if_fail(gce != NULL, NULL);
- g_return_val_if_fail(GNC_IS_CURRENCY_EDIT(gce), NULL);
+ g_return_val_if_fail(gce != NULL, NULL);
+ g_return_val_if_fail(GNC_IS_CURRENCY_EDIT(gce), NULL);
- if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(gce), &iter)) {
- model = gtk_combo_box_get_model(GTK_COMBO_BOX(gce));
- gtk_tree_model_get_value(model, &iter, 0, &value);
- fullname = g_value_get_string(&value);
- mnemonic = g_strdup(fullname);
- g_value_unset(&value);
+ if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(gce), &iter))
+ {
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(gce));
+ gtk_tree_model_get_value(model, &iter, 0, &value);
+ fullname = g_value_get_string(&value);
+ mnemonic = g_strdup(fullname);
+ g_value_unset(&value);
- name = strchr(mnemonic, ' ');
- if (name != NULL)
- *name = '\0';
- commodity = gnc_commodity_table_lookup (gnc_get_current_commodities (),
- GNC_COMMODITY_NS_CURRENCY,
- mnemonic);
- g_free(mnemonic);
- } else {
- g_warning("Combo box returned 'inactive'. Using locale default currency.");
- commodity = gnc_locale_default_currency();
- }
+ name = strchr(mnemonic, ' ');
+ if (name != NULL)
+ *name = '\0';
+ commodity = gnc_commodity_table_lookup (gnc_get_current_commodities (),
+ GNC_COMMODITY_NS_CURRENCY,
+ mnemonic);
+ g_free(mnemonic);
+ }
+ else
+ {
+ g_warning("Combo box returned 'inactive'. Using locale default currency.");
+ commodity = gnc_locale_default_currency();
+ }
- return commodity;
+ return commodity;
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-currency-edit.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-currency-edit.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-currency-edit.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -65,12 +65,14 @@
#define GNC_CURRENCY_EDIT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_CURRENCY_EDIT, GNCCurrencyEditClass))
#define GNC_IS_CURRENCY_EDIT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_CURRENCY_EDIT))
-typedef struct {
- GtkComboBoxEntry combobox;
+typedef struct
+{
+ GtkComboBoxEntry combobox;
} GNCCurrencyEdit;
-typedef struct {
- GtkComboBoxEntryClass combobox;
+typedef struct
+{
+ GtkComboBoxEntryClass combobox;
} GNCCurrencyEditClass;
/** Return the GType for the GNCCurrencyEdit currency selection widget.
@@ -82,7 +84,7 @@
/** Create a new GNCCurrencyEdit widget which can be used to provide
* an easy way to enter ISO currency codes.
- *
+ *
* @return A GNCCurrencyEdit widget.
*/
GtkWidget *gnc_currency_edit_new (void);
Modified: gnucash/trunk/src/gnome-utils/gnc-date-delta.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-delta.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-date-delta.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -48,11 +48,11 @@
enum
{
- VALUE_CHANGED,
- UNITS_CHANGED,
- POLARITY_CHANGED,
- DELTA_CHANGED,
- LAST_SIGNAL
+ VALUE_CHANGED,
+ UNITS_CHANGED,
+ POLARITY_CHANGED,
+ DELTA_CHANGED,
+ LAST_SIGNAL
};
static guint date_delta_signals [LAST_SIGNAL] = { 0 };
@@ -75,206 +75,208 @@
GType
gnc_date_delta_get_type (void)
{
- static GType date_delta_type = 0;
-
- if (date_delta_type == 0) {
- GTypeInfo date_delta_info = {
- sizeof (GNCDateDeltaClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_date_delta_class_init,
- NULL,
- NULL,
- sizeof (GNCDateDelta),
- 0,
- (GInstanceInitFunc) gnc_date_delta_init
- };
-
- date_delta_type = g_type_register_static (gtk_hbox_get_type (),
- "GNCDateDelta",
- &date_delta_info,
- 0);
- }
-
- return date_delta_type;
+ static GType date_delta_type = 0;
+
+ if (date_delta_type == 0)
+ {
+ GTypeInfo date_delta_info =
+ {
+ sizeof (GNCDateDeltaClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_date_delta_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCDateDelta),
+ 0,
+ (GInstanceInitFunc) gnc_date_delta_init
+ };
+
+ date_delta_type = g_type_register_static (gtk_hbox_get_type (),
+ "GNCDateDelta",
+ &date_delta_info,
+ 0);
+ }
+
+ return date_delta_type;
}
static void
gnc_date_delta_class_init (GNCDateDeltaClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- date_delta_signals [VALUE_CHANGED] =
- g_signal_new ("value_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCDateDeltaClass, value_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ date_delta_signals [VALUE_CHANGED] =
+ g_signal_new ("value_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCDateDeltaClass, value_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
- date_delta_signals [UNITS_CHANGED] =
- g_signal_new ("units_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCDateDeltaClass, units_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ date_delta_signals [UNITS_CHANGED] =
+ g_signal_new ("units_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCDateDeltaClass, units_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
- date_delta_signals [POLARITY_CHANGED] =
- g_signal_new ("polarity_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCDateDeltaClass, polarity_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- date_delta_signals [DELTA_CHANGED] =
- g_signal_new ("delta_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCDateDeltaClass, delta_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ date_delta_signals [POLARITY_CHANGED] =
+ g_signal_new ("polarity_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCDateDeltaClass, polarity_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
- container_class->forall = gnc_date_delta_forall;
+ date_delta_signals [DELTA_CHANGED] =
+ g_signal_new ("delta_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCDateDeltaClass, delta_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ container_class->forall = gnc_date_delta_forall;
}
static void
gnc_date_delta_init (GNCDateDelta *gdd)
{
- gdd->value_spin = NULL;
- gdd->units_combo = NULL;
- gdd->polarity_combo = NULL;
+ gdd->value_spin = NULL;
+ gdd->units_combo = NULL;
+ gdd->polarity_combo = NULL;
- gdd->units = 0;
- gdd->polarity = 0;
+ gdd->units = 0;
+ gdd->polarity = 0;
- gdd->show_polarity = FALSE;
+ gdd->show_polarity = FALSE;
}
static void
gnc_date_delta_forall (GtkContainer *container, gboolean include_internals,
GtkCallback callback, gpointer callback_data)
{
- g_return_if_fail (container != NULL);
- g_return_if_fail (GNC_IS_DATE_DELTA (container));
- g_return_if_fail (callback != NULL);
+ g_return_if_fail (container != NULL);
+ g_return_if_fail (GNC_IS_DATE_DELTA (container));
+ g_return_if_fail (callback != NULL);
- /* Let GtkBox handle things only if the internal widgets need to be
- * poked.
- */
- if (include_internals)
- if (GTK_CONTAINER_CLASS (parent_class)->forall)
- (* GTK_CONTAINER_CLASS (parent_class)->forall)
- (container, include_internals, callback, callback_data);
+ /* Let GtkBox handle things only if the internal widgets need to be
+ * poked.
+ */
+ if (include_internals)
+ if (GTK_CONTAINER_CLASS (parent_class)->forall)
+ (* GTK_CONTAINER_CLASS (parent_class)->forall)
+ (container, include_internals, callback, callback_data);
}
static void
value_changed(GtkEditable *editable, gpointer data)
{
- GNCDateDelta *gdd = GNC_DATE_DELTA(data);
+ GNCDateDelta *gdd = GNC_DATE_DELTA(data);
- g_signal_emit(gdd, date_delta_signals [VALUE_CHANGED], 0);
- g_signal_emit(gdd, date_delta_signals [DELTA_CHANGED], 0);
+ g_signal_emit(gdd, date_delta_signals [VALUE_CHANGED], 0);
+ g_signal_emit(gdd, date_delta_signals [DELTA_CHANGED], 0);
}
static void
set_units (GtkComboBox *combo, GNCDateDelta *gdd)
{
- gint active;
+ gint active;
- active = gtk_combo_box_get_active(GTK_COMBO_BOX(gdd->units_combo));
- if ((active < GNC_DATE_DELTA_DAYS) || (active > GNC_DATE_DELTA_YEARS))
- active = GNC_DATE_DELTA_DAYS;
- gdd->units = active;
+ active = gtk_combo_box_get_active(GTK_COMBO_BOX(gdd->units_combo));
+ if ((active < GNC_DATE_DELTA_DAYS) || (active > GNC_DATE_DELTA_YEARS))
+ active = GNC_DATE_DELTA_DAYS;
+ gdd->units = active;
- g_signal_emit (gdd, date_delta_signals [UNITS_CHANGED], 0);
- g_signal_emit (gdd, date_delta_signals [DELTA_CHANGED], 0);
+ g_signal_emit (gdd, date_delta_signals [UNITS_CHANGED], 0);
+ g_signal_emit (gdd, date_delta_signals [DELTA_CHANGED], 0);
}
static void
fill_units_combo(GNCDateDelta *gdd)
{
- gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
- _("Days"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
- _("Weeks"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
- _("Months"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
- _("Years"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
+ _("Days"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
+ _("Weeks"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
+ _("Months"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->units_combo),
+ _("Years"));
- g_signal_connect (gdd->units_combo, "changed",
- G_CALLBACK (set_units), gdd);
+ g_signal_connect (gdd->units_combo, "changed",
+ G_CALLBACK (set_units), gdd);
}
static void
set_polarity (GtkComboBox *combo, GNCDateDelta *gdd)
{
- gint active;
+ gint active;
- active = gtk_combo_box_get_active(GTK_COMBO_BOX(gdd->units_combo));
- if ((active < GNC_DATE_DELTA_PAST) || (active > GNC_DATE_DELTA_FUTURE))
- active = GNC_DATE_DELTA_PAST;
- gdd->polarity = active;
+ active = gtk_combo_box_get_active(GTK_COMBO_BOX(gdd->units_combo));
+ if ((active < GNC_DATE_DELTA_PAST) || (active > GNC_DATE_DELTA_FUTURE))
+ active = GNC_DATE_DELTA_PAST;
+ gdd->polarity = active;
- g_signal_emit (gdd, date_delta_signals [POLARITY_CHANGED], 0);
- g_signal_emit (gdd, date_delta_signals [DELTA_CHANGED], 0);
+ g_signal_emit (gdd, date_delta_signals [POLARITY_CHANGED], 0);
+ g_signal_emit (gdd, date_delta_signals [DELTA_CHANGED], 0);
}
static void
fill_polarity_combo(GNCDateDelta *gdd)
{
- gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->polarity_combo),
- _("Ago"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->polarity_combo),
- _("From Now"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->polarity_combo),
+ _("Ago"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(gdd->polarity_combo),
+ _("From Now"));
- g_signal_connect (gdd->polarity_combo, "changed",
- G_CALLBACK(set_polarity), gdd);
+ g_signal_connect (gdd->polarity_combo, "changed",
+ G_CALLBACK(set_polarity), gdd);
}
static void
create_children (GNCDateDelta *gdd)
{
- GtkObject *adj;
+ GtkObject *adj;
- adj = gtk_adjustment_new(1.0, 1.0, 1000.0, 1.0, 5.0, 5.0);
- gdd->value_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1.0, 0);
- gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(gdd->value_spin), TRUE);
- gtk_box_pack_start(GTK_BOX(gdd), gdd->value_spin, FALSE, FALSE, 0);
- gtk_widget_show(gdd->value_spin);
+ adj = gtk_adjustment_new(1.0, 1.0, 1000.0, 1.0, 5.0, 5.0);
+ gdd->value_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1.0, 0);
+ gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(gdd->value_spin), TRUE);
+ gtk_box_pack_start(GTK_BOX(gdd), gdd->value_spin, FALSE, FALSE, 0);
+ gtk_widget_show(gdd->value_spin);
- g_signal_connect(gdd->value_spin, "changed",
- G_CALLBACK(value_changed), gdd);
+ g_signal_connect(gdd->value_spin, "changed",
+ G_CALLBACK(value_changed), gdd);
- gdd->units_combo = gtk_combo_box_new_text();
- fill_units_combo(gdd);
- gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->units_combo), 0);
- gtk_box_pack_start(GTK_BOX(gdd), gdd->units_combo, FALSE, FALSE, 0);
- gtk_widget_show(gdd->units_combo);
+ gdd->units_combo = gtk_combo_box_new_text();
+ fill_units_combo(gdd);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->units_combo), 0);
+ gtk_box_pack_start(GTK_BOX(gdd), gdd->units_combo, FALSE, FALSE, 0);
+ gtk_widget_show(gdd->units_combo);
- gdd->polarity_combo = gtk_combo_box_new_text();
- fill_polarity_combo(gdd);
- gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->polarity_combo), 0);
- gtk_box_pack_start(GTK_BOX(gdd), gdd->polarity_combo, FALSE, FALSE, 0);
- if (gdd->show_polarity)
- gtk_widget_show(gdd->polarity_combo);
+ gdd->polarity_combo = gtk_combo_box_new_text();
+ fill_polarity_combo(gdd);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->polarity_combo), 0);
+ gtk_box_pack_start(GTK_BOX(gdd), gdd->polarity_combo, FALSE, FALSE, 0);
+ if (gdd->show_polarity)
+ gtk_widget_show(gdd->polarity_combo);
}
/**
@@ -284,21 +286,21 @@
* Creates a new GNCDateDelta widget which can be used to provide
* an easy to use way for entering time deltas in terms of 7 days,
* 5 weeks, 2 months, etc.
- *
+ *
* Returns a GNCDateDelta widget.
*/
GtkWidget *
gnc_date_delta_new (gboolean show_polarity)
{
- GNCDateDelta *gdd;
+ GNCDateDelta *gdd;
- gdd = g_object_new (gnc_date_delta_get_type (), NULL);
+ gdd = g_object_new (gnc_date_delta_get_type (), NULL);
- gdd->show_polarity = show_polarity;
+ gdd->show_polarity = show_polarity;
- create_children (gdd);
+ create_children (gdd);
- return GTK_WIDGET (gdd);
+ return GTK_WIDGET (gdd);
}
/**
@@ -311,10 +313,10 @@
void
gnc_date_delta_set_value (GNCDateDelta *gdd, int value)
{
- g_return_if_fail(gdd != NULL);
- g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
+ g_return_if_fail(gdd != NULL);
+ g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(gdd->value_spin), value);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(gdd->value_spin), value);
}
/**
@@ -326,10 +328,10 @@
int
gnc_date_delta_get_value (GNCDateDelta *gdd)
{
- g_return_val_if_fail(gdd != NULL, 0);
- g_return_val_if_fail(GNC_IS_DATE_DELTA(gdd), 0);
+ g_return_val_if_fail(gdd != NULL, 0);
+ g_return_val_if_fail(GNC_IS_DATE_DELTA(gdd), 0);
- return gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gdd->value_spin));
+ return gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gdd->value_spin));
}
/**
@@ -342,13 +344,13 @@
void
gnc_date_delta_set_units (GNCDateDelta *gdd, GNCDateDeltaUnits units)
{
- g_return_if_fail(gdd != NULL);
- g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
- g_return_if_fail((units >= 0) && (units < GNC_DATE_DELTA_NUM_UNITS));
+ g_return_if_fail(gdd != NULL);
+ g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
+ g_return_if_fail((units >= 0) && (units < GNC_DATE_DELTA_NUM_UNITS));
- gdd->units = units;
+ gdd->units = units;
- gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->units_combo), units);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->units_combo), units);
}
/**
@@ -360,10 +362,10 @@
GNCDateDeltaUnits
gnc_date_delta_get_units (GNCDateDelta *gdd)
{
- g_return_val_if_fail(gdd != NULL, GNC_DATE_DELTA_DAYS);
- g_return_val_if_fail(GNC_IS_DATE_DELTA(gdd), GNC_DATE_DELTA_DAYS);
+ g_return_val_if_fail(gdd != NULL, GNC_DATE_DELTA_DAYS);
+ g_return_val_if_fail(GNC_IS_DATE_DELTA(gdd), GNC_DATE_DELTA_DAYS);
- return gdd->units;
+ return gdd->units;
}
/**
@@ -376,14 +378,14 @@
void
gnc_date_delta_set_polarity (GNCDateDelta *gdd, GNCDateDeltaPolarity polarity)
{
- g_return_if_fail(gdd != NULL);
- g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
- g_return_if_fail((polarity >= 0) &&
- (polarity < GNC_DATE_DELTA_NUM_POLARITY));
+ g_return_if_fail(gdd != NULL);
+ g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
+ g_return_if_fail((polarity >= 0) &&
+ (polarity < GNC_DATE_DELTA_NUM_POLARITY));
- gdd->polarity = polarity;
+ gdd->polarity = polarity;
- gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->polarity_combo), polarity);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gdd->polarity_combo), polarity);
}
/**
@@ -395,10 +397,10 @@
GNCDateDeltaPolarity
gnc_date_delta_get_polarity (GNCDateDelta *gdd)
{
- g_return_val_if_fail(gdd != NULL, GNC_DATE_DELTA_PAST);
- g_return_val_if_fail(GNC_IS_DATE_DELTA(gdd), GNC_DATE_DELTA_PAST);
+ g_return_val_if_fail(gdd != NULL, GNC_DATE_DELTA_PAST);
+ g_return_val_if_fail(GNC_IS_DATE_DELTA(gdd), GNC_DATE_DELTA_PAST);
- return gdd->polarity;
+ return gdd->polarity;
}
/**
@@ -411,13 +413,13 @@
void
gnc_date_delta_show_polarity (GNCDateDelta *gdd, gboolean show_polarity)
{
- g_return_if_fail(gdd != NULL);
- g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
+ g_return_if_fail(gdd != NULL);
+ g_return_if_fail(GNC_IS_DATE_DELTA(gdd));
- gdd->show_polarity = show_polarity;
+ gdd->show_polarity = show_polarity;
- if (show_polarity)
- gtk_widget_show(gdd->polarity_combo);
- else
- gtk_widget_hide(gdd->polarity_combo);
+ if (show_polarity)
+ gtk_widget_show(gdd->polarity_combo);
+ else
+ gtk_widget_hide(gdd->polarity_combo);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-date-delta.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-delta.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-date-delta.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -29,20 +29,22 @@
*/
#ifndef GNC_DATE_DELTA_H
-#define GNC_DATE_DELTA_H
+#define GNC_DATE_DELTA_H
-typedef enum {
- GNC_DATE_DELTA_DAYS,
- GNC_DATE_DELTA_WEEKS,
- GNC_DATE_DELTA_MONTHS,
- GNC_DATE_DELTA_YEARS,
- GNC_DATE_DELTA_NUM_UNITS
+typedef enum
+{
+ GNC_DATE_DELTA_DAYS,
+ GNC_DATE_DELTA_WEEKS,
+ GNC_DATE_DELTA_MONTHS,
+ GNC_DATE_DELTA_YEARS,
+ GNC_DATE_DELTA_NUM_UNITS
} GNCDateDeltaUnits;
-typedef enum {
- GNC_DATE_DELTA_PAST,
- GNC_DATE_DELTA_FUTURE,
- GNC_DATE_DELTA_NUM_POLARITY
+typedef enum
+{
+ GNC_DATE_DELTA_PAST,
+ GNC_DATE_DELTA_FUTURE,
+ GNC_DATE_DELTA_NUM_POLARITY
} GNCDateDeltaPolarity;
#define GNC_TYPE_DATE_DELTA (gnc_date_delta_get_type())
@@ -50,25 +52,27 @@
#define GNC_DATE_DELTA_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, GNC_TYPE_DATE_DELTA, GNCDateDeltaClass)
#define GNC_IS_DATE_DELTA(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, GNC_TYPE_DATE_DELTA)
-typedef struct {
- GtkHBox hbox;
+typedef struct
+{
+ GtkHBox hbox;
- GtkWidget *value_spin;
- GtkWidget *units_combo;
- GtkWidget *polarity_combo;
+ GtkWidget *value_spin;
+ GtkWidget *units_combo;
+ GtkWidget *polarity_combo;
- GNCDateDeltaUnits units;
- GNCDateDeltaPolarity polarity;
+ GNCDateDeltaUnits units;
+ GNCDateDeltaPolarity polarity;
- gboolean show_polarity;
+ gboolean show_polarity;
} GNCDateDelta;
-typedef struct {
- GtkHBoxClass parent_class;
- void (*value_changed) (GNCDateDelta *gdd);
- void (*units_changed) (GNCDateDelta *gdd);
- void (*polarity_changed) (GNCDateDelta *gdd);
- void (*delta_changed) (GNCDateDelta *gdd);
+typedef struct
+{
+ GtkHBoxClass parent_class;
+ void (*value_changed) (GNCDateDelta *gdd);
+ void (*units_changed) (GNCDateDelta *gdd);
+ void (*polarity_changed) (GNCDateDelta *gdd);
+ void (*delta_changed) (GNCDateDelta *gdd);
} GNCDateDeltaClass;
GType gnc_date_delta_get_type (void);
Modified: gnucash/trunk/src/gnome-utils/gnc-date-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-edit.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-date-edit.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -51,10 +51,11 @@
#include "dialog-utils.h"
#include "gnc-date-edit.h"
-enum {
- DATE_CHANGED,
- TIME_CHANGED,
- LAST_SIGNAL
+enum
+{
+ DATE_CHANGED,
+ TIME_CHANGED,
+ LAST_SIGNAL
};
static QofLogModule log_module = GNC_MOD_GUI;
@@ -85,149 +86,151 @@
GType
gnc_date_edit_get_type (void)
{
- static GType date_edit_type = 0;
+ static GType date_edit_type = 0;
- if (date_edit_type == 0){
- static const GTypeInfo date_edit_info = {
- sizeof (GNCDateEditClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_date_edit_class_init,
- NULL,
- NULL,
- sizeof (GNCDateEdit),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_date_edit_init,
- NULL,
- };
+ if (date_edit_type == 0)
+ {
+ static const GTypeInfo date_edit_info =
+ {
+ sizeof (GNCDateEditClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_date_edit_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCDateEdit),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_date_edit_init,
+ NULL,
+ };
- date_edit_type = g_type_register_static (GTK_TYPE_HBOX,
- "GNCDateEdit",
- &date_edit_info, 0);
- }
+ date_edit_type = g_type_register_static (GTK_TYPE_HBOX,
+ "GNCDateEdit",
+ &date_edit_info, 0);
+ }
- return date_edit_type;
+ return date_edit_type;
}
static char *
gnc_strtok_r (char *s, const char *delim, char **save_ptr)
{
- char *token;
+ char *token;
- if (s == NULL)
- s = *save_ptr;
+ if (s == NULL)
+ s = *save_ptr;
- /* Scan leading delimiters. */
- s += strspn (s, delim);
- if (*s == '\0')
- return NULL;
+ /* Scan leading delimiters. */
+ s += strspn (s, delim);
+ if (*s == '\0')
+ return NULL;
- /* Find the end of the token. */
- token = s;
- s = strpbrk (token, delim);
- if (s == NULL)
- /* This token finishes the string. */
- *save_ptr = strchr (token, '\0');
- else
+ /* Find the end of the token. */
+ token = s;
+ s = strpbrk (token, delim);
+ if (s == NULL)
+ /* This token finishes the string. */
+ *save_ptr = strchr (token, '\0');
+ else
{
- /* Terminate the token and make *SAVE_PTR point past it. */
- *s = '\0';
- *save_ptr = s + 1;
+ /* Terminate the token and make *SAVE_PTR point past it. */
+ *s = '\0';
+ *save_ptr = s + 1;
}
- return token;
+ return token;
}
static void
gnc_date_edit_popdown(GNCDateEdit *gde)
{
- g_return_if_fail (GNC_IS_DATE_EDIT (gde));
+ g_return_if_fail (GNC_IS_DATE_EDIT (gde));
- ENTER("gde %p", gde);
+ ENTER("gde %p", gde);
- gtk_grab_remove (gde->cal_popup);
- gtk_widget_hide (gde->cal_popup);
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
+ gtk_grab_remove (gde->cal_popup);
+ gtk_widget_hide (gde->cal_popup);
+ gdk_pointer_ungrab (GDK_CURRENT_TIME);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gde->date_button),
- FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gde->date_button),
+ FALSE);
- LEAVE(" ");
+ LEAVE(" ");
}
static void
day_selected (GtkCalendar *calendar, GNCDateEdit *gde)
{
- char buffer [40];
- guint year, month, day;
+ char buffer [40];
+ guint year, month, day;
- gtk_calendar_get_date (calendar, &year, &month, &day);
+ gtk_calendar_get_date (calendar, &year, &month, &day);
- qof_print_date_dmy_buff (buffer, 40, day, month + 1, year);
- gtk_entry_set_text (GTK_ENTRY (gde->date_entry), buffer);
- g_signal_emit (G_OBJECT (gde), date_edit_signals [DATE_CHANGED], 0);
+ qof_print_date_dmy_buff (buffer, 40, day, month + 1, year);
+ gtk_entry_set_text (GTK_ENTRY (gde->date_entry), buffer);
+ g_signal_emit (G_OBJECT (gde), date_edit_signals [DATE_CHANGED], 0);
}
static void
day_selected_double_click (GtkCalendar *calendar, GNCDateEdit *gde)
{
- gnc_date_edit_popdown (gde);
+ gnc_date_edit_popdown (gde);
}
static gint
delete_popup (GtkWidget *widget, gpointer data)
{
- GNCDateEdit *gde;
+ GNCDateEdit *gde;
- gde = data;
- gnc_date_edit_popdown (gde);
+ gde = data;
+ gnc_date_edit_popdown (gde);
- return TRUE;
+ return TRUE;
}
static gint
key_press_popup (GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- GNCDateEdit *gde = data;
+ GNCDateEdit *gde = data;
- if (event->keyval != GDK_Return &&
- event->keyval != GDK_KP_Enter &&
- event->keyval != GDK_Escape)
- return date_accel_key_press(gde->date_entry, event, data);
+ if (event->keyval != GDK_Return &&
+ event->keyval != GDK_KP_Enter &&
+ event->keyval != GDK_Escape)
+ return date_accel_key_press(gde->date_entry, event, data);
- gde = data;
- g_signal_stop_emission_by_name (G_OBJECT (widget), "key-press-event");
- gnc_date_edit_popdown (gde);
+ gde = data;
+ g_signal_stop_emission_by_name (G_OBJECT (widget), "key-press-event");
+ gnc_date_edit_popdown (gde);
- return TRUE;
+ return TRUE;
}
static void
position_popup (GNCDateEdit *gde)
{
- gint x, y;
- gint bwidth, bheight;
- GtkRequisition req;
+ gint x, y;
+ gint bwidth, bheight;
+ GtkRequisition req;
- gtk_widget_size_request (gde->cal_popup, &req);
+ gtk_widget_size_request (gde->cal_popup, &req);
- gdk_window_get_origin (gde->date_button->window, &x, &y);
+ gdk_window_get_origin (gde->date_button->window, &x, &y);
- x += gde->date_button->allocation.x;
- y += gde->date_button->allocation.y;
- bwidth = gde->date_button->allocation.width;
- bheight = gde->date_button->allocation.height;
+ x += gde->date_button->allocation.x;
+ y += gde->date_button->allocation.y;
+ bwidth = gde->date_button->allocation.width;
+ bheight = gde->date_button->allocation.height;
- x += bwidth - req.width;
- y += bheight;
+ x += bwidth - req.width;
+ y += bheight;
- if (x < 0)
- x = 0;
+ if (x < 0)
+ x = 0;
- if (y < 0)
- y = 0;
+ if (y < 0)
+ y = 0;
- gtk_window_move (GTK_WINDOW (gde->cal_popup), x, y);
+ gtk_window_move (GTK_WINDOW (gde->cal_popup), x, y);
}
/* Pulled from gtkcombobox.c */
@@ -236,95 +239,95 @@
guint32 activate_time,
gboolean grab_keyboard)
{
- if ((gdk_pointer_grab (window, TRUE,
- GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
- GDK_POINTER_MOTION_MASK,
- NULL, NULL, activate_time) == 0))
- {
- if (!grab_keyboard ||
- gdk_keyboard_grab (window, TRUE,
- activate_time) == 0)
- return TRUE;
- else
+ if ((gdk_pointer_grab (window, TRUE,
+ GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
+ GDK_POINTER_MOTION_MASK,
+ NULL, NULL, activate_time) == 0))
{
- gdk_display_pointer_ungrab (gdk_drawable_get_display (window),
- activate_time);
- return FALSE;
+ if (!grab_keyboard ||
+ gdk_keyboard_grab (window, TRUE,
+ activate_time) == 0)
+ return TRUE;
+ else
+ {
+ gdk_display_pointer_ungrab (gdk_drawable_get_display (window),
+ activate_time);
+ return FALSE;
+ }
}
- }
- return FALSE;
+ return FALSE;
}
static void
gnc_date_edit_popup (GNCDateEdit *gde)
{
- GtkWidget *toplevel;
- struct tm mtm;
+ GtkWidget *toplevel;
+ struct tm mtm;
- g_return_if_fail (GNC_IS_DATE_EDIT (gde));
+ g_return_if_fail (GNC_IS_DATE_EDIT (gde));
- ENTER("gde %p", gde);
+ ENTER("gde %p", gde);
- /* This code is pretty much just copied from gtk_date_edit_get_date */
- qof_scan_date (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
- &mtm.tm_mday, &mtm.tm_mon, &mtm.tm_year);
+ /* This code is pretty much just copied from gtk_date_edit_get_date */
+ qof_scan_date (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
+ &mtm.tm_mday, &mtm.tm_mon, &mtm.tm_year);
- mtm.tm_mon--;
+ mtm.tm_mon--;
- /* Hope the user does not actually mean years early in the A.D. days...
- * This date widget will obviously not work for a history program :-)
- */
- if (mtm.tm_year >= 1900)
- mtm.tm_year -= 1900;
+ /* Hope the user does not actually mean years early in the A.D. days...
+ * This date widget will obviously not work for a history program :-)
+ */
+ if (mtm.tm_year >= 1900)
+ mtm.tm_year -= 1900;
- gnc_tm_set_day_start(&mtm);
- if (mktime (&mtm) == (time_t) -1)
- {
- gnc_tm_get_today_start (&mtm);
- gnc_date_edit_set_time (gde, mktime (&mtm));
- }
+ gnc_tm_set_day_start(&mtm);
+ if (mktime (&mtm) == (time_t) - 1)
+ {
+ gnc_tm_get_today_start (&mtm);
+ gnc_date_edit_set_time (gde, mktime (&mtm));
+ }
- /* Set the calendar. */
- gtk_calendar_select_day (GTK_CALENDAR (gde->calendar), 1);
- gtk_calendar_select_month (GTK_CALENDAR (gde->calendar), mtm.tm_mon,
- 1900 + mtm.tm_year);
- gtk_calendar_select_day (GTK_CALENDAR (gde->calendar), mtm.tm_mday);
+ /* Set the calendar. */
+ gtk_calendar_select_day (GTK_CALENDAR (gde->calendar), 1);
+ gtk_calendar_select_month (GTK_CALENDAR (gde->calendar), mtm.tm_mon,
+ 1900 + mtm.tm_year);
+ gtk_calendar_select_day (GTK_CALENDAR (gde->calendar), mtm.tm_mday);
- /* Make sure we'll get notified of clicks outside the popup
- * window so we can properly pop down if that happens. */
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gde));
- if (GTK_IS_WINDOW (toplevel))
- {
- gtk_window_group_add_window (
- gtk_window_get_group (GTK_WINDOW (toplevel)),
- GTK_WINDOW (gde->cal_popup));
- gtk_window_set_transient_for (GTK_WINDOW (gde->cal_popup),
- GTK_WINDOW (toplevel));
- }
+ /* Make sure we'll get notified of clicks outside the popup
+ * window so we can properly pop down if that happens. */
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gde));
+ if (GTK_IS_WINDOW (toplevel))
+ {
+ gtk_window_group_add_window (
+ gtk_window_get_group (GTK_WINDOW (toplevel)),
+ GTK_WINDOW (gde->cal_popup));
+ gtk_window_set_transient_for (GTK_WINDOW (gde->cal_popup),
+ GTK_WINDOW (toplevel));
+ }
- position_popup (gde);
+ position_popup (gde);
- gtk_widget_show (gde->cal_popup);
+ gtk_widget_show (gde->cal_popup);
- gtk_widget_grab_focus (gde->cal_popup);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gde->date_button),
- TRUE);
+ gtk_widget_grab_focus (gde->cal_popup);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gde->date_button),
+ TRUE);
- if (!GTK_WIDGET_HAS_FOCUS (gde->calendar))
- gtk_widget_grab_focus (gde->calendar);
+ if (!GTK_WIDGET_HAS_FOCUS (gde->calendar))
+ gtk_widget_grab_focus (gde->calendar);
- if (!popup_grab_on_window ((GTK_WIDGET(gde->cal_popup))->window,
- GDK_CURRENT_TIME, TRUE))
- {
- gtk_widget_hide (gde->cal_popup);
- LEAVE("Failed to grab window");
- return;
- }
+ if (!popup_grab_on_window ((GTK_WIDGET(gde->cal_popup))->window,
+ GDK_CURRENT_TIME, TRUE))
+ {
+ gtk_widget_hide (gde->cal_popup);
+ LEAVE("Failed to grab window");
+ return;
+ }
- gtk_grab_add (gde->cal_popup);
+ gtk_grab_add (gde->cal_popup);
- LEAVE(" ");
+ LEAVE(" ");
}
/* This function is a customized gtk_combo_box_list_button_pressed(). */
@@ -333,37 +336,37 @@
GdkEventButton *event,
gpointer data)
{
- GNCDateEdit *gde = GNC_DATE_EDIT(data);
- GtkWidget *ewidget = gtk_get_event_widget ((GdkEvent *)event);
+ GNCDateEdit *gde = GNC_DATE_EDIT(data);
+ GtkWidget *ewidget = gtk_get_event_widget ((GdkEvent *)event);
- ENTER("widget=%p, ewidget=%p, event=%p, gde=%p", widget, ewidget, event, gde);
+ ENTER("widget=%p, ewidget=%p, event=%p, gde=%p", widget, ewidget, event, gde);
- /* While popped up, ignore presses outside the popup window. */
- if (ewidget == gde->cal_popup)
- {
- LEAVE("Press on calendar. Ignoring.");
- return TRUE;
- }
+ /* While popped up, ignore presses outside the popup window. */
+ if (ewidget == gde->cal_popup)
+ {
+ LEAVE("Press on calendar. Ignoring.");
+ return TRUE;
+ }
- /* If the press isn't to make the popup appear, just propagate it. */
- if (ewidget != gde->date_button ||
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gde->date_button)))
- {
- LEAVE("Press, not on popup button, or while popup is raised.");
- return FALSE;
- }
+ /* If the press isn't to make the popup appear, just propagate it. */
+ if (ewidget != gde->date_button ||
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gde->date_button)))
+ {
+ LEAVE("Press, not on popup button, or while popup is raised.");
+ return FALSE;
+ }
- if (!GTK_WIDGET_HAS_FOCUS (gde->date_button))
- gtk_widget_grab_focus (gde->date_button);
+ if (!GTK_WIDGET_HAS_FOCUS (gde->date_button))
+ gtk_widget_grab_focus (gde->date_button);
- gde->popup_in_progress = TRUE;
+ gde->popup_in_progress = TRUE;
- gnc_date_edit_popup (gde);
+ gnc_date_edit_popup (gde);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gde->date_button), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gde->date_button), TRUE);
- LEAVE("Popup in progress.");
- return TRUE;
+ LEAVE("Popup in progress.");
+ return TRUE;
}
static gboolean
@@ -371,297 +374,300 @@
GdkEventButton *event,
gpointer data)
{
- GNCDateEdit *gde = GNC_DATE_EDIT(data);
- GtkWidget *ewidget = gtk_get_event_widget ((GdkEvent *)event);
- gboolean popup_in_progress = FALSE;
+ GNCDateEdit *gde = GNC_DATE_EDIT(data);
+ GtkWidget *ewidget = gtk_get_event_widget ((GdkEvent *)event);
+ gboolean popup_in_progress = FALSE;
- ENTER("widget=%p, ewidget=%p, event=%p, gde=%p", widget, ewidget, event, gde);
+ ENTER("widget=%p, ewidget=%p, event=%p, gde=%p", widget, ewidget, event, gde);
- if (gde->popup_in_progress)
- {
- popup_in_progress = TRUE;
- gde->popup_in_progress = FALSE;
- }
+ if (gde->popup_in_progress)
+ {
+ popup_in_progress = TRUE;
+ gde->popup_in_progress = FALSE;
+ }
- /* Propagate releases on the calendar. */
- if (ewidget == gde->calendar)
- {
- LEAVE("Button release on calendar.");
- return FALSE;
- }
+ /* Propagate releases on the calendar. */
+ if (ewidget == gde->calendar)
+ {
+ LEAVE("Button release on calendar.");
+ return FALSE;
+ }
- if (ewidget == gde->date_button)
- {
- /* Pop down if we're up and it isn't due to the preceding press. */
- if (!popup_in_progress &&
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gde->date_button)))
+ if (ewidget == gde->date_button)
{
- gnc_date_edit_popdown (gde);
- LEAVE("Release on button, not in progress. Popped down.");
- return TRUE;
+ /* Pop down if we're up and it isn't due to the preceding press. */
+ if (!popup_in_progress &&
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gde->date_button)))
+ {
+ gnc_date_edit_popdown (gde);
+ LEAVE("Release on button, not in progress. Popped down.");
+ return TRUE;
+ }
+
+ LEAVE("Button release on button. Allowing.");
+ return FALSE;
}
- LEAVE("Button release on button. Allowing.");
- return FALSE;
- }
-
- /* Pop down on a release anywhere else. */
- gnc_date_edit_popdown (gde);
- LEAVE("Release not on button or calendar. Popping down.");
- return TRUE;
+ /* Pop down on a release anywhere else. */
+ gnc_date_edit_popdown (gde);
+ LEAVE("Release not on button or calendar. Popping down.");
+ return TRUE;
}
static void
gnc_date_edit_button_toggled (GtkWidget *widget, GNCDateEdit *gde)
{
- ENTER("widget %p, gde %p", widget, gde);
+ ENTER("widget %p, gde %p", widget, gde);
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
- {
- if (!gde->popup_in_progress)
- gnc_date_edit_popup (gde);
- }
- else
- gnc_date_edit_popdown (gde);
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
+ {
+ if (!gde->popup_in_progress)
+ gnc_date_edit_popup (gde);
+ }
+ else
+ gnc_date_edit_popdown (gde);
- LEAVE(" ");
+ LEAVE(" ");
}
-typedef struct {
- char *hour;
- GNCDateEdit *gde;
+typedef struct
+{
+ char *hour;
+ GNCDateEdit *gde;
} hour_info_t;
static void
set_time (GtkWidget *widget, hour_info_t *hit)
{
- gtk_entry_set_text (GTK_ENTRY (hit->gde->time_entry), hit->hour);
- g_signal_emit (G_OBJECT (hit->gde), date_edit_signals [TIME_CHANGED], 0);
+ gtk_entry_set_text (GTK_ENTRY (hit->gde->time_entry), hit->hour);
+ g_signal_emit (G_OBJECT (hit->gde), date_edit_signals [TIME_CHANGED], 0);
}
static void
free_resources (GtkWidget *widget, hour_info_t *hit)
{
- g_free (hit->hour);
- g_free (hit);
+ g_free (hit->hour);
+ g_free (hit);
}
static void
fill_time_popup (GtkWidget *widget, GNCDateEdit *gde)
{
- GtkWidget *menu;
- struct tm *tm_returned;
- struct tm mtm;
- time_t current_time;
- int i, j;
+ GtkWidget *menu;
+ struct tm *tm_returned;
+ struct tm mtm;
+ time_t current_time;
+ int i, j;
- if (gde->lower_hour > gde->upper_hour)
- return;
+ if (gde->lower_hour > gde->upper_hour)
+ return;
- menu = gtk_menu_new ();
- gtk_option_menu_set_menu (GTK_OPTION_MENU (gde->time_popup), menu);
+ menu = gtk_menu_new ();
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (gde->time_popup), menu);
- time (¤t_time);
- tm_returned = localtime_r (¤t_time, &mtm);
- g_return_if_fail(tm_returned != NULL);
+ time (¤t_time);
+ tm_returned = localtime_r (¤t_time, &mtm);
+ g_return_if_fail(tm_returned != NULL);
- for (i = gde->lower_hour; i <= gde->upper_hour; i++){
- GtkWidget *item, *submenu;
- hour_info_t *hit;
- char buffer [40];
+ for (i = gde->lower_hour; i <= gde->upper_hour; i++)
+ {
+ GtkWidget *item, *submenu;
+ hour_info_t *hit;
+ char buffer [40];
- mtm.tm_hour = i;
- mtm.tm_min = 0;
- hit = g_new (hour_info_t, 1);
+ mtm.tm_hour = i;
+ mtm.tm_min = 0;
+ hit = g_new (hour_info_t, 1);
- if (gde->flags & GNC_DATE_EDIT_24_HR)
- qof_strftime (buffer, sizeof (buffer), "%H:00", &mtm);
- else
- qof_strftime (buffer, sizeof (buffer), "%I:00 %p ", &mtm);
- hit->hour = g_strdup (buffer);
- hit->gde = gde;
+ if (gde->flags & GNC_DATE_EDIT_24_HR)
+ qof_strftime (buffer, sizeof (buffer), "%H:00", &mtm);
+ else
+ qof_strftime (buffer, sizeof (buffer), "%I:00 %p ", &mtm);
+ hit->hour = g_strdup (buffer);
+ hit->gde = gde;
- item = gtk_menu_item_new_with_label (buffer);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ item = gtk_menu_item_new_with_label (buffer);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
#if 0
- g_signal_connect (G_OBJECT (item), "activate",
- G_CALLBACK (set_time), hit);
+ g_signal_connect (G_OBJECT (item), "activate",
+ G_CALLBACK (set_time), hit);
#endif
- g_signal_connect (G_OBJECT (item), "destroy",
- G_CALLBACK (free_resources), hit);
- gtk_widget_show (item);
+ g_signal_connect (G_OBJECT (item), "destroy",
+ G_CALLBACK (free_resources), hit);
+ gtk_widget_show (item);
- submenu = gtk_menu_new ();
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu);
- for (j = 0; j < 60; j += 15){
- GtkWidget *mins;
+ submenu = gtk_menu_new ();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu);
+ for (j = 0; j < 60; j += 15)
+ {
+ GtkWidget *mins;
- mtm.tm_min = j;
- hit = g_new (hour_info_t, 1);
- if (gde->flags & GNC_DATE_EDIT_24_HR)
- qof_strftime (buffer, sizeof (buffer),
- "%H:%M", &mtm);
- else
- qof_strftime (buffer, sizeof (buffer),
- "%I:%M %p", &mtm);
- hit->hour = g_strdup (buffer);
- hit->gde = gde;
+ mtm.tm_min = j;
+ hit = g_new (hour_info_t, 1);
+ if (gde->flags & GNC_DATE_EDIT_24_HR)
+ qof_strftime (buffer, sizeof (buffer),
+ "%H:%M", &mtm);
+ else
+ qof_strftime (buffer, sizeof (buffer),
+ "%I:%M %p", &mtm);
+ hit->hour = g_strdup (buffer);
+ hit->gde = gde;
- mins = gtk_menu_item_new_with_label (buffer);
- gtk_menu_shell_append (GTK_MENU_SHELL (submenu), mins);
- g_signal_connect (G_OBJECT (mins), "activate",
- G_CALLBACK (set_time), hit);
- g_signal_connect (G_OBJECT (item), "destroy",
- G_CALLBACK (free_resources),
- hit);
- gtk_widget_show (mins);
- }
- }
+ mins = gtk_menu_item_new_with_label (buffer);
+ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), mins);
+ g_signal_connect (G_OBJECT (mins), "activate",
+ G_CALLBACK (set_time), hit);
+ g_signal_connect (G_OBJECT (item), "destroy",
+ G_CALLBACK (free_resources),
+ hit);
+ gtk_widget_show (mins);
+ }
+ }
}
static void
gnc_date_edit_class_init (GNCDateEditClass *klass)
{
- GtkContainerClass *container_class = (GtkContainerClass *) klass;
- GObjectClass *object_class = (GObjectClass *) klass;
+ GtkContainerClass *container_class = (GtkContainerClass *) klass;
+ GObjectClass *object_class = (GObjectClass *) klass;
- object_class = (GObjectClass*) klass;
+ object_class = (GObjectClass*) klass;
- parent_class = g_type_class_ref(GTK_TYPE_HBOX);
+ parent_class = g_type_class_ref(GTK_TYPE_HBOX);
- date_edit_signals [TIME_CHANGED] =
- g_signal_new ("time_changed",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GnomeDateEditClass, time_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ date_edit_signals [TIME_CHANGED] =
+ g_signal_new ("time_changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GnomeDateEditClass, time_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
- date_edit_signals [DATE_CHANGED] =
- g_signal_new ("date_changed",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GnomeDateEditClass, date_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ date_edit_signals [DATE_CHANGED] =
+ g_signal_new ("date_changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GnomeDateEditClass, date_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
- container_class->forall = gnc_date_edit_forall;
+ container_class->forall = gnc_date_edit_forall;
- object_class->dispose = gnc_date_edit_dispose;
- object_class->finalize = gnc_date_edit_finalize;
+ object_class->dispose = gnc_date_edit_dispose;
+ object_class->finalize = gnc_date_edit_finalize;
- klass->date_changed = NULL;
- klass->time_changed = NULL;
+ klass->date_changed = NULL;
+ klass->time_changed = NULL;
}
static void
gnc_date_edit_init (GNCDateEdit *gde)
{
- gde->disposed = FALSE;
- gde->popup_in_progress = FALSE;
- gde->lower_hour = 7;
- gde->upper_hour = 19;
- gde->flags = GNC_DATE_EDIT_SHOW_TIME;
+ gde->disposed = FALSE;
+ gde->popup_in_progress = FALSE;
+ gde->lower_hour = 7;
+ gde->upper_hour = 19;
+ gde->flags = GNC_DATE_EDIT_SHOW_TIME;
}
static void
gnc_date_edit_finalize (GObject *object)
{
- GNCDateEdit *gde;
+ GNCDateEdit *gde;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_DATE_EDIT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_DATE_EDIT (object));
- gde = GNC_DATE_EDIT (object);
+ gde = GNC_DATE_EDIT (object);
- if (G_OBJECT_CLASS (parent_class)->finalize)
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ (* G_OBJECT_CLASS (parent_class)->finalize) (object);
}
static void
gnc_date_edit_dispose (GObject *object)
{
- GNCDateEdit *gde;
+ GNCDateEdit *gde;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_DATE_EDIT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_DATE_EDIT (object));
- gde = GNC_DATE_EDIT (object);
+ gde = GNC_DATE_EDIT (object);
- if(gde->disposed)
- return;
+ if (gde->disposed)
+ return;
- gde->disposed = TRUE;
+ gde->disposed = TRUE;
- /* Only explicitly destroy the toplevel elements */
+ /* Only explicitly destroy the toplevel elements */
- gtk_widget_destroy (GTK_WIDGET(gde->date_entry));
- gde->date_entry = NULL;
+ gtk_widget_destroy (GTK_WIDGET(gde->date_entry));
+ gde->date_entry = NULL;
- gtk_widget_destroy (GTK_WIDGET(gde->date_button));
- gde->date_button= NULL;
+ gtk_widget_destroy (GTK_WIDGET(gde->date_button));
+ gde->date_button = NULL;
- gtk_widget_destroy (GTK_WIDGET(gde->time_entry));
- gde->time_entry = NULL;
+ gtk_widget_destroy (GTK_WIDGET(gde->time_entry));
+ gde->time_entry = NULL;
- gtk_widget_destroy (GTK_WIDGET(gde->time_popup));
- gde->time_popup = NULL;
+ gtk_widget_destroy (GTK_WIDGET(gde->time_popup));
+ gde->time_popup = NULL;
- if (G_OBJECT_CLASS (parent_class)->dispose)
- (* G_OBJECT_CLASS (parent_class)->dispose) (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ (* G_OBJECT_CLASS (parent_class)->dispose) (object);
}
static void
gnc_date_edit_forall (GtkContainer *container, gboolean include_internals,
GtkCallback callback, gpointer callback_data)
{
- g_return_if_fail (container != NULL);
- g_return_if_fail (GNC_IS_DATE_EDIT (container));
- g_return_if_fail (callback != NULL);
+ g_return_if_fail (container != NULL);
+ g_return_if_fail (GNC_IS_DATE_EDIT (container));
+ g_return_if_fail (callback != NULL);
- /* Let GtkBox handle things only if the internal widgets need
- * to be poked. */
- if (!include_internals)
- return;
+ /* Let GtkBox handle things only if the internal widgets need
+ * to be poked. */
+ if (!include_internals)
+ return;
- if (!GTK_CONTAINER_CLASS (parent_class)->forall)
- return;
+ if (!GTK_CONTAINER_CLASS (parent_class)->forall)
+ return;
- GTK_CONTAINER_CLASS (parent_class)->forall (container,
- include_internals,
- callback,
- callback_data);
+ GTK_CONTAINER_CLASS (parent_class)->forall (container,
+ include_internals,
+ callback,
+ callback_data);
}
static void
gnc_date_edit_set_time_tm (GNCDateEdit *gde, struct tm *mytm)
{
- char buffer [40];
+ char buffer [40];
- g_return_if_fail(mytm != NULL);
+ g_return_if_fail(mytm != NULL);
- /* Update the date text. */
- qof_print_date_dmy_buff(buffer, 40,
- mytm->tm_mday,
- mytm->tm_mon + 1,
- 1900 + mytm->tm_year);
- gtk_entry_set_text(GTK_ENTRY(gde->date_entry), buffer);
+ /* Update the date text. */
+ qof_print_date_dmy_buff(buffer, 40,
+ mytm->tm_mday,
+ mytm->tm_mon + 1,
+ 1900 + mytm->tm_year);
+ gtk_entry_set_text(GTK_ENTRY(gde->date_entry), buffer);
- /* Update the calendar. */
- gtk_calendar_select_day(GTK_CALENDAR (gde->calendar), 1);
- gtk_calendar_select_month(GTK_CALENDAR (gde->calendar),
- mytm->tm_mon, 1900 + mytm->tm_year);
- gtk_calendar_select_day(GTK_CALENDAR (gde->calendar), mytm->tm_mday);
+ /* Update the calendar. */
+ gtk_calendar_select_day(GTK_CALENDAR (gde->calendar), 1);
+ gtk_calendar_select_month(GTK_CALENDAR (gde->calendar),
+ mytm->tm_mon, 1900 + mytm->tm_year);
+ gtk_calendar_select_day(GTK_CALENDAR (gde->calendar), mytm->tm_mday);
- /* Set the time of day. */
- if (gde->flags & GNC_DATE_EDIT_24_HR)
- qof_strftime (buffer, sizeof (buffer), "%H:%M", mytm);
- else
- qof_strftime (buffer, sizeof (buffer), "%I:%M %p", mytm);
- gtk_entry_set_text(GTK_ENTRY(gde->time_entry), buffer);
+ /* Set the time of day. */
+ if (gde->flags & GNC_DATE_EDIT_24_HR)
+ qof_strftime (buffer, sizeof (buffer), "%H:%M", mytm);
+ else
+ qof_strftime (buffer, sizeof (buffer), "%I:%M %p", mytm);
+ gtk_entry_set_text(GTK_ENTRY(gde->time_entry), buffer);
}
/**
@@ -675,48 +681,48 @@
void
gnc_date_edit_set_time (GNCDateEdit *gde, time_t the_time)
{
- struct tm *tm_returned;
- struct tm tm_to_set;
+ struct tm *tm_returned;
+ struct tm tm_to_set;
- g_return_if_fail (gde != NULL);
- g_return_if_fail (GNC_IS_DATE_EDIT (gde));
+ g_return_if_fail (gde != NULL);
+ g_return_if_fail (GNC_IS_DATE_EDIT (gde));
- /* If the_time is invalid, use the last valid time
- * seen (or as a last resort, the current date). */
- if (the_time == (time_t) -1)
- {
- if (gde->initial_time == (time_t) -1)
+ /* If the_time is invalid, use the last valid time
+ * seen (or as a last resort, the current date). */
+ if (the_time == (time_t) - 1)
+ {
+ if (gde->initial_time == (time_t) - 1)
gde->initial_time = gnc_timet_get_today_start();
- the_time = gde->initial_time;
- }
- else
- gde->initial_time = the_time;
+ the_time = gde->initial_time;
+ }
+ else
+ gde->initial_time = the_time;
- /* Convert time_t to tm. */
- tm_returned = localtime_r (&the_time, &tm_to_set);
- g_return_if_fail(tm_returned != NULL);
+ /* Convert time_t to tm. */
+ tm_returned = localtime_r (&the_time, &tm_to_set);
+ g_return_if_fail(tm_returned != NULL);
- gnc_date_edit_set_time_tm(gde, &tm_to_set);
+ gnc_date_edit_set_time_tm(gde, &tm_to_set);
}
void
gnc_date_edit_set_gdate (GNCDateEdit *gde, const GDate *date)
{
- struct tm mytm;
- time_t t;
+ struct tm mytm;
+ time_t t;
- g_return_if_fail(gde && GNC_IS_DATE_EDIT(gde) &&
- date && g_date_valid(date));
- g_date_to_struct_tm(date, &mytm);
- t = mktime(&mytm);
- if (t != (time_t)(-1))
- gnc_date_edit_set_time(gde, t);
+ g_return_if_fail(gde && GNC_IS_DATE_EDIT(gde) &&
+ date && g_date_valid(date));
+ g_date_to_struct_tm(date, &mytm);
+ t = mktime(&mytm);
+ if (t != (time_t)(-1))
+ gnc_date_edit_set_time(gde, t);
}
void
gnc_date_edit_set_time_ts (GNCDateEdit *gde, Timespec the_time)
{
- gnc_date_edit_set_time (gde, the_time.tv_sec);
+ gnc_date_edit_set_time (gde, the_time.tv_sec);
}
/**
@@ -731,172 +737,173 @@
void
gnc_date_edit_set_popup_range (GNCDateEdit *gde, int low_hour, int up_hour)
{
- g_return_if_fail (gde != NULL);
- g_return_if_fail (GNC_IS_DATE_EDIT (gde));
+ g_return_if_fail (gde != NULL);
+ g_return_if_fail (GNC_IS_DATE_EDIT (gde));
- gde->lower_hour = low_hour;
- gde->upper_hour = up_hour;
+ gde->lower_hour = low_hour;
+ gde->upper_hour = up_hour;
- fill_time_popup(NULL, gde);
+ fill_time_popup(NULL, gde);
}
/* This code should be kept in sync with src/register/datecell.c */
static int
date_accel_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- GNCDateEdit *gde = data;
- G_CONST_RETURN char *string;
- struct tm tm;
+ GNCDateEdit *gde = data;
+ G_CONST_RETURN char *string;
+ struct tm tm;
- string = gtk_entry_get_text (GTK_ENTRY (widget));
+ string = gtk_entry_get_text (GTK_ENTRY (widget));
- tm = gnc_date_edit_get_date_internal (gde);
+ tm = gnc_date_edit_get_date_internal (gde);
- if (!gnc_handle_date_accelerator (event, &tm, string))
- return FALSE;
+ if (!gnc_handle_date_accelerator (event, &tm, string))
+ return FALSE;
- gnc_date_edit_set_time (gde, mktime (&tm));
+ gnc_date_edit_set_time (gde, mktime (&tm));
- g_signal_emit (G_OBJECT (gde), date_edit_signals [TIME_CHANGED], 0);
- return TRUE;
+ g_signal_emit (G_OBJECT (gde), date_edit_signals [TIME_CHANGED], 0);
+ return TRUE;
}
static gint
key_press_entry (GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- if (!date_accel_key_press(widget, event, data))
- return FALSE;
+ if (!date_accel_key_press(widget, event, data))
+ return FALSE;
- g_signal_stop_emission_by_name (widget, "key-press-event");
- return TRUE;
+ g_signal_stop_emission_by_name (widget, "key-press-event");
+ return TRUE;
}
static int
date_focus_out_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- GNCDateEdit *gde = data;
- struct tm tm;
+ GNCDateEdit *gde = data;
+ struct tm tm;
- /* Get the date entered and attempt to use it. */
- tm = gnc_date_edit_get_date_internal (gde);
- gnc_date_edit_set_time (gde, mktime (&tm));
+ /* Get the date entered and attempt to use it. */
+ tm = gnc_date_edit_get_date_internal (gde);
+ gnc_date_edit_set_time (gde, mktime (&tm));
- /* Get the date again in case it was invalid the first time. */
- tm = gnc_date_edit_get_date_internal (gde);
+ /* Get the date again in case it was invalid the first time. */
+ tm = gnc_date_edit_get_date_internal (gde);
- g_signal_emit (gde, date_edit_signals [DATE_CHANGED], 0);
- g_signal_emit (gde, date_edit_signals [TIME_CHANGED], 0);
+ g_signal_emit (gde, date_edit_signals [DATE_CHANGED], 0);
+ g_signal_emit (gde, date_edit_signals [TIME_CHANGED], 0);
- return FALSE;
+ return FALSE;
}
static void
create_children (GNCDateEdit *gde)
{
- GtkWidget *frame;
- GtkWidget *hbox;
- GtkWidget *arrow;
+ GtkWidget *frame;
+ GtkWidget *hbox;
+ GtkWidget *arrow;
- /* Create the text entry area. */
- gde->date_entry = gtk_entry_new ();
- gtk_entry_set_width_chars (GTK_ENTRY (gde->date_entry), 11);
- gtk_box_pack_start (GTK_BOX (gde), gde->date_entry, TRUE, TRUE, 0);
- gtk_widget_show (GTK_WIDGET(gde->date_entry));
- g_signal_connect (G_OBJECT (gde->date_entry), "key-press-event",
- G_CALLBACK (key_press_entry), gde);
- g_signal_connect (G_OBJECT (gde->date_entry), "focus-out-event",
- G_CALLBACK (date_focus_out_event), gde);
+ /* Create the text entry area. */
+ gde->date_entry = gtk_entry_new ();
+ gtk_entry_set_width_chars (GTK_ENTRY (gde->date_entry), 11);
+ gtk_box_pack_start (GTK_BOX (gde), gde->date_entry, TRUE, TRUE, 0);
+ gtk_widget_show (GTK_WIDGET(gde->date_entry));
+ g_signal_connect (G_OBJECT (gde->date_entry), "key-press-event",
+ G_CALLBACK (key_press_entry), gde);
+ g_signal_connect (G_OBJECT (gde->date_entry), "focus-out-event",
+ G_CALLBACK (date_focus_out_event), gde);
- /* Create the popup button. */
- gde->date_button = gtk_toggle_button_new ();
- g_signal_connect (gde->date_button, "button-press-event",
- G_CALLBACK(gnc_date_edit_button_pressed), gde);
- g_signal_connect (G_OBJECT (gde->date_button), "toggled",
- G_CALLBACK (gnc_date_edit_button_toggled), gde);
- gtk_box_pack_start (GTK_BOX (gde), gde->date_button, FALSE, FALSE, 0);
+ /* Create the popup button. */
+ gde->date_button = gtk_toggle_button_new ();
+ g_signal_connect (gde->date_button, "button-press-event",
+ G_CALLBACK(gnc_date_edit_button_pressed), gde);
+ g_signal_connect (G_OBJECT (gde->date_button), "toggled",
+ G_CALLBACK (gnc_date_edit_button_toggled), gde);
+ gtk_box_pack_start (GTK_BOX (gde), gde->date_button, FALSE, FALSE, 0);
- hbox = gtk_hbox_new (FALSE, 3);
- gtk_container_add (GTK_CONTAINER (gde->date_button), hbox);
- gtk_widget_show (GTK_WIDGET(hbox));
+ hbox = gtk_hbox_new (FALSE, 3);
+ gtk_container_add (GTK_CONTAINER (gde->date_button), hbox);
+ gtk_widget_show (GTK_WIDGET(hbox));
- /* Calendar label, only shown if the date editor has a time field */
- gde->cal_label = gtk_label_new (_("Calendar"));
- gtk_misc_set_alignment (GTK_MISC (gde->cal_label), 0.0, 0.5);
- gtk_box_pack_start (GTK_BOX (hbox), gde->cal_label, TRUE, TRUE, 0);
- if (gde->flags & GNC_DATE_EDIT_SHOW_TIME)
- gtk_widget_show (GTK_WIDGET(gde->cal_label));
+ /* Calendar label, only shown if the date editor has a time field */
+ gde->cal_label = gtk_label_new (_("Calendar"));
+ gtk_misc_set_alignment (GTK_MISC (gde->cal_label), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (hbox), gde->cal_label, TRUE, TRUE, 0);
+ if (gde->flags & GNC_DATE_EDIT_SHOW_TIME)
+ gtk_widget_show (GTK_WIDGET(gde->cal_label));
- /* Graphic for the popup button. */
- arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
- gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, FALSE, 0);
- gtk_widget_show (GTK_WIDGET(arrow));
+ /* Graphic for the popup button. */
+ arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
+ gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, FALSE, 0);
+ gtk_widget_show (GTK_WIDGET(arrow));
- gtk_widget_show (GTK_WIDGET(gde->date_button));
+ gtk_widget_show (GTK_WIDGET(gde->date_button));
- /* Time entry controls. */
- gde->time_entry = gtk_entry_new ();
- gtk_entry_set_max_length (GTK_ENTRY(gde->time_entry), 12);
- gtk_widget_set_size_request (GTK_WIDGET(gde->time_entry), 88, -1);
- gtk_box_pack_start (GTK_BOX (gde), gde->time_entry, TRUE, TRUE, 0);
+ /* Time entry controls. */
+ gde->time_entry = gtk_entry_new ();
+ gtk_entry_set_max_length (GTK_ENTRY(gde->time_entry), 12);
+ gtk_widget_set_size_request (GTK_WIDGET(gde->time_entry), 88, -1);
+ gtk_box_pack_start (GTK_BOX (gde), gde->time_entry, TRUE, TRUE, 0);
- gde->time_popup = gtk_option_menu_new ();
- gtk_box_pack_start (GTK_BOX (gde), gde->time_popup, FALSE, FALSE, 0);
+ gde->time_popup = gtk_option_menu_new ();
+ gtk_box_pack_start (GTK_BOX (gde), gde->time_popup, FALSE, FALSE, 0);
- /* We do not create the popup menu with the hour range until we are
- * realized, so that it uses the values that the user might supply in a
- * future call to gnc_date_edit_set_popup_range
- */
- g_signal_connect (G_OBJECT (gde), "realize",
- G_CALLBACK (fill_time_popup), gde);
+ /* We do not create the popup menu with the hour range until we are
+ * realized, so that it uses the values that the user might supply in a
+ * future call to gnc_date_edit_set_popup_range
+ */
+ g_signal_connect (G_OBJECT (gde), "realize",
+ G_CALLBACK (fill_time_popup), gde);
- if (gde->flags & GNC_DATE_EDIT_SHOW_TIME) {
- gtk_widget_show (GTK_WIDGET(gde->time_entry));
- gtk_widget_show (GTK_WIDGET(gde->time_popup));
- }
+ if (gde->flags & GNC_DATE_EDIT_SHOW_TIME)
+ {
+ gtk_widget_show (GTK_WIDGET(gde->time_entry));
+ gtk_widget_show (GTK_WIDGET(gde->time_popup));
+ }
- gde->cal_popup = gtk_window_new (GTK_WINDOW_POPUP);
- gtk_widget_set_name (gde->cal_popup, "gnc-date-edit-popup-window");
+ gde->cal_popup = gtk_window_new (GTK_WINDOW_POPUP);
+ gtk_widget_set_name (gde->cal_popup, "gnc-date-edit-popup-window");
gtk_window_set_type_hint (GTK_WINDOW (gde->cal_popup),
GDK_WINDOW_TYPE_HINT_COMBO);
- gtk_widget_set_events (GTK_WIDGET(gde->cal_popup),
- gtk_widget_get_events (GTK_WIDGET(gde->cal_popup)) |
- GDK_KEY_PRESS_MASK);
+ gtk_widget_set_events (GTK_WIDGET(gde->cal_popup),
+ gtk_widget_get_events (GTK_WIDGET(gde->cal_popup)) |
+ GDK_KEY_PRESS_MASK);
- g_signal_connect (gde->cal_popup, "delete-event",
- G_CALLBACK(delete_popup), gde);
- g_signal_connect (gde->cal_popup, "key-press-event",
- G_CALLBACK(key_press_popup), gde);
- g_signal_connect (gde->cal_popup, "button-press-event",
- G_CALLBACK(gnc_date_edit_button_pressed), gde);
- g_signal_connect (gde->cal_popup, "button-release-event",
- G_CALLBACK(gnc_date_edit_button_released), gde);
- gtk_window_set_resizable (GTK_WINDOW (gde->cal_popup), FALSE);
- gtk_window_set_screen (GTK_WINDOW (gde->cal_popup),
- gtk_widget_get_screen (GTK_WIDGET (gde)));
+ g_signal_connect (gde->cal_popup, "delete-event",
+ G_CALLBACK(delete_popup), gde);
+ g_signal_connect (gde->cal_popup, "key-press-event",
+ G_CALLBACK(key_press_popup), gde);
+ g_signal_connect (gde->cal_popup, "button-press-event",
+ G_CALLBACK(gnc_date_edit_button_pressed), gde);
+ g_signal_connect (gde->cal_popup, "button-release-event",
+ G_CALLBACK(gnc_date_edit_button_released), gde);
+ gtk_window_set_resizable (GTK_WINDOW (gde->cal_popup), FALSE);
+ gtk_window_set_screen (GTK_WINDOW (gde->cal_popup),
+ gtk_widget_get_screen (GTK_WIDGET (gde)));
- frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
- gtk_container_add (GTK_CONTAINER (gde->cal_popup), frame);
- gtk_widget_show (GTK_WIDGET(frame));
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
+ gtk_container_add (GTK_CONTAINER (gde->cal_popup), frame);
+ gtk_widget_show (GTK_WIDGET(frame));
- gde->calendar = gtk_calendar_new ();
- gtk_calendar_set_display_options
- (GTK_CALENDAR (gde->calendar),
- (GTK_CALENDAR_SHOW_DAY_NAMES
- | GTK_CALENDAR_SHOW_HEADING
- | ((gde->flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)
- ? GTK_CALENDAR_WEEK_START_MONDAY : 0)));
- g_signal_connect (gde->calendar, "button-release-event",
- G_CALLBACK(gnc_date_edit_button_released), gde);
- g_signal_connect (G_OBJECT (gde->calendar), "day-selected",
- G_CALLBACK (day_selected), gde);
- g_signal_connect (G_OBJECT (gde->calendar),
- "day-selected-double-click",
- G_CALLBACK (day_selected_double_click), gde);
- gtk_container_add (GTK_CONTAINER (frame), gde->calendar);
- gtk_widget_show (GTK_WIDGET(gde->calendar));
+ gde->calendar = gtk_calendar_new ();
+ gtk_calendar_set_display_options
+ (GTK_CALENDAR (gde->calendar),
+ (GTK_CALENDAR_SHOW_DAY_NAMES
+ | GTK_CALENDAR_SHOW_HEADING
+ | ((gde->flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)
+ ? GTK_CALENDAR_WEEK_START_MONDAY : 0)));
+ g_signal_connect (gde->calendar, "button-release-event",
+ G_CALLBACK(gnc_date_edit_button_released), gde);
+ g_signal_connect (G_OBJECT (gde->calendar), "day-selected",
+ G_CALLBACK (day_selected), gde);
+ g_signal_connect (G_OBJECT (gde->calendar),
+ "day-selected-double-click",
+ G_CALLBACK (day_selected_double_click), gde);
+ gtk_container_add (GTK_CONTAINER (frame), gde->calendar);
+ gtk_widget_show (GTK_WIDGET(gde->calendar));
}
/**
@@ -913,16 +920,16 @@
GtkWidget *
gnc_date_edit_new (time_t the_time, int show_time, int use_24_format)
{
- return gnc_date_edit_new_flags
- (the_time,
- ((show_time ? GNC_DATE_EDIT_SHOW_TIME : 0)
- | (use_24_format ? GNC_DATE_EDIT_24_HR : 0)));
+ return gnc_date_edit_new_flags
+ (the_time,
+ ((show_time ? GNC_DATE_EDIT_SHOW_TIME : 0)
+ | (use_24_format ? GNC_DATE_EDIT_24_HR : 0)));
}
GtkWidget *
gnc_date_edit_new_ts (Timespec the_time, int show_time, int use_24_format)
{
- return gnc_date_edit_new (the_time.tv_sec, show_time, use_24_format);
+ return gnc_date_edit_new (the_time.tv_sec, show_time, use_24_format);
}
@@ -934,15 +941,15 @@
*/
GtkWidget *
gnc_date_edit_new_glade (gchar *widget_name,
- gchar *string1, gchar *string2,
- gint int1, gint int2)
+ gchar *string1, gchar *string2,
+ gint int1, gint int2)
{
- GtkWidget *widget;
+ GtkWidget *widget;
- /* None of the standard glade arguments are used. */
- widget = gnc_date_edit_new(time(NULL), FALSE, FALSE);
- gtk_widget_show(widget);
- return widget;
+ /* None of the standard glade arguments are used. */
+ widget = gnc_date_edit_new(time(NULL), FALSE, FALSE);
+ gtk_widget_show(widget);
+ return widget;
}
@@ -958,80 +965,87 @@
GtkWidget *
gnc_date_edit_new_flags (time_t the_time, GNCDateEditFlags flags)
{
- GNCDateEdit *gde;
+ GNCDateEdit *gde;
- gde = g_object_new (GNC_TYPE_DATE_EDIT, NULL, NULL);
+ gde = g_object_new (GNC_TYPE_DATE_EDIT, NULL, NULL);
- gde->flags = flags;
- gde->initial_time = -1;
- create_children (gde);
- gnc_date_edit_set_time (gde, the_time);
+ gde->flags = flags;
+ gde->initial_time = -1;
+ create_children (gde);
+ gnc_date_edit_set_time (gde, the_time);
- return GTK_WIDGET (gde);
+ return GTK_WIDGET (gde);
}
static struct tm
gnc_date_edit_get_date_internal (GNCDateEdit *gde)
{
- struct tm tm = {0};
- char *str;
- gchar *flags = NULL;
+ struct tm tm = {0};
+ char *str;
+ gchar *flags = NULL;
- /* Assert, because we're just hosed if it's NULL */
- g_assert(gde != NULL);
- g_assert(GNC_IS_DATE_EDIT(gde));
+ /* Assert, because we're just hosed if it's NULL */
+ g_assert(gde != NULL);
+ g_assert(GNC_IS_DATE_EDIT(gde));
- qof_scan_date (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
- &tm.tm_mday, &tm.tm_mon, &tm.tm_year);
+ qof_scan_date (gtk_entry_get_text (GTK_ENTRY (gde->date_entry)),
+ &tm.tm_mday, &tm.tm_mon, &tm.tm_year);
- tm.tm_mon--;
+ tm.tm_mon--;
- /* Hope the user does not actually mean years early in the A.D. days...
- * This date widget will obviously not work for a history program :-)
- */
- if (tm.tm_year >= 1900)
- tm.tm_year -= 1900;
+ /* Hope the user does not actually mean years early in the A.D. days...
+ * This date widget will obviously not work for a history program :-)
+ */
+ if (tm.tm_year >= 1900)
+ tm.tm_year -= 1900;
- if (gde->flags & GNC_DATE_EDIT_SHOW_TIME) {
- char *tokp = NULL;
- gchar *temp;
+ if (gde->flags & GNC_DATE_EDIT_SHOW_TIME)
+ {
+ char *tokp = NULL;
+ gchar *temp;
- str = g_strdup (gtk_entry_get_text
- (GTK_ENTRY (gde->time_entry)));
- temp = gnc_strtok_r (str, ": ", &tokp);
- if (temp) {
- tm.tm_hour = atoi (temp);
- temp = gnc_strtok_r (NULL, ": ", &tokp);
- if (temp) {
- if (isdigit (*temp)) {
- tm.tm_min = atoi (temp);
- flags = gnc_strtok_r (NULL, ": ",
- &tokp);
- if (flags && isdigit (*flags)) {
- tm.tm_sec = atoi (flags);
- flags = gnc_strtok_r (NULL,
- ": ",
- &tokp);
- }
- } else
- flags = temp;
- }
- }
+ str = g_strdup (gtk_entry_get_text
+ (GTK_ENTRY (gde->time_entry)));
+ temp = gnc_strtok_r (str, ": ", &tokp);
+ if (temp)
+ {
+ tm.tm_hour = atoi (temp);
+ temp = gnc_strtok_r (NULL, ": ", &tokp);
+ if (temp)
+ {
+ if (isdigit (*temp))
+ {
+ tm.tm_min = atoi (temp);
+ flags = gnc_strtok_r (NULL, ": ",
+ &tokp);
+ if (flags && isdigit (*flags))
+ {
+ tm.tm_sec = atoi (flags);
+ flags = gnc_strtok_r (NULL,
+ ": ",
+ &tokp);
+ }
+ }
+ else
+ flags = temp;
+ }
+ }
- if (flags && (strcasecmp (flags, "PM") == 0)){
- if (tm.tm_hour < 12)
- tm.tm_hour += 12;
- }
- g_free (str);
- }
- else
+ if (flags && (strcasecmp (flags, "PM") == 0))
{
- gnc_tm_set_day_start(&tm);
+ if (tm.tm_hour < 12)
+ tm.tm_hour += 12;
}
+ g_free (str);
+ }
+ else
+ {
+ gnc_tm_set_day_start(&tm);
+ }
- tm.tm_isdst = -1;
+ tm.tm_isdst = -1;
- return tm;
+ return tm;
}
/**
@@ -1043,45 +1057,45 @@
time_t
gnc_date_edit_get_date (GNCDateEdit *gde)
{
- struct tm tm;
- time_t retval;
+ struct tm tm;
+ time_t retval;
- g_return_val_if_fail (gde != NULL, 0);
- g_return_val_if_fail (GNC_IS_DATE_EDIT (gde), 0);
+ g_return_val_if_fail (gde != NULL, 0);
+ g_return_val_if_fail (GNC_IS_DATE_EDIT (gde), 0);
- tm = gnc_date_edit_get_date_internal (gde);
+ tm = gnc_date_edit_get_date_internal (gde);
- retval = mktime (&tm);
- if (retval == (time_t) -1)
- {
- if (gde->initial_time == (time_t) -1)
+ retval = mktime (&tm);
+ if (retval == (time_t) - 1)
+ {
+ if (gde->initial_time == (time_t) - 1)
return gnc_timet_get_today_start ();
- else
+ else
return gde->initial_time;
- }
- return retval;
+ }
+ return retval;
}
void
gnc_date_edit_get_gdate (GNCDateEdit *gde, GDate *date)
{
- time_t t;
+ time_t t;
- g_return_if_fail (gde && date);
- g_return_if_fail (GNC_IS_DATE_EDIT (gde));
+ g_return_if_fail (gde && date);
+ g_return_if_fail (GNC_IS_DATE_EDIT (gde));
- t = gnc_date_edit_get_date(gde);
- g_date_set_time_t(date, t);
+ t = gnc_date_edit_get_date(gde);
+ g_date_set_time_t(date, t);
}
Timespec
gnc_date_edit_get_date_ts (GNCDateEdit *gde)
{
- Timespec ts = { 0, 0 };
+ Timespec ts = { 0, 0 };
- ts.tv_sec = gnc_date_edit_get_date (gde);
+ ts.tv_sec = gnc_date_edit_get_date (gde);
- return ts;
+ return ts;
}
/**
@@ -1094,32 +1108,32 @@
time_t
gnc_date_edit_get_date_end (GNCDateEdit *gde)
{
- struct tm tm;
+ struct tm tm;
- g_return_val_if_fail (gde != NULL, 0);
- g_return_val_if_fail (GNC_IS_DATE_EDIT (gde), 0);
+ g_return_val_if_fail (gde != NULL, 0);
+ g_return_val_if_fail (GNC_IS_DATE_EDIT (gde), 0);
- tm = gnc_date_edit_get_date_internal (gde);
- gnc_tm_set_day_end(&tm);
+ tm = gnc_date_edit_get_date_internal (gde);
+ gnc_tm_set_day_end(&tm);
- if (mktime (&tm) == (time_t) -1)
- {
- if (gde->initial_time == (time_t) -1)
+ if (mktime (&tm) == (time_t) - 1)
+ {
+ if (gde->initial_time == (time_t) - 1)
return gnc_timet_get_today_end();
- else
+ else
return gnc_timet_get_day_end(gde->initial_time);
- }
- return mktime (&tm);
+ }
+ return mktime (&tm);
}
Timespec
gnc_date_edit_get_date_end_ts (GNCDateEdit *gde)
{
- Timespec ts = { 0, 0 };
+ Timespec ts = { 0, 0 };
- ts.tv_sec = gnc_date_edit_get_date_end (gde);
+ ts.tv_sec = gnc_date_edit_get_date_end (gde);
- return ts;
+ return ts;
}
/**
@@ -1132,44 +1146,49 @@
void
gnc_date_edit_set_flags (GNCDateEdit *gde, GNCDateEditFlags flags)
{
- GNCDateEditFlags old_flags;
+ GNCDateEditFlags old_flags;
- g_return_if_fail (gde != NULL);
- g_return_if_fail (GNC_IS_DATE_EDIT (gde));
+ g_return_if_fail (gde != NULL);
+ g_return_if_fail (GNC_IS_DATE_EDIT (gde));
- old_flags = gde->flags;
- gde->flags = flags;
+ old_flags = gde->flags;
+ gde->flags = flags;
- if ((flags & GNC_DATE_EDIT_SHOW_TIME) !=
- (old_flags & GNC_DATE_EDIT_SHOW_TIME)) {
- if (flags & GNC_DATE_EDIT_SHOW_TIME) {
- gtk_widget_show (gde->cal_label);
- gtk_widget_show (gde->time_entry);
- gtk_widget_show (gde->time_popup);
- } else {
- gtk_widget_hide (gde->cal_label);
- gtk_widget_hide (gde->time_entry);
- gtk_widget_hide (gde->time_popup);
- }
- }
+ if ((flags & GNC_DATE_EDIT_SHOW_TIME) !=
+ (old_flags & GNC_DATE_EDIT_SHOW_TIME))
+ {
+ if (flags & GNC_DATE_EDIT_SHOW_TIME)
+ {
+ gtk_widget_show (gde->cal_label);
+ gtk_widget_show (gde->time_entry);
+ gtk_widget_show (gde->time_popup);
+ }
+ else
+ {
+ gtk_widget_hide (gde->cal_label);
+ gtk_widget_hide (gde->time_entry);
+ gtk_widget_hide (gde->time_popup);
+ }
+ }
- if ((flags & GNC_DATE_EDIT_24_HR) != (old_flags & GNC_DATE_EDIT_24_HR))
- /* This will destroy the old menu properly */
- fill_time_popup (GTK_WIDGET (gde), gde);
+ if ((flags & GNC_DATE_EDIT_24_HR) != (old_flags & GNC_DATE_EDIT_24_HR))
+ /* This will destroy the old menu properly */
+ fill_time_popup (GTK_WIDGET (gde), gde);
- if ((flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)
- != (old_flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)) {
- if (flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)
- gtk_calendar_display_options
- (GTK_CALENDAR (gde->calendar),
- (GTK_CALENDAR (gde->calendar)->display_flags
- | GTK_CALENDAR_WEEK_START_MONDAY));
- else
- gtk_calendar_display_options
- (GTK_CALENDAR (gde->calendar),
- (GTK_CALENDAR (gde->calendar)->display_flags
- & ~GTK_CALENDAR_WEEK_START_MONDAY));
- }
+ if ((flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)
+ != (old_flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY))
+ {
+ if (flags & GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY)
+ gtk_calendar_display_options
+ (GTK_CALENDAR (gde->calendar),
+ (GTK_CALENDAR (gde->calendar)->display_flags
+ | GTK_CALENDAR_WEEK_START_MONDAY));
+ else
+ gtk_calendar_display_options
+ (GTK_CALENDAR (gde->calendar),
+ (GTK_CALENDAR (gde->calendar)->display_flags
+ & ~GTK_CALENDAR_WEEK_START_MONDAY));
+ }
}
/**
@@ -1183,10 +1202,10 @@
int
gnc_date_edit_get_flags (GNCDateEdit *gde)
{
- g_return_val_if_fail (gde != NULL, 0);
- g_return_val_if_fail (GNC_IS_DATE_EDIT (gde), 0);
+ g_return_val_if_fail (gde != NULL, 0);
+ g_return_val_if_fail (GNC_IS_DATE_EDIT (gde), 0);
- return gde->flags;
+ return gde->flags;
}
/**
@@ -1201,8 +1220,8 @@
void
gnc_date_activates_default (GNCDateEdit *gde, gboolean state)
{
- if (!gde)
- return;
+ if (!gde)
+ return;
gtk_entry_set_activates_default(GTK_ENTRY(gde->date_entry), state);
}
@@ -1217,10 +1236,10 @@
void
gnc_date_grab_focus (GNCDateEdit *gde)
{
- if (!gde)
- return;
+ if (!gde)
+ return;
- gtk_widget_grab_focus (gde->date_entry);
+ gtk_widget_grab_focus (gde->date_entry);
}
/** Sets the editable field from a GNCDateEdit widget as the target
* for the specified label's access key.
@@ -1232,10 +1251,10 @@
void
gnc_date_make_mnemonic_target (GNCDateEdit *gde, GtkWidget *label)
{
- if (!gde)
- return;
+ if (!gde)
+ return;
- gtk_label_set_mnemonic_widget (GTK_LABEL(label), gde->date_entry);
+ gtk_label_set_mnemonic_widget (GTK_LABEL(label), gde->date_entry);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-date-edit.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-edit.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-date-edit.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -29,16 +29,17 @@
*/
#ifndef GNC_DATE_EDIT_H
-#define GNC_DATE_EDIT_H
+#define GNC_DATE_EDIT_H
#include <glib.h>
#include <time.h>
#include "gnc-date.h"
-typedef enum {
- GNC_DATE_EDIT_SHOW_TIME = 1 << 0,
- GNC_DATE_EDIT_24_HR = 1 << 1,
- GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY = 1 << 2,
+typedef enum
+{
+ GNC_DATE_EDIT_SHOW_TIME = 1 << 0,
+ GNC_DATE_EDIT_24_HR = 1 << 1,
+ GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY = 1 << 2,
} GNCDateEditFlags;
#define GNC_TYPE_DATE_EDIT (gnc_date_edit_get_type ())
@@ -55,43 +56,45 @@
* added the register date hotkeys.
* \endverbatim
**/
-typedef struct {
- GtkHBox hbox;
+typedef struct
+{
+ GtkHBox hbox;
- GtkWidget *date_entry;
- GtkWidget *date_button;
+ GtkWidget *date_entry;
+ GtkWidget *date_button;
- GtkWidget *time_entry;
- GtkWidget *time_popup;
+ GtkWidget *time_entry;
+ GtkWidget *time_popup;
- GtkWidget *cal_label;
- GtkWidget *cal_popup;
- GtkWidget *calendar;
+ GtkWidget *cal_label;
+ GtkWidget *cal_popup;
+ GtkWidget *calendar;
- time_t initial_time;
+ time_t initial_time;
- int lower_hour;
- int upper_hour;
-
- int flags;
+ int lower_hour;
+ int upper_hour;
- int disposed;
+ int flags;
- gboolean popup_in_progress;
+ int disposed;
+
+ gboolean popup_in_progress;
} GNCDateEdit;
-typedef struct {
- GtkHBoxClass parent_class;
- void (*date_changed) (GNCDateEdit *gde);
- void (*time_changed) (GNCDateEdit *gde);
+typedef struct
+{
+ GtkHBoxClass parent_class;
+ void (*date_changed) (GNCDateEdit *gde);
+ void (*time_changed) (GNCDateEdit *gde);
} GNCDateEditClass;
GType gnc_date_edit_get_type (void);
GtkWidget *gnc_date_edit_new (time_t the_time,
- int show_time, int use_24_format);
+ int show_time, int use_24_format);
GtkWidget *gnc_date_edit_new_ts (Timespec the_time,
- int show_time, int use_24_format);
+ int show_time, int use_24_format);
/**
* Create a new GncDateEdit widget from a glade file. The widget
@@ -110,18 +113,18 @@
* @return A pointer to the newly created GncDateEdit widget.
*/
GtkWidget *gnc_date_edit_new_glade (gchar *widget_name,
- gchar *string1, gchar *string2,
- gint int1, gint int2);
+ gchar *string1, gchar *string2,
+ gint int1, gint int2);
GtkWidget *gnc_date_edit_new_flags (time_t the_time,
- GNCDateEditFlags flags);
+ GNCDateEditFlags flags);
void gnc_date_edit_set_gdate (GNCDateEdit *gde, const GDate *date);
void gnc_date_edit_set_time (GNCDateEdit *gde, time_t the_time);
void gnc_date_edit_set_time_ts (GNCDateEdit *gde, Timespec the_time);
void gnc_date_edit_set_popup_range (GNCDateEdit *gde,
- int low_hour, int up_hour);
+ int low_hour, int up_hour);
void gnc_date_edit_get_gdate (GNCDateEdit *gde, GDate *date);
time_t gnc_date_edit_get_date (GNCDateEdit *gde);
@@ -130,7 +133,7 @@
Timespec gnc_date_edit_get_date_end_ts (GNCDateEdit *gde);
void gnc_date_edit_set_flags (GNCDateEdit *gde,
- GNCDateEditFlags flags);
+ GNCDateEditFlags flags);
int gnc_date_edit_get_flags (GNCDateEdit *gde);
void gnc_date_activates_default (GNCDateEdit *gde, gboolean state);
Modified: gnucash/trunk/src/gnome-utils/gnc-date-format.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-format.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-date-format.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -48,30 +48,32 @@
/* Perhaps it's better just to use MAX_DATE_LENGTH defined in gnc-date.h */
#define MAX_DATE_LEN 80
-enum {
- FORMAT_CHANGED,
- LAST_SIGNAL
+enum
+{
+ FORMAT_CHANGED,
+ LAST_SIGNAL
};
typedef struct _GNCDateFormatPriv GNCDateFormatPriv;
-struct _GNCDateFormatPriv {
- GtkWidget* format_combobox;
+struct _GNCDateFormatPriv
+{
+ GtkWidget* format_combobox;
- GtkWidget* label;
+ GtkWidget* label;
- GtkWidget* months_label;
- GtkWidget* months_number;
- GtkWidget* months_abbrev;
- GtkWidget* months_name;
+ GtkWidget* months_label;
+ GtkWidget* months_number;
+ GtkWidget* months_abbrev;
+ GtkWidget* months_name;
- GtkWidget* years_label;
- GtkWidget* years_button;
+ GtkWidget* years_label;
+ GtkWidget* years_button;
- GtkWidget* custom_label;
- GtkWidget* custom_entry;
+ GtkWidget* custom_label;
+ GtkWidget* custom_entry;
- GtkWidget* sample_label;
+ GtkWidget* sample_label;
};
#define GNC_DATE_FORMAT_GET_PRIVATE(o) \
@@ -98,116 +100,118 @@
GType
gnc_date_format_get_type (void)
{
- static GType date_format_type = 0;
+ static GType date_format_type = 0;
- if (!date_format_type){
- static const GTypeInfo date_format_info = {
- sizeof (GNCDateFormatClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_date_format_class_init,
- NULL,
- NULL,
- sizeof (GNCDateFormat),
- 0,
- (GInstanceInitFunc) gnc_date_format_init,
- NULL,
- };
+ if (!date_format_type)
+ {
+ static const GTypeInfo date_format_info =
+ {
+ sizeof (GNCDateFormatClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_date_format_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCDateFormat),
+ 0,
+ (GInstanceInitFunc) gnc_date_format_init,
+ NULL,
+ };
- date_format_type = g_type_register_static(GTK_TYPE_HBOX,
- "GNCDateFormat",
- &date_format_info, 0);
- }
-
- return date_format_type;
+ date_format_type = g_type_register_static(GTK_TYPE_HBOX,
+ "GNCDateFormat",
+ &date_format_info, 0);
+ }
+
+ return date_format_type;
}
static void
gnc_date_format_class_init (GNCDateFormatClass *klass)
{
- GObjectClass *gobject_class = (GObjectClass *) klass;
+ GObjectClass *gobject_class = (GObjectClass *) klass;
- parent_class = g_type_class_peek_parent(klass);
+ parent_class = g_type_class_peek_parent(klass);
- gobject_class->finalize = gnc_date_format_finalize;
+ gobject_class->finalize = gnc_date_format_finalize;
- g_type_class_add_private(klass, sizeof(GNCDateFormatPriv));
+ g_type_class_add_private(klass, sizeof(GNCDateFormatPriv));
- date_format_signals [FORMAT_CHANGED] =
- g_signal_new ("format_changed",
- G_OBJECT_CLASS_TYPE (gobject_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GNCDateFormatClass, format_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ date_format_signals [FORMAT_CHANGED] =
+ g_signal_new ("format_changed",
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GNCDateFormatClass, format_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
static void
gnc_date_format_init (GNCDateFormat *gdf)
{
- GNCDateFormatPriv *priv;
- GladeXML *xml;
- GtkWidget *dialog, *table;
+ GNCDateFormatPriv *priv;
+ GladeXML *xml;
+ GtkWidget *dialog, *table;
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- /* Open up the Glade and set the signals */
- xml = gnc_glade_xml_new("gnc-date-format.glade", "GNC Date Format");
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, gdf);
+ /* Open up the Glade and set the signals */
+ xml = gnc_glade_xml_new("gnc-date-format.glade", "GNC Date Format");
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, gdf);
- /* pull in all the child widgets */
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- priv->label = glade_xml_get_widget(xml, "widget_label");
- priv->format_combobox = glade_xml_get_widget(xml, "format_combobox");
+ /* pull in all the child widgets */
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ priv->label = glade_xml_get_widget(xml, "widget_label");
+ priv->format_combobox = glade_xml_get_widget(xml, "format_combobox");
- priv->months_label = glade_xml_get_widget(xml, "months_label");
- priv->months_number = glade_xml_get_widget(xml, "month_number_button");
- priv->months_abbrev = glade_xml_get_widget(xml, "month_abbrev_button");
- priv->months_name = glade_xml_get_widget(xml, "month_name_button");
+ priv->months_label = glade_xml_get_widget(xml, "months_label");
+ priv->months_number = glade_xml_get_widget(xml, "month_number_button");
+ priv->months_abbrev = glade_xml_get_widget(xml, "month_abbrev_button");
+ priv->months_name = glade_xml_get_widget(xml, "month_name_button");
- priv->years_label = glade_xml_get_widget(xml, "years_label");
- priv->years_button = glade_xml_get_widget(xml, "years_button");
+ priv->years_label = glade_xml_get_widget(xml, "years_label");
+ priv->years_button = glade_xml_get_widget(xml, "years_button");
- priv->custom_label = glade_xml_get_widget(xml, "format_label");
- priv->custom_entry = glade_xml_get_widget(xml, "format_entry");
+ priv->custom_label = glade_xml_get_widget(xml, "format_label");
+ priv->custom_entry = glade_xml_get_widget(xml, "format_entry");
- priv->sample_label = glade_xml_get_widget(xml, "sample_label");
+ priv->sample_label = glade_xml_get_widget(xml, "sample_label");
- /* Set initial format to gnucash default */
- gnc_date_format_set_format(gdf, qof_date_format_get());
+ /* Set initial format to gnucash default */
+ gnc_date_format_set_format(gdf, qof_date_format_get());
- /* pull in the dialog and table widgets and play the reconnect game */
- dialog = glade_xml_get_widget(xml, "GNC Date Format");
+ /* pull in the dialog and table widgets and play the reconnect game */
+ dialog = glade_xml_get_widget(xml, "GNC Date Format");
- table = glade_xml_get_widget(xml, "date_format_table");
- g_object_ref(G_OBJECT(table));
- gtk_container_remove(GTK_CONTAINER(dialog), table);
- gtk_container_add(GTK_CONTAINER(gdf), table);
- g_object_unref(G_OBJECT(table));
+ table = glade_xml_get_widget(xml, "date_format_table");
+ g_object_ref(G_OBJECT(table));
+ gtk_container_remove(GTK_CONTAINER(dialog), table);
+ gtk_container_add(GTK_CONTAINER(gdf), table);
+ g_object_unref(G_OBJECT(table));
- /* Destroy the now empty window */
- gtk_widget_destroy(dialog);
+ /* Destroy the now empty window */
+ gtk_widget_destroy(dialog);
}
static void
gnc_date_format_finalize (GObject *object)
{
- GNCDateFormat *gdf;
- GNCDateFormatPriv *priv;
+ GNCDateFormat *gdf;
+ GNCDateFormatPriv *priv;
- g_return_if_fail(object != NULL);
- g_return_if_fail(GNC_IS_DATE_FORMAT(object));
+ g_return_if_fail(object != NULL);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(object));
- gdf = GNC_DATE_FORMAT(object);
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gdf = GNC_DATE_FORMAT(object);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- if (G_OBJECT_CLASS(parent_class)->finalize)
- (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+ if (G_OBJECT_CLASS(parent_class)->finalize)
+ (* G_OBJECT_CLASS(parent_class)->finalize) (object);
}
@@ -216,26 +220,26 @@
*
* Creates a new GNCDateFormat widget which can be used to provide
* an easy to use way for entering date formats and seeing the sample.
- *
+ *
* Returns a GNCDateFormat widget.
*/
GtkWidget *
gnc_date_format_new (void)
{
- return gnc_date_format_new_with_label (NULL);
+ return gnc_date_format_new_with_label (NULL);
}
GtkWidget *
gnc_date_format_new_without_label (void)
{
- GtkWidget *widget = gnc_date_format_new_with_label(NULL);
- GNCDateFormat *gdf = GNC_DATE_FORMAT(widget);
- GNCDateFormatPriv *priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ GtkWidget *widget = gnc_date_format_new_with_label(NULL);
+ GNCDateFormat *gdf = GNC_DATE_FORMAT(widget);
+ GNCDateFormatPriv *priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_widget_destroy(priv->label);
- priv->label = NULL;
+ gtk_widget_destroy(priv->label);
+ priv->label = NULL;
- return widget;
+ return widget;
}
/**
@@ -244,290 +248,298 @@
*
* Creates a new GNCDateFormat widget which can be used to provide
* an easy to use way for entering date formats and seeing the sample.
- *
+ *
* Returns a GNCDateFormat widget.
*/
GtkWidget *
gnc_date_format_new_with_label (const char *label)
{
- GNCDateFormat *gdf;
- GNCDateFormatPriv *priv;
+ GNCDateFormat *gdf;
+ GNCDateFormatPriv *priv;
- gdf = g_object_new(GNC_TYPE_DATE_FORMAT, NULL);
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gdf = g_object_new(GNC_TYPE_DATE_FORMAT, NULL);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- if (label)
- gtk_label_set_text(GTK_LABEL(priv->label), label);
+ if (label)
+ gtk_label_set_text(GTK_LABEL(priv->label), label);
- gnc_date_format_compute_format(gdf);
- return GTK_WIDGET(gdf);
+ gnc_date_format_compute_format(gdf);
+ return GTK_WIDGET(gdf);
}
void
gnc_date_format_set_format (GNCDateFormat *gdf, QofDateFormat format)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_combo_box_set_active(GTK_COMBO_BOX(priv->format_combobox), format);
- gnc_date_format_compute_format(gdf);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(priv->format_combobox), format);
+ gnc_date_format_compute_format(gdf);
}
QofDateFormat
gnc_date_format_get_format (GNCDateFormat *gdf)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_val_if_fail (gdf, QOF_DATE_FORMAT_LOCALE);
- g_return_val_if_fail (GNC_IS_DATE_FORMAT(gdf), QOF_DATE_FORMAT_LOCALE);
+ g_return_val_if_fail (gdf, QOF_DATE_FORMAT_LOCALE);
+ g_return_val_if_fail (GNC_IS_DATE_FORMAT(gdf), QOF_DATE_FORMAT_LOCALE);
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- return gtk_combo_box_get_active(GTK_COMBO_BOX(priv->format_combobox));
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ return gtk_combo_box_get_active(GTK_COMBO_BOX(priv->format_combobox));
}
void
gnc_date_format_set_months (GNCDateFormat *gdf, GNCDateMonthFormat months)
{
- GNCDateFormatPriv *priv;
- GtkWidget *button = NULL;
+ GNCDateFormatPriv *priv;
+ GtkWidget *button = NULL;
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- switch (months) {
- case GNCDATE_MONTH_NUMBER:
- button = priv->months_number;
- break;
- case GNCDATE_MONTH_ABBREV:
- button = priv->months_abbrev;
- break;
- case GNCDATE_MONTH_NAME:
- button = priv->months_name;
- break;
- default:
- break;
- }
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ switch (months)
+ {
+ case GNCDATE_MONTH_NUMBER:
+ button = priv->months_number;
+ break;
+ case GNCDATE_MONTH_ABBREV:
+ button = priv->months_abbrev;
+ break;
+ case GNCDATE_MONTH_NAME:
+ button = priv->months_name;
+ break;
+ default:
+ break;
+ }
- g_return_if_fail(button);
+ g_return_if_fail(button);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
- gnc_date_format_compute_format(gdf);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+ gnc_date_format_compute_format(gdf);
}
GNCDateMonthFormat
gnc_date_format_get_months (GNCDateFormat *gdf)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_val_if_fail(gdf, GNCDATE_MONTH_NUMBER);
- g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), GNCDATE_MONTH_NUMBER);
+ g_return_val_if_fail(gdf, GNCDATE_MONTH_NUMBER);
+ g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), GNCDATE_MONTH_NUMBER);
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_number)))
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_number)))
+ return GNCDATE_MONTH_NUMBER;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_abbrev)))
+ return GNCDATE_MONTH_ABBREV;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_name)))
+ return GNCDATE_MONTH_ABBREV;
+
+ /* We should never reach this point */
+ g_assert(FALSE);
return GNCDATE_MONTH_NUMBER;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_abbrev)))
- return GNCDATE_MONTH_ABBREV;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_name)))
- return GNCDATE_MONTH_ABBREV;
-
- /* We should never reach this point */
- g_assert(FALSE);
- return GNCDATE_MONTH_NUMBER;
}
void
gnc_date_format_set_years (GNCDateFormat *gdf, gboolean include_century)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->years_button),
- include_century);
- gnc_date_format_compute_format(gdf);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->years_button),
+ include_century);
+ gnc_date_format_compute_format(gdf);
}
gboolean
gnc_date_format_get_years (GNCDateFormat *gdf)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_val_if_fail(gdf, FALSE);
- g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), FALSE);
+ g_return_val_if_fail(gdf, FALSE);
+ g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), FALSE);
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->years_button));
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->years_button));
}
void
gnc_date_format_set_custom (GNCDateFormat *gdf, const char *format)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- if (format == NULL || *format == '\0')
- return;
+ if (format == NULL || *format == '\0')
+ return;
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_entry_set_text(GTK_ENTRY(priv->custom_entry), format);
- gnc_date_format_compute_format(gdf);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gtk_entry_set_text(GTK_ENTRY(priv->custom_entry), format);
+ gnc_date_format_compute_format(gdf);
}
const char *
gnc_date_format_get_custom (GNCDateFormat *gdf)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- g_return_val_if_fail(gdf, "");
- g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), "");
+ g_return_val_if_fail(gdf, "");
+ g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), "");
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- return gtk_entry_get_text(GTK_ENTRY(priv->custom_entry));
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ return gtk_entry_get_text(GTK_ENTRY(priv->custom_entry));
}
void
gnc_ui_date_format_changed_cb(GtkWidget *unused, gpointer user_data)
{
- GNCDateFormat * gdf = user_data;
+ GNCDateFormat * gdf = user_data;
- gnc_date_format_compute_format(gdf);
+ gnc_date_format_compute_format(gdf);
}
static void
gnc_date_format_enable_month (GNCDateFormat *gdf, gboolean sensitive)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_widget_set_sensitive(priv->months_label, sensitive);
- gtk_widget_set_sensitive(priv->months_number, sensitive);
- gtk_widget_set_sensitive(priv->months_abbrev, sensitive);
- gtk_widget_set_sensitive(priv->months_name, sensitive);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gtk_widget_set_sensitive(priv->months_label, sensitive);
+ gtk_widget_set_sensitive(priv->months_number, sensitive);
+ gtk_widget_set_sensitive(priv->months_abbrev, sensitive);
+ gtk_widget_set_sensitive(priv->months_name, sensitive);
}
static void
gnc_date_format_enable_year (GNCDateFormat *gdf, gboolean sensitive)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_widget_set_sensitive(priv->years_label, sensitive);
- gtk_widget_set_sensitive(priv->years_button, sensitive);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gtk_widget_set_sensitive(priv->years_label, sensitive);
+ gtk_widget_set_sensitive(priv->years_button, sensitive);
}
static void
gnc_date_format_enable_format (GNCDateFormat *gdf, gboolean sensitive)
{
- GNCDateFormatPriv *priv;
+ GNCDateFormatPriv *priv;
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- gtk_widget_set_sensitive(priv->custom_label, sensitive);
- gtk_widget_set_sensitive(priv->custom_entry, sensitive);
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ gtk_widget_set_sensitive(priv->custom_label, sensitive);
+ gtk_widget_set_sensitive(priv->custom_entry, sensitive);
}
void
gnc_date_format_refresh (GNCDateFormat *gdf)
{
- GNCDateFormatPriv *priv;
- int sel_option;
- gboolean enable_year, enable_month, enable_custom, check_modifiers;
- static gchar *format, *c;
- gchar date_string[MAX_DATE_LEN];
- time_t secs_now;
- struct tm today;
+ GNCDateFormatPriv *priv;
+ int sel_option;
+ gboolean enable_year, enable_month, enable_custom, check_modifiers;
+ static gchar *format, *c;
+ gchar date_string[MAX_DATE_LEN];
+ time_t secs_now;
+ struct tm today;
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
- sel_option =
- gtk_combo_box_get_active(GTK_COMBO_BOX(priv->format_combobox));
+ priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+ sel_option =
+ gtk_combo_box_get_active(GTK_COMBO_BOX(priv->format_combobox));
- switch (sel_option) {
- case QOF_DATE_FORMAT_CUSTOM:
- format = g_strdup(gtk_entry_get_text(GTK_ENTRY(priv->custom_entry)));
- enable_year = enable_month = check_modifiers = FALSE;
- enable_custom = TRUE;
- break;
+ switch (sel_option)
+ {
+ case QOF_DATE_FORMAT_CUSTOM:
+ format = g_strdup(gtk_entry_get_text(GTK_ENTRY(priv->custom_entry)));
+ enable_year = enable_month = check_modifiers = FALSE;
+ enable_custom = TRUE;
+ break;
- case QOF_DATE_FORMAT_LOCALE:
- case QOF_DATE_FORMAT_UTC:
- format = g_strdup(qof_date_format_get_string(sel_option));
- enable_year = enable_month = check_modifiers = enable_custom = FALSE;
- break;
+ case QOF_DATE_FORMAT_LOCALE:
+ case QOF_DATE_FORMAT_UTC:
+ format = g_strdup(qof_date_format_get_string(sel_option));
+ enable_year = enable_month = check_modifiers = enable_custom = FALSE;
+ break;
- case QOF_DATE_FORMAT_ISO:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->months_number), TRUE);
- enable_year = check_modifiers = TRUE;
- enable_month = enable_custom = FALSE;
- break;
+ case QOF_DATE_FORMAT_ISO:
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->months_number), TRUE);
+ enable_year = check_modifiers = TRUE;
+ enable_month = enable_custom = FALSE;
+ break;
- default:
- enable_year = enable_month = check_modifiers = TRUE;
- enable_custom = FALSE;
- break;
- }
+ default:
+ enable_year = enable_month = check_modifiers = TRUE;
+ enable_custom = FALSE;
+ break;
+ }
- /* Tweak widget sensitivities, as appropriate. */
- gnc_date_format_enable_year(gdf, enable_year);
- gnc_date_format_enable_month(gdf, enable_month);
- gnc_date_format_enable_format(gdf, enable_custom);
+ /* Tweak widget sensitivities, as appropriate. */
+ gnc_date_format_enable_year(gdf, enable_year);
+ gnc_date_format_enable_month(gdf, enable_month);
+ gnc_date_format_enable_format(gdf, enable_custom);
- /* Update the format string based upon the user's preferences */
- if (check_modifiers) {
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_number))) {
- format = g_strdup(qof_date_format_get_string(sel_option));
- } else {
- format = g_strdup(qof_date_text_format_get_string(sel_option));
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_name))) {
- c = strchr(format, 'b');
- if (c)
- *c = 'B';
- }
+ /* Update the format string based upon the user's preferences */
+ if (check_modifiers)
+ {
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_number)))
+ {
+ format = g_strdup(qof_date_format_get_string(sel_option));
+ }
+ else
+ {
+ format = g_strdup(qof_date_text_format_get_string(sel_option));
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_name)))
+ {
+ c = strchr(format, 'b');
+ if (c)
+ *c = 'B';
+ }
+ }
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->years_button)))
+ {
+ c = strchr(format, 'y');
+ if (c)
+ *c = 'Y';
+ }
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->years_button))){
- c = strchr(format, 'y');
- if (c)
- *c = 'Y';
- }
- }
- /*
- * Give feedback on the format string so users can see how it works
- * without having to read the strftime man page. Prevent recursive
- * signals.
- */
- g_signal_handlers_block_matched(priv->custom_entry, G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, gdf);
- gtk_entry_set_text(GTK_ENTRY(priv->custom_entry), format);
- g_signal_handlers_unblock_matched(priv->custom_entry, G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, gdf);
-
- /* Visual feedback on what the date will look like. */
- secs_now = time(NULL);
- localtime_r(&secs_now, &today);
- qof_strftime(date_string, MAX_DATE_LEN, format, &today);
- gtk_label_set_text(GTK_LABEL(priv->sample_label), date_string);
- g_free(format);
+ /*
+ * Give feedback on the format string so users can see how it works
+ * without having to read the strftime man page. Prevent recursive
+ * signals.
+ */
+ g_signal_handlers_block_matched(priv->custom_entry, G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, gdf);
+ gtk_entry_set_text(GTK_ENTRY(priv->custom_entry), format);
+ g_signal_handlers_unblock_matched(priv->custom_entry, G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, gdf);
+
+ /* Visual feedback on what the date will look like. */
+ secs_now = time(NULL);
+ localtime_r(&secs_now, &today);
+ qof_strftime(date_string, MAX_DATE_LEN, format, &today);
+ gtk_label_set_text(GTK_LABEL(priv->sample_label), date_string);
+ g_free(format);
}
static void
gnc_date_format_compute_format(GNCDateFormat *gdf)
{
- g_return_if_fail(gdf);
- g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
+ g_return_if_fail(gdf);
+ g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
- /* refresh the widget */
- gnc_date_format_refresh(gdf);
+ /* refresh the widget */
+ gnc_date_format_refresh(gdf);
- /* Emit a signal that we've changed */
- g_signal_emit(G_OBJECT(gdf), date_format_signals[FORMAT_CHANGED], 0);
+ /* Emit a signal that we've changed */
+ g_signal_emit(G_OBJECT(gdf), date_format_signals[FORMAT_CHANGED], 0);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-date-format.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-format.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-date-format.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -27,7 +27,7 @@
#ifndef GNC_DATE_FORMAT_H
-#define GNC_DATE_FORMAT_H
+#define GNC_DATE_FORMAT_H
#include "qof.h"
@@ -38,13 +38,15 @@
/**
**/
-typedef struct {
- GtkHBox hbox;
+typedef struct
+{
+ GtkHBox hbox;
} GNCDateFormat;
-typedef struct {
- GtkHBoxClass hbox_class;
- void (*format_changed) (GNCDateFormat *gdf);
+typedef struct
+{
+ GtkHBoxClass hbox_class;
+ void (*format_changed) (GNCDateFormat *gdf);
} GNCDateFormatClass;
GType gnc_date_format_get_type (void);
@@ -57,11 +59,11 @@
QofDateFormat gnc_date_format_get_format (GNCDateFormat *gdf);
void gnc_date_format_set_months (GNCDateFormat *gdf,
- GNCDateMonthFormat months);
+ GNCDateMonthFormat months);
GNCDateMonthFormat gnc_date_format_get_months (GNCDateFormat *gdf);
void gnc_date_format_set_years (GNCDateFormat *gdf,
- gboolean include_century);
+ gboolean include_century);
gboolean gnc_date_format_get_years (GNCDateFormat *gdf);
void gnc_date_format_set_custom (GNCDateFormat *gdf, const char *format);
Modified: gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -44,47 +44,47 @@
gnc_dense_cal_model_base_init(gpointer g_class)
{
static gboolean initialized = FALSE;
-
+
if (!initialized)
{
gnc_dense_cal_model_signals[GDCM_ADDED]
- = g_signal_new("added",
- G_TYPE_FROM_CLASS(g_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
- 0 /* default offset */,
- NULL /* accumulator */,
- NULL /* accum. data */,
- g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE /* return */,
- 1 /* n_params */,
- G_TYPE_UINT /* param types */
- );
+ = g_signal_new("added",
+ G_TYPE_FROM_CLASS(g_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ 0 /* default offset */,
+ NULL /* accumulator */,
+ NULL /* accum. data */,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE /* return */,
+ 1 /* n_params */,
+ G_TYPE_UINT /* param types */
+ );
gnc_dense_cal_model_signals[GDCM_UPDATE]
- = g_signal_new("update",
- G_TYPE_FROM_CLASS(g_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
- 0 /* default offset */,
- NULL /* accumulator */,
- NULL /* accum. data */,
- g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE /* return */,
- 1 /* n_params */,
- G_TYPE_UINT /* param types */
- );
+ = g_signal_new("update",
+ G_TYPE_FROM_CLASS(g_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ 0 /* default offset */,
+ NULL /* accumulator */,
+ NULL /* accum. data */,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE /* return */,
+ 1 /* n_params */,
+ G_TYPE_UINT /* param types */
+ );
gnc_dense_cal_model_signals[GDCM_REMOVE]
- = g_signal_new("removing",
- G_TYPE_FROM_CLASS(g_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
- 0 /* default offset */,
- NULL /* accumulator */,
- NULL /* accum. data */,
- g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE /* return */,
- 1 /* n_params */,
- G_TYPE_UINT /* param types */
- );
+ = g_signal_new("removing",
+ G_TYPE_FROM_CLASS(g_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ 0 /* default offset */,
+ NULL /* accumulator */,
+ NULL /* accum. data */,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE /* return */,
+ 1 /* n_params */,
+ G_TYPE_UINT /* param types */
+ );
initialized = TRUE;
}
@@ -94,8 +94,10 @@
gnc_dense_cal_model_get_type(void)
{
static GType type = 0;
- if (type == 0) {
- static const GTypeInfo info = {
+ if (type == 0)
+ {
+ static const GTypeInfo info =
+ {
sizeof(GncDenseCalModelIface),
gnc_dense_cal_model_base_init, /* base_init */
NULL, /* base_finalize */
Modified: gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dense-cal-model.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -33,7 +33,7 @@
#define GNC_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModel))
#define GNC_IS_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_DENSE_CAL_MODEL))
#define GNC_DENSE_CAL_MODEL_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModelIface))
-
+
typedef struct _GncDenseCalModel GncDenseCalModel; /* non existant */
typedef struct _GncDenseCalModelIface
{
Modified: gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -96,7 +96,8 @@
static GType type = 0;
if (type == 0)
{
- static const GTypeInfo info = {
+ static const GTypeInfo info =
+ {
sizeof (GncDenseCalStoreClass),
NULL, /* base_init */
NULL, /* base_finalize */
@@ -107,7 +108,8 @@
0, /* n_preallocs */
NULL /* instance_init */
};
- static const GInterfaceInfo iDenseCalModelInfo = {
+ static const GInterfaceInfo iDenseCalModelInfo =
+ {
(GInterfaceInitFunc)gnc_dense_cal_store_iface_init,
NULL, /* interface finalize */
NULL, /* interface data */
@@ -186,19 +188,19 @@
i = 0;
while ((i < trans->num_marks)
- && g_date_valid(&next)
- /* Do checking against end restriction. */
- && ((trans->end_type == NEVER_END)
- || (trans->end_type == END_ON_DATE
- && g_date_compare(&next, &trans->end_date) <= 0)
- || (trans->end_type == END_AFTER_N_OCCS
- && i < trans->n_occurrences)))
+ && g_date_valid(&next)
+ /* Do checking against end restriction. */
+ && ((trans->end_type == NEVER_END)
+ || (trans->end_type == END_ON_DATE
+ && g_date_compare(&next, &trans->end_date) <= 0)
+ || (trans->end_type == END_AFTER_N_OCCS
+ && i < trans->n_occurrences)))
{
*trans->cal_marks[i++] = next;
date = next;
recurrenceListNextInstance(recurrences, &date, &next);
}
- trans->num_real_marks = (i == 0 ? 0 : (i-1));
+ trans->num_real_marks = (i == 0 ? 0 : (i - 1));
g_signal_emit_by_name(trans, "update", GUINT_TO_POINTER(1));
}
Modified: gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dense-cal-store.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -37,7 +37,7 @@
#define GNC_IS_DENSE_CAL_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_DENSE_CAL_STORE))
#define GNC_IS_DENSE_CAL_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_DENSE_CAL_STORE))
#define GNC_DENSE_CAL_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_DENSE_CAL_STORE, GncDenseCalStore))
-
+
typedef enum { NEVER_END, END_ON_DATE, END_AFTER_N_OCCS, BAD_END } gdcs_end_type;
typedef struct _GncDenseCalStore GncDenseCalStore;
Modified: gnucash/trunk/src/gnome-utils/gnc-dense-cal.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dense-cal.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dense-cal.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -166,7 +166,7 @@
g_date_set_year(&date, arbitrary_year);
g_date_set_day(&date, 1);
// g_date API is 1..12 (not 0..11)
- g_date_set_month(&date, mon+1);
+ g_date_set_month(&date, mon + 1);
g_date_strftime(buf, MONTH_NAME_BUFSIZE, "%b", &date);
return buf;
@@ -179,7 +179,8 @@
{
gnc_dow_abbrev(buf, buf_len, dow);
/* Use only the first two characters */
- if (g_utf8_strlen(buf, -1) > 2) {
+ if (g_utf8_strlen(buf, -1) > 2)
+ {
gchar *pointer = g_utf8_offset_to_pointer(buf, 2);
*pointer = '\0';
}
@@ -190,8 +191,10 @@
{
static GType dense_cal_type = 0;
- if (dense_cal_type == 0) {
- static const GTypeInfo dense_cal_info = {
+ if (dense_cal_type == 0)
+ {
+ static const GTypeInfo dense_cal_info =
+ {
sizeof (GncDenseCalClass),
NULL,
NULL,
@@ -291,10 +294,10 @@
}
dcal->cal_drawing_area = GTK_DRAWING_AREA(gtk_drawing_area_new());
gtk_widget_add_events(GTK_WIDGET(dcal->cal_drawing_area), (GDK_EXPOSURE_MASK
- | GDK_BUTTON_PRESS_MASK
- | GDK_BUTTON_RELEASE_MASK
- | GDK_POINTER_MOTION_MASK
- | GDK_POINTER_MOTION_HINT_MASK));
+ | GDK_BUTTON_PRESS_MASK
+ | GDK_BUTTON_RELEASE_MASK
+ | GDK_POINTER_MOTION_MASK
+ | GDK_POINTER_MOTION_HINT_MASK));
gtk_box_pack_start(GTK_BOX(dcal), GTK_WIDGET(dcal->cal_drawing_area), TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(dcal->cal_drawing_area), "expose_event", G_CALLBACK(gnc_dense_cal_expose), (gpointer)dcal);
g_signal_connect(G_OBJECT(dcal->cal_drawing_area), "realize", G_CALLBACK(gnc_dense_cal_realize), (gpointer)dcal);
@@ -374,7 +377,7 @@
pango_font_description_free(font_desc);
maxWidth = maxHeight = 0;
- for (i=0; i<12; i++)
+ for (i = 0; i < 12; i++)
{
gint w, h;
pango_layout_set_text(layout, month_name(i), -1);
@@ -438,21 +441,21 @@
dcal->week_starts_monday = 0;
{
gchar **parts;
- const char *week_start_str;
+ const char *week_start_str;
- /* Use this renaming macro to avoid extraction of the message
- string into the gnucash.pot file when calling xgettext. */
+ /* Use this renaming macro to avoid extraction of the message
+ string into the gnucash.pot file when calling xgettext. */
#define dgettext_noextract dgettext
- /* Translators: This string must not show up in gnucash.pot as
- it is looked up in the "gtk20" translation domain
- instead. */
- week_start_str = dgettext_noextract("gtk20", "calendar:week_start:0");
+ /* Translators: This string must not show up in gnucash.pot as
+ it is looked up in the "gtk20" translation domain
+ instead. */
+ week_start_str = dgettext_noextract("gtk20", "calendar:week_start:0");
#undef dgettext_noextract
parts = g_strsplit(week_start_str, ":", 3);
if (parts[0] != NULL
- && parts[1] != NULL
- && parts[2] != NULL)
+ && parts[1] != NULL
+ && parts[2] != NULL)
{
if (strcmp("1", parts[2]) == 0)
dcal->week_starts_monday = 1;
@@ -583,8 +586,9 @@
iter_closest_to_req = view_opts_iter;
closest_index_distance = delta_months;
}
- } while (closest_index_distance != 0
- && (gtk_tree_model_iter_next(GTK_TREE_MODEL(options), &view_opts_iter)));
+ }
+ while (closest_index_distance != 0
+ && (gtk_tree_model_iter_next(GTK_TREE_MODEL(options), &view_opts_iter)));
// set iter on view
g_signal_handlers_block_by_func(dcal->view_options, _gdc_view_option_changed, dcal);
@@ -724,14 +728,14 @@
{
*min_width =
(dcal->leftPadding * 2)
- + (num_cols(dcal)* (col_width_at(dcal, dcal->min_x_scale)
- + dcal->label_width))
- + ((num_cols(dcal)-1) * COL_BORDER_SIZE);
+ + (num_cols(dcal) * (col_width_at(dcal, dcal->min_x_scale)
+ + dcal->label_width))
+ + ((num_cols(dcal) - 1) * COL_BORDER_SIZE);
}
if (min_height != NULL)
{
- *min_height=
+ *min_height =
(dcal->topPadding * 2)
+ MINOR_BORDER_SIZE
+ dcal->dayLabelHeight
@@ -764,8 +768,8 @@
dcal->x_scale = ((gint)(width
- (dcal->leftPadding * 2)
- (num_cols(dcal) * ((8 * MINOR_BORDER_SIZE)
- + dcal->label_width))
- - ((num_cols(dcal)-1) * COL_BORDER_SIZE))
+ + dcal->label_width))
+ - ((num_cols(dcal) - 1) * COL_BORDER_SIZE))
/ denom);
dcal->x_scale = MAX(dcal->x_scale, dcal->min_x_scale);
@@ -775,7 +779,7 @@
- (dcal->topPadding * 2)
- MINOR_BORDER_SIZE
- dcal->dayLabelHeight
- - (num_weeks_per_col(dcal)-1
+ - (num_weeks_per_col(dcal) - 1
* MINOR_BORDER_SIZE))
/ denom);
dcal->y_scale = MAX(dcal->y_scale, dcal->min_y_scale);
@@ -788,7 +792,7 @@
{
int i;
GList *l;
- for (i=0; i < dcal->numMarks; i++)
+ for (i = 0; i < dcal->numMarks; i++)
{
/* Each of these just contains an elt of dcal->markData,
* which we're about to free, below... */
@@ -914,21 +918,21 @@
gdk_gc_copy(gc, widget->style->fg_gc[GTK_WIDGET_STATE(widget)]);
/* reset all of the month position offsets. */
- for (i=0; i<12; i++)
+ for (i = 0; i < 12; i++)
{
dcal->monthPositions[i].x = dcal->monthPositions[i].y = -1;
}
/* Paint the weeks for the upcoming N months. */
- for (i=0; i < dcal->numMonths; i++)
+ for (i = 0; i < dcal->numMonths; i++)
{
gdk_gc_set_foreground(gc, &dcal->weekColors[ i % 2 ]);
mcList = NULL;
month_coords(dcal, i, &mcList);
dcal->monthPositions[i].x
- = floor(i/dcal->monthsPerCol)
- * (col_width(dcal) + COL_BORDER_SIZE);
+ = floor(i / dcal->monthsPerCol)
+ * (col_width(dcal) + COL_BORDER_SIZE);
dcal->monthPositions[i].y = ((GdkRectangle*)mcList->next->next->data)->y;
for (mcListIter = mcList; mcListIter != NULL; mcListIter = mcListIter->next)
{
@@ -958,11 +962,11 @@
gdk_colormap_alloc_color(gdk_colormap_get_system(), &markColor, TRUE, TRUE);
gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &markColor);
- for (i=0; i<dcal->numMarks; i++)
+ for (i = 0; i < dcal->numMarks; i++)
{
if (dcal->marks[i] != NULL)
{
- int w,h, x_offset, y_offset, circle_delta;
+ int w, h, x_offset, y_offset, circle_delta;
doc_coords(dcal, i, &x1, &y1, &x2, &y2);
w = x2 - x1;
@@ -971,7 +975,7 @@
x_offset = x1;
y_offset = y1;
- circle_delta = ABS(w-h) / 2;
+ circle_delta = ABS(w - h) / 2;
if (w < h)
{
y_offset += circle_delta;
@@ -984,7 +988,7 @@
gdk_draw_arc(dcal->drawbuf,
widget->style->fg_gc[widget->state],
TRUE,
- x_offset, y_offset, MIN(w,h), MIN(w,h),
+ x_offset, y_offset, MIN(w, h), MIN(w, h),
0 * 64,
360 * 64);
}
@@ -995,7 +999,7 @@
}
LOG_AND_RESET(timer, "marked days");
- for (i=0; i < num_cols(dcal); i++)
+ for (i = 0; i < num_cols(dcal); i++)
{
gint x, y, w, h;
gint j;
@@ -1004,7 +1008,7 @@
pango_layout_get_pixel_size(layout, NULL, &dcal->dayLabelHeight);
x = dcal->leftPadding
- + (i * (col_width(dcal)+COL_BORDER_SIZE))
+ + (i * (col_width(dcal) + COL_BORDER_SIZE))
+ dcal->label_width;
y = dcal->topPadding + dcal->dayLabelHeight;
w = col_width(dcal) - COL_BORDER_SIZE - dcal->label_width;
@@ -1015,7 +1019,7 @@
widget->style->fg_gc[widget->state],
FALSE, x, y, w, h);
/* draw the week seperations */
- for (j=0; j < num_weeks_per_col(dcal); j++)
+ for (j = 0; j < num_weeks_per_col(dcal); j++)
{
gint wy = y + (j * week_height(dcal));
gdk_draw_line(dcal->drawbuf,
@@ -1025,7 +1029,7 @@
}
/* draw the day seperations */
- for (j=1; j<7; j++)
+ for (j = 1; j < 7; j++)
{
gint dx = x + (j * day_width(dcal));
gdk_draw_line(dcal->drawbuf,
@@ -1040,7 +1044,7 @@
if (dcal->x_scale > maxWidth)
{
- for (j=0; j<7; j++)
+ for (j = 0; j < 7; j++)
{
int day_label_width;
gint label_x_offset, label_y_offset;
@@ -1051,9 +1055,9 @@
pango_layout_set_text(layout, day_label_str, -1);
pango_layout_get_pixel_size(layout, &day_label_width, NULL);
label_x_offset = x
- + (j * day_width(dcal))
- + (day_width(dcal)/2)
- - (day_label_width / 2);
+ + (j * day_width(dcal))
+ + (day_width(dcal) / 2)
+ - (day_label_width / 2);
label_y_offset = y - dcal->dayLabelHeight;
pango_layout_set_text(layout, day_label_str, -1);
gdk_draw_layout(GDK_DRAWABLE(dcal->drawbuf), widget->style->fg_gc[widget->state],
@@ -1073,7 +1077,7 @@
pango_matrix_rotate(&matrix, 90.);
pango_context_set_matrix(gtk_widget_get_pango_context(GTK_WIDGET(dcal)), &matrix);
- for (i=0; i<12; i++)
+ for (i = 0; i < 12; i++)
{
guint idx;
@@ -1112,12 +1116,12 @@
snprintf(dayNumBuf, 3, "%d", g_date_get_day(&d));
pango_layout_set_text(layout, dayNumBuf, -1);
pango_layout_get_pixel_size(layout, &numW, &numH);
- w = (x2 - x1)+1;
- h = (y2 - y1)+1;
+ w = (x2 - x1) + 1;
+ h = (y2 - y1) + 1;
gdk_draw_layout(GDK_DRAWABLE(dcal->drawbuf),
widget->style->fg_gc[widget->state],
- x1 + (w/2) - (numW/2),
- y1 + (h/2) - (numH/2),
+ x1 + (w / 2) - (numW / 2),
+ y1 + (h / 2) - (numH / 2),
layout);
}
}
@@ -1158,7 +1162,7 @@
* locales will want to use a very different date
* format. Please leave the specification of the date
* format up to the locale and use %x here. */
- g_date_strftime(strftimeBuf, MAX_STRFTIME_BUF_LEN-1, "%x", date);
+ g_date_strftime(strftimeBuf, MAX_STRFTIME_BUF_LEN - 1, "%x", date);
gtk_label_set_text(GTK_LABEL(w), strftimeBuf);
o = G_OBJECT(dcal->transPopup);
@@ -1195,11 +1199,11 @@
// strategy, but hopefully it'll listen to us. Certainly the
// second move after show_all'ing the window should do the
// trick with a bit of flicker.
- gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root+5, evt->y_root+5);
+ gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root + 5, evt->y_root + 5);
populate_hover_window(dcal, doc);
gtk_widget_queue_resize(GTK_WIDGET(dcal->transPopup));
gtk_widget_show_all(GTK_WIDGET(dcal->transPopup));
- gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root+5, evt->y_root+5);
+ gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root + 5, evt->y_root + 5);
}
else
{
@@ -1229,7 +1233,7 @@
if (event->is_hint)
gdk_window_get_pointer(event->window, &unused, &unused, &unused2);
gdk_window_move(GTK_WIDGET(dcal->transPopup)->window,
- x_root_offset+5, y_root_offset+5);
+ x_root_offset + 5, y_root_offset + 5);
doc = wheres_this(dcal, event->x, event->y);
if (doc >= 0)
{
@@ -1344,7 +1348,7 @@
int num_weeks_per_col(GncDenseCal *dcal)
{
int num_weeks_toRet, numCols, i;
- GDate *start,*end;
+ GDate *start, *end;
int startWeek, endWeek;
start = g_date_new();
@@ -1353,14 +1357,14 @@
num_weeks_toRet = 0;
numCols = num_cols(dcal);
- for (i=0; i<numCols; i++)
+ for (i = 0; i < numCols; i++)
{
g_date_set_dmy(start, 1,
((dcal->month - 1
+ (i * dcal->monthsPerCol)) % 12)
+ 1,
dcal->year + floor((dcal->month - 1
- + (i*dcal->monthsPerCol))
+ + (i * dcal->monthsPerCol))
/ 12));
*end = *start;
/* Add the smaller of (the number of months in the
@@ -1369,7 +1373,7 @@
g_date_add_months(end, MIN(dcal->numMonths,
MIN(dcal->monthsPerCol,
dcal->numMonths
- - ((i-1)
+ - ((i - 1)
* dcal->monthsPerCol))));
g_date_subtract_days(end, 1);
startWeek = (dcal->week_starts_monday
@@ -1384,10 +1388,10 @@
? g_date_get_monday_weeks_in_year(g_date_get_year(start))
: g_date_get_sunday_weeks_in_year(g_date_get_year(start)));
}
- num_weeks_toRet = MAX(num_weeks_toRet, (endWeek - startWeek)+1);
+ num_weeks_toRet = MAX(num_weeks_toRet, (endWeek - startWeek) + 1);
}
- g_date_free(start);
- g_date_free(end);
+ g_date_free(start);
+ g_date_free(end);
return num_weeks_toRet;
}
@@ -1423,7 +1427,7 @@
{
g_date_set_dmy(startD, 1,
((dcal->month - 1 + monthOffset) % 12) + 1,
- dcal->year + floor((dcal->month-1+monthOffset)/12));
+ dcal->year + floor((dcal->month - 1 + monthOffset) / 12));
/* get the week of the top of the column */
startWk = (dcal->week_starts_monday
? g_date_get_monday_week_of_year(startD)
@@ -1452,7 +1456,7 @@
g_date_set_dmy(startD, 1,
((dcal->month - 1 + monthOfCal) % 12) + 1,
- dcal->year + floor((dcal->month-1+monthOfCal)/12));
+ dcal->year + floor((dcal->month - 1 + monthOfCal) / 12));
*endD = *startD;
g_date_add_months(endD, 1);
g_date_subtract_days(endD, 1);
@@ -1461,14 +1465,14 @@
start = (g_date_get_weekday(startD) - dcal->week_starts_monday) % 7;
rect = g_new0(GdkRectangle, 1);
rect->x = dcal->leftPadding
- + MINOR_BORDER_SIZE
- + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
- + dcal->label_width
- + (start * day_width(dcal));
+ + MINOR_BORDER_SIZE
+ + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
+ + dcal->label_width
+ + (start * day_width(dcal));
rect->y = dcal->topPadding
- + dcal->dayLabelHeight
- + MINOR_BORDER_SIZE
- + (weekRow * week_height(dcal));
+ + dcal->dayLabelHeight
+ + MINOR_BORDER_SIZE
+ + (weekRow * week_height(dcal));
rect->width = (7 - start) * day_width(dcal);
rect->height = week_height(dcal);
*outList = g_list_append(*outList, (gpointer)rect);
@@ -1481,20 +1485,21 @@
weekStart = (dcal->week_starts_monday
? g_date_get_monday_week_of_year(startD)
- : g_date_get_sunday_week_of_year(startD))+1;
+ : g_date_get_sunday_week_of_year(startD)) + 1;
weekEnd = (dcal->week_starts_monday
? g_date_get_monday_week_of_year(endD)
: g_date_get_sunday_week_of_year(endD));
- for (i=weekStart; i<weekEnd; i++) {
+ for (i = weekStart; i < weekEnd; i++)
+ {
rect = g_new0(GdkRectangle, 1);
rect->x = dcal->leftPadding
- + MINOR_BORDER_SIZE
- + dcal->label_width
- + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
+ + MINOR_BORDER_SIZE
+ + dcal->label_width
+ + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
rect->y = dcal->topPadding
- + dcal->dayLabelHeight
- + MINOR_BORDER_SIZE
- + ((weekRow + (i-weekStart) + 1) * week_height(dcal));
+ + dcal->dayLabelHeight
+ + MINOR_BORDER_SIZE
+ + ((weekRow + (i - weekStart) + 1) * week_height(dcal));
rect->width = week_width(dcal);
rect->height = week_height(dcal);
@@ -1515,16 +1520,16 @@
rect = g_new0(GdkRectangle, 1);
rect->x = dcal->leftPadding
- + MINOR_BORDER_SIZE
- + dcal->label_width
- + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
+ + MINOR_BORDER_SIZE
+ + dcal->label_width
+ + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
rect->y = dcal->topPadding
- + MINOR_BORDER_SIZE
- + dcal->dayLabelHeight
- + ((weekRow
- + (end_week_of_year - start_week_of_year))
- * week_height(dcal));
- rect->width = (((g_date_get_weekday(endD) - dcal->week_starts_monday) % 7)+1) * day_width(dcal);
+ + MINOR_BORDER_SIZE
+ + dcal->dayLabelHeight
+ + ((weekRow
+ + (end_week_of_year - start_week_of_year))
+ * week_height(dcal));
+ rect->width = (((g_date_get_weekday(endD) - dcal->week_starts_monday) % 7) + 1) * day_width(dcal);
rect->height = week_height(dcal);
*outList = g_list_append(*outList, (gpointer)rect);
@@ -1581,19 +1586,19 @@
/* FIXME: this has the math to make the mark-cells come out right,
* which it shouldn't. */
*x1 = dcal->leftPadding
- + MINOR_BORDER_SIZE
- + dcal->label_width
- + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
- + (dayCol * day_width(dcal))
- + (day_width(dcal)/4);
+ + MINOR_BORDER_SIZE
+ + dcal->label_width
+ + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
+ + (dayCol * day_width(dcal))
+ + (day_width(dcal) / 4);
*y1 = dcal->topPadding
- + MINOR_BORDER_SIZE
- + dcal->dayLabelHeight
- + (weekRow * week_height(dcal))
- + (day_height(dcal)/4);
+ + MINOR_BORDER_SIZE
+ + dcal->dayLabelHeight
+ + (weekRow * week_height(dcal))
+ + (day_height(dcal) / 4);
- *x2 = *x1 + (day_width(dcal)/2);
- *y2 = *y1 + (day_height(dcal)/2);
+ *x2 = *x1 + (day_width(dcal) / 2);
+ *y2 = *y1 + (day_height(dcal) / 2);
}
/**
@@ -1614,7 +1619,7 @@
return -1;
}
if ((x >= GTK_WIDGET(dcal)->allocation.width)
- || (y >= GTK_WIDGET(dcal)->allocation.height))
+ || (y >= GTK_WIDGET(dcal)->allocation.height))
{
return -1;
}
@@ -1630,9 +1635,9 @@
}
/* coords -> year-relative-values */
- colNum = floor(x / (col_width(dcal)+COL_BORDER_SIZE));
+ colNum = floor(x / (col_width(dcal) + COL_BORDER_SIZE));
- x %= (col_width(dcal)+COL_BORDER_SIZE);
+ x %= (col_width(dcal) + COL_BORDER_SIZE);
x -= dcal->label_width;
if (x < 0)
{
@@ -1669,7 +1674,7 @@
{
GDate ccd;
g_date_set_dmy(&ccd, 1, dcal->month, dcal->year);
- g_date_add_months(&ccd, (colNum+1) * dcal->monthsPerCol);
+ g_date_add_months(&ccd, (colNum + 1) * dcal->monthsPerCol);
if (g_date_get_julian(&d) >= g_date_get_julian(&ccd))
{
return -1;
@@ -1853,7 +1858,7 @@
newMark->ourMarks = NULL;
g_debug("saving mark with tag [%d]\n", newMark->tag);
- for (i=0; i<size; i++)
+ for (i = 0; i < size; i++)
{
d = dateArray[i];
doc = gdc_get_doc_offset(dcal, d);
Modified: gnucash/trunk/src/gnome-utils/gnc-dense-cal.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dense-cal.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dense-cal.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -31,7 +31,7 @@
G_BEGIN_DECLS
-#define GNC_TYPE_DENSE_CAL (gnc_dense_cal_get_type ())
+#define GNC_TYPE_DENSE_CAL (gnc_dense_cal_get_type ())
#define GNC_DENSE_CAL(obj) GTK_CHECK_CAST (obj, gnc_dense_cal_get_type (), GncDenseCal)
#define GNC_DENSE_CAL_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gnc_dense_cal_get_type (), GncDenseCalClass)
#define GNC_IS_DENSE_CAL(obj) GTK_CHECK_TYPE (obj, gnc_dense_cal_get_type ())
@@ -46,9 +46,9 @@
enum GDC_COLORS
{
- MONTH_THIS = 0,
- MONTH_THAT,
- MAX_COLORS
+ MONTH_THIS = 0,
+ MONTH_THAT,
+ MAX_COLORS
};
struct _GncDenseCal
@@ -59,7 +59,7 @@
GtkDrawingArea *cal_drawing_area;
GdkPixmap *drawbuf;
-
+
gboolean initialized;
gboolean showPopup;
Modified: gnucash/trunk/src/gnome-utils/gnc-dialog.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dialog.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dialog.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -33,16 +33,19 @@
#define GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
GNC_TYPE_DIALOG, GncDialogPrivate))
-struct _GncDialog {
+struct _GncDialog
+{
GtkDialog parent;
};
-struct _GncDialogClass {
+struct _GncDialogClass
+{
GtkDialogClass parent;
void (*changed) (GncDialog *d);
};
-enum {
+enum
+{
GNC_DIALOG_CHANGED,
LAST_SIGNAL
};
@@ -50,7 +53,8 @@
static gint gnc_dialog_signals [LAST_SIGNAL] = { GNC_DIALOG_CHANGED };
static GtkDialogClass *parent_class = NULL;
-typedef struct {
+typedef struct
+{
GladeXML *xml;
GncDialogCallback apply_cb;
GncDialogCallback close_cb;
@@ -85,14 +89,14 @@
gnc_dialog_signals [GNC_DIALOG_CHANGED] =
g_signal_new ("changed",
- G_OBJECT_CLASS_TYPE (gobject_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (struct _GncDialogClass, changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (struct _GncDialogClass, changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
/* GObject signals */
gobject_class->finalize = gnc_dialog_finalize;
@@ -101,27 +105,29 @@
static void
gnc_dialog_init (GncDialog *d, GncDialogClass *klass)
{
- gnc_gobject_tracking_remember(G_OBJECT(d), G_OBJECT_CLASS(klass));
+ gnc_gobject_tracking_remember(G_OBJECT(d), G_OBJECT_CLASS(klass));
}
GType gnc_dialog_get_type (void)
{
static GType t = 0;
- if (!t) {
- static const GTypeInfo info = {
- sizeof (struct _GncDialogClass),
- NULL, /* base_init */
- NULL, /* base_final */
- (GClassInitFunc) gnc_dialog_class_init,
- NULL, /* class final */
- NULL, /* class data */
- sizeof (struct _GncDialog),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_dialog_init,
- NULL,
- };
- t = g_type_register_static (GTK_TYPE_DIALOG,
+ if (!t)
+ {
+ static const GTypeInfo info =
+ {
+ sizeof (struct _GncDialogClass),
+ NULL, /* base_init */
+ NULL, /* base_final */
+ (GClassInitFunc) gnc_dialog_class_init,
+ NULL, /* class final */
+ NULL, /* class data */
+ sizeof (struct _GncDialog),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_dialog_init,
+ NULL,
+ };
+ t = g_type_register_static (GTK_TYPE_DIALOG,
"GncDialog", &info, 0);
}
return t;
@@ -142,34 +148,36 @@
}
static void gnc_dialog_response_cb(GtkDialog *dlg,
- gint response, GncDialog *d)
+ gint response, GncDialog *d)
{
gboolean success = TRUE;
GncDialogPrivate *priv = GET_PRIVATE(d);
- switch (response) {
+ switch (response)
+ {
case GTK_RESPONSE_HELP:
- if (priv->help_cb)
+ if (priv->help_cb)
priv->help_cb(d, priv->user_data);
- break;
+ break;
case GTK_RESPONSE_OK:
//case GTK_RESPONSE_APPLY:
- if (priv->apply_cb) {
- success = priv->apply_cb(d, priv->user_data);
+ if (priv->apply_cb)
+ {
+ success = priv->apply_cb(d, priv->user_data);
if (success)
gnc_dialog_set_changed(d, FALSE);
}
- if (!success)
- break;
+ if (!success)
+ break;
// fall through
default:
- if (priv->close_cb)
- success = priv->close_cb(d, priv->user_data);
+ if (priv->close_cb)
+ success = priv->close_cb(d, priv->user_data);
else
success = TRUE;
- if (success)
+ if (success)
gtk_widget_destroy(GTK_WIDGET(dlg));
}
}
@@ -188,27 +196,30 @@
if (GTK_IS_EDITABLE(wid) || GTK_IS_COMBO_BOX(wid))
g_signal_connect(G_OBJECT(wid), "changed", G_CALLBACK(changed_cb), d);
- if (GTK_IS_TREE_VIEW(wid)) {
+ if (GTK_IS_TREE_VIEW(wid))
+ {
GtkTreeSelection *sel =
gtk_tree_view_get_selection(GTK_TREE_VIEW(wid));
g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(changed_cb), d);
}
- if (GTK_IS_TEXT_VIEW(wid)) {
+ if (GTK_IS_TEXT_VIEW(wid))
+ {
GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(wid));
g_signal_connect(G_OBJECT(buf), "changed", G_CALLBACK(changed_cb), d);
}
//Possibly TODO: GtkCalendar?
/* Recurse over all "contained" widgets */
- if (GTK_IS_CONTAINER(wid)) {
+ if (GTK_IS_CONTAINER(wid))
+ {
gtk_container_foreach(GTK_CONTAINER(wid),
gnc_dialog_watch_for_changes, d);
}
}
GncDialog *gnc_dialog_new(const char* filename,
- const char* root)
+ const char* root)
{
GncDialog *d;
GncDialogPrivate *priv;
@@ -222,7 +233,8 @@
/* Load in the glade portion and plug it in. */
priv->xml = gnc_glade_xml_new(filename, root);
child = glade_xml_get_widget(priv->xml, root);
- if (GTK_WIDGET_TOPLEVEL(child)) {
+ if (GTK_WIDGET_TOPLEVEL(child))
+ {
PERR("GncDialog root widget must not be a toplevel widget");
return NULL;
}
@@ -233,7 +245,7 @@
priv->help_btn = gtk_dialog_add_button(dlg, GTK_STOCK_HELP,
GTK_RESPONSE_HELP);
priv->cancel_btn = gtk_dialog_add_button(dlg, GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
+ GTK_RESPONSE_CANCEL);
priv->ok_btn = gtk_dialog_add_button(dlg, GTK_STOCK_OK,
GTK_RESPONSE_OK);
@@ -271,9 +283,11 @@
gint result;
g_return_if_fail(d);
- do {
+ do
+ {
result = gtk_dialog_run(GTK_DIALOG(d));
- } while (result != GTK_RESPONSE_DELETE_EVENT);
+ }
+ while (result != GTK_RESPONSE_DELETE_EVENT);
}
/* There are certain containers that the type-specific functions don't
@@ -288,9 +302,11 @@
{
g_return_val_if_fail(w, NULL);
- if (GTK_IS_BOX(w)) {
+ if (GTK_IS_BOX(w))
+ {
GList *children = gtk_container_get_children(GTK_CONTAINER(w));
- if (g_list_length(children) == 1) {
+ if (g_list_length(children) == 1)
+ {
GtkWidget *child = GTK_WIDGET(children->data);
g_list_free(children);
return gnc_dialog_get_widget_smart(child);
@@ -342,16 +358,18 @@
SPECIFIC_INIT(d, name, wid, FALSE);
if (IS_A(wid, "GtkEntry"))
- gtk_entry_set_text(GTK_ENTRY(wid), val);
+ gtk_entry_set_text(GTK_ENTRY(wid), val);
else if (IS_A(wid, "GtkLabel"))
gtk_label_set_text(GTK_LABEL(wid), val);
else if (IS_A(wid, "GtkCombo")) //deprecated
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(wid)->entry), val);
- else if (IS_A(wid, "GtkTextView")) {
+ else if (IS_A(wid, "GtkTextView"))
+ {
GtkTextBuffer *buf;
buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(wid));
gtk_text_buffer_set_text(buf, val, -1);
- } else TYPE_ERROR(wid, "GtkEntry or GtkLabel or GtkTextView", FALSE);
+ }
+ else TYPE_ERROR(wid, "GtkEntry or GtkLabel or GtkTextView", FALSE);
//TODO: font support?
return TRUE;
@@ -367,13 +385,16 @@
return g_strdup(gtk_label_get_text(GTK_LABEL(wid)));
else if (IS_A(wid, "GtkCombo")) //deprecated
return g_strdup(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(wid)->entry)));
- else if (IS_A(wid, "GtkTextView")) {
+ else if (IS_A(wid, "GtkTextView"))
+ {
GtkTextBuffer *buf;
GtkTextIter start, end;
buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(wid));
gtk_text_buffer_get_bounds(buf, &start, &end);
return gtk_text_buffer_get_text(buf, &start, &end, TRUE);
- } else if (IS_A(wid, "GtkComboBoxEntry")) {
+ }
+ else if (IS_A(wid, "GtkComboBoxEntry"))
+ {
gint col;
GtkTreeModel *tm;
GtkTreeIter iter;
@@ -383,12 +404,15 @@
type = gtk_tree_model_get_column_type(tm, col);
if (type != G_TYPE_STRING)
return NULL;
- if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(wid), &iter)) {
+ if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(wid), &iter))
+ {
gchar *str;
gtk_tree_model_get(tm, &iter, col, &str);
return str;
- } else return NULL;
- } else TYPE_ERROR(wid, "GtkEntry or GtkLabel or GtkTextView", NULL);
+ }
+ else return NULL;
+ }
+ else TYPE_ERROR(wid, "GtkEntry or GtkLabel or GtkTextView", NULL);
}
gboolean gnc_dialog_set_double(GncDialog *d, const gchar* name, gdouble val)
@@ -396,7 +420,7 @@
SPECIFIC_INIT(d, name, wid, FALSE);
if (IS_A(wid, "GtkSpinButton"))
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(wid), val);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(wid), val);
else TYPE_ERROR(wid, "GtkSpinButton", FALSE);
return TRUE;
//TODO: string conversion?
@@ -407,7 +431,7 @@
SPECIFIC_INIT(d, name, wid, 0.0);
if (IS_A(wid, "GtkSpinButton"))
- return gtk_spin_button_get_value(GTK_SPIN_BUTTON(wid));
+ return gtk_spin_button_get_value(GTK_SPIN_BUTTON(wid));
else TYPE_ERROR(wid, "GtkSpinButton", 0.0);
}
gboolean gnc_dialog_set_int(GncDialog *d, const gchar* name, gint val)
@@ -415,7 +439,7 @@
SPECIFIC_INIT(d, name, wid, FALSE);
if (IS_A(wid, "GtkSpinButton"))
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(wid), (gdouble)val);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(wid), (gdouble)val);
else TYPE_ERROR(wid, "GtkSpinButton", FALSE);
return TRUE;
}
@@ -425,7 +449,7 @@
SPECIFIC_INIT(d, name, wid, 0);
if (IS_A(wid, "GtkSpinButton"))
- return gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(wid));
+ return gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(wid));
else TYPE_ERROR(wid, "GtkSpinButton", 0);
}
@@ -434,7 +458,7 @@
SPECIFIC_INIT(d, name, wid, FALSE);
if (IS_A(wid, "GnomeDateEdit"))
- gnome_date_edit_set_time((GnomeDateEdit *)wid, val);
+ gnome_date_edit_set_time((GnomeDateEdit *)wid, val);
else TYPE_ERROR(wid, "GnomeDateEdit", FALSE);
return TRUE;
}
@@ -444,7 +468,7 @@
SPECIFIC_INIT(d, name, wid, ((time_t)(-1)));
if (IS_A(wid, "GnomeDateEdit"))
- return gnome_date_edit_get_time((GnomeDateEdit *)wid);
+ return gnome_date_edit_get_time((GnomeDateEdit *)wid);
else TYPE_ERROR(wid, "GnomeDateEdit", ((time_t)(-1)));
}
@@ -467,7 +491,7 @@
SPECIFIC_INIT(d, name, wid, -1);
if (IS_A(wid, "GtkComboBox"))
- return gtk_combo_box_get_active(GTK_COMBO_BOX(wid));
+ return gtk_combo_box_get_active(GTK_COMBO_BOX(wid));
else if (IS_A(wid, "GtkOptionMenu"))
return gtk_option_menu_get_history(GTK_OPTION_MENU(wid));
else TYPE_ERROR(wid, "GtkComboBox", -1); // GtkOptionMenu is deprecated.
@@ -489,7 +513,7 @@
SPECIFIC_INIT(d, name, wid, FALSE);
if (IS_A(wid, "GtkToggleButton"))
- return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(wid));
+ return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(wid));
else TYPE_ERROR(wid, "GtkToggleButton", FALSE);
}
@@ -560,19 +584,29 @@
}
/* Order is important. Children before parents. */
-static struct prop_type {
+static struct prop_type
+{
gchar *widget_type;
GD_Getter_Func getter;
GD_Setter_Func setter;
-} prop_types[] = {
- {"GnomeDateEdit", gd_gnome_date_edit_get_time,
- gd_gnome_date_edit_set_time },
- {"GtkLabel", (GD_Getter_Func) gtk_label_get_label,
- (GD_Setter_Func) gtk_label_set_label},
- {"GtkToggleButton", gd_gtk_toggle_button_get_active,
- gd_gtk_toggle_button_set_active},
- {"GtkComboBox", gd_gtk_combo_box_get_active,
- gd_gtk_combo_box_set_active},
+} prop_types[] =
+{
+ {
+ "GnomeDateEdit", gd_gnome_date_edit_get_time,
+ gd_gnome_date_edit_set_time
+ },
+ {
+ "GtkLabel", (GD_Getter_Func) gtk_label_get_label,
+ (GD_Setter_Func) gtk_label_set_label
+ },
+ {
+ "GtkToggleButton", gd_gtk_toggle_button_get_active,
+ gd_gtk_toggle_button_set_active
+ },
+ {
+ "GtkComboBox", gd_gtk_combo_box_get_active,
+ gd_gtk_combo_box_set_active
+ },
};
#define NUM_PROP_TYPES \
@@ -584,10 +618,11 @@
gint i;
struct prop_type pt;
- for(i = 0; i < NUM_PROP_TYPES; i++) {
- pt = prop_types[i];
- if (IS_A(wid, pt.widget_type))
- return i;
+ for (i = 0; i < NUM_PROP_TYPES; i++)
+ {
+ pt = prop_types[i];
+ if (IS_A(wid, pt.widget_type))
+ return i;
}
return -1;
}
@@ -596,7 +631,8 @@
typedef gpointer (*GD_Getter_Func)(GtkWidget *w);
typedef void (*GD_Setter_Func)(GtkWidget *w, gpointer val);
-typedef struct {
+typedef struct
+{
GncDialogGetter getter;
GncDialogSetter setter;
GncDialogSetter filler;
@@ -626,11 +662,12 @@
g_return_val_if_fail(custom_types, FALSE);
i = G_TYPE_FROM_INSTANCE(wid);
custom_spec = g_hash_table_lookup(
- custom_types, &i);
+ custom_types, &i);
g_return_val_if_fail(custom_spec, FALSE);
- if (custom_spec->setter(wid, val)) {
+ if (custom_spec->setter(wid, val))
+ {
gnc_dialog_set_changed(d, TRUE);
return TRUE;
}
@@ -646,7 +683,7 @@
g_return_val_if_fail(custom_types, NULL);
i = G_TYPE_FROM_INSTANCE(wid);
custom_spec = g_hash_table_lookup(
- custom_types, &i);
+ custom_types, &i);
g_return_val_if_fail(custom_spec, NULL);
return custom_spec->getter(wid);
@@ -662,9 +699,10 @@
custom_type *ct = g_new0(custom_type, 1);
GType *key = g_new0(GType, 1);
- if (custom_types == NULL) {
+ if (custom_types == NULL)
+ {
custom_types = g_hash_table_new_full(
- g_int_hash, g_int_equal, g_free, g_free);
+ g_int_hash, g_int_equal, g_free, g_free);
}
ct->getter = getter;
ct->setter = setter;
Modified: gnucash/trunk/src/gnome-utils/gnc-dialog.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-dialog.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-dialog.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -126,7 +126,7 @@
/* Type-specific getter/setters */
gboolean gnc_dialog_set_string(GncDialog *d, const char* name,
- const gchar* val);
+ const gchar* val);
gchar* gnc_dialog_get_string(GncDialog *d, const char* name);
gboolean gnc_dialog_set_double(GncDialog *d, const char* name, gdouble val);
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-gnome.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-gnome.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-gnome.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -10,11 +10,11 @@
static void gnc_druid_gnome_append_provider(GNCDruid*, GNCDruidProvider*);
static gboolean gnc_druid_gnome_next_cb(GnomeDruidPage* page, GtkWidget *arg1,
- gpointer user_data);
+ gpointer user_data);
static gboolean gnc_druid_gnome_prev_cb(GnomeDruidPage* page, GtkWidget *arg1,
- gpointer user_data);
+ gpointer user_data);
static gboolean gnc_druid_gnome_cancel2_cb(GnomeDruidPage* page, GtkWidget *arg1,
- gpointer user_data);
+ gpointer user_data);
static GNCDruidClass *parent_class;
@@ -22,163 +22,166 @@
GType
gnc_druid_gnome_get_type (void)
{
- static GType type = 0;
+ static GType type = 0;
- if (type == 0) {
- GTypeInfo type_info = {
- sizeof (GNCDruidGnomeClass),
- NULL,
- NULL,
- (GClassInitFunc)gnc_druid_gnome_class_init,
- NULL,
- NULL,
- sizeof (GNCDruidGnome),
- 0,
- NULL,
- };
-
- type = g_type_register_static (G_TYPE_GNC_DRUID, "GNCDruidGnome", &type_info, 0);
- }
-
- return type;
+ if (type == 0)
+ {
+ GTypeInfo type_info =
+ {
+ sizeof (GNCDruidGnomeClass),
+ NULL,
+ NULL,
+ (GClassInitFunc)gnc_druid_gnome_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCDruidGnome),
+ 0,
+ NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_GNC_DRUID, "GNCDruidGnome", &type_info, 0);
+ }
+
+ return type;
}
static void
gnc_druid_gnome_class_init (GNCDruidGnomeClass *klass)
{
- GObjectClass *object_class;
- GNCDruidClass *gdc_class = (GNCDruidClass*)klass;
-
- object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ GObjectClass *object_class;
+ GNCDruidClass *gdc_class = (GNCDruidClass*)klass;
- object_class->finalize = gnc_druid_gnome_finalize;
+ object_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent (klass);
- /* override methods */
- gdc_class->set_page = gnc_druid_gnome_set_page;
- gdc_class->append_provider = gnc_druid_gnome_append_provider;
+ object_class->finalize = gnc_druid_gnome_finalize;
+
+ /* override methods */
+ gdc_class->set_page = gnc_druid_gnome_set_page;
+ gdc_class->append_provider = gnc_druid_gnome_append_provider;
}
static void
gnc_druid_gnome_finalize (GObject *obj)
{
- GNCDruidGnome *druid = (GNCDruidGnome *)obj;
+ GNCDruidGnome *druid = (GNCDruidGnome *)obj;
- gtk_widget_destroy(druid->window);
+ gtk_widget_destroy(druid->window);
- G_OBJECT_CLASS (parent_class)->finalize(obj);
+ G_OBJECT_CLASS (parent_class)->finalize(obj);
}
static void
gnc_druid_gnome_set_page(GNCDruid* druid_p, GNCDruidPage* page)
{
- GNCDruidGnome *druid;
+ GNCDruidGnome *druid;
- g_return_if_fail(druid_p);
- g_return_if_fail(IS_GNC_DRUID_GNOME(druid_p));
+ g_return_if_fail(druid_p);
+ g_return_if_fail(IS_GNC_DRUID_GNOME(druid_p));
- druid = GNC_DRUID_GNOME(druid_p);
- gnome_druid_set_page(druid->druid, GNOME_DRUID_PAGE(page));
+ druid = GNC_DRUID_GNOME(druid_p);
+ gnome_druid_set_page(druid->druid, GNOME_DRUID_PAGE(page));
}
static void
gnc_druid_gnome_append_provider(GNCDruid* druid_p, GNCDruidProvider* provider)
{
- GNCDruidGnome *druid;
- GList *pages, *node;
- GnomeDruidPage *page;
+ GNCDruidGnome *druid;
+ GList *pages, *node;
+ GnomeDruidPage *page;
- g_return_if_fail(druid_p);
- g_return_if_fail(IS_GNC_DRUID_GNOME(druid_p));
- g_return_if_fail(provider);
- g_return_if_fail(IS_GNC_DRUID_PROVIDER(provider));
+ g_return_if_fail(druid_p);
+ g_return_if_fail(IS_GNC_DRUID_GNOME(druid_p));
+ g_return_if_fail(provider);
+ g_return_if_fail(IS_GNC_DRUID_PROVIDER(provider));
- druid = GNC_DRUID_GNOME(druid_p);
- pages = gnc_druid_provider_get_pages(provider);
- for (node = pages; node; node = node->next) {
- page = GNOME_DRUID_PAGE(node->data);
- gnome_druid_append_page(druid->druid, page);
- g_signal_connect(G_OBJECT(page), "next",
- (GCallback)gnc_druid_gnome_next_cb, druid);
- g_signal_connect(G_OBJECT(page), "back",
- (GCallback)gnc_druid_gnome_prev_cb, druid);
- g_signal_connect(G_OBJECT(page), "cancel",
- (GCallback)gnc_druid_gnome_cancel2_cb, druid);
- }
+ druid = GNC_DRUID_GNOME(druid_p);
+ pages = gnc_druid_provider_get_pages(provider);
+ for (node = pages; node; node = node->next)
+ {
+ page = GNOME_DRUID_PAGE(node->data);
+ gnome_druid_append_page(druid->druid, page);
+ g_signal_connect(G_OBJECT(page), "next",
+ (GCallback)gnc_druid_gnome_next_cb, druid);
+ g_signal_connect(G_OBJECT(page), "back",
+ (GCallback)gnc_druid_gnome_prev_cb, druid);
+ g_signal_connect(G_OBJECT(page), "cancel",
+ (GCallback)gnc_druid_gnome_cancel2_cb, druid);
+ }
}
static gboolean
gnc_druid_gnome_next_cb(GnomeDruidPage* page, GtkWidget *arg1, gpointer user_data)
{
- GNCDruid *druid;
+ GNCDruid *druid;
- g_return_val_if_fail(IS_GNC_DRUID_GNOME(user_data), FALSE);
- druid = GNC_DRUID(user_data);
+ g_return_val_if_fail(IS_GNC_DRUID_GNOME(user_data), FALSE);
+ druid = GNC_DRUID(user_data);
- /* Move to the next druid page */
- gnc_druid_next_page(druid);
+ /* Move to the next druid page */
+ gnc_druid_next_page(druid);
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_druid_gnome_prev_cb(GnomeDruidPage* page, GtkWidget *arg1, gpointer user_data)
{
- GNCDruid *druid;
+ GNCDruid *druid;
- g_return_val_if_fail(IS_GNC_DRUID_GNOME(user_data), FALSE);
- druid = GNC_DRUID(user_data);
+ g_return_val_if_fail(IS_GNC_DRUID_GNOME(user_data), FALSE);
+ druid = GNC_DRUID(user_data);
- /* move to the previous druid page */
- gnc_druid_prev_page(druid);
+ /* move to the previous druid page */
+ gnc_druid_prev_page(druid);
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_druid_gnome_cancel2_cb(GnomeDruidPage* page, GtkWidget *arg1,
- gpointer user_data)
+ gpointer user_data)
{
- GObject *obj = (GObject*)user_data;
+ GObject *obj = (GObject*)user_data;
- g_object_unref(obj);
- return TRUE;
+ g_object_unref(obj);
+ return TRUE;
}
static void
gnc_druid_gnome_cancel_cb(GnomeDruid* druid, gpointer user_data)
{
- GObject *obj = (GObject*)user_data;
+ GObject *obj = (GObject*)user_data;
- g_object_unref(obj);
+ g_object_unref(obj);
}
static GNCDruid*
gnc_druid_gnome_build(const char* title)
{
- GNCDruidGnome *druid;
- GtkWidget *widget;
- GtkWidget *window = NULL;
+ GNCDruidGnome *druid;
+ GtkWidget *widget;
+ GtkWidget *window = NULL;
- /* Build myself */
- druid = GNC_DRUID_GNOME(g_object_new(G_TYPE_GNC_DRUID_GNOME, NULL));
- druid->parent.ui_type = GNC_DRUID_GNOME_UI;
+ /* Build myself */
+ druid = GNC_DRUID_GNOME(g_object_new(G_TYPE_GNC_DRUID_GNOME, NULL));
+ druid->parent.ui_type = GNC_DRUID_GNOME_UI;
- /* Build the gnome druid */
- widget = gnome_druid_new_with_window(title, NULL, TRUE, &window);
- g_return_val_if_fail(widget, NULL);
- druid->druid = GNOME_DRUID(widget);
- druid->window = window;
+ /* Build the gnome druid */
+ widget = gnome_druid_new_with_window(title, NULL, TRUE, &window);
+ g_return_val_if_fail(widget, NULL);
+ druid->druid = GNOME_DRUID(widget);
+ druid->window = window;
- g_signal_connect(G_OBJECT(widget), "cancel",
- (GCallback)gnc_druid_gnome_cancel_cb, druid);
- gtk_widget_show_all(widget);
+ g_signal_connect(G_OBJECT(widget), "cancel",
+ (GCallback)gnc_druid_gnome_cancel_cb, druid);
+ gtk_widget_show_all(widget);
- return GNC_DRUID(druid);
+ return GNC_DRUID(druid);
}
void
gnc_druid_gnome_register(void)
{
- gnc_druid_register_ui(GNC_DRUID_GNOME_UI, gnc_druid_gnome_build);
+ gnc_druid_register_ui(GNC_DRUID_GNOME_UI, gnc_druid_gnome_build);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-gnome.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-gnome.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-gnome.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -25,15 +25,15 @@
struct _GNCDruidGnome
{
- GNCDruid parent;
+ GNCDruid parent;
- GnomeDruid* druid;
- GtkWidget* window;
+ GnomeDruid* druid;
+ GtkWidget* window;
};
struct _GNCDruidGnomeClass
{
- GNCDruidClass parent_class;
+ GNCDruidClass parent_class;
};
GType gnc_druid_gnome_get_type(void);
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -15,115 +15,115 @@
static GNCDruidProviderClass *parent_class;
-GNC_BASIC_GOBJECT_TYPE(GNCDruidProviderEdgeGnome,GNCDruidProviderEdgeGnomeClass,
- G_TYPE_GNC_DRUID_PROVIDER,
- gnc_druid_provider_edge_gnome_class_init, NULL,
- gnc_druid_provider_edge_gnome_get_type)
+GNC_BASIC_GOBJECT_TYPE(GNCDruidProviderEdgeGnome, GNCDruidProviderEdgeGnomeClass,
+ G_TYPE_GNC_DRUID_PROVIDER,
+ gnc_druid_provider_edge_gnome_class_init, NULL,
+ gnc_druid_provider_edge_gnome_get_type)
static void
gnc_druid_provider_edge_gnome_class_init (GNCDruidProviderEdgeGnomeClass *klass)
{
- GObjectClass *object_class;
- GNCDruidProviderClass *gdp_class = (GNCDruidProviderClass*)klass;
-
- object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ GObjectClass *object_class;
+ GNCDruidProviderClass *gdp_class = (GNCDruidProviderClass*)klass;
- object_class->finalize = gnc_druid_provider_edge_gnome_finalize;
+ object_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent (klass);
- /* override methods */
- gdp_class->first_page = gnc_dp_edge_gnome_first_page;
- gdp_class->last_page = gnc_dp_edge_gnome_last_page;
+ object_class->finalize = gnc_druid_provider_edge_gnome_finalize;
+
+ /* override methods */
+ gdp_class->first_page = gnc_dp_edge_gnome_first_page;
+ gdp_class->last_page = gnc_dp_edge_gnome_last_page;
}
static void
gnc_druid_provider_edge_gnome_finalize (GObject *obj)
{
- //GNCDruidProviderEdgeGnome *provider = (GNCDruidProviderEdgeGnome *)obj;
+ //GNCDruidProviderEdgeGnome *provider = (GNCDruidProviderEdgeGnome *)obj;
- /* XXX: we don't need to do anything here. The page will be destroyed
- * from the druid, and the list is destroyed by the provider superclass.
- */
+ /* XXX: we don't need to do anything here. The page will be destroyed
+ * from the druid, and the list is destroyed by the provider superclass.
+ */
- G_OBJECT_CLASS (parent_class)->finalize(obj);
+ G_OBJECT_CLASS (parent_class)->finalize(obj);
}
static GNCDruidPage*
gnc_dp_edge_gnome_first_page(GNCDruidProvider* prov)
{
- return prov->pages->data;
+ return prov->pages->data;
}
static GNCDruidPage*
gnc_dp_edge_gnome_last_page(GNCDruidProvider* prov)
{
- return prov->pages->data;
+ return prov->pages->data;
}
static void
gnc_dp_edge_gnome_finish_cb(GnomeDruidPage* page, GtkWidget* arg1,
- gpointer user_data)
+ gpointer user_data)
{
- GNCDruidProvider *prov;
+ GNCDruidProvider *prov;
- g_return_if_fail(page);
- g_return_if_fail(user_data);
- g_return_if_fail(IS_GNC_DRUID_PROVIDER_EDGE_GNOME(user_data));
+ g_return_if_fail(page);
+ g_return_if_fail(user_data);
+ g_return_if_fail(IS_GNC_DRUID_PROVIDER_EDGE_GNOME(user_data));
- prov = GNC_DRUID_PROVIDER(user_data);
- if (prov->druid->finish)
- prov->druid->finish(prov->druid->be_ctx);
+ prov = GNC_DRUID_PROVIDER(user_data);
+ if (prov->druid->finish)
+ prov->druid->finish(prov->druid->be_ctx);
- g_object_unref(G_OBJECT(prov->druid));
+ g_object_unref(G_OBJECT(prov->druid));
}
static GNCDruidProvider*
gnc_druid_pe_gnome_build(GNCDruid* druid, GNCDruidProviderDesc* desc)
{
- GNCDruidProvider *prov_base;
- GNCDruidProviderEdgeGnome *prov;
- GNCDruidProviderDescEdge *desc_e;
- GnomeDruidPageEdge *page;
+ GNCDruidProvider *prov_base;
+ GNCDruidProviderEdgeGnome *prov;
+ GNCDruidProviderDescEdge *desc_e;
+ GnomeDruidPageEdge *page;
- /* verify that this is the correct provider descriptor */
- g_return_val_if_fail(IS_GNC_DRUID_PROVIDER_DESC_EDGE(desc), NULL);
- desc_e = GNC_DRUID_PROVIDER_DESC_EDGE(desc);
+ /* verify that this is the correct provider descriptor */
+ g_return_val_if_fail(IS_GNC_DRUID_PROVIDER_DESC_EDGE(desc), NULL);
+ desc_e = GNC_DRUID_PROVIDER_DESC_EDGE(desc);
- /* Build the provider */
- prov = GNC_DRUID_PROVIDER_EDGE_GNOME(g_object_new(G_TYPE_GNC_DRUID_PROVIDER_EDGE_GNOME, NULL));
- g_assert(prov);
- prov_base = GNC_DRUID_PROVIDER(prov);
+ /* Build the provider */
+ prov = GNC_DRUID_PROVIDER_EDGE_GNOME(g_object_new(G_TYPE_GNC_DRUID_PROVIDER_EDGE_GNOME, NULL));
+ g_assert(prov);
+ prov_base = GNC_DRUID_PROVIDER(prov);
- /* Build the Druid Page */
- page = GNOME_DRUID_PAGE_EDGE(gnome_druid_page_edge_new(desc_e->first_or_last ==
- GNC_DPE_FIRST ?
- GNOME_EDGE_START :
- GNOME_EDGE_FINISH));
- /* Remember this page for later */
- g_assert(page);
- prov->page = page;
- prov_base->pages = g_list_prepend(NULL, page);
+ /* Build the Druid Page */
+ page = GNOME_DRUID_PAGE_EDGE(gnome_druid_page_edge_new(desc_e->first_or_last ==
+ GNC_DPE_FIRST ?
+ GNOME_EDGE_START :
+ GNOME_EDGE_FINISH));
+ /* Remember this page for later */
+ g_assert(page);
+ prov->page = page;
+ prov_base->pages = g_list_prepend(NULL, page);
- /* Set the page properties */
- if (desc->title)
- gnome_druid_page_edge_set_title(page, desc->title);
- if (desc_e->text)
- gnome_druid_page_edge_set_text(page, desc_e->text);
+ /* Set the page properties */
+ if (desc->title)
+ gnome_druid_page_edge_set_title(page, desc->title);
+ if (desc_e->text)
+ gnome_druid_page_edge_set_text(page, desc_e->text);
- /* Show the page */
- gtk_widget_show_all(GTK_WIDGET(page));
+ /* Show the page */
+ gtk_widget_show_all(GTK_WIDGET(page));
- if (desc_e->first_or_last == GNC_DPE_LAST)
- g_signal_connect(G_OBJECT(page), "finish",
- (GCallback)gnc_dp_edge_gnome_finish_cb, prov);
+ if (desc_e->first_or_last == GNC_DPE_LAST)
+ g_signal_connect(G_OBJECT(page), "finish",
+ (GCallback)gnc_dp_edge_gnome_finish_cb, prov);
- /* Return the provider instance */
- return prov_base;
+ /* Return the provider instance */
+ return prov_base;
}
void
gnc_druid_provider_edge_gnome_register(void)
{
- gnc_druid_provider_register(GNC_DRUID_GNOME_UI, GNC_DRUID_PROVIDER_TYPE_EDGE,
- gnc_druid_pe_gnome_build);
+ gnc_druid_provider_register(GNC_DRUID_GNOME_UI, GNC_DRUID_PROVIDER_TYPE_EDGE,
+ gnc_druid_pe_gnome_build);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-provider-edge-gnome.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -24,14 +24,14 @@
struct _GNCDruidProviderEdgeGnome
{
- GNCDruidProvider parent;
+ GNCDruidProvider parent;
- GnomeDruidPageEdge* page;
+ GnomeDruidPageEdge* page;
};
struct _GNCDruidProviderEdgeGnomeClass
{
- GNCDruidProviderClass parent_class;
+ GNCDruidProviderClass parent_class;
};
GType gnc_druid_provider_edge_gnome_get_type(void);
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -24,114 +24,116 @@
static GNCDruidProviderClass *parent_class;
-GNC_BASIC_GOBJECT_TYPE(GNCDruidProviderFileGnome,GNCDruidProviderFileGnomeClass,
- G_TYPE_GNC_DRUID_PROVIDER,
- gnc_druid_provider_file_gnome_class_init, NULL,
- gnc_druid_provider_file_gnome_get_type)
+GNC_BASIC_GOBJECT_TYPE(GNCDruidProviderFileGnome, GNCDruidProviderFileGnomeClass,
+ G_TYPE_GNC_DRUID_PROVIDER,
+ gnc_druid_provider_file_gnome_class_init, NULL,
+ gnc_druid_provider_file_gnome_get_type)
static void
gnc_druid_provider_file_gnome_class_init (GNCDruidProviderFileGnomeClass *klass)
{
- GObjectClass *object_class;
- GNCDruidProviderClass *gdp_class = (GNCDruidProviderClass*)klass;
-
- object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ GObjectClass *object_class;
+ GNCDruidProviderClass *gdp_class = (GNCDruidProviderClass*)klass;
- object_class->finalize = gnc_druid_provider_file_gnome_finalize;
+ object_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent (klass);
- /* override methods */
- gdp_class->first_page = gnc_dp_file_gnome_first_page;
- gdp_class->last_page = gnc_dp_file_gnome_last_page;
- gdp_class->next_page = gnc_dp_file_gnome_next_page;
- gdp_class->prev_page = gnc_dp_file_gnome_prev_page;
+ object_class->finalize = gnc_druid_provider_file_gnome_finalize;
+
+ /* override methods */
+ gdp_class->first_page = gnc_dp_file_gnome_first_page;
+ gdp_class->last_page = gnc_dp_file_gnome_last_page;
+ gdp_class->next_page = gnc_dp_file_gnome_next_page;
+ gdp_class->prev_page = gnc_dp_file_gnome_prev_page;
}
static void
gnc_dpfg_end_glob(GNCDruidProviderFileGnome *prov)
{
- if (prov->globbed) {
+ if (prov->globbed)
+ {
#ifdef HAVE_GLOB_H
- globfree(&prov->glob);
+ globfree(&prov->glob);
#endif
- prov->globbed = FALSE;
- prov->count = 0;
- }
+ prov->globbed = FALSE;
+ prov->count = 0;
+ }
}
static void
gnc_druid_provider_file_gnome_finalize (GObject *obj)
{
- GNCDruidProviderFileGnome *prov_f = (GNCDruidProviderFileGnome *)obj;
+ GNCDruidProviderFileGnome *prov_f = (GNCDruidProviderFileGnome *)obj;
- gnc_dpfg_end_glob(prov_f);
- g_object_unref(prov_f->cb);
+ gnc_dpfg_end_glob(prov_f);
+ g_object_unref(prov_f->cb);
- G_OBJECT_CLASS (parent_class)->finalize(obj);
+ G_OBJECT_CLASS (parent_class)->finalize(obj);
}
/* If we've got a file, remove it from the list.. */
static void
gnc_dpfg_del_file(GNCDruidProvider* prov)
{
- GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
- GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
+ GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
+ GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
- if (prov_f->cb->this_file)
- desc_f->remove_file(prov->druid->be_ctx, prov_f->cb->this_file);
+ if (prov_f->cb->this_file)
+ desc_f->remove_file(prov->druid->be_ctx, prov_f->cb->this_file);
- prov_f->cb->this_file = NULL;
- gnc_dpfg_end_glob(prov_f);
+ prov_f->cb->this_file = NULL;
+ gnc_dpfg_end_glob(prov_f);
}
/* Return TRUE if we have a valid file... */
static gboolean
gnc_dpfg_next_file(GNCDruidProvider *prov, const gchar *filename)
{
- GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
- gboolean res;
+ GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
+ gboolean res;
- prov_f->cb->filename = filename;
- res = prov->desc->next_cb(&(prov_f->cb->parent));
+ prov_f->cb->filename = filename;
+ res = prov->desc->next_cb(&(prov_f->cb->parent));
- if (!res)
- gnc_error_dialog(GTK_WIDGET(prov_f->page),
- _("Failed to process file: %s"), filename);
+ if (!res)
+ gnc_error_dialog(GTK_WIDGET(prov_f->page),
+ _("Failed to process file: %s"), filename);
- return res;
+ return res;
}
/* Return TRUE if we have a valid file... */
static gboolean
gnc_dpfg_next_glob(GNCDruidProvider* prov)
{
- GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
- gboolean res = FALSE;
+ GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
+ gboolean res = FALSE;
- if (!prov_f->globbed)
- return FALSE;
+ if (!prov_f->globbed)
+ return FALSE;
- while (prov_f->count < prov_f->glob.gl_pathc) {
- res = gnc_dpfg_next_file(prov, prov_f->glob.gl_pathv[prov_f->count++]);
- if (res)
- return res;
- }
+ while (prov_f->count < prov_f->glob.gl_pathc)
+ {
+ res = gnc_dpfg_next_file(prov, prov_f->glob.gl_pathv[prov_f->count++]);
+ if (res)
+ return res;
+ }
- /* At this point we've reached the end of the glob */
- gnc_dpfg_end_glob(prov_f);
- return res;
+ /* At this point we've reached the end of the glob */
+ gnc_dpfg_end_glob(prov_f);
+ return res;
}
#ifdef HAVE_GLOB_H
static int
gnc_dpfg_file_err(const char *path, int err)
{
- int res;
+ int res;
- res = gnc_ok_cancel_dialog(NULL, GTK_RESPONSE_OK,
- _("Failed to open file: %s: %s"), path, strerror(err));
+ res = gnc_ok_cancel_dialog(NULL, GTK_RESPONSE_OK,
+ _("Failed to open file: %s: %s"), path, strerror(err));
- return (res == GTK_RESPONSE_OK ? 0 : 1);
+ return (res == GTK_RESPONSE_OK ? 0 : 1);
}
#endif
@@ -139,153 +141,154 @@
static gboolean
gnc_dpfg_start_glob(GNCDruidProvider* prov, const char* filename)
{
- GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
- int err;
+ GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
+ int err;
- g_assert(prov_f->globbed == FALSE);
+ g_assert(prov_f->globbed == FALSE);
#ifdef HAVE_GLOB_H
- err = glob(filename, GLOB_NOCHECK, gnc_dpfg_file_err, &prov_f->glob);
+ err = glob(filename, GLOB_NOCHECK, gnc_dpfg_file_err, &prov_f->glob);
#else
- /* glob(3) was not available. */
- err = -1;
+ /* glob(3) was not available. */
+ err = -1;
#endif
- prov_f->count = 0;
+ prov_f->count = 0;
- if (!err)
- prov_f->globbed = TRUE;
+ if (!err)
+ prov_f->globbed = TRUE;
- return gnc_dpfg_next_glob(prov);
+ return gnc_dpfg_next_glob(prov);
}
static GNCDruidPage*
gnc_dp_file_gnome_first_page(GNCDruidProvider* prov)
{
- GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
- gboolean res = FALSE;
+ GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
+ gboolean res = FALSE;
- if (desc_f->glob)
- res = gnc_dpfg_next_glob(prov);
- if (res)
- return NULL;
+ if (desc_f->glob)
+ res = gnc_dpfg_next_glob(prov);
+ if (res)
+ return NULL;
- return prov->pages->data;
+ return prov->pages->data;
}
static GNCDruidPage*
gnc_dp_file_gnome_next_page(GNCDruidProvider* prov)
{
- GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
- GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
- gchar *filename;
- gboolean res;
+ GNCDruidProviderFileGnome *prov_f = GNC_DRUID_PROVIDER_FILE_GNOME(prov);
+ GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
+ gchar *filename;
+ gboolean res;
- filename = gtk_file_chooser_get_filename(prov_f->file_entry);
+ filename = gtk_file_chooser_get_filename(prov_f->file_entry);
- if (desc_f->glob)
- res = gnc_dpfg_start_glob(prov, filename);
- else
- res = gnc_dpfg_next_file(prov, filename);
+ if (desc_f->glob)
+ res = gnc_dpfg_start_glob(prov, filename);
+ else
+ res = gnc_dpfg_next_file(prov, filename);
- g_free(filename);
+ g_free(filename);
- if (res)
- return NULL;
+ if (res)
+ return NULL;
- return prov->pages->data;
+ return prov->pages->data;
}
static GNCDruidPage*
gnc_dpfg_back_to_multifile(GNCDruidProvider* prov, GNCDruidPage *default_page)
{
- GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
+ GNCDruidProviderDescFile *desc_f = GNC_DRUID_PROVIDER_DESC_FILE(prov->desc);
- gnc_dpfg_del_file(prov);
+ gnc_dpfg_del_file(prov);
- if (desc_f->glob && desc_f->multifile_provider &&
- desc_f->multifile_provider->get_files(prov->druid->be_ctx)) {
- gnc_druid_jump_to_provider(prov->druid,
- desc_f->multifile_provider->parent.provider);
- return NULL;
- }
+ if (desc_f->glob && desc_f->multifile_provider &&
+ desc_f->multifile_provider->get_files(prov->druid->be_ctx))
+ {
+ gnc_druid_jump_to_provider(prov->druid,
+ desc_f->multifile_provider->parent.provider);
+ return NULL;
+ }
- return default_page;
+ return default_page;
}
static GNCDruidPage*
gnc_dp_file_gnome_last_page(GNCDruidProvider* prov)
{
- return gnc_dpfg_back_to_multifile(prov, prov->pages->data);
+ return gnc_dpfg_back_to_multifile(prov, prov->pages->data);
}
static GNCDruidPage*
gnc_dp_file_gnome_prev_page(GNCDruidProvider* prov)
{
- return gnc_dpfg_back_to_multifile(prov, NULL);
+ return gnc_dpfg_back_to_multifile(prov, NULL);
}
static GNCDruidProvider*
gnc_druid_pf_gnome_build(GNCDruid* druid, GNCDruidProviderDesc* desc)
{
- GNCDruidProvider *prov_base;
- GNCDruidProviderFileGnome *prov;
- GNCDruidProviderDescFile *desc_f;
- GNCDruidProviderFileCB *cb;
- GnomeDruidPageStandard *page;
- GtkFileChooser *file_entry;
- GtkWidget *label;
+ GNCDruidProvider *prov_base;
+ GNCDruidProviderFileGnome *prov;
+ GNCDruidProviderDescFile *desc_f;
+ GNCDruidProviderFileCB *cb;
+ GnomeDruidPageStandard *page;
+ GtkFileChooser *file_entry;
+ GtkWidget *label;
- /* verify that this is the correct provider descriptor */
- g_return_val_if_fail(IS_GNC_DRUID_PROVIDER_DESC_FILE(desc), NULL);
- desc_f = GNC_DRUID_PROVIDER_DESC_FILE(desc);
+ /* verify that this is the correct provider descriptor */
+ g_return_val_if_fail(IS_GNC_DRUID_PROVIDER_DESC_FILE(desc), NULL);
+ desc_f = GNC_DRUID_PROVIDER_DESC_FILE(desc);
- g_return_val_if_fail(desc->next_cb, NULL);
- g_return_val_if_fail(desc_f->remove_file, NULL);
+ g_return_val_if_fail(desc->next_cb, NULL);
+ g_return_val_if_fail(desc_f->remove_file, NULL);
- /* Build the provider */
- prov = GNC_DRUID_PROVIDER_FILE_GNOME(g_object_new(G_TYPE_GNC_DRUID_PROVIDER_FILE_GNOME, NULL));
- g_assert(prov);
- prov_base = GNC_DRUID_PROVIDER(prov);
+ /* Build the provider */
+ prov = GNC_DRUID_PROVIDER_FILE_GNOME(g_object_new(G_TYPE_GNC_DRUID_PROVIDER_FILE_GNOME, NULL));
+ g_assert(prov);
+ prov_base = GNC_DRUID_PROVIDER(prov);
- /* Build the callback object. */
- cb = gnc_druid_provider_file_cb_new();
- g_assert(cb);
- cb->parent.prov_ctx = prov_base;
- cb->parent.druid_ctx = druid;
- prov->cb = cb;
+ /* Build the callback object. */
+ cb = gnc_druid_provider_file_cb_new();
+ g_assert(cb);
+ cb->parent.prov_ctx = prov_base;
+ cb->parent.druid_ctx = druid;
+ prov->cb = cb;
- /* Build the Druid Page */
- page = GNOME_DRUID_PAGE_STANDARD(gnome_druid_page_standard_new());
+ /* Build the Druid Page */
+ page = GNOME_DRUID_PAGE_STANDARD(gnome_druid_page_standard_new());
- /* Remember this page for later */
- g_assert(page);
- prov->page = GNOME_DRUID_PAGE(page);
- prov_base->pages = g_list_prepend(NULL, page);
+ /* Remember this page for later */
+ g_assert(page);
+ prov->page = GNOME_DRUID_PAGE(page);
+ prov_base->pages = g_list_prepend(NULL, page);
- /* Build the label */
- label = gtk_label_new(desc_f->text);
- gtk_box_pack_start(GTK_BOX(page->vbox), label, FALSE, FALSE, 0);
+ /* Build the label */
+ label = gtk_label_new(desc_f->text);
+ gtk_box_pack_start(GTK_BOX(page->vbox), label, FALSE, FALSE, 0);
- /* Build the file entry */
- file_entry = GTK_FILE_CHOOSER(gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_OPEN));
- g_assert(file_entry);
- prov->file_entry = file_entry;
- gtk_file_chooser_set_current_folder(file_entry, desc_f->last_dir);
- gtk_box_pack_start(GTK_BOX(page->vbox), GTK_WIDGET(file_entry), TRUE, TRUE, 0);
+ /* Build the file entry */
+ file_entry = GTK_FILE_CHOOSER(gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_OPEN));
+ g_assert(file_entry);
+ prov->file_entry = file_entry;
+ gtk_file_chooser_set_current_folder(file_entry, desc_f->last_dir);
+ gtk_box_pack_start(GTK_BOX(page->vbox), GTK_WIDGET(file_entry), TRUE, TRUE, 0);
- /* Set the page properties */
- if (desc->title)
- gnome_druid_page_standard_set_title(page, desc->title);
+ /* Set the page properties */
+ if (desc->title)
+ gnome_druid_page_standard_set_title(page, desc->title);
- /* Show the page */
- gtk_widget_show_all(GTK_WIDGET(page));
+ /* Show the page */
+ gtk_widget_show_all(GTK_WIDGET(page));
- /* Return the provider instance */
- return prov_base;
+ /* Return the provider instance */
+ return prov_base;
}
void
gnc_druid_provider_file_gnome_register(void)
{
- gnc_druid_provider_register(GNC_DRUID_GNOME_UI, GNC_DRUID_PROVIDER_TYPE_FILE,
- gnc_druid_pf_gnome_build);
+ gnc_druid_provider_register(GNC_DRUID_GNOME_UI, GNC_DRUID_PROVIDER_TYPE_FILE,
+ gnc_druid_pf_gnome_build);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -13,9 +13,9 @@
# include <stddef.h> /* for size_t */
typedef struct
{
- size_t gl_pathc; /* Count of paths matched so far */
- char **gl_pathv; /* List of matched pathnames. */
- size_t gl_offs; /* Slots to reserve in `gl_pathv'. */
+ size_t gl_pathc; /* Count of paths matched so far */
+ char **gl_pathv; /* List of matched pathnames. */
+ size_t gl_offs; /* Slots to reserve in `gl_pathv'. */
} glob_t;
#endif
@@ -37,21 +37,21 @@
struct _GNCDruidProviderFileGnome
{
- GNCDruidProvider parent;
+ GNCDruidProvider parent;
- GnomeDruidPage* page;
- GtkFileChooser* file_entry;
+ GnomeDruidPage* page;
+ GtkFileChooser* file_entry;
- GNCDruidProviderFileCB* cb;
+ GNCDruidProviderFileCB* cb;
- size_t count;
- glob_t glob;
- gboolean globbed;
+ size_t count;
+ glob_t glob;
+ gboolean globbed;
};
struct _GNCDruidProviderFileGnomeClass
{
- GNCDruidProviderClass parent_class;
+ GNCDruidProviderClass parent_class;
};
GType gnc_druid_provider_file_gnome_get_type(void);
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -11,10 +11,11 @@
#include "gnc-ui.h"
#include "gnc-gui-query.h"
-enum file_cols {
- FILE_COL_FILENAME = 0,
- FILE_COL_POINTER,
- NUM_FILE_COLS
+enum file_cols
+{
+ FILE_COL_FILENAME = 0,
+ FILE_COL_POINTER,
+ NUM_FILE_COLS
};
static void gnc_druid_provider_multifile_gnome_class_init (GNCDruidProviderMultifileGnomeClass *class);
@@ -26,280 +27,289 @@
static GNCDruidProviderClass *parent_class;
-GNC_BASIC_GOBJECT_TYPE(GNCDruidProviderMultifileGnome,GNCDruidProviderMultifileGnomeClass,
- G_TYPE_GNC_DRUID_PROVIDER,
- gnc_druid_provider_multifile_gnome_class_init, NULL,
- gnc_druid_provider_multifile_gnome_get_type)
+GNC_BASIC_GOBJECT_TYPE(GNCDruidProviderMultifileGnome, GNCDruidProviderMultifileGnomeClass,
+ G_TYPE_GNC_DRUID_PROVIDER,
+ gnc_druid_provider_multifile_gnome_class_init, NULL,
+ gnc_druid_provider_multifile_gnome_get_type)
static void
gnc_druid_provider_multifile_gnome_class_init (GNCDruidProviderMultifileGnomeClass *klass)
{
- GObjectClass *object_class;
- GNCDruidProviderClass *gdp_class = (GNCDruidProviderClass*)klass;
-
- object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ GObjectClass *object_class;
+ GNCDruidProviderClass *gdp_class = (GNCDruidProviderClass*)klass;
- object_class->finalize = gnc_druid_provider_multifile_gnome_finalize;
+ object_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent (klass);
- /* override methods */
- gdp_class->first_page = gnc_dp_multifile_gnome_first_page;
- gdp_class->last_page = gnc_dp_multifile_gnome_last_page;
- gdp_class->next_page = gnc_dp_multifile_gnome_next_page;
- gdp_class->prev_page = gnc_dp_multifile_gnome_last_page;
+ object_class->finalize = gnc_druid_provider_multifile_gnome_finalize;
+
+ /* override methods */
+ gdp_class->first_page = gnc_dp_multifile_gnome_first_page;
+ gdp_class->last_page = gnc_dp_multifile_gnome_last_page;
+ gdp_class->next_page = gnc_dp_multifile_gnome_next_page;
+ gdp_class->prev_page = gnc_dp_multifile_gnome_last_page;
}
static void
gnc_druid_provider_multifile_gnome_finalize (GObject *obj)
{
- //GNCDruidProviderMultifileGnome *prov_mf = (GNCDruidProviderMultifileGnome *)obj;
+ //GNCDruidProviderMultifileGnome *prov_mf = (GNCDruidProviderMultifileGnome *)obj;
- G_OBJECT_CLASS (parent_class)->finalize(obj);
+ G_OBJECT_CLASS (parent_class)->finalize(obj);
}
static void
gnc_dpmfg_select_file_cb(GtkTreeSelection *selection,
- GNCDruidProviderMultifileGnome *prov_mf)
+ GNCDruidProviderMultifileGnome *prov_mf)
{
- GtkTreeModel *model;
- GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
- if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
- gtk_tree_model_get(model, &iter,
- FILE_COL_POINTER, &prov_mf->selected_file,
- -1);
- } else {
- prov_mf->selected_file = NULL;
- }
+ if (gtk_tree_selection_get_selected(selection, &model, &iter))
+ {
+ gtk_tree_model_get(model, &iter,
+ FILE_COL_POINTER, &prov_mf->selected_file,
+ -1);
+ }
+ else
+ {
+ prov_mf->selected_file = NULL;
+ }
}
static void
gnc_dpmfg_refresh_list(GNCDruidProviderMultifileGnome *prov_mf)
{
- GNCDruidProviderDescMultifile *desc_mf =
- GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov_mf->parent.desc);
- GtkTreeView *view = GTK_TREE_VIEW(prov_mf->file_view);
- GtkListStore *store;
- GtkTreeIter iter;
- GtkTreePath *path;
- GtkTreeSelection *selection;
- GtkTreeRowReference *reference = NULL;
- GList *list;
- const gchar* filename;
- gpointer be_ctx = prov_mf->parent.druid->be_ctx;
+ GNCDruidProviderDescMultifile *desc_mf =
+ GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov_mf->parent.desc);
+ GtkTreeView *view = GTK_TREE_VIEW(prov_mf->file_view);
+ GtkListStore *store;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GtkTreeSelection *selection;
+ GtkTreeRowReference *reference = NULL;
+ GList *list;
+ const gchar* filename;
+ gpointer be_ctx = prov_mf->parent.druid->be_ctx;
- store = GTK_LIST_STORE(gtk_tree_view_get_model(view));
- gtk_list_store_clear(store);
+ store = GTK_LIST_STORE(gtk_tree_view_get_model(view));
+ gtk_list_store_clear(store);
- for (list = desc_mf->get_files(be_ctx); list; list = list->next) {
- filename = desc_mf->get_filename(be_ctx, list->data);
+ for (list = desc_mf->get_files(be_ctx); list; list = list->next)
+ {
+ filename = desc_mf->get_filename(be_ctx, list->data);
- gtk_list_store_prepend(store, &iter);
- gtk_list_store_set(store, &iter,
- FILE_COL_FILENAME, filename,
- FILE_COL_POINTER, list->data,
- -1);
- if (prov_mf->selected_file == list->data) {
- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter);
- reference = gtk_tree_row_reference_new(GTK_TREE_MODEL(store), path);
- gtk_tree_path_free(path);
+ gtk_list_store_prepend(store, &iter);
+ gtk_list_store_set(store, &iter,
+ FILE_COL_FILENAME, filename,
+ FILE_COL_POINTER, list->data,
+ -1);
+ if (prov_mf->selected_file == list->data)
+ {
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter);
+ reference = gtk_tree_row_reference_new(GTK_TREE_MODEL(store), path);
+ gtk_tree_path_free(path);
+ }
}
- }
- if (reference) {
- path = gtk_tree_row_reference_get_path(reference);
- gtk_tree_row_reference_free(reference);
- if (path) {
- selection = gtk_tree_view_get_selection(view);
- gtk_tree_selection_select_path(selection, path);
- gtk_tree_view_scroll_to_cell(view, path, NULL, TRUE, 0.5, 0.0);
- gtk_tree_path_free(path);
+ if (reference)
+ {
+ path = gtk_tree_row_reference_get_path(reference);
+ gtk_tree_row_reference_free(reference);
+ if (path)
+ {
+ selection = gtk_tree_view_get_selection(view);
+ gtk_tree_selection_select_path(selection, path);
+ gtk_tree_view_scroll_to_cell(view, path, NULL, TRUE, 0.5, 0.0);
+ gtk_tree_path_free(path);
+ }
}
- } else {
- prov_mf->selected_file = NULL;
- }
+ else
+ {
+ prov_mf->selected_file = NULL;
+ }
}
static GNCDruidPage*
gnc_dpmfg_jump_to_file(GNCDruidProvider *prov)
{
- GNCDruidProviderDescMultifile *desc_mf =
- GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov->desc);
+ GNCDruidProviderDescMultifile *desc_mf =
+ GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov->desc);
- gnc_druid_jump_to_provider(prov->druid, desc_mf->file_provider->parent.provider);
- return NULL;
+ gnc_druid_jump_to_provider(prov->druid, desc_mf->file_provider->parent.provider);
+ return NULL;
}
static void
gnc_dpmfg_load_another_cb(GtkButton *button, gpointer user_data)
{
- GNCDruidProvider *prov = user_data;
-
- gnc_dpmfg_jump_to_file(prov);
+ GNCDruidProvider *prov = user_data;
+
+ gnc_dpmfg_jump_to_file(prov);
}
static void
gnc_dpmfg_remove_file_cb(GtkButton *button, gpointer user_data)
{
- GNCDruidProviderMultifileGnome *prov_mf = user_data;
- GNCDruidProviderDescMultifile *desc_mf =
- GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov_mf->parent.desc);
- GNCDruidProviderDescFile *desc_f = desc_mf->file_provider;
- gpointer be_ctx = prov_mf->parent.druid->be_ctx;
+ GNCDruidProviderMultifileGnome *prov_mf = user_data;
+ GNCDruidProviderDescMultifile *desc_mf =
+ GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov_mf->parent.desc);
+ GNCDruidProviderDescFile *desc_f = desc_mf->file_provider;
+ gpointer be_ctx = prov_mf->parent.druid->be_ctx;
- if (!prov_mf->selected_file)
- return;
+ if (!prov_mf->selected_file)
+ return;
- desc_f->remove_file(be_ctx, prov_mf->selected_file);
-
- /* If we have no files, jump to the file provider. Otherwise refresh the page */
- if (! desc_mf->get_files(be_ctx))
- gnc_dpmfg_jump_to_file(&prov_mf->parent);
- else
- gnc_dpmfg_refresh_list(prov_mf);
+ desc_f->remove_file(be_ctx, prov_mf->selected_file);
+
+ /* If we have no files, jump to the file provider. Otherwise refresh the page */
+ if (! desc_mf->get_files(be_ctx))
+ gnc_dpmfg_jump_to_file(&prov_mf->parent);
+ else
+ gnc_dpmfg_refresh_list(prov_mf);
}
static GNCDruidPage*
gnc_dp_multifile_gnome_first_page(GNCDruidProvider* prov)
{
- GNCDruidProviderDescMultifile *desc_mf =
- GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov->desc);
- GNCDruidProviderFileGnome *prov_f =
- GNC_DRUID_PROVIDER_FILE_GNOME(desc_mf->file_provider->parent.provider);
+ GNCDruidProviderDescMultifile *desc_mf =
+ GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov->desc);
+ GNCDruidProviderFileGnome *prov_f =
+ GNC_DRUID_PROVIDER_FILE_GNOME(desc_mf->file_provider->parent.provider);
- /* If we're globbing and have more data to read, jump back to the file provider */
- if (prov_f->globbed && prov_f->count < prov_f->glob.gl_pathc)
- return gnc_dpmfg_jump_to_file(prov);
+ /* If we're globbing and have more data to read, jump back to the file provider */
+ if (prov_f->globbed && prov_f->count < prov_f->glob.gl_pathc)
+ return gnc_dpmfg_jump_to_file(prov);
- /* Otherwise, clear out this_file, refresh the list and show the page */
- prov_f->cb->this_file = NULL;
- gnc_dpmfg_refresh_list(GNC_DRUID_PROVIDER_MULTIFILE_GNOME(prov));
- return prov->pages->data;
+ /* Otherwise, clear out this_file, refresh the list and show the page */
+ prov_f->cb->this_file = NULL;
+ gnc_dpmfg_refresh_list(GNC_DRUID_PROVIDER_MULTIFILE_GNOME(prov));
+ return prov->pages->data;
}
static GNCDruidPage*
gnc_dp_multifile_gnome_last_page(GNCDruidProvider* prov)
{
- GNCDruidProviderDescMultifile *desc_mf =
- GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov->desc);
+ GNCDruidProviderDescMultifile *desc_mf =
+ GNC_DRUID_PROVIDER_DESC_MULTIFILE(prov->desc);
- /* If we have no files, just back up */
- if (! desc_mf->get_files(prov->druid->be_ctx))
- return NULL;
+ /* If we have no files, just back up */
+ if (! desc_mf->get_files(prov->druid->be_ctx))
+ return NULL;
- /* Otherwise, refresh the list and show the page. XXX: Do we need to refresh? */
- gnc_dpmfg_refresh_list(GNC_DRUID_PROVIDER_MULTIFILE_GNOME(prov));
- return prov->pages->data;
+ /* Otherwise, refresh the list and show the page. XXX: Do we need to refresh? */
+ gnc_dpmfg_refresh_list(GNC_DRUID_PROVIDER_MULTIFILE_GNOME(prov));
+ return prov->pages->data;
}
static GNCDruidPage*
gnc_dp_multifile_gnome_next_page(GNCDruidProvider* prov)
{
- GNCDruidProviderMultifileGnome *prov_mf =
- GNC_DRUID_PROVIDER_MULTIFILE_GNOME(prov);
+ GNCDruidProviderMultifileGnome *prov_mf =
+ GNC_DRUID_PROVIDER_MULTIFILE_GNOME(prov);
- /* Ignore the return -- we don't care what they say */
- prov->desc->next_cb(prov_mf->cb);
+ /* Ignore the return -- we don't care what they say */
+ prov->desc->next_cb(prov_mf->cb);
- return NULL;
+ return NULL;
}
static GNCDruidProvider*
gnc_druid_pf_gnome_build(GNCDruid* druid, GNCDruidProviderDesc* desc)
{
- GNCDruidProvider *prov_base;
- GNCDruidProviderMultifileGnome *prov;
- GNCDruidProviderDescMultifile *desc_mf;
- GNCDruidCB *cb;
- GtkWidget *window, *page, *view, *button1, *button2, *label;
- GladeXML *xml;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- GtkListStore *store;
- GtkTreeSelection *selection;
+ GNCDruidProvider *prov_base;
+ GNCDruidProviderMultifileGnome *prov;
+ GNCDruidProviderDescMultifile *desc_mf;
+ GNCDruidCB *cb;
+ GtkWidget *window, *page, *view, *button1, *button2, *label;
+ GladeXML *xml;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ GtkListStore *store;
+ GtkTreeSelection *selection;
- /* verify that this is the correct provider descriptor */
- g_return_val_if_fail(IS_GNC_DRUID_PROVIDER_DESC_MULTIFILE(desc), NULL);
- desc_mf = GNC_DRUID_PROVIDER_DESC_MULTIFILE(desc);
+ /* verify that this is the correct provider descriptor */
+ g_return_val_if_fail(IS_GNC_DRUID_PROVIDER_DESC_MULTIFILE(desc), NULL);
+ desc_mf = GNC_DRUID_PROVIDER_DESC_MULTIFILE(desc);
- g_return_val_if_fail(desc->next_cb, NULL);
- g_return_val_if_fail(desc_mf->file_provider, NULL);
- g_return_val_if_fail(desc_mf->get_files, NULL);
- g_return_val_if_fail(desc_mf->get_filename, NULL);
+ g_return_val_if_fail(desc->next_cb, NULL);
+ g_return_val_if_fail(desc_mf->file_provider, NULL);
+ g_return_val_if_fail(desc_mf->get_files, NULL);
+ g_return_val_if_fail(desc_mf->get_filename, NULL);
- /* Build the provider */
- prov = GNC_DRUID_PROVIDER_MULTIFILE_GNOME(g_object_new(G_TYPE_GNC_DRUID_PROVIDER_MULTIFILE_GNOME, NULL));
- g_assert(prov);
- prov_base = GNC_DRUID_PROVIDER(prov);
+ /* Build the provider */
+ prov = GNC_DRUID_PROVIDER_MULTIFILE_GNOME(g_object_new(G_TYPE_GNC_DRUID_PROVIDER_MULTIFILE_GNOME, NULL));
+ g_assert(prov);
+ prov_base = GNC_DRUID_PROVIDER(prov);
- /* Build the callback object. */
- cb = gnc_druid_cb_new();
- g_assert(cb);
- cb->prov_ctx = prov_base;
- cb->druid_ctx = druid;
- prov->cb = cb;
+ /* Build the callback object. */
+ cb = gnc_druid_cb_new();
+ g_assert(cb);
+ cb->prov_ctx = prov_base;
+ cb->druid_ctx = druid;
+ prov->cb = cb;
- /* Build the Druid Page */
- xml = gnc_glade_xml_new("druid-provider-multifile.glade",
- "Multifile Provider Window");
- g_assert(xml);
- window = glade_xml_get_widget(xml, "Multifile Provider Window");
- page = glade_xml_get_widget(xml, "Multifile Provider Page");
- view = glade_xml_get_widget(xml, "file_view");
- button1 = glade_xml_get_widget(xml, "load_button");
- button2 = glade_xml_get_widget(xml, "unload_button");
- label = glade_xml_get_widget(xml, "instruction_label");
+ /* Build the Druid Page */
+ xml = gnc_glade_xml_new("druid-provider-multifile.glade",
+ "Multifile Provider Window");
+ g_assert(xml);
+ window = glade_xml_get_widget(xml, "Multifile Provider Window");
+ page = glade_xml_get_widget(xml, "Multifile Provider Page");
+ view = glade_xml_get_widget(xml, "file_view");
+ button1 = glade_xml_get_widget(xml, "load_button");
+ button2 = glade_xml_get_widget(xml, "unload_button");
+ label = glade_xml_get_widget(xml, "instruction_label");
- g_object_ref(page);
- gtk_container_remove(GTK_CONTAINER(window), page);
- gtk_widget_destroy(window);
+ g_object_ref(page);
+ gtk_container_remove(GTK_CONTAINER(window), page);
+ gtk_widget_destroy(window);
- /* XXX: Am I going to have to unref this later? */
+ /* XXX: Am I going to have to unref this later? */
- /* Remember this page for later */
- g_assert(page);
- prov->page = GNOME_DRUID_PAGE(page);
- prov_base->pages = g_list_prepend(NULL, page);
- prov->file_view = view;
+ /* Remember this page for later */
+ g_assert(page);
+ prov->page = GNOME_DRUID_PAGE(page);
+ prov_base->pages = g_list_prepend(NULL, page);
+ prov->file_view = view;
- /* Set up the file view */
- store = gtk_list_store_new (NUM_FILE_COLS, G_TYPE_STRING, G_TYPE_POINTER);
- gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(store));
- g_object_unref(store);
+ /* Set up the file view */
+ store = gtk_list_store_new (NUM_FILE_COLS, G_TYPE_STRING, G_TYPE_POINTER);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(store));
+ g_object_unref(store);
- renderer = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new_with_attributes("", renderer,
- "text", FILE_COL_FILENAME,
- NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes("", renderer,
+ "text", FILE_COL_FILENAME,
+ NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- g_signal_connect(selection, "changed",
- (GCallback)gnc_dpmfg_select_file_cb, prov);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ g_signal_connect(selection, "changed",
+ (GCallback)gnc_dpmfg_select_file_cb, prov);
- /* Set the page properties */
- g_signal_connect(G_OBJECT(button1), "clicked",
- (GCallback)gnc_dpmfg_load_another_cb, prov);
- g_signal_connect(G_OBJECT(button2), "clicked",
- (GCallback)gnc_dpmfg_remove_file_cb, prov);
+ /* Set the page properties */
+ g_signal_connect(G_OBJECT(button1), "clicked",
+ (GCallback)gnc_dpmfg_load_another_cb, prov);
+ g_signal_connect(G_OBJECT(button2), "clicked",
+ (GCallback)gnc_dpmfg_remove_file_cb, prov);
- if (desc->title)
- gnome_druid_page_standard_set_title(GNOME_DRUID_PAGE_STANDARD(page),
- desc->title);
+ if (desc->title)
+ gnome_druid_page_standard_set_title(GNOME_DRUID_PAGE_STANDARD(page),
+ desc->title);
- if (desc_mf->text)
- gtk_label_set_text(GTK_LABEL(label), desc_mf->text);
+ if (desc_mf->text)
+ gtk_label_set_text(GTK_LABEL(label), desc_mf->text);
- /* Show the page */
- gtk_widget_show_all(GTK_WIDGET(page));
+ /* Show the page */
+ gtk_widget_show_all(GTK_WIDGET(page));
- /* Return the provider instance */
- return prov_base;
+ /* Return the provider instance */
+ return prov_base;
}
void
gnc_druid_provider_multifile_gnome_register(void)
{
- gnc_druid_provider_register(GNC_DRUID_GNOME_UI, GNC_DRUID_PROVIDER_TYPE_MULTIFILE,
- gnc_druid_pf_gnome_build);
+ gnc_druid_provider_register(GNC_DRUID_GNOME_UI, GNC_DRUID_PROVIDER_TYPE_MULTIFILE,
+ gnc_druid_pf_gnome_build);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -14,9 +14,9 @@
# include <stddef.h> /* for size_t */
typedef struct
{
- size_t gl_pathc; /* Count of paths matched so far */
- char **gl_pathv; /* List of matched pathnames. */
- size_t gl_offs; /* Slots to reserve in `gl_pathv'. */
+ size_t gl_pathc; /* Count of paths matched so far */
+ char **gl_pathv; /* List of matched pathnames. */
+ size_t gl_offs; /* Slots to reserve in `gl_pathv'. */
} glob_t;
# endif
#endif
@@ -38,18 +38,18 @@
struct _GNCDruidProviderMultifileGnome
{
- GNCDruidProvider parent;
+ GNCDruidProvider parent;
- GnomeDruidPage* page;
- GtkWidget* file_view;
+ GnomeDruidPage* page;
+ GtkWidget* file_view;
- GNCDruidCB* cb;
- gpointer selected_file;
+ GNCDruidCB* cb;
+ gpointer selected_file;
};
struct _GNCDruidProviderMultifileGnomeClass
{
- GNCDruidProviderClass parent_class;
+ GNCDruidProviderClass parent_class;
};
GType gnc_druid_provider_multifile_gnome_get_type(void);
Modified: gnucash/trunk/src/gnome-utils/gnc-embedded-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-embedded-window.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-embedded-window.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-main-window.c -- GtkWindow which represents the
* GnuCash main window.
*
@@ -60,29 +60,29 @@
/** The instance private data for an embedded window object. */
typedef struct GncEmbeddedWindowPrivate
{
- /** The dock (vbox) at the top of the window containing the menubar
- * and toolbar. These items are generated bu the UI manager and
- * stored here when the UI manager provides them to the main
- * window. */
- GtkWidget *menu_dock;
- /* The toolbar created by the UI manager. This pointer provides
- * easy access for showing/hiding the toolbar. */
- GtkWidget *toolbar;
- /** 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. */
- GtkWidget *statusbar;
+ /** The dock (vbox) at the top of the window containing the menubar
+ * and toolbar. These items are generated bu the UI manager and
+ * stored here when the UI manager provides them to the main
+ * window. */
+ GtkWidget *menu_dock;
+ /* The toolbar created by the UI manager. This pointer provides
+ * easy access for showing/hiding the toolbar. */
+ GtkWidget *toolbar;
+ /** 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. */
+ GtkWidget *statusbar;
- /** The group of all actions provided by the main window itself.
- * This does not include any action provided by menu or content
- * plugins. */
- GtkActionGroup *action_group;
+ /** The group of all actions provided by the main window itself.
+ * This does not include any action provided by menu or content
+ * plugins. */
+ GtkActionGroup *action_group;
- /** The currently selected page. */
- GncPluginPage *page;
- /** The parent of this embedded "window". This points to a real
- * GtkWindow widget. */
- GtkWidget *parent_window;
+ /** The currently selected page. */
+ GncPluginPage *page;
+ /** The parent of this embedded "window". This points to a real
+ * GtkWindow widget. */
+ GtkWidget *parent_window;
} GncEmbeddedWindowPrivate;
#define GNC_EMBEDDED_WINDOW_GET_PRIVATE(o) \
@@ -94,93 +94,97 @@
GType
gnc_embedded_window_get_type (void)
{
- static GType gnc_embedded_window_type = 0;
+ static GType gnc_embedded_window_type = 0;
- if (gnc_embedded_window_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncEmbeddedWindowClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_embedded_window_class_init,
- NULL,
- NULL,
- sizeof (GncEmbeddedWindow),
- 0,
- (GInstanceInitFunc) gnc_embedded_window_init
- };
+ if (gnc_embedded_window_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncEmbeddedWindowClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_embedded_window_class_init,
+ NULL,
+ NULL,
+ sizeof (GncEmbeddedWindow),
+ 0,
+ (GInstanceInitFunc) gnc_embedded_window_init
+ };
- static const GInterfaceInfo plugin_info = {
- (GInterfaceInitFunc) gnc_window_embedded_window_init,
- NULL,
- NULL
- };
+ static const GInterfaceInfo plugin_info =
+ {
+ (GInterfaceInitFunc) gnc_window_embedded_window_init,
+ NULL,
+ NULL
+ };
- gnc_embedded_window_type = g_type_register_static (GTK_TYPE_VBOX,
- "GncEmbeddedWindow",
- &our_info, 0);
- g_type_add_interface_static (gnc_embedded_window_type,
- GNC_TYPE_WINDOW,
- &plugin_info);
- }
+ gnc_embedded_window_type = g_type_register_static (GTK_TYPE_VBOX,
+ "GncEmbeddedWindow",
+ &our_info, 0);
+ g_type_add_interface_static (gnc_embedded_window_type,
+ GNC_TYPE_WINDOW,
+ &plugin_info);
+ }
- return gnc_embedded_window_type;
+ return gnc_embedded_window_type;
}
/* Display a data plugin page in a window. */
void
gnc_embedded_window_open_page (GncEmbeddedWindow *window,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindowPrivate *priv;
- g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- g_return_if_fail (priv->page == NULL);
+ g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ g_return_if_fail (priv->page == NULL);
- ENTER("window %p, page %p", window, page);
- priv->page = page;
- page->window = GTK_WIDGET(window);
- page->notebook_page = gnc_plugin_page_create_widget (page);
+ ENTER("window %p, page %p", window, page);
+ priv->page = page;
+ page->window = GTK_WIDGET(window);
+ page->notebook_page = gnc_plugin_page_create_widget (page);
- gtk_box_pack_end(GTK_BOX(window), page->notebook_page, TRUE, TRUE, 2);
- gnc_plugin_page_inserted (page);
+ gtk_box_pack_end(GTK_BOX(window), page->notebook_page, TRUE, TRUE, 2);
+ gnc_plugin_page_inserted (page);
- gnc_plugin_page_merge_actions (page, window->ui_merge);
- LEAVE(" ");
+ gnc_plugin_page_merge_actions (page, window->ui_merge);
+ LEAVE(" ");
}
/* Remove a data plugin page from a window. */
void
gnc_embedded_window_close_page (GncEmbeddedWindow *window,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindowPrivate *priv;
- g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- g_return_if_fail (priv->page == page);
+ g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ g_return_if_fail (priv->page == page);
- ENTER("window %p, page %p", window, page);
+ ENTER("window %p, page %p", window, page);
- if (!page->notebook_page) {
- LEAVE("no displayed widget");
- return;
- }
+ if (!page->notebook_page)
+ {
+ LEAVE("no displayed widget");
+ return;
+ }
- gtk_container_remove (GTK_CONTAINER(window), GTK_WIDGET(page->notebook_page));
- priv->page = NULL;
- gnc_plugin_page_removed (page);
+ gtk_container_remove (GTK_CONTAINER(window), GTK_WIDGET(page->notebook_page));
+ priv->page = NULL;
+ gnc_plugin_page_removed (page);
- gnc_plugin_page_unmerge_actions (page, window->ui_merge);
- gtk_ui_manager_ensure_update (window->ui_merge);
+ gnc_plugin_page_unmerge_actions (page, window->ui_merge);
+ gtk_ui_manager_ensure_update (window->ui_merge);
- gnc_plugin_page_destroy_widget (page);
- g_object_unref(page);
- LEAVE(" ");
+ gnc_plugin_page_destroy_widget (page);
+ g_object_unref(page);
+ LEAVE(" ");
}
@@ -188,10 +192,10 @@
GncPluginPage *
gnc_embedded_window_get_page (GncEmbeddedWindow *window)
{
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindowPrivate *priv;
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- return priv->page;
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ return priv->page;
}
@@ -204,17 +208,17 @@
static void
gnc_embedded_window_class_init (GncEmbeddedWindowClass *klass)
{
- GObjectClass *object_class;
- ENTER("klass %p", klass);
- object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class;
+ ENTER("klass %p", klass);
+ object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = gnc_embedded_window_finalize;
- object_class->dispose = gnc_embedded_window_dispose;
+ object_class->finalize = gnc_embedded_window_finalize;
+ object_class->dispose = gnc_embedded_window_dispose;
- g_type_class_add_private(klass, sizeof(GncEmbeddedWindowPrivate));
- LEAVE(" ");
+ g_type_class_add_private(klass, sizeof(GncEmbeddedWindowPrivate));
+ LEAVE(" ");
}
@@ -228,15 +232,15 @@
* object. */
static void
gnc_embedded_window_init (GncEmbeddedWindow *window,
- GncEmbeddedWindowClass *klass)
+ GncEmbeddedWindowClass *klass)
{
- ENTER("window %p", window);
+ ENTER("window %p", window);
- gnc_embedded_window_setup_window (window);
+ gnc_embedded_window_setup_window (window);
- gnc_gobject_tracking_remember(G_OBJECT(window),
- G_OBJECT_CLASS(klass));
- LEAVE(" ");
+ gnc_gobject_tracking_remember(G_OBJECT(window),
+ G_OBJECT_CLASS(klass));
+ LEAVE(" ");
}
@@ -246,19 +250,19 @@
static void
gnc_embedded_window_finalize (GObject *object)
{
- GncEmbeddedWindow *window;
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindow *window;
+ GncEmbeddedWindowPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
- ENTER("object %p", object);
- window = GNC_EMBEDDED_WINDOW (object);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ ENTER("object %p", object);
+ window = GNC_EMBEDDED_WINDOW (object);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- gnc_gobject_tracking_forget(object);
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE(" ");
+ gnc_gobject_tracking_forget(object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE(" ");
}
@@ -269,43 +273,45 @@
static void
gnc_embedded_window_dispose (GObject *object)
{
- GncEmbeddedWindow *window;
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindow *window;
+ GncEmbeddedWindowPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
- ENTER("object %p", object);
- window = GNC_EMBEDDED_WINDOW (object);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- if (priv->page) {
- DEBUG("unreffing page %p (count currently %d)", priv->page,
- G_OBJECT(priv->page)->ref_count);
- g_object_unref(priv->page);
- priv->page = NULL;
- }
+ ENTER("object %p", object);
+ window = GNC_EMBEDDED_WINDOW (object);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ if (priv->page)
+ {
+ DEBUG("unreffing page %p (count currently %d)", priv->page,
+ G_OBJECT(priv->page)->ref_count);
+ g_object_unref(priv->page);
+ priv->page = NULL;
+ }
- G_OBJECT_CLASS (parent_class)->dispose (object);
- LEAVE(" ");
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+ LEAVE(" ");
}
static void
gnc_embedded_window_add_widget (GtkUIManager *merge,
- GtkWidget *widget,
- GncEmbeddedWindow *window)
+ GtkWidget *widget,
+ GncEmbeddedWindow *window)
{
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindowPrivate *priv;
- ENTER("merge %p, new widget %p, window %p", merge, widget, window);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- if (GTK_IS_TOOLBAR (widget)) {
- priv->toolbar = widget;
- }
+ ENTER("merge %p, new widget %p, window %p", merge, widget, window);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ if (GTK_IS_TOOLBAR (widget))
+ {
+ priv->toolbar = widget;
+ }
- gtk_box_pack_start (GTK_BOX (priv->menu_dock), widget, FALSE, FALSE, 0);
- gtk_widget_show (widget);
- LEAVE(" ");
+ gtk_box_pack_start (GTK_BOX (priv->menu_dock), widget, FALSE, FALSE, 0);
+ gtk_widget_show (widget);
+ LEAVE(" ");
}
@@ -315,88 +321,89 @@
static void
gnc_embedded_window_setup_window (GncEmbeddedWindow *window)
{
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindowPrivate *priv;
- ENTER("window %p", window);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ ENTER("window %p", window);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- /* Create widgets and add them to the window */
- gtk_widget_show (GTK_WIDGET(window));
+ /* Create widgets and add them to the window */
+ gtk_widget_show (GTK_WIDGET(window));
- priv->menu_dock = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (priv->menu_dock);
- gtk_box_pack_start (GTK_BOX (window), priv->menu_dock, TRUE, TRUE, 0);
+ priv->menu_dock = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (priv->menu_dock);
+ gtk_box_pack_start (GTK_BOX (window), priv->menu_dock, TRUE, TRUE, 0);
- priv->statusbar = gtk_statusbar_new ();
- gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR(priv->statusbar), FALSE);
- gtk_widget_show (priv->statusbar);
- gtk_box_pack_end (GTK_BOX (window), priv->statusbar, FALSE, TRUE, 0);
+ priv->statusbar = gtk_statusbar_new ();
+ gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR(priv->statusbar), FALSE);
+ gtk_widget_show (priv->statusbar);
+ gtk_box_pack_end (GTK_BOX (window), priv->statusbar, FALSE, TRUE, 0);
- window->ui_merge = gtk_ui_manager_new ();
- g_signal_connect (G_OBJECT (window->ui_merge), "add_widget",
- G_CALLBACK (gnc_embedded_window_add_widget), window);
+ window->ui_merge = gtk_ui_manager_new ();
+ g_signal_connect (G_OBJECT (window->ui_merge), "add_widget",
+ G_CALLBACK (gnc_embedded_window_add_widget), window);
- priv->action_group = NULL;
- LEAVE(" ");
+ priv->action_group = NULL;
+ LEAVE(" ");
}
/** Create a new gnc embedded window plugin. */
GncEmbeddedWindow *
gnc_embedded_window_new (const gchar *action_group_name,
- GtkActionEntry *action_entries,
- gint n_action_entries,
- const gchar *ui_filename,
- GtkWidget *enclosing_win,
- gboolean add_accelerators,
- gpointer user_data)
+ GtkActionEntry *action_entries,
+ gint n_action_entries,
+ const gchar *ui_filename,
+ GtkWidget *enclosing_win,
+ gboolean add_accelerators,
+ gpointer user_data)
{
- GncEmbeddedWindowPrivate *priv;
- GncEmbeddedWindow *window;
- gchar *ui_fullname;
- GError *error = NULL;
- guint merge_id;
+ GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindow *window;
+ gchar *ui_fullname;
+ GError *error = NULL;
+ guint merge_id;
- ENTER("group %s, first %p, num %d, ui file %s, parent %p, add accelerators %d, user data %p",
- action_group_name, action_entries, n_action_entries, ui_filename,
- enclosing_win, add_accelerators, user_data);
- window = g_object_new (GNC_TYPE_EMBEDDED_WINDOW, NULL);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ ENTER("group %s, first %p, num %d, ui file %s, parent %p, add accelerators %d, user data %p",
+ action_group_name, action_entries, n_action_entries, ui_filename,
+ enclosing_win, add_accelerators, user_data);
+ window = g_object_new (GNC_TYPE_EMBEDDED_WINDOW, NULL);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- /* Determine the full pathname of the ui file */
- ui_fullname = gnc_gnome_locate_ui_file(ui_filename);
+ /* Determine the full pathname of the ui file */
+ ui_fullname = gnc_gnome_locate_ui_file(ui_filename);
- priv->parent_window = enclosing_win;
+ priv->parent_window = enclosing_win;
- /* Create menu and toolbar information */
- priv->action_group = gtk_action_group_new (action_group_name);
- gnc_gtk_action_group_set_translation_domain(priv->action_group, GETTEXT_PACKAGE);
- gtk_action_group_add_actions (priv->action_group, action_entries,
- n_action_entries, user_data);
- gtk_ui_manager_insert_action_group (window->ui_merge, priv->action_group, 0);
- merge_id = gtk_ui_manager_add_ui_from_file (window->ui_merge, ui_fullname,
- &error);
+ /* Create menu and toolbar information */
+ priv->action_group = gtk_action_group_new (action_group_name);
+ gnc_gtk_action_group_set_translation_domain(priv->action_group, GETTEXT_PACKAGE);
+ gtk_action_group_add_actions (priv->action_group, action_entries,
+ n_action_entries, user_data);
+ gtk_ui_manager_insert_action_group (window->ui_merge, priv->action_group, 0);
+ merge_id = gtk_ui_manager_add_ui_from_file (window->ui_merge, ui_fullname,
+ &error);
- /* Error checking */
- g_assert(merge_id || error);
- if (error) {
- g_critical("Failed to load ui file.\n Filename %s\n Error %s",
- ui_fullname, error->message);
- g_error_free(error);
- g_free(ui_fullname);
+ /* Error checking */
+ g_assert(merge_id || error);
+ if (error)
+ {
+ g_critical("Failed to load ui file.\n Filename %s\n Error %s",
+ ui_fullname, error->message);
+ g_error_free(error);
+ g_free(ui_fullname);
+ LEAVE("window %p", window);
+ return window;
+ }
+
+ /* Add accelerators (if wanted) */
+ if (add_accelerators)
+ gtk_window_add_accel_group (GTK_WINDOW(enclosing_win),
+ gtk_ui_manager_get_accel_group(window->ui_merge));
+
+ gtk_ui_manager_ensure_update (window->ui_merge);
+ g_free(ui_fullname);
LEAVE("window %p", window);
return window;
- }
-
- /* Add accelerators (if wanted) */
- if (add_accelerators)
- gtk_window_add_accel_group (GTK_WINDOW(enclosing_win),
- gtk_ui_manager_get_accel_group(window->ui_merge));
-
- gtk_ui_manager_ensure_update (window->ui_merge);
- g_free(ui_fullname);
- LEAVE("window %p", window);
- return window;
}
@@ -408,14 +415,14 @@
static GtkWindow *
gnc_embedded_window_get_gtk_window (GncWindow *window_in)
{
- GncEmbeddedWindow *window;
- GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindow *window;
+ GncEmbeddedWindowPrivate *priv;
- g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW (window_in), NULL);
+ g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW (window_in), NULL);
- window = GNC_EMBEDDED_WINDOW(window_in);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- return GTK_WINDOW(priv->parent_window);
+ window = GNC_EMBEDDED_WINDOW(window_in);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ return GTK_WINDOW(priv->parent_window);
}
@@ -427,14 +434,14 @@
static GtkWidget *
gnc_embedded_window_get_statusbar (GncWindow *window_in)
{
- GncEmbeddedWindowPrivate *priv;
- GncEmbeddedWindow *window;
+ GncEmbeddedWindowPrivate *priv;
+ GncEmbeddedWindow *window;
- g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW (window_in), NULL);
+ g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW (window_in), NULL);
- window = GNC_EMBEDDED_WINDOW(window_in);
- priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
- return priv->statusbar;
+ window = GNC_EMBEDDED_WINDOW(window_in);
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+ return priv->statusbar;
}
@@ -445,6 +452,6 @@
static void
gnc_window_embedded_window_init (GncWindowIface *iface)
{
- iface->get_gtk_window = gnc_embedded_window_get_gtk_window;
- iface->get_statusbar = gnc_embedded_window_get_statusbar;
+ iface->get_gtk_window = gnc_embedded_window_get_gtk_window;
+ iface->get_statusbar = gnc_embedded_window_get_statusbar;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-embedded-window.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-embedded-window.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-embedded-window.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-embedded-window.h -- GtkWindow which represents an
* embedded GnuCash window.
*
@@ -53,19 +53,21 @@
/* typedefs & structures */
/** The instance data structure for an embedded window object. */
-typedef struct {
- /** The parent object for an embedded window. */
- GtkVBox vbox;
- /** A pointer to the UI Manager data structure for the whole
- * window. */
- GtkUIManager *ui_merge;
+typedef struct
+{
+ /** The parent object for an embedded window. */
+ GtkVBox vbox;
+ /** A pointer to the UI Manager data structure for the whole
+ * window. */
+ GtkUIManager *ui_merge;
} GncEmbeddedWindow;
/** The class data structure for an embedded window object. */
-typedef struct {
- /** The parent class for an embedded window. */
- GtkVBoxClass vbox;
+typedef struct
+{
+ /** The parent class for an embedded window. */
+ GtkVBoxClass vbox;
} GncEmbeddedWindowClass;
@@ -82,12 +84,12 @@
* @return A pointer to the new object.
*/
GncEmbeddedWindow *gnc_embedded_window_new (const gchar *action_group_name,
- GtkActionEntry *action_entries,
- gint n_action_entries,
- const gchar *ui_filename,
- GtkWidget *enclosing_win,
- gboolean add_accelerators,
- gpointer user_data);
+ GtkActionEntry *action_entries,
+ gint n_action_entries,
+ const gchar *ui_filename,
+ GtkWidget *enclosing_win,
+ gboolean add_accelerators,
+ gpointer user_data);
/** Display a data plugin page in a window.
@@ -97,7 +99,7 @@
* @param page The new page of data to be displayed.
*/
void gnc_embedded_window_open_page (GncEmbeddedWindow *window,
- GncPluginPage *page);
+ GncPluginPage *page);
/** Remove a data plugin page from a window.
@@ -106,7 +108,7 @@
*
* @param page The page of data to be removed. */
void gnc_embedded_window_close_page (GncEmbeddedWindow *window,
- GncPluginPage *page);
+ GncPluginPage *page);
/** Retrieve the plugin that is embedded in the specified window.
Modified: gnucash/trunk/src/gnome-utils/gnc-file.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-file.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-file.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -75,534 +75,559 @@
gnc_file_dialog (const char * title,
GList * filters,
const char * starting_dir,
- GNCFileDialogType type
- )
+ GNCFileDialogType type
+ )
{
- GtkWidget *file_box;
- const char *internal_name;
- char *file_name = NULL;
- gchar * okbutton = GTK_STOCK_OPEN;
- const gchar *ok_icon = NULL;
- GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
- gint response;
+ GtkWidget *file_box;
+ const char *internal_name;
+ char *file_name = NULL;
+ gchar * okbutton = GTK_STOCK_OPEN;
+ const gchar *ok_icon = NULL;
+ GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
+ gint response;
- ENTER(" ");
+ ENTER(" ");
- switch (type) {
- case GNC_FILE_DIALOG_OPEN:
- action = GTK_FILE_CHOOSER_ACTION_OPEN;
- okbutton = GTK_STOCK_OPEN;
- if (title == NULL)
- title = _("Open");
- break;
- case GNC_FILE_DIALOG_IMPORT:
- action = GTK_FILE_CHOOSER_ACTION_OPEN;
- okbutton = _("_Import");
- if (title == NULL)
- title = _("Import");
- break;
- case GNC_FILE_DIALOG_SAVE:
- action = GTK_FILE_CHOOSER_ACTION_SAVE;
- okbutton = GTK_STOCK_SAVE;
- if (title == NULL)
- title = _("Save");
- break;
- case GNC_FILE_DIALOG_EXPORT:
- action = GTK_FILE_CHOOSER_ACTION_SAVE;
- okbutton = _("_Export");
- ok_icon = GTK_STOCK_CONVERT;
- if (title == NULL)
- title = _("Export");
- break;
+ switch (type)
+ {
+ case GNC_FILE_DIALOG_OPEN:
+ action = GTK_FILE_CHOOSER_ACTION_OPEN;
+ okbutton = GTK_STOCK_OPEN;
+ if (title == NULL)
+ title = _("Open");
+ break;
+ case GNC_FILE_DIALOG_IMPORT:
+ action = GTK_FILE_CHOOSER_ACTION_OPEN;
+ okbutton = _("_Import");
+ if (title == NULL)
+ title = _("Import");
+ break;
+ case GNC_FILE_DIALOG_SAVE:
+ action = GTK_FILE_CHOOSER_ACTION_SAVE;
+ okbutton = GTK_STOCK_SAVE;
+ if (title == NULL)
+ title = _("Save");
+ break;
+ case GNC_FILE_DIALOG_EXPORT:
+ action = GTK_FILE_CHOOSER_ACTION_SAVE;
+ okbutton = _("_Export");
+ ok_icon = GTK_STOCK_CONVERT;
+ if (title == NULL)
+ title = _("Export");
+ break;
- }
+ }
- file_box = gtk_file_chooser_dialog_new(
- title,
- NULL,
- action,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- NULL);
- if (ok_icon)
- gnc_gtk_dialog_add_button(file_box, okbutton, ok_icon, GTK_RESPONSE_ACCEPT);
- else
- gtk_dialog_add_button(GTK_DIALOG(file_box),
- okbutton, GTK_RESPONSE_ACCEPT);
+ file_box = gtk_file_chooser_dialog_new(
+ title,
+ NULL,
+ action,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ NULL);
+ if (ok_icon)
+ gnc_gtk_dialog_add_button(file_box, okbutton, ok_icon, GTK_RESPONSE_ACCEPT);
+ else
+ gtk_dialog_add_button(GTK_DIALOG(file_box),
+ okbutton, GTK_RESPONSE_ACCEPT);
- if (starting_dir)
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (file_box),
- starting_dir);
+ if (starting_dir)
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (file_box),
+ starting_dir);
- gtk_window_set_modal(GTK_WINDOW(file_box), TRUE);
- /*
- gtk_window_set_transient_for(GTK_WINDOW(file_box),
- GTK_WINDOW(gnc_ui_get_toplevel()));
- */
+ gtk_window_set_modal(GTK_WINDOW(file_box), TRUE);
+ /*
+ gtk_window_set_transient_for(GTK_WINDOW(file_box),
+ GTK_WINDOW(gnc_ui_get_toplevel()));
+ */
- if (filters != NULL)
- {
- GList* filter;
- GtkFileFilter* all_filter = gtk_file_filter_new();
+ if (filters != NULL)
+ {
+ GList* filter;
+ GtkFileFilter* all_filter = gtk_file_filter_new();
- for (filter=filters; filter; filter=filter->next) {
- g_return_val_if_fail(GTK_IS_FILE_FILTER(filter->data), NULL);
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_box),
- GTK_FILE_FILTER (filter->data));
- }
+ for (filter = filters; filter; filter = filter->next)
+ {
+ g_return_val_if_fail(GTK_IS_FILE_FILTER(filter->data), NULL);
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_box),
+ GTK_FILE_FILTER (filter->data));
+ }
- gtk_file_filter_set_name (all_filter, _("All files"));
- gtk_file_filter_add_pattern (all_filter, "*");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_box), all_filter);
+ gtk_file_filter_set_name (all_filter, _("All files"));
+ gtk_file_filter_add_pattern (all_filter, "*");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_box), all_filter);
- /* Note: You cannot set a file filter and preselect a file name.
- * The latter wins, and the filter ends up disabled. Since we are
- * only setting the starting directory for the chooser dialog,
- * everything works as expected. */
- gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (file_box),
- GTK_FILE_FILTER (filters->data));
- g_list_free (filters);
- }
+ /* Note: You cannot set a file filter and preselect a file name.
+ * The latter wins, and the filter ends up disabled. Since we are
+ * only setting the starting directory for the chooser dialog,
+ * everything works as expected. */
+ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (file_box),
+ GTK_FILE_FILTER (filters->data));
+ g_list_free (filters);
+ }
- response = gtk_dialog_run(GTK_DIALOG(file_box));
+ response = gtk_dialog_run(GTK_DIALOG(file_box));
- if (response == GTK_RESPONSE_ACCEPT) {
- /* look for constructs like postgres://foo */
- internal_name = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER (file_box));
- if (strstr (internal_name, "file://") == internal_name) {
- /* nope, a local file name */
- internal_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_box));
+ if (response == GTK_RESPONSE_ACCEPT)
+ {
+ /* look for constructs like postgres://foo */
+ internal_name = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER (file_box));
+ if (strstr (internal_name, "file://") == internal_name)
+ {
+ /* nope, a local file name */
+ internal_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_box));
+ }
+ file_name = g_strdup(internal_name);
}
- file_name = g_strdup(internal_name);
- }
- gtk_widget_destroy(GTK_WIDGET(file_box));
- LEAVE("%s", file_name ? file_name : "(null)");
- return file_name;
+ gtk_widget_destroy(GTK_WIDGET(file_box));
+ LEAVE("%s", file_name ? file_name : "(null)");
+ return file_name;
}
gboolean
show_session_error (QofBackendError io_error,
- const char *newfile,
- GNCFileDialogType type)
+ const char *newfile,
+ GNCFileDialogType type)
{
- GtkWidget *parent = gnc_ui_get_toplevel();
- GtkWidget *dialog;
- gboolean uh_oh = TRUE;
- const char *fmt, *label;
- gint response;
+ GtkWidget *parent = gnc_ui_get_toplevel();
+ GtkWidget *dialog;
+ gboolean uh_oh = TRUE;
+ const char *fmt, *label;
+ gint response;
- if (NULL == newfile) { newfile = _("(null)"); }
+ if (NULL == newfile)
+ {
+ newfile = _("(null)");
+ }
- switch (io_error)
- {
+ switch (io_error)
+ {
case ERR_BACKEND_NO_ERR:
- uh_oh = FALSE;
- break;
+ uh_oh = FALSE;
+ break;
case ERR_BACKEND_NO_HANDLER:
- fmt = _("No suitable backend was found for %s.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("No suitable backend was found for %s.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_BACKEND_NO_BACKEND:
- fmt = _("The URL %s is not supported by this version of GnuCash.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("The URL %s is not supported by this version of GnuCash.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_BAD_URL:
- fmt = _("Can't parse the URL %s.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("Can't parse the URL %s.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_CANT_CONNECT:
- fmt = _("Can't connect to %s. "
- "The host, username or password were incorrect.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("Can't connect to %s. "
+ "The host, username or password were incorrect.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_CONN_LOST:
- fmt = _("Can't connect to %s. "
- "Connection was lost, unable to send data.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("Can't connect to %s. "
+ "Connection was lost, unable to send data.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_TOO_NEW:
- fmt = _("This file/URL appears to be from a newer version "
- "of GnuCash. You must upgrade your version of GnuCash "
- "to work with this data.");
- gnc_error_dialog (parent, "%s", fmt);
- break;
+ fmt = _("This file/URL appears to be from a newer version "
+ "of GnuCash. You must upgrade your version of GnuCash "
+ "to work with this data.");
+ gnc_error_dialog (parent, "%s", fmt);
+ break;
case ERR_BACKEND_NO_SUCH_DB:
- fmt = _("The database %s doesn't seem to exist. "
- "Do you want to create it?");
- if (gnc_verify_dialog (parent, TRUE, fmt, newfile)) { uh_oh = FALSE; }
- break;
+ fmt = _("The database %s doesn't seem to exist. "
+ "Do you want to create it?");
+ if (gnc_verify_dialog (parent, TRUE, fmt, newfile))
+ {
+ uh_oh = FALSE;
+ }
+ break;
case ERR_BACKEND_LOCKED:
- switch (type){
+ switch (type)
+ {
case GNC_FILE_DIALOG_OPEN:
default:
- label = GTK_STOCK_OPEN;
- fmt = _("GnuCash could not obtain the lock for %s. "
- "That database may be in use by another user, "
- "in which case you should not open the database. "
- "Do you want to proceed with opening the database?");
- break;
+ label = GTK_STOCK_OPEN;
+ fmt = _("GnuCash could not obtain the lock for %s. "
+ "That database may be in use by another user, "
+ "in which case you should not open the database. "
+ "Do you want to proceed with opening the database?");
+ break;
case GNC_FILE_DIALOG_IMPORT:
- label = _("Import");
- fmt = _("GnuCash could not obtain the lock for %s. "
- "That database may be in use by another user, "
- "in which case you should not import the database. "
- "Do you want to proceed with importing the database?");
- break;
+ label = _("Import");
+ fmt = _("GnuCash could not obtain the lock for %s. "
+ "That database may be in use by another user, "
+ "in which case you should not import the database. "
+ "Do you want to proceed with importing the database?");
+ break;
case GNC_FILE_DIALOG_SAVE:
- label = GTK_STOCK_SAVE;
- fmt = _("GnuCash could not obtain the lock for %s. "
- "That database may be in use by another user, "
- "in which case you should not save the database. "
- "Do you want to proceed with saving the database?");
- break;
+ label = GTK_STOCK_SAVE;
+ fmt = _("GnuCash could not obtain the lock for %s. "
+ "That database may be in use by another user, "
+ "in which case you should not save the database. "
+ "Do you want to proceed with saving the database?");
+ break;
case GNC_FILE_DIALOG_EXPORT:
- label = _("Export");
- fmt = _("GnuCash could not obtain the lock for %s. "
- "That database may be in use by another user, "
- "in which case you should not export the database. "
- "Do you want to proceed with exporting the database?");
- break;
- }
+ label = _("Export");
+ fmt = _("GnuCash could not obtain the lock for %s. "
+ "That database may be in use by another user, "
+ "in which case you should not export the database. "
+ "Do you want to proceed with exporting the database?");
+ break;
+ }
- dialog = gtk_message_dialog_new(GTK_WINDOW(parent),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE,
- fmt,
- newfile);
- gtk_dialog_add_buttons(GTK_DIALOG(dialog),
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- label, GTK_RESPONSE_YES,
- NULL);
- response = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
- uh_oh = (response != GTK_RESPONSE_YES);
- break;
+ dialog = gtk_message_dialog_new(GTK_WINDOW(parent),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_NONE,
+ fmt,
+ newfile);
+ gtk_dialog_add_buttons(GTK_DIALOG(dialog),
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ label, GTK_RESPONSE_YES,
+ NULL);
+ response = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
+ uh_oh = (response != GTK_RESPONSE_YES);
+ break;
case ERR_BACKEND_READONLY:
- fmt = _("GnuCash could not write to %s. "
- "That database may be on a read-only file system, "
- "or you may not have write permission for the directory.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("GnuCash could not write to %s. "
+ "That database may be on a read-only file system, "
+ "or you may not have write permission for the directory.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_DATA_CORRUPT:
- fmt = _("The file/URL %s "
- "does not contain GnuCash data or the data is corrupt.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("The file/URL %s "
+ "does not contain GnuCash data or the data is corrupt.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_SERVER_ERR:
- fmt = _("The server at URL %s "
- "experienced an error or encountered bad or corrupt data.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("The server at URL %s "
+ "experienced an error or encountered bad or corrupt data.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_PERM:
- fmt = _("You do not have permission to access %s.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("You do not have permission to access %s.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_BACKEND_MISC:
- fmt = _("An error occurred while processing %s.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("An error occurred while processing %s.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
- /* QSF additions */
+ /* QSF additions */
case ERR_QSF_INVALID_OBJ:
- fmt = _("Invalid QSF Object file! The QSF object file %s failed to"
- " validate against the QSF object schema. The XML structure of"
- " the file is either not well-formed or contains illegal data.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("Invalid QSF Object file! The QSF object file %s failed to"
+ " validate against the QSF object schema. The XML structure of"
+ " the file is either not well-formed or contains illegal data.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_INVALID_MAP:
- fmt = _("Invalid QSF Map file! The QSF map file %s failed to validate"
- " against the QSF map schema. The XML structure of the file"
- " is either not well-formed or contains illegal data.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("Invalid QSF Map file! The QSF map file %s failed to validate"
+ " against the QSF map schema. The XML structure of the file"
+ " is either not well-formed or contains illegal data.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_BAD_QOF_VERSION:
- fmt = _("The QSF Map file %s was written for a different version of"
- " QOF. It may need to be modified to work with your current"
- " QOF installation.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The QSF Map file %s was written for a different version of"
+ " QOF. It may need to be modified to work with your current"
+ " QOF installation.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_BAD_MAP:
- fmt = _("The selected QSF map %s contains unusable data. "
- "This is usually because not all the required parameters for "
- "the defined objects have calculations described in the map.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The selected QSF map %s contains unusable data. "
+ "This is usually because not all the required parameters for "
+ "the defined objects have calculations described in the map.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_BAD_OBJ_GUID:
- fmt = _("The selected QSF object file %s contains one or more invalid "
- "GUIDs. The file cannot be processed - please check the source "
- "of the file and try again.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The selected QSF object file %s contains one or more invalid "
+ "GUIDs. The file cannot be processed - please check the source "
+ "of the file and try again.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_NO_MAP:
- fmt = _("The selected QSF Object file %s requires a map but it was "
- "not provided.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The selected QSF Object file %s requires a map but it was "
+ "not provided.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_WRONG_MAP:
- fmt = _("Wrong QSF map selected. The selected map %s validates but was "
- "written for different QOF objects. The list of objects defined "
- "in this map does not include all the objects described in "
- "the current QSF object file.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("Wrong QSF map selected. The selected map %s validates but was "
+ "written for different QOF objects. The list of objects defined "
+ "in this map does not include all the objects described in "
+ "the current QSF object file.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_MAP_NOT_OBJ:
- fmt = _("The selected file %s is a QSF map and cannot be "
- "opened as a QSF object.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The selected file %s is a QSF map and cannot be "
+ "opened as a QSF object.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_OVERFLOW:
- fmt = _("When converting XML strings into numbers, an overflow "
- "has been detected. The QSF object file %s contains invalid "
- "data in a field that is meant to hold a number.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("When converting XML strings into numbers, an overflow "
+ "has been detected. The QSF object file %s contains invalid "
+ "data in a field that is meant to hold a number.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_QSF_OPEN_NOT_MERGE:
- fmt = _("The QSF object file %s is valid and contains GnuCash "
- "objects. However, GnuCash cannot open the file directly because "
- "the data needs to be merged into an existing GnuCash data book. "
- "Please open a GnuCash file or create a new one, then import "
- "this QSF object file so that the data can be merged into the "
- "main data book.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The QSF object file %s is valid and contains GnuCash "
+ "objects. However, GnuCash cannot open the file directly because "
+ "the data needs to be merged into an existing GnuCash data book. "
+ "Please open a GnuCash file or create a new one, then import "
+ "this QSF object file so that the data can be merged into the "
+ "main data book.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_FILEIO_FILE_BAD_READ:
- fmt = _("There was an error reading the file. "
- "Do you want to continue?");
- if (gnc_verify_dialog (parent, TRUE, "%s", fmt)) { uh_oh = FALSE; }
- break;
+ fmt = _("There was an error reading the file. "
+ "Do you want to continue?");
+ if (gnc_verify_dialog (parent, TRUE, "%s", fmt))
+ {
+ uh_oh = FALSE;
+ }
+ break;
case ERR_FILEIO_PARSE_ERROR:
- fmt = _("There was an error parsing the file %s.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("There was an error parsing the file %s.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_FILEIO_FILE_EMPTY:
- fmt = _("The file %s is empty.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("The file %s is empty.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_FILEIO_FILE_NOT_FOUND:
- if (type == GNC_FILE_DIALOG_SAVE) {
- uh_oh = FALSE;
- } else {
- fmt = _("The file %s could not be found.");
- gnc_error_dialog (parent, fmt, newfile);
- }
- break;
+ if (type == GNC_FILE_DIALOG_SAVE)
+ {
+ uh_oh = FALSE;
+ }
+ else
+ {
+ fmt = _("The file %s could not be found.");
+ gnc_error_dialog (parent, fmt, newfile);
+ }
+ break;
case ERR_FILEIO_FILE_TOO_OLD:
- fmt = _("This file is from an older version of GnuCash. "
- "Do you want to continue?");
- if (gnc_verify_dialog (parent, TRUE, "%s", fmt)) { uh_oh = FALSE; }
- break;
+ fmt = _("This file is from an older version of GnuCash. "
+ "Do you want to continue?");
+ if (gnc_verify_dialog (parent, TRUE, "%s", fmt))
+ {
+ uh_oh = FALSE;
+ }
+ break;
case ERR_FILEIO_UNKNOWN_FILE_TYPE:
- fmt = _("The file type of file %s is unknown.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("The file type of file %s is unknown.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_FILEIO_BACKUP_ERROR:
- fmt = _("Could not make a backup of the file %s");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("Could not make a backup of the file %s");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_FILEIO_WRITE_ERROR:
- fmt = _("Could not write to file %s. Check that you have "
- "permission to write to this file and that "
- "there is sufficient space to create it.");
- gnc_error_dialog(parent, fmt, newfile);
- break;
+ fmt = _("Could not write to file %s. Check that you have "
+ "permission to write to this file and that "
+ "there is sufficient space to create it.");
+ gnc_error_dialog(parent, fmt, newfile);
+ break;
case ERR_FILEIO_FILE_EACCES:
- fmt = _("No read permission to read from file %s.");
- gnc_error_dialog (parent, fmt, newfile);
- break;
+ fmt = _("No read permission to read from file %s.");
+ gnc_error_dialog (parent, fmt, newfile);
+ break;
case ERR_SQL_DB_TOO_OLD:
- fmt = _("This database is from an older version of GnuCash. "
- "Do you want to want to upgrade the database "
- "to the current version?");
- if (gnc_verify_dialog (parent, TRUE, "%s", fmt)) { uh_oh = FALSE; }
- break;
+ fmt = _("This database is from an older version of GnuCash. "
+ "Do you want to want to upgrade the database "
+ "to the current version?");
+ if (gnc_verify_dialog (parent, TRUE, "%s", fmt))
+ {
+ uh_oh = FALSE;
+ }
+ break;
case ERR_SQL_DB_BUSY:
- fmt = _("The SQL database is in use by other users, "
- "and the upgrade cannot be performed until they logoff. "
- "If there are currently no other users, consult the "
- "documentation to learn how to clear out dangling login "
- "sessions.");
- gnc_error_dialog (parent, "%s", fmt);
- break;
+ fmt = _("The SQL database is in use by other users, "
+ "and the upgrade cannot be performed until they logoff. "
+ "If there are currently no other users, consult the "
+ "documentation to learn how to clear out dangling login "
+ "sessions.");
+ gnc_error_dialog (parent, "%s", fmt);
+ break;
default:
- PERR("FIXME: Unhandled error %d", io_error);
- fmt = _("An unknown I/O error (%d) occurred.");
- gnc_error_dialog (parent, fmt, io_error);
- break;
- }
+ PERR("FIXME: Unhandled error %d", io_error);
+ fmt = _("An unknown I/O error (%d) occurred.");
+ gnc_error_dialog (parent, fmt, io_error);
+ break;
+ }
- return uh_oh;
+ return uh_oh;
}
static void
gnc_add_history (QofSession * session)
{
- char *url;
- char *file;
+ char *url;
+ char *file;
- if (!session) return;
+ if (!session) return;
- url = xaccResolveURL (qof_session_get_url (session));
- if (!url)
- return;
+ url = xaccResolveURL (qof_session_get_url (session));
+ if (!url)
+ return;
- if (strncmp (url, "file:", 5) == 0)
- file = url + 5;
- else
- file = url;
+ if (strncmp (url, "file:", 5) == 0)
+ file = url + 5;
+ else
+ file = url;
- gnc_history_add_file (file);
+ gnc_history_add_file (file);
- g_free (url);
+ g_free (url);
}
static void
gnc_book_opened (void)
{
- gnc_hook_run(HOOK_BOOK_OPENED, gnc_get_current_session());
+ gnc_hook_run(HOOK_BOOK_OPENED, gnc_get_current_session());
}
void
gnc_file_new (void)
{
- QofSession *session;
+ QofSession *session;
- /* If user attempts to start a new session before saving results of
- * the last one, prompt them to clean up their act. */
- if (!gnc_file_query_save (TRUE))
- return;
+ /* If user attempts to start a new session before saving results of
+ * the last one, prompt them to clean up their act. */
+ if (!gnc_file_query_save (TRUE))
+ return;
- if (gnc_current_session_exist()) {
- session = gnc_get_current_session ();
+ if (gnc_current_session_exist())
+ {
+ session = gnc_get_current_session ();
- /* close any ongoing file sessions, and free the accounts.
- * disable events so we don't get spammed by redraws. */
- qof_event_suspend ();
+ /* close any ongoing file sessions, and free the accounts.
+ * disable events so we don't get spammed by redraws. */
+ qof_event_suspend ();
- qof_session_call_close_hooks(session);
- gnc_hook_run(HOOK_BOOK_CLOSED, session);
+ qof_session_call_close_hooks(session);
+ gnc_hook_run(HOOK_BOOK_CLOSED, session);
- gnc_close_gui_component_by_session (session);
- gnc_clear_current_session();
- qof_event_resume ();
- }
+ gnc_close_gui_component_by_session (session);
+ gnc_clear_current_session();
+ qof_event_resume ();
+ }
- /* start a new book */
- gnc_get_current_session ();
+ /* start a new book */
+ gnc_get_current_session ();
- gnc_hook_run(HOOK_NEW_BOOK, NULL);
+ gnc_hook_run(HOOK_NEW_BOOK, NULL);
- gnc_gui_refresh_all ();
+ gnc_gui_refresh_all ();
- /* Call this after re-enabling events. */
- gnc_book_opened ();
+ /* Call this after re-enabling events. */
+ gnc_book_opened ();
}
gboolean
gnc_file_query_save (gboolean can_cancel)
{
- GtkWidget *parent = gnc_ui_get_toplevel();
- QofBook *current_book;
+ GtkWidget *parent = gnc_ui_get_toplevel();
+ QofBook *current_book;
- if (!gnc_current_session_exist())
- return TRUE;
+ if (!gnc_current_session_exist())
+ return TRUE;
- current_book = qof_session_get_book (gnc_get_current_session ());
- /* Remove any pending auto-save timeouts */
- gnc_autosave_remove_timer(current_book);
+ current_book = qof_session_get_book (gnc_get_current_session ());
+ /* Remove any pending auto-save timeouts */
+ gnc_autosave_remove_timer(current_book);
- /* If user wants to mess around before finishing business with
- * the old file, give him a chance to figure out what's up.
- * Pose the question as a "while" loop, so that if user screws
- * up the file-selection dialog, we don't blow him out of the water;
- * instead, give them another chance to say "no" to the verify box.
- */
- while (qof_book_not_saved(current_book))
- {
- GtkWidget *dialog;
- gint response;
- const char *title = _("Save changes to the file?");
- /* This should be the same message as in gnc-main-window.c */
- const gchar *message =
- _("If you don't save, changes from the past %d minutes will be discarded.");
- time_t oldest_change;
- gint minutes;
+ /* If user wants to mess around before finishing business with
+ * the old file, give him a chance to figure out what's up.
+ * Pose the question as a "while" loop, so that if user screws
+ * up the file-selection dialog, we don't blow him out of the water;
+ * instead, give them another chance to say "no" to the verify box.
+ */
+ while (qof_book_not_saved(current_book))
+ {
+ GtkWidget *dialog;
+ gint response;
+ const char *title = _("Save changes to the file?");
+ /* This should be the same message as in gnc-main-window.c */
+ const gchar *message =
+ _("If you don't save, changes from the past %d minutes will be discarded.");
+ time_t oldest_change;
+ gint minutes;
- dialog = gtk_message_dialog_new(GTK_WINDOW(parent),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE,
- "%s", title);
- oldest_change = qof_book_get_dirty_time(current_book);
- minutes = (time(NULL) - oldest_change) / 60 + 1;
- gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
- message, minutes);
- gtk_dialog_add_button(GTK_DIALOG(dialog),
- _("Continue _Without Saving"), GTK_RESPONSE_OK);
+ dialog = gtk_message_dialog_new(GTK_WINDOW(parent),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_NONE,
+ "%s", title);
+ oldest_change = qof_book_get_dirty_time(current_book);
+ minutes = (time(NULL) - oldest_change) / 60 + 1;
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+ message, minutes);
+ gtk_dialog_add_button(GTK_DIALOG(dialog),
+ _("Continue _Without Saving"), GTK_RESPONSE_OK);
- if (can_cancel)
- gtk_dialog_add_button(GTK_DIALOG(dialog),
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button(GTK_DIALOG(dialog),
- GTK_STOCK_SAVE, GTK_RESPONSE_YES);
- response = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ if (can_cancel)
+ gtk_dialog_add_button(GTK_DIALOG(dialog),
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button(GTK_DIALOG(dialog),
+ GTK_STOCK_SAVE, GTK_RESPONSE_YES);
+ response = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
- switch (response) {
- case GTK_RESPONSE_YES:
- gnc_file_save ();
- /* Go check the loop condition. */
- break;
+ switch (response)
+ {
+ case GTK_RESPONSE_YES:
+ gnc_file_save ();
+ /* Go check the loop condition. */
+ break;
- case GTK_RESPONSE_CANCEL:
- default:
- if (can_cancel)
- return FALSE;
- /* No cancel function available. Fall through. */
+ case GTK_RESPONSE_CANCEL:
+ default:
+ if (can_cancel)
+ return FALSE;
+ /* No cancel function available. Fall through. */
- case GTK_RESPONSE_OK:
- return TRUE;
+ case GTK_RESPONSE_OK:
+ return TRUE;
+ }
}
- }
- return TRUE;
+ return TRUE;
}
/* private utilities for file open; done in two stages */
@@ -614,347 +639,351 @@
static gboolean
gnc_post_file_open (const char * filename)
{
- QofSession *current_session, *new_session;
- gboolean uh_oh = FALSE;
- char * newfile;
- QofBackendError io_err = ERR_BACKEND_NO_ERR;
+ QofSession *current_session, *new_session;
+ gboolean uh_oh = FALSE;
+ char * newfile;
+ QofBackendError io_err = ERR_BACKEND_NO_ERR;
- if (!filename) return FALSE;
+ if (!filename) return FALSE;
- newfile = xaccResolveURL (filename);
- if (!newfile)
- {
- show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
- GNC_FILE_DIALOG_OPEN);
- return FALSE;
- }
+ newfile = xaccResolveURL (filename);
+ if (!newfile)
+ {
+ show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
+ GNC_FILE_DIALOG_OPEN);
+ return FALSE;
+ }
- /* disable events while moving over to the new set of accounts;
- * the mass deletion of accounts and transactions during
- * switchover would otherwise cause excessive redraws. */
- qof_event_suspend ();
+ /* disable events while moving over to the new set of accounts;
+ * the mass deletion of accounts and transactions during
+ * switchover would otherwise cause excessive redraws. */
+ qof_event_suspend ();
- /* Change the mouse to a busy cursor */
- gnc_set_busy_cursor (NULL, TRUE);
+ /* Change the mouse to a busy cursor */
+ gnc_set_busy_cursor (NULL, TRUE);
- /* -------------- BEGIN CORE SESSION CODE ------------- */
- /* -- this code is almost identical in FileOpen and FileSaveAs -- */
- current_session = gnc_get_current_session();
- qof_session_call_close_hooks(current_session);
- gnc_hook_run(HOOK_BOOK_CLOSED, current_session);
- gnc_close_gui_component_by_session (current_session);
- gnc_clear_current_session();
+ /* -------------- BEGIN CORE SESSION CODE ------------- */
+ /* -- this code is almost identical in FileOpen and FileSaveAs -- */
+ current_session = gnc_get_current_session();
+ qof_session_call_close_hooks(current_session);
+ gnc_hook_run(HOOK_BOOK_CLOSED, current_session);
+ gnc_close_gui_component_by_session (current_session);
+ gnc_clear_current_session();
- /* load the accounts from the users datafile */
- /* but first, check to make sure we've got a session going. */
- new_session = qof_session_new ();
+ /* load the accounts from the users datafile */
+ /* but first, check to make sure we've got a session going. */
+ new_session = qof_session_new ();
- qof_session_begin (new_session, newfile, FALSE, FALSE);
- io_err = qof_session_get_error (new_session);
- /* if file appears to be locked, ask the user ... */
- if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
- {
- GtkWidget *dialog;
- char *fmt1 = _("GnuCash could not obtain the lock for %s.");
- char *fmt2 = ((ERR_BACKEND_LOCKED == io_err) ?
- _("That database may be in use by another user, "
- "in which case you should not open the database. "
- "What would you like to do?") :
- _("That database may be on a read-only file system, "
- "or you may not have write permission for the directory. "
- "If you proceed you may not be able to save any changes. "
- "What would you like to do?")
- );
- int rc;
+ qof_session_begin (new_session, newfile, FALSE, FALSE);
+ io_err = qof_session_get_error (new_session);
+ /* if file appears to be locked, ask the user ... */
+ if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
+ {
+ GtkWidget *dialog;
+ char *fmt1 = _("GnuCash could not obtain the lock for %s.");
+ char *fmt2 = ((ERR_BACKEND_LOCKED == io_err) ?
+ _("That database may be in use by another user, "
+ "in which case you should not open the database. "
+ "What would you like to do?") :
+ _("That database may be on a read-only file system, "
+ "or you may not have write permission for the directory. "
+ "If you proceed you may not be able to save any changes. "
+ "What would you like to do?")
+ );
+ int rc;
- // Bug#467521: on Mac (and maybe Win?), the dialog will appear below the
- // splash, but is modal, so we can't get rid of the splash... So, get
- // rid of it now.
- gnc_destroy_splash_screen();
+ // Bug#467521: on Mac (and maybe Win?), the dialog will appear below the
+ // splash, but is modal, so we can't get rid of the splash... So, get
+ // rid of it now.
+ gnc_destroy_splash_screen();
- dialog = gtk_message_dialog_new(NULL,
- 0,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_NONE,
- fmt1, newfile);
- gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
- "%s", fmt2);
+ dialog = gtk_message_dialog_new(NULL,
+ 0,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_NONE,
+ fmt1, newfile);
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+ "%s", fmt2);
- gnc_gtk_dialog_add_button(dialog, _("_Open Anyway"),
- GTK_STOCK_OPEN, RESPONSE_OPEN);
- gnc_gtk_dialog_add_button(dialog, _("_Create New File"),
- GTK_STOCK_NEW, RESPONSE_NEW);
- if (shutdown_cb)
- gtk_dialog_add_button(GTK_DIALOG(dialog),
- GTK_STOCK_QUIT, RESPONSE_QUIT);
- rc = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ gnc_gtk_dialog_add_button(dialog, _("_Open Anyway"),
+ GTK_STOCK_OPEN, RESPONSE_OPEN);
+ gnc_gtk_dialog_add_button(dialog, _("_Create New File"),
+ GTK_STOCK_NEW, RESPONSE_NEW);
+ if (shutdown_cb)
+ gtk_dialog_add_button(GTK_DIALOG(dialog),
+ GTK_STOCK_QUIT, RESPONSE_QUIT);
+ rc = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
- if (rc == GTK_RESPONSE_DELETE_EVENT)
+ if (rc == GTK_RESPONSE_DELETE_EVENT)
+ {
+ rc = shutdown_cb ? RESPONSE_QUIT : RESPONSE_NEW;
+ }
+ if (rc == RESPONSE_QUIT)
+ {
+ if (shutdown_cb)
+ shutdown_cb(0);
+ g_assert(1);
+ }
+ else if (rc == RESPONSE_OPEN)
+ {
+ /* user told us to ignore locks. So ignore them. */
+ qof_session_begin (new_session, newfile, TRUE, FALSE);
+ }
+ else
+ {
+ /* Can't use the given file, so just create a new
+ * database so that the user will get a window that
+ * they can click "Exit" on.
+ */
+ gnc_file_new ();
+ }
+ }
+ if (ERR_QSF_OPEN_NOT_MERGE == io_err)
{
- rc = shutdown_cb ? RESPONSE_QUIT : RESPONSE_NEW;
+ uh_oh = TRUE;
}
- if (rc == RESPONSE_QUIT)
+ /* if the database doesn't exist, ask the user ... */
+ else if ((ERR_BACKEND_NO_SUCH_DB == io_err) ||
+ (ERR_SQL_DB_TOO_OLD == io_err))
{
- if (shutdown_cb)
- shutdown_cb(0);
- g_assert(1);
+ if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN))
+ {
+ /* user told us to create a new database. Do it. */
+ qof_session_begin (new_session, newfile, FALSE, TRUE);
+ }
}
- else if (rc == RESPONSE_OPEN)
+
+ /* Check for errors again, since above may have cleared the lock.
+ * If its still locked, still, doesn't exist, still too old, then
+ * don't bother with the message, just die. */
+ io_err = qof_session_get_error (new_session);
+ if ((ERR_BACKEND_LOCKED == io_err) ||
+ (ERR_BACKEND_READONLY == io_err) ||
+ (ERR_BACKEND_NO_SUCH_DB == io_err) ||
+ (ERR_SQL_DB_TOO_OLD == io_err))
{
- /* user told us to ignore locks. So ignore them. */
- qof_session_begin (new_session, newfile, TRUE, FALSE);
+ uh_oh = TRUE;
}
else
{
- /* Can't use the given file, so just create a new
- * database so that the user will get a window that
- * they can click "Exit" on.
- */
- gnc_file_new ();
+ uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
}
- }
- if(ERR_QSF_OPEN_NOT_MERGE == io_err)
- {
- uh_oh = TRUE;
- }
- /* if the database doesn't exist, ask the user ... */
- else if ((ERR_BACKEND_NO_SUCH_DB == io_err) ||
- (ERR_SQL_DB_TOO_OLD == io_err))
- {
- if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN))
+
+ if (!uh_oh)
{
- /* user told us to create a new database. Do it. */
- qof_session_begin (new_session, newfile, FALSE, TRUE);
- }
- }
+ Account *new_root;
- /* Check for errors again, since above may have cleared the lock.
- * If its still locked, still, doesn't exist, still too old, then
- * don't bother with the message, just die. */
- io_err = qof_session_get_error (new_session);
- if ((ERR_BACKEND_LOCKED == io_err) ||
- (ERR_BACKEND_READONLY == io_err) ||
- (ERR_BACKEND_NO_SUCH_DB == io_err) ||
- (ERR_SQL_DB_TOO_OLD == io_err))
- {
- uh_oh = TRUE;
- }
- else
- {
- uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
- }
+ char * logpath = xaccResolveFilePath(newfile);
+ PINFO ("logpath=%s", logpath ? logpath : "(null)");
+ xaccLogSetBaseName (logpath);
+ xaccLogDisable();
- if (!uh_oh)
- {
- Account *new_root;
-
- char * logpath = xaccResolveFilePath(newfile);
- PINFO ("logpath=%s", logpath ? logpath : "(null)");
- xaccLogSetBaseName (logpath);
- xaccLogDisable();
-
- gnc_window_show_progress(_("Loading user data..."), 0.0);
- qof_session_load (new_session, gnc_window_show_progress);
- gnc_window_show_progress(NULL, -1.0);
- xaccLogEnable();
-
- /* check for i/o error, put up appropriate error dialog */
- io_err = qof_session_get_error (new_session);
-
- if (io_err == ERR_FILEIO_NO_ENCODING) {
- qof_session_pop_error (new_session);
- if (gnc_xml_convert_single_file (newfile)) {
- /* try to load once again */
gnc_window_show_progress(_("Loading user data..."), 0.0);
qof_session_load (new_session, gnc_window_show_progress);
gnc_window_show_progress(NULL, -1.0);
xaccLogEnable();
+
+ /* check for i/o error, put up appropriate error dialog */
io_err = qof_session_get_error (new_session);
- }
- else {
- io_err = ERR_FILEIO_PARSE_ERROR;
- }
- }
- uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
+ if (io_err == ERR_FILEIO_NO_ENCODING)
+ {
+ qof_session_pop_error (new_session);
+ if (gnc_xml_convert_single_file (newfile))
+ {
+ /* try to load once again */
+ gnc_window_show_progress(_("Loading user data..."), 0.0);
+ qof_session_load (new_session, gnc_window_show_progress);
+ gnc_window_show_progress(NULL, -1.0);
+ xaccLogEnable();
+ io_err = qof_session_get_error (new_session);
+ }
+ else
+ {
+ io_err = ERR_FILEIO_PARSE_ERROR;
+ }
+ }
- new_root = gnc_book_get_root_account (qof_session_get_book (new_session));
- if (uh_oh) new_root = NULL;
+ uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
- /* Umm, came up empty-handed, but no error:
- * The backend forgot to set an error. So make one up. */
- if (!uh_oh && !new_root)
- {
- uh_oh = show_session_error (ERR_BACKEND_MISC, newfile,
- GNC_FILE_DIALOG_OPEN);
+ new_root = gnc_book_get_root_account (qof_session_get_book (new_session));
+ if (uh_oh) new_root = NULL;
+
+ /* Umm, came up empty-handed, but no error:
+ * The backend forgot to set an error. So make one up. */
+ if (!uh_oh && !new_root)
+ {
+ uh_oh = show_session_error (ERR_BACKEND_MISC, newfile,
+ GNC_FILE_DIALOG_OPEN);
+ }
}
- }
- gnc_unset_busy_cursor (NULL);
+ gnc_unset_busy_cursor (NULL);
- /* going down -- abandon ship */
- if (uh_oh)
- {
- xaccLogDisable();
- qof_session_destroy (new_session);
- xaccLogEnable();
+ /* going down -- abandon ship */
+ if (uh_oh)
+ {
+ xaccLogDisable();
+ qof_session_destroy (new_session);
+ xaccLogEnable();
- /* well, no matter what, I think it's a good idea to have a root
- * account around. For example, early in the gnucash startup
- * sequence, the user opens a file; if this open fails for any
- * reason, we don't want to leave them high & dry without a root
- * account, because if the user continues, then bad things will
- * happen. */
- gnc_get_current_session ();
+ /* well, no matter what, I think it's a good idea to have a root
+ * account around. For example, early in the gnucash startup
+ * sequence, the user opens a file; if this open fails for any
+ * reason, we don't want to leave them high & dry without a root
+ * account, because if the user continues, then bad things will
+ * happen. */
+ gnc_get_current_session ();
- g_free (newfile);
+ g_free (newfile);
- qof_event_resume ();
- gnc_gui_refresh_all ();
+ qof_event_resume ();
+ gnc_gui_refresh_all ();
- return FALSE;
- }
+ return FALSE;
+ }
- /* if we got to here, then we've successfully gotten a new session */
- /* close up the old file session (if any) */
- gnc_set_current_session(new_session);
+ /* if we got to here, then we've successfully gotten a new session */
+ /* close up the old file session (if any) */
+ gnc_set_current_session(new_session);
- /* --------------- END CORE SESSION CODE -------------- */
+ /* --------------- END CORE SESSION CODE -------------- */
- /* clean up old stuff, and then we're outta here. */
- gnc_add_history (new_session);
+ /* clean up old stuff, and then we're outta here. */
+ gnc_add_history (new_session);
- g_free (newfile);
+ g_free (newfile);
- qof_event_resume ();
- gnc_gui_refresh_all ();
+ qof_event_resume ();
+ gnc_gui_refresh_all ();
- /* Call this after re-enabling events. */
- gnc_book_opened ();
+ /* Call this after re-enabling events. */
+ gnc_book_opened ();
- return TRUE;
+ return TRUE;
}
gboolean
gnc_file_open (void)
{
- const char * newfile;
- char *lastfile = NULL;
- gchar *last_file_dir = NULL;
- gboolean result;
+ const char * newfile;
+ char *lastfile = NULL;
+ gchar *last_file_dir = NULL;
+ gboolean result;
- if (!gnc_file_query_save (TRUE))
- return FALSE;
+ if (!gnc_file_query_save (TRUE))
+ return FALSE;
- lastfile = gnc_history_get_last();
- if (lastfile)
- last_file_dir = g_path_get_dirname(lastfile);
- newfile = gnc_file_dialog (_("Open"), NULL, last_file_dir, GNC_FILE_DIALOG_OPEN);
- if (lastfile != NULL)
- g_free(lastfile);
- if (last_file_dir != NULL)
- g_free(last_file_dir);
- result = gnc_post_file_open (newfile);
+ lastfile = gnc_history_get_last();
+ if (lastfile)
+ last_file_dir = g_path_get_dirname(lastfile);
+ newfile = gnc_file_dialog (_("Open"), NULL, last_file_dir, GNC_FILE_DIALOG_OPEN);
+ if (lastfile != NULL)
+ g_free(lastfile);
+ if (last_file_dir != NULL)
+ g_free(last_file_dir);
+ result = gnc_post_file_open (newfile);
- /* This dialogue can show up early in the startup process. If the
- * user fails to pick a file (by e.g. hitting the cancel button), we
- * might be left with a null topgroup, which leads to nastiness when
- * user goes to create their very first account. So create one. */
- gnc_get_current_session ();
+ /* This dialogue can show up early in the startup process. If the
+ * user fails to pick a file (by e.g. hitting the cancel button), we
+ * might be left with a null topgroup, which leads to nastiness when
+ * user goes to create their very first account. So create one. */
+ gnc_get_current_session ();
- return result;
+ return result;
}
gboolean
gnc_file_open_file (const char * newfile)
{
- if (!newfile) return FALSE;
+ if (!newfile) return FALSE;
- if (!gnc_file_query_save (TRUE))
- return FALSE;
+ if (!gnc_file_query_save (TRUE))
+ return FALSE;
- return gnc_post_file_open (newfile);
+ return gnc_post_file_open (newfile);
}
void
gnc_file_export_file(const char * newfile)
{
- QofSession *current_session, *new_session;
- gboolean ok;
- QofBackendError io_err = ERR_BACKEND_NO_ERR;
- gchar *default_dir;
+ QofSession *current_session, *new_session;
+ gboolean ok;
+ QofBackendError io_err = ERR_BACKEND_NO_ERR;
+ gchar *default_dir;
- if (!newfile) {
- default_dir = gnc_get_default_directory (GCONF_SECTION);
- newfile = gnc_file_dialog (_("Export"), NULL, default_dir, GNC_FILE_DIALOG_EXPORT);
- g_free(default_dir);
if (!newfile)
- return;
- }
+ {
+ default_dir = gnc_get_default_directory (GCONF_SECTION);
+ newfile = gnc_file_dialog (_("Export"), NULL, default_dir, GNC_FILE_DIALOG_EXPORT);
+ g_free(default_dir);
+ if (!newfile)
+ return;
+ }
- /* Remember the directory as the default. */
- default_dir = g_path_get_dirname(newfile);
- gnc_set_default_directory (GCONF_SECTION, default_dir);
- g_free(default_dir);
+ /* Remember the directory as the default. */
+ default_dir = g_path_get_dirname(newfile);
+ gnc_set_default_directory (GCONF_SECTION, default_dir);
+ g_free(default_dir);
- qof_event_suspend();
+ qof_event_suspend();
- /* -- this session code is NOT identical in FileOpen and FileSaveAs -- */
+ /* -- this session code is NOT identical in FileOpen and FileSaveAs -- */
- new_session = qof_session_new ();
- qof_session_begin (new_session, newfile, FALSE, TRUE);
+ new_session = qof_session_new ();
+ qof_session_begin (new_session, newfile, FALSE, TRUE);
- io_err = qof_session_get_error (new_session);
+ io_err = qof_session_get_error (new_session);
- /* if file appears to be locked, ask the user ... */
- if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
- {
- if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_EXPORT))
+ /* if file appears to be locked, ask the user ... */
+ if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
{
- /* user told us to ignore locks. So ignore them. */
- qof_session_begin (new_session, newfile, TRUE, FALSE);
+ if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_EXPORT))
+ {
+ /* user told us to ignore locks. So ignore them. */
+ qof_session_begin (new_session, newfile, TRUE, FALSE);
+ }
}
- }
- /* --------------- END CORE SESSION CODE -------------- */
+ /* --------------- END CORE SESSION CODE -------------- */
- /* oops ... file already exists ... ask user what to do... */
- if (qof_session_save_may_clobber_data (new_session))
- {
- const char *format = _("The file %s already exists. "
- "Are you sure you want to overwrite it?");
+ /* oops ... file already exists ... ask user what to do... */
+ if (qof_session_save_may_clobber_data (new_session))
+ {
+ const char *format = _("The file %s already exists. "
+ "Are you sure you want to overwrite it?");
- /* if user says cancel, we should break out */
- if (!gnc_verify_dialog (NULL, FALSE, format, newfile))
- {
- return;
+ /* if user says cancel, we should break out */
+ if (!gnc_verify_dialog (NULL, FALSE, format, newfile))
+ {
+ return;
+ }
+
+ /* Whoa-ok. Blow away the previous file. */
}
- /* Whoa-ok. Blow away the previous file. */
- }
+ /* use the current session to save to file */
+ gnc_set_busy_cursor (NULL, TRUE);
+ current_session = gnc_get_current_session();
+ gnc_window_show_progress(_("Exporting file..."), 0.0);
+ ok = qof_session_export (new_session, current_session,
+ gnc_window_show_progress);
+ gnc_window_show_progress(NULL, -1.0);
+ gnc_unset_busy_cursor (NULL);
+ xaccLogDisable();
+ qof_session_destroy (new_session);
+ xaccLogEnable();
+ qof_event_resume();
- /* use the current session to save to file */
- gnc_set_busy_cursor (NULL, TRUE);
- current_session = gnc_get_current_session();
- gnc_window_show_progress(_("Exporting file..."), 0.0);
- ok = qof_session_export (new_session, current_session,
- gnc_window_show_progress);
- gnc_window_show_progress(NULL, -1.0);
- gnc_unset_busy_cursor (NULL);
- xaccLogDisable();
- qof_session_destroy (new_session);
- xaccLogEnable();
- qof_event_resume();
+ if (!ok)
+ {
+ /* %s is the strerror(3) error string of the error that occurred. */
+ const char *format = _("There was an error saving the file.\n\n%s");
- if (!ok)
- {
- /* %s is the strerror(3) error string of the error that occurred. */
- const char *format = _("There was an error saving the file.\n\n%s");
-
- gnc_error_dialog (NULL, format, strerror(errno));
- return;
- }
+ gnc_error_dialog (NULL, format, strerror(errno));
+ return;
+ }
}
static gboolean been_here_before = FALSE;
@@ -962,239 +991,242 @@
void
gnc_file_save (void)
{
- QofBackendError io_err;
- const char * newfile;
- QofSession *session;
- ENTER (" ");
+ QofBackendError io_err;
+ const char * newfile;
+ QofSession *session;
+ ENTER (" ");
- /* hack alert -- Somehow make sure all in-progress edits get committed! */
+ /* hack alert -- Somehow make sure all in-progress edits get committed! */
- /* If we don't have a filename/path to save to get one. */
- session = gnc_get_current_session ();
+ /* If we don't have a filename/path to save to get one. */
+ session = gnc_get_current_session ();
- if (!qof_session_get_url(session))
- {
- gnc_file_save_as ();
- return;
- }
+ if (!qof_session_get_url(session))
+ {
+ gnc_file_save_as ();
+ return;
+ }
- /* use the current session to save to file */
- save_in_progress++;
- gnc_set_busy_cursor (NULL, TRUE);
- gnc_window_show_progress(_("Writing file..."), 0.0);
- qof_session_save (session, gnc_window_show_progress);
- gnc_window_show_progress(NULL, -1.0);
- gnc_unset_busy_cursor (NULL);
- save_in_progress--;
+ /* use the current session to save to file */
+ save_in_progress++;
+ gnc_set_busy_cursor (NULL, TRUE);
+ gnc_window_show_progress(_("Writing file..."), 0.0);
+ qof_session_save (session, gnc_window_show_progress);
+ gnc_window_show_progress(NULL, -1.0);
+ gnc_unset_busy_cursor (NULL);
+ save_in_progress--;
- /* Make sure everything's OK - disk could be full, file could have
- become read-only etc. */
- io_err = qof_session_get_error (session);
- if (ERR_BACKEND_NO_ERR != io_err)
- {
- newfile = qof_session_get_url(session);
- show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
+ /* Make sure everything's OK - disk could be full, file could have
+ become read-only etc. */
+ io_err = qof_session_get_error (session);
+ if (ERR_BACKEND_NO_ERR != io_err)
+ {
+ newfile = qof_session_get_url(session);
+ show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
- if (been_here_before) return;
- been_here_before = TRUE;
- gnc_file_save_as (); /* been_here prevents infinite recursion */
- been_here_before = FALSE;
- return;
- }
+ if (been_here_before) return;
+ been_here_before = TRUE;
+ gnc_file_save_as (); /* been_here prevents infinite recursion */
+ been_here_before = FALSE;
+ return;
+ }
- xaccReopenLog();
- gnc_add_history (session);
- gnc_hook_run(HOOK_BOOK_SAVED, session);
- LEAVE (" ");
+ xaccReopenLog();
+ gnc_add_history (session);
+ gnc_hook_run(HOOK_BOOK_SAVED, session);
+ LEAVE (" ");
}
void
gnc_file_save_as (void)
{
- QofSession *new_session;
- QofSession *session;
- const char *filename;
- char *default_dir = NULL; /* Default to last open */
- char *last;
- char *newfile;
- const char *oldfile;
- QofBackendError io_err = ERR_BACKEND_NO_ERR;
+ QofSession *new_session;
+ QofSession *session;
+ const char *filename;
+ char *default_dir = NULL; /* Default to last open */
+ char *last;
+ char *newfile;
+ const char *oldfile;
+ QofBackendError io_err = ERR_BACKEND_NO_ERR;
- ENTER(" ");
+ ENTER(" ");
- last = gnc_history_get_last();
- if (last) {
- default_dir = g_path_get_dirname(last);
- g_free(last);
- } else {
- default_dir = gnc_get_default_directory(GCONF_SECTION);
- }
- filename = gnc_file_dialog (_("Save"), NULL, default_dir,
- GNC_FILE_DIALOG_SAVE);
- g_free(default_dir);
- if (!filename) return;
+ last = gnc_history_get_last();
+ if (last)
+ {
+ default_dir = g_path_get_dirname(last);
+ g_free(last);
+ }
+ else
+ {
+ default_dir = gnc_get_default_directory(GCONF_SECTION);
+ }
+ filename = gnc_file_dialog (_("Save"), NULL, default_dir,
+ GNC_FILE_DIALOG_SAVE);
+ g_free(default_dir);
+ if (!filename) return;
- gnc_file_do_save_as( filename );
+ gnc_file_do_save_as( filename );
- LEAVE (" ");
+ LEAVE (" ");
}
void
gnc_file_do_save_as (const char* filename)
{
- QofSession *new_session;
- QofSession *session;
- char *default_dir = NULL; /* Default to last open */
- char *last;
- char *newfile;
- const char *oldfile;
- QofBackendError io_err = ERR_BACKEND_NO_ERR;
+ QofSession *new_session;
+ QofSession *session;
+ char *default_dir = NULL; /* Default to last open */
+ char *last;
+ char *newfile;
+ const char *oldfile;
+ QofBackendError io_err = ERR_BACKEND_NO_ERR;
- ENTER(" ");
+ ENTER(" ");
- /* Check to see if the user specified the same file as the current
- * file. If so, then just do that, instead of the below, which
- * assumes a truly new name was given. */
- newfile = xaccResolveURL (filename);
- if (!newfile)
- {
- show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
- GNC_FILE_DIALOG_SAVE);
- return;
- }
+ /* Check to see if the user specified the same file as the current
+ * file. If so, then just do that, instead of the below, which
+ * assumes a truly new name was given. */
+ newfile = xaccResolveURL (filename);
+ if (!newfile)
+ {
+ show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
+ GNC_FILE_DIALOG_SAVE);
+ return;
+ }
- session = gnc_get_current_session ();
- oldfile = qof_session_get_url(session);
- if (oldfile && (strcmp(oldfile, newfile) == 0))
- {
- g_free (newfile);
- gnc_file_save ();
- return;
- }
+ session = gnc_get_current_session ();
+ oldfile = qof_session_get_url(session);
+ if (oldfile && (strcmp(oldfile, newfile) == 0))
+ {
+ g_free (newfile);
+ gnc_file_save ();
+ return;
+ }
- /* Make sure all of the data from the old file is loaded */
- qof_session_ensure_all_data_loaded(session);
+ /* Make sure all of the data from the old file is loaded */
+ qof_session_ensure_all_data_loaded(session);
- /* -- this session code is NOT identical in FileOpen and FileSaveAs -- */
+ /* -- this session code is NOT identical in FileOpen and FileSaveAs -- */
- xaccLogSetBaseName(newfile); //FIXME: This is premature.
- save_in_progress++;
- new_session = qof_session_new ();
- qof_session_begin (new_session, newfile, FALSE, FALSE);
+ xaccLogSetBaseName(newfile); //FIXME: This is premature.
+ save_in_progress++;
+ new_session = qof_session_new ();
+ qof_session_begin (new_session, newfile, FALSE, FALSE);
- io_err = qof_session_get_error (new_session);
+ io_err = qof_session_get_error (new_session);
- /* if file appears to be locked, ask the user ... */
- if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
- {
- if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE))
+ /* if file appears to be locked, ask the user ... */
+ if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
{
- /* user told us to ignore locks. So ignore them. */
- qof_session_begin (new_session, newfile, TRUE, FALSE);
+ if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE))
+ {
+ /* user told us to ignore locks. So ignore them. */
+ qof_session_begin (new_session, newfile, TRUE, FALSE);
+ }
}
- }
- /* if the database doesn't exist, ask the user ... */
- else if ((ERR_FILEIO_FILE_NOT_FOUND == io_err) ||
- (ERR_BACKEND_NO_SUCH_DB == io_err) ||
- (ERR_SQL_DB_TOO_OLD == io_err))
- {
- if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE))
+ /* if the database doesn't exist, ask the user ... */
+ else if ((ERR_FILEIO_FILE_NOT_FOUND == io_err) ||
+ (ERR_BACKEND_NO_SUCH_DB == io_err) ||
+ (ERR_SQL_DB_TOO_OLD == io_err))
{
- /* user told us to create a new database. Do it. */
- qof_session_begin (new_session, newfile, FALSE, TRUE);
+ if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE))
+ {
+ /* user told us to create a new database. Do it. */
+ qof_session_begin (new_session, newfile, FALSE, TRUE);
+ }
}
- }
- /* check again for session errors (since above dialog may have
- * cleared a file lock & moved things forward some more)
- * This time, errors will be fatal.
- */
- io_err = qof_session_get_error (new_session);
- if (ERR_BACKEND_NO_ERR != io_err)
- {
- show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
- xaccLogDisable();
- qof_session_destroy (new_session);
- xaccLogEnable();
- g_free (newfile);
- save_in_progress--;
- return;
- }
+ /* check again for session errors (since above dialog may have
+ * cleared a file lock & moved things forward some more)
+ * This time, errors will be fatal.
+ */
+ io_err = qof_session_get_error (new_session);
+ if (ERR_BACKEND_NO_ERR != io_err)
+ {
+ show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
+ xaccLogDisable();
+ qof_session_destroy (new_session);
+ xaccLogEnable();
+ g_free (newfile);
+ save_in_progress--;
+ return;
+ }
- /* Prevent race condition between swapping the contents of the two
- * sessions, and actually installing the new session as the current
- * one. Any event callbacks that occur in this interval will have
- * problems if they check for the current book. */
- qof_event_suspend();
+ /* Prevent race condition between swapping the contents of the two
+ * sessions, and actually installing the new session as the current
+ * one. Any event callbacks that occur in this interval will have
+ * problems if they check for the current book. */
+ qof_event_suspend();
- /* if we got to here, then we've successfully gotten a new session */
- /* close up the old file session (if any) */
- qof_session_swap_data (session, new_session);
- gnc_clear_current_session();
- session = NULL;
+ /* if we got to here, then we've successfully gotten a new session */
+ /* close up the old file session (if any) */
+ qof_session_swap_data (session, new_session);
+ gnc_clear_current_session();
+ session = NULL;
- /* XXX At this point, we should really mark the data in the new session
- * as being 'dirty', since we haven't saved it at all under the new
- * session. But I'm lazy...
- */
- gnc_set_current_session(new_session);
+ /* XXX At this point, we should really mark the data in the new session
+ * as being 'dirty', since we haven't saved it at all under the new
+ * session. But I'm lazy...
+ */
+ gnc_set_current_session(new_session);
- qof_event_resume();
+ qof_event_resume();
- /* --------------- END CORE SESSION CODE -------------- */
+ /* --------------- END CORE SESSION CODE -------------- */
- /* oops ... file already exists ... ask user what to do... */
- if (qof_session_save_may_clobber_data (new_session))
- {
- const char *format = _("The file %s already exists. "
- "Are you sure you want to overwrite it?");
+ /* oops ... file already exists ... ask user what to do... */
+ if (qof_session_save_may_clobber_data (new_session))
+ {
+ const char *format = _("The file %s already exists. "
+ "Are you sure you want to overwrite it?");
- /* if user says cancel, we should break out */
- if (!gnc_verify_dialog (NULL, FALSE, format, newfile))
- {
- g_free (newfile);
- save_in_progress--;
- return;
+ /* if user says cancel, we should break out */
+ if (!gnc_verify_dialog (NULL, FALSE, format, newfile))
+ {
+ g_free (newfile);
+ save_in_progress--;
+ return;
+ }
+
+ /* Whoa-ok. Blow away the previous file. */
}
- /* Whoa-ok. Blow away the previous file. */
- }
+ gnc_file_save ();
+ save_in_progress--;
- gnc_file_save ();
- save_in_progress--;
-
- g_free (newfile);
- LEAVE (" ");
+ g_free (newfile);
+ LEAVE (" ");
}
void
gnc_file_quit (void)
{
- QofSession *session;
+ QofSession *session;
- gnc_set_busy_cursor (NULL, TRUE);
- session = gnc_get_current_session ();
+ gnc_set_busy_cursor (NULL, TRUE);
+ session = gnc_get_current_session ();
- /* disable events; otherwise the mass deletion of accounts and
- * transactions during shutdown would cause massive redraws */
- qof_event_suspend ();
+ /* disable events; otherwise the mass deletion of accounts and
+ * transactions during shutdown would cause massive redraws */
+ qof_event_suspend ();
- qof_session_call_close_hooks(session);
- gnc_hook_run(HOOK_BOOK_CLOSED, session);
- gnc_close_gui_component_by_session (session);
- gnc_clear_current_session();
+ qof_session_call_close_hooks(session);
+ gnc_hook_run(HOOK_BOOK_CLOSED, session);
+ gnc_close_gui_component_by_session (session);
+ gnc_clear_current_session();
- gnc_get_current_session ();
+ gnc_get_current_session ();
- qof_event_resume ();
- gnc_unset_busy_cursor (NULL);
+ qof_event_resume ();
+ gnc_unset_busy_cursor (NULL);
}
void
gnc_file_set_shutdown_callback (GNCShutdownCB cb)
{
- shutdown_cb = cb;
+ shutdown_cb = cb;
}
gboolean
Modified: gnucash/trunk/src/gnome-utils/gnc-file.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-file.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-file.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -26,8 +26,8 @@
* pulldown menu, for the "New", "Open", "Save", "SaveAs", etc. menu entries.
* In particular, they will verify that old files don't get clobbered,
* they'll put up dialogue boxes to ask the user to confirm their actions,
- * etc.
- *
+ * etc.
+ *
* These utilities are written in a GUI-independent fashion, and should
* work just fine with the Motif, gnome/gtk and Qt interfaces.
* These utilities are appropriate for direct invocation from guile.
@@ -42,21 +42,21 @@
*
* The gnc_file_save() routine will check for an existing edit session,
* and if one exists, it will save the account info to a file.
- * If an error occurs, a popup dialogue will inform the user of
+ * If an error occurs, a popup dialogue will inform the user of
* the error. If there is no existing filename open, then the
* user will be prompted for a file to save to (using the
- * gnc_file_save_as() routine). The existing session will remain
+ * gnc_file_save_as() routine). The existing session will remain
* open for further editing.
*
* The gnc_file_save_as() routine will prompt the user for a filename
* to save the account data to (using the standard GUI file dialogue
* box). If the user specifies a filename, the account data will be
- * saved. If an error occurs, a popup dialogue will inform the user
- * of the error. One possible error is that another user has
+ * saved. If an error occurs, a popup dialogue will inform the user
+ * of the error. One possible error is that another user has
* the indicated file already locked up in a different session
* (in which case it is up to the user to try again, or to pick
- * a different filename). If it is possible to save without
- * an error, then a new session is started for the indicated
+ * a different filename). If it is possible to save without
+ * an error, then a new session is started for the indicated
* filename, locking out other users. This new session remains
* open for further editing.
*
@@ -71,24 +71,24 @@
* will return TRUE.
*
* The gnc_file_new() routine will check for an existing edit session.
- * If one exists, it will ask the user if they want to save it,
- * (using the gnc_file_query_save_as() dialogue). Then the current
- * session will be destroyed, file locks will be removed, and
+ * If one exists, it will ask the user if they want to save it,
+ * (using the gnc_file_query_save_as() dialogue). Then the current
+ * session will be destroyed, file locks will be removed, and
* account group structures will be set up for a new session.
*
* The gnc_file_open() routine check for an existing edit session.
* If one exists, it will ask the user if they want to save it.
* (using the gnc_file_query_save() dialogue). Next, the user will
- * be prompted with a GUI standard file-selection dialogue to
+ * be prompted with a GUI standard file-selection dialogue to
* to pick a new file. If no file is picked, this routine returns.
- * If a new file was picked, then the current session will be
+ * If a new file was picked, then the current session will be
* destroyed and file locks on it will be removed. The new
* file will then be opened for editing, establishing locks, etc.
* If an error occurs, the user will be informed with a pop-up
* dialogue. If the file cannot be found, or if a read
* error occurs, a popup describing the error will pop up.
- * One possible error is that another user has the indicated
- * file already locked up in a different session (in which
+ * One possible error is that another user has the indicated
+ * file already locked up in a different session (in which
* case it is up to the user to try again, or to pick
* a different filename).
*
@@ -117,10 +117,10 @@
typedef enum
{
- GNC_FILE_DIALOG_OPEN,
- GNC_FILE_DIALOG_IMPORT,
- GNC_FILE_DIALOG_SAVE,
- GNC_FILE_DIALOG_EXPORT
+ GNC_FILE_DIALOG_OPEN,
+ GNC_FILE_DIALOG_IMPORT,
+ GNC_FILE_DIALOG_SAVE,
+ GNC_FILE_DIALOG_EXPORT
} GNCFileDialogType;
void gnc_file_new (void);
@@ -133,13 +133,13 @@
*/
gboolean show_session_error (QofBackendError io_error,
- const char *newfile,
- GNCFileDialogType type);
+ const char *newfile,
+ GNCFileDialogType type);
char * gnc_file_dialog (const char * title,
- GList * filters,
- const char * starting_dir,
- GNCFileDialogType type);
+ GList * filters,
+ const char * starting_dir,
+ GNCFileDialogType type);
gboolean gnc_file_open_file (const char *filename);
void gnc_file_export_file(const char * filename);
Modified: gnucash/trunk/src/gnome-utils/gnc-frequency.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-frequency.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-frequency.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -44,7 +44,8 @@
/** Private Defs ********************/
-typedef enum {
+typedef enum
+{
GNCFREQ_CHANGED,
LAST_SIGNAL
} GNCF_Signals;
@@ -87,7 +88,8 @@
{ 0, 0, 0 }
};
-static const char *CHECKBOX_NAMES[] = {
+static const char *CHECKBOX_NAMES[] =
+{
"wd_check_sun",
"wd_check_mon",
"wd_check_tue",
@@ -104,8 +106,10 @@
gnc_frequency_get_type()
{
static GType gncfreq_type = 0;
- if (gncfreq_type == 0) {
- static GTypeInfo gncfreq_info = {
+ if (gncfreq_type == 0)
+ {
+ static GTypeInfo gncfreq_info =
+ {
sizeof(GncFrequencyClass),
NULL,
NULL,
@@ -152,10 +156,12 @@
GtkWidget* o;
GtkAdjustment* adj;
- static const struct comboBoxTuple {
+ static const struct comboBoxTuple
+ {
char *name;
void (*fn)();
- } comboBoxes[] = {
+ } comboBoxes[] =
+ {
{ "freq_combobox", freq_combo_changed },
{ "semimonthly_first", semimonthly_sel_changed },
{ "semimonthly_first_weekend", semimonthly_sel_changed },
@@ -166,10 +172,12 @@
{ NULL, NULL }
};
- static const struct spinvalTuple {
+ static const struct spinvalTuple
+ {
char *name;
void (*fn)();
- } spinVals[] = {
+ } spinVals[] =
+ {
{ "daily_spin", spin_changed_helper },
{ "weekly_spin", spin_changed_helper },
{ "semimonthly_spin", spin_changed_helper },
@@ -196,7 +204,7 @@
gtk_container_add(GTK_CONTAINER(&gf->widget), GTK_WIDGET(gf->vb));
/* initialize the combo boxes */
- for (i=0; comboBoxes[i].name != NULL; i++)
+ for (i = 0; comboBoxes[i].name != NULL; i++)
{
o = glade_xml_get_widget(gf->gxml, comboBoxes[i].name);
gtk_combo_box_set_active(GTK_COMBO_BOX(o), 0);
@@ -207,7 +215,7 @@
}
/* initialize the spin buttons */
- for (i=0; spinVals[i].name != NULL; i++)
+ for (i = 0; spinVals[i].name != NULL; i++)
{
if (spinVals[i].fn != NULL)
{
@@ -218,11 +226,11 @@
}
/* initialize the weekly::day-of-week checkbox-selection hooks */
- for (i=0; i < 7; i++)
+ for (i = 0; i < 7; i++)
{
o = glade_xml_get_widget(gf->gxml, CHECKBOX_NAMES[i]);
g_signal_connect(o, "clicked",
- G_CALLBACK(weekly_days_changed), gf);
+ G_CALLBACK(weekly_days_changed), gf);
}
gtk_widget_show_all(GTK_WIDGET(&gf->widget));
@@ -234,53 +242,53 @@
static void
spin_changed_helper( GtkAdjustment *adj, gpointer d )
{
- g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
+ g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
}
static void
weekly_days_changed( GtkButton *b, gpointer d )
{
- g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
+ g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
}
static void
monthly_sel_changed( GtkButton *b, gpointer d )
{
- g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
+ g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
}
static void
semimonthly_sel_changed( GtkButton *b, gpointer d )
{
- g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
+ g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
}
static inline guint32 minn( guint32 a, guint32 b )
{
- return a > b ? b : a;
+ return a > b ? b : a;
}
static inline guint32 maxn( guint32 a, guint32 b )
{
- return a > b ? a : b;
+ return a > b ? a : b;
}
static void
freq_combo_changed(GtkComboBox *b, gpointer d)
{
- GncFrequency *gf = GNC_FREQUENCY(d);
- int option_index;
+ GncFrequency *gf = GNC_FREQUENCY(d);
+ int option_index;
- /* Set the new page. */
- option_index = gtk_combo_box_get_active(GTK_COMBO_BOX(gf->freqComboBox));
- gtk_notebook_set_current_page(gf->nb, option_index);
- g_signal_emit_by_name(gf, "changed");
+ /* Set the new page. */
+ option_index = gtk_combo_box_get_active(GTK_COMBO_BOX(gf->freqComboBox));
+ gtk_notebook_set_current_page(gf->nb, option_index);
+ g_signal_emit_by_name(gf, "changed");
}
static void
start_date_changed( GNCDateEdit *gde, gpointer d )
{
- g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
+ g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
}
/* ================================================================= */
@@ -353,8 +361,8 @@
else if (recurrenceGetPeriodType(r) == PERIOD_LAST_WEEKDAY)
{
day_of_month_index
- = LAST_DAY_OF_MONTH_OPTION_INDEX
- + g_date_get_weekday(&recurrence_date);
+ = LAST_DAY_OF_MONTH_OPTION_INDEX
+ + g_date_get_weekday(&recurrence_date);
}
/* else { default value } */
return day_of_month_index;
@@ -369,132 +377,140 @@
void
gnc_frequency_setup(GncFrequency *gf, GList *recurrences, GDate *start_date)
{
- gboolean made_changes = FALSE;
+ gboolean made_changes = FALSE;
- // setup start-date, if present
- if (start_date != NULL
- && g_date_valid(start_date))
- {
- gnc_date_edit_set_gdate(gf->startDate, start_date);
- made_changes = TRUE;
- }
+ // setup start-date, if present
+ if (start_date != NULL
+ && g_date_valid(start_date))
+ {
+ gnc_date_edit_set_gdate(gf->startDate, start_date);
+ made_changes = TRUE;
+ }
- if (recurrences == NULL)
- {
- goto maybe_signal;
- // return...
- }
+ if (recurrences == NULL)
+ {
+ goto maybe_signal;
+ // return...
+ }
- if (g_list_length(recurrences) > 1)
- {
- if (recurrenceListIsWeeklyMultiple(recurrences))
- {
- for (; recurrences != NULL; recurrences = recurrences->next)
- {
- _setup_weekly_recurrence(gf, (Recurrence*)recurrences->data);
- }
+ if (g_list_length(recurrences) > 1)
+ {
+ if (recurrenceListIsWeeklyMultiple(recurrences))
+ {
+ for (; recurrences != NULL; recurrences = recurrences->next)
+ {
+ _setup_weekly_recurrence(gf, (Recurrence*)recurrences->data);
+ }
- gtk_notebook_set_current_page(gf->nb, PAGE_WEEKLY);
- gtk_combo_box_set_active(gf->freqComboBox, PAGE_WEEKLY);
- }
- else if (recurrenceListIsSemiMonthly(recurrences))
- {
- Recurrence *first, *second;
- GtkWidget *multiplier_spin;
- GtkWidget *dom_combobox;
+ gtk_notebook_set_current_page(gf->nb, PAGE_WEEKLY);
+ gtk_combo_box_set_active(gf->freqComboBox, PAGE_WEEKLY);
+ }
+ else if (recurrenceListIsSemiMonthly(recurrences))
+ {
+ Recurrence *first, *second;
+ GtkWidget *multiplier_spin;
+ GtkWidget *dom_combobox;
- first = (Recurrence*)g_list_nth_data(recurrences, 0);
- second = (Recurrence*)g_list_nth_data(recurrences, 1);
+ first = (Recurrence*)g_list_nth_data(recurrences, 0);
+ second = (Recurrence*)g_list_nth_data(recurrences, 1);
- multiplier_spin = glade_xml_get_widget(gf->gxml, "semimonthly_spin");
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(multiplier_spin), recurrenceGetMultiplier(first));
+ multiplier_spin = glade_xml_get_widget(gf->gxml, "semimonthly_spin");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(multiplier_spin), recurrenceGetMultiplier(first));
- dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_first");
- gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), _get_monthly_combobox_index(first));
- dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_first_weekend");
- gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), recurrenceGetWeekendAdjust(first));
- dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_second");
- gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), _get_monthly_combobox_index(second));
- dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_second_weekend");
- gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), recurrenceGetWeekendAdjust(second));
+ dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_first");
+ gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), _get_monthly_combobox_index(first));
+ dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_first_weekend");
+ gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), recurrenceGetWeekendAdjust(first));
+ dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_second");
+ gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), _get_monthly_combobox_index(second));
+ dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_second_weekend");
+ gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), recurrenceGetWeekendAdjust(second));
- gtk_notebook_set_current_page(gf->nb, PAGE_SEMI_MONTHLY);
- gtk_combo_box_set_active(gf->freqComboBox, PAGE_SEMI_MONTHLY);
- }
- else
- {
- g_error("unknown composite recurrence with [%d] entries", g_list_length(recurrences));
- }
- }
- else
- {
- Recurrence *r = (Recurrence*)recurrences->data;
- g_debug("recurrence period [%d]", recurrenceGetPeriodType(r));
- switch (recurrenceGetPeriodType(r))
- {
- case PERIOD_ONCE: {
- GDate recurrence_date = recurrenceGetDate(r);
- if (g_date_compare(start_date, &recurrence_date) != 0)
- {
- char start_date_str[128], recur_date_str[128];
- g_date_strftime(start_date_str, 127, "%x", start_date);
- g_date_strftime(recur_date_str, 127, "%x", &recurrence_date);
- g_critical("start_date [%s] != recurrence_date [%s]", start_date_str, recur_date_str);
- }
+ gtk_notebook_set_current_page(gf->nb, PAGE_SEMI_MONTHLY);
+ gtk_combo_box_set_active(gf->freqComboBox, PAGE_SEMI_MONTHLY);
+ }
+ else
+ {
+ g_error("unknown composite recurrence with [%d] entries", g_list_length(recurrences));
+ }
+ }
+ else
+ {
+ Recurrence *r = (Recurrence*)recurrences->data;
+ g_debug("recurrence period [%d]", recurrenceGetPeriodType(r));
+ switch (recurrenceGetPeriodType(r))
+ {
+ case PERIOD_ONCE:
+ {
+ GDate recurrence_date = recurrenceGetDate(r);
+ if (g_date_compare(start_date, &recurrence_date) != 0)
+ {
+ char start_date_str[128], recur_date_str[128];
+ g_date_strftime(start_date_str, 127, "%x", start_date);
+ g_date_strftime(recur_date_str, 127, "%x", &recurrence_date);
+ g_critical("start_date [%s] != recurrence_date [%s]", start_date_str, recur_date_str);
+ }
- gtk_notebook_set_current_page(gf->nb, PAGE_ONCE);
- gtk_combo_box_set_active(gf->freqComboBox, PAGE_ONCE);
- } break;
- case PERIOD_DAY: {
- guint multiplier;
- GtkWidget *spin_button;
+ gtk_notebook_set_current_page(gf->nb, PAGE_ONCE);
+ gtk_combo_box_set_active(gf->freqComboBox, PAGE_ONCE);
+ }
+ break;
+ case PERIOD_DAY:
+ {
+ guint multiplier;
+ GtkWidget *spin_button;
- multiplier = recurrenceGetMultiplier(r);
- spin_button = glade_xml_get_widget(gf->gxml, "daily_spin");
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_button), multiplier);
- made_changes = TRUE;
+ multiplier = recurrenceGetMultiplier(r);
+ spin_button = glade_xml_get_widget(gf->gxml, "daily_spin");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_button), multiplier);
+ made_changes = TRUE;
- gtk_notebook_set_current_page(gf->nb, PAGE_DAILY);
- gtk_combo_box_set_active(gf->freqComboBox, PAGE_DAILY);
- } break;
- case PERIOD_WEEK: {
- _setup_weekly_recurrence(gf, r);
- gtk_notebook_set_current_page(gf->nb, PAGE_WEEKLY);
- gtk_combo_box_set_active(gf->freqComboBox, PAGE_WEEKLY);
- } break;
- case PERIOD_END_OF_MONTH:
- case PERIOD_MONTH:
- case PERIOD_YEAR:
- case PERIOD_LAST_WEEKDAY: {
- guint multiplier;
- GtkWidget *multipler_spin, *day_of_month, *weekend_mode;
+ gtk_notebook_set_current_page(gf->nb, PAGE_DAILY);
+ gtk_combo_box_set_active(gf->freqComboBox, PAGE_DAILY);
+ }
+ break;
+ case PERIOD_WEEK:
+ {
+ _setup_weekly_recurrence(gf, r);
+ gtk_notebook_set_current_page(gf->nb, PAGE_WEEKLY);
+ gtk_combo_box_set_active(gf->freqComboBox, PAGE_WEEKLY);
+ }
+ break;
+ case PERIOD_END_OF_MONTH:
+ case PERIOD_MONTH:
+ case PERIOD_YEAR:
+ case PERIOD_LAST_WEEKDAY:
+ {
+ guint multiplier;
+ GtkWidget *multipler_spin, *day_of_month, *weekend_mode;
- multipler_spin = glade_xml_get_widget(gf->gxml, "monthly_spin");
- multiplier = recurrenceGetMultiplier(r);
- if (recurrenceGetPeriodType(r) == PERIOD_YEAR)
- multiplier *= 12;
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(multipler_spin), multiplier);
+ multipler_spin = glade_xml_get_widget(gf->gxml, "monthly_spin");
+ multiplier = recurrenceGetMultiplier(r);
+ if (recurrenceGetPeriodType(r) == PERIOD_YEAR)
+ multiplier *= 12;
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(multipler_spin), multiplier);
- day_of_month = glade_xml_get_widget(gf->gxml, "monthly_day");
- gtk_combo_box_set_active(GTK_COMBO_BOX(day_of_month), _get_monthly_combobox_index(r));
- weekend_mode = glade_xml_get_widget(gf->gxml, "monthly_weekend");
- gtk_combo_box_set_active(GTK_COMBO_BOX(weekend_mode), recurrenceGetWeekendAdjust(r));
+ day_of_month = glade_xml_get_widget(gf->gxml, "monthly_day");
+ gtk_combo_box_set_active(GTK_COMBO_BOX(day_of_month), _get_monthly_combobox_index(r));
+ weekend_mode = glade_xml_get_widget(gf->gxml, "monthly_weekend");
+ gtk_combo_box_set_active(GTK_COMBO_BOX(weekend_mode), recurrenceGetWeekendAdjust(r));
- gtk_notebook_set_current_page(gf->nb, PAGE_MONTHLY);
- gtk_combo_box_set_active(gf->freqComboBox, PAGE_MONTHLY);
- } break;
- case PERIOD_NTH_WEEKDAY:
- g_critical("unhandled period type [%d]", recurrenceGetPeriodType(r));
- break;
- default:
- g_error("unknown recurrence period type [%d]", recurrenceGetPeriodType(r));
- break;
- }
- }
+ gtk_notebook_set_current_page(gf->nb, PAGE_MONTHLY);
+ gtk_combo_box_set_active(gf->freqComboBox, PAGE_MONTHLY);
+ }
+ break;
+ case PERIOD_NTH_WEEKDAY:
+ g_critical("unhandled period type [%d]", recurrenceGetPeriodType(r));
+ break;
+ default:
+ g_error("unknown recurrence period type [%d]", recurrenceGetPeriodType(r));
+ break;
+ }
+ }
maybe_signal:
- if (made_changes)
- g_signal_emit_by_name(gf, "changed");
+ if (made_changes)
+ g_signal_emit_by_name(gf, "changed");
}
static gint
@@ -537,7 +553,7 @@
GDate *day_of_month = g_date_new_julian(g_date_get_julian(start_date));
allowable_date = MIN(day_of_month_index + 1,
g_date_get_days_in_month(g_date_get_month(day_of_month),
- g_date_get_year(day_of_month)));
+ g_date_get_year(day_of_month)));
g_date_set_day(day_of_month, allowable_date);
recurrenceSet(r, multiplier, PERIOD_MONTH, day_of_month, weekend_adjust);
}
@@ -561,21 +577,27 @@
switch (page_index)
{
- case PAGE_NONE: {
+ case PAGE_NONE:
+ {
// empty-recurrence list ~~ none.
} break;
- case PAGE_ONCE: {
+ case PAGE_ONCE:
+ {
Recurrence *r = g_new0(Recurrence, 1);
recurrenceSet(r, 1, PERIOD_ONCE, &start_date, WEEKEND_ADJ_NONE);
*recurrences = g_list_append(*recurrences, r);
- } break;
- case PAGE_DAILY: {
+ }
+ break;
+ case PAGE_DAILY:
+ {
gint multiplier = _get_multiplier_from_widget(gf, "daily_spin");
Recurrence *r = g_new0(Recurrence, 1);
recurrenceSet(r, multiplier, PERIOD_DAY, &start_date, WEEKEND_ADJ_NONE);
*recurrences = g_list_append(*recurrences, r);
- } break;
- case PAGE_WEEKLY: {
+ }
+ break;
+ case PAGE_WEEKLY:
+ {
int multiplier = _get_multiplier_from_widget(gf, "weekly_spin");
int checkbox_idx;
for (checkbox_idx = 0; CHECKBOX_NAMES[checkbox_idx] != NULL; checkbox_idx++)
@@ -598,17 +620,22 @@
*recurrences = g_list_append(*recurrences, r);
}
- } break;
- case PAGE_SEMI_MONTHLY: {
+ }
+ break;
+ case PAGE_SEMI_MONTHLY:
+ {
int multiplier = _get_multiplier_from_widget(gf, "semimonthly_spin");
*recurrences = g_list_append(*recurrences, _get_day_of_month_recurrence(gf, &start_date, multiplier, "semimonthly_first", "semimonthly_first_weekend"));
*recurrences = g_list_append(*recurrences, _get_day_of_month_recurrence(gf, &start_date, multiplier, "semimonthly_second", "semimonthly_second_weekend"));
- } break;
- case PAGE_MONTHLY: {
+ }
+ break;
+ case PAGE_MONTHLY:
+ {
int multiplier = _get_multiplier_from_widget(gf, "monthly_spin");
Recurrence *r = _get_day_of_month_recurrence(gf, &start_date, multiplier, "monthly_day", "monthly_weekend");
*recurrences = g_list_append(*recurrences, r);
- } break;
+ }
+ break;
default:
g_error("unknown page index [%d]", page_index);
break;
Modified: gnucash/trunk/src/gnome-utils/gnc-frequency.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-frequency.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-frequency.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -40,7 +40,7 @@
* transaction or budgeting category, for instance], manipulating a FreqSpec
* object in the process.
**/
-typedef struct _GncFrequency
+typedef struct _GncFrequency
{
GtkVBox widget;
GtkVBox *vb;
@@ -57,7 +57,7 @@
void (*changed) (GncFrequency *gf);
} GncFrequencyClass;
-struct pageDataTuple
+struct pageDataTuple
{
int idx;
UIFreqType uiFTVal;
Modified: gnucash/trunk/src/gnome-utils/gnc-general-select.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-general-select.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-general-select.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -41,8 +41,8 @@
/* Signal codes */
enum
{
- SELECTION_CHANGED,
- LAST_SIGNAL
+ SELECTION_CHANGED,
+ LAST_SIGNAL
};
@@ -63,167 +63,169 @@
GType
gnc_general_select_get_type (void)
{
- static GType general_select_type = 0;
+ static GType general_select_type = 0;
- if (general_select_type == 0) {
- static const GTypeInfo general_select_info = {
- sizeof (GNCGeneralSelectClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_general_select_class_init,
- NULL,
- NULL,
- sizeof (GNCGeneralSelect),
- 0,
- (GInstanceInitFunc) gnc_general_select_init,
- NULL,
- };
+ if (general_select_type == 0)
+ {
+ static const GTypeInfo general_select_info =
+ {
+ sizeof (GNCGeneralSelectClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_general_select_class_init,
+ NULL,
+ NULL,
+ sizeof (GNCGeneralSelect),
+ 0,
+ (GInstanceInitFunc) gnc_general_select_init,
+ NULL,
+ };
- general_select_type = g_type_register_static(GTK_TYPE_HBOX,
- "GNCGeneralSelect",
- &general_select_info, 0);
- }
+ general_select_type = g_type_register_static(GTK_TYPE_HBOX,
+ "GNCGeneralSelect",
+ &general_select_info, 0);
+ }
- return general_select_type;
+ return general_select_type;
}
static void
gnc_general_select_forall (GtkContainer *container, gboolean include_internals,
GtkCallback callback, gpointer callback_data)
{
- g_return_if_fail (container != NULL);
- g_return_if_fail (GNC_IS_GENERAL_SELECT (container));
- g_return_if_fail (callback != NULL);
+ g_return_if_fail (container != NULL);
+ g_return_if_fail (GNC_IS_GENERAL_SELECT (container));
+ g_return_if_fail (callback != NULL);
- /* Let GtkBox handle things only if the internal widgets need
- * to be poked. */
- if (!include_internals)
- return;
+ /* Let GtkBox handle things only if the internal widgets need
+ * to be poked. */
+ if (!include_internals)
+ return;
- if (!GTK_CONTAINER_CLASS (parent_class)->forall)
- return;
+ if (!GTK_CONTAINER_CLASS (parent_class)->forall)
+ return;
- GTK_CONTAINER_CLASS (parent_class)->forall (container,
- include_internals,
- callback,
- callback_data);
+ GTK_CONTAINER_CLASS (parent_class)->forall (container,
+ include_internals,
+ callback,
+ callback_data);
}
static void
gnc_general_select_class_init (GNCGeneralSelectClass *klass)
{
- GObjectClass *object_class = (GObjectClass *) klass;
- GtkContainerClass *container_class = (GtkContainerClass *) klass;
+ GObjectClass *object_class = (GObjectClass *) klass;
+ GtkContainerClass *container_class = (GtkContainerClass *) klass;
- object_class = (GObjectClass*) klass;
+ object_class = (GObjectClass*) klass;
- parent_class = g_type_class_ref(GTK_TYPE_HBOX);
+ parent_class = g_type_class_ref(GTK_TYPE_HBOX);
- general_select_signals[SELECTION_CHANGED] =
- g_signal_new("changed",
- G_TYPE_FROM_CLASS(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(GNCGeneralSelectClass,
- changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ general_select_signals[SELECTION_CHANGED] =
+ g_signal_new("changed",
+ G_TYPE_FROM_CLASS(object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(GNCGeneralSelectClass,
+ changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
- container_class->forall = gnc_general_select_forall;
+ container_class->forall = gnc_general_select_forall;
- object_class->dispose = gnc_general_select_dispose;
- object_class->finalize = gnc_general_select_finalize;
+ object_class->dispose = gnc_general_select_dispose;
+ object_class->finalize = gnc_general_select_finalize;
- klass->changed = NULL;
+ klass->changed = NULL;
}
static void
gnc_general_select_init (GNCGeneralSelect *gsl)
{
- gsl->disposed = FALSE;
- gsl->selected_item = NULL;
+ gsl->disposed = FALSE;
+ gsl->selected_item = NULL;
}
static void
gnc_general_select_finalize (GObject *object)
{
- GNCGeneralSelect *gsl;
+ GNCGeneralSelect *gsl;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_GENERAL_SELECT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_GENERAL_SELECT (object));
- gsl = GNC_GENERAL_SELECT (object);
+ gsl = GNC_GENERAL_SELECT (object);
- if (G_OBJECT_CLASS (parent_class)->finalize)
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gnc_general_select_dispose (GObject *object)
{
- GNCGeneralSelect *gsl;
+ GNCGeneralSelect *gsl;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_GENERAL_SELECT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_GENERAL_SELECT (object));
- gsl = GNC_GENERAL_SELECT (object);
+ gsl = GNC_GENERAL_SELECT (object);
- if(gsl->disposed)
- return;
+ if (gsl->disposed)
+ return;
- gsl->disposed = TRUE;
+ gsl->disposed = TRUE;
- gtk_widget_destroy(GTK_WIDGET(gsl->entry));
- gsl->entry = NULL;
+ gtk_widget_destroy(GTK_WIDGET(gsl->entry));
+ gsl->entry = NULL;
- gtk_widget_destroy(GTK_WIDGET(gsl->button));
- gsl->button = NULL;
+ gtk_widget_destroy(GTK_WIDGET(gsl->button));
+ gsl->button = NULL;
- if (G_OBJECT_CLASS (parent_class)->dispose)
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
select_cb(GtkButton * button, gpointer user_data)
{
- GNCGeneralSelect *gsl = user_data;
- gpointer new_selection;
- GtkWidget *toplevel;
+ GNCGeneralSelect *gsl = user_data;
+ gpointer new_selection;
+ GtkWidget *toplevel;
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
- new_selection = (gsl->new_select)(gsl->cb_arg, gsl->selected_item,
- toplevel);
+ new_selection = (gsl->new_select)(gsl->cb_arg, gsl->selected_item,
+ toplevel);
- /* NULL return means cancel; no change */
- if (new_selection == NULL)
- return;
+ /* NULL return means cancel; no change */
+ if (new_selection == NULL)
+ return;
- gnc_general_select_set_selected (gsl, new_selection);
+ gnc_general_select_set_selected (gsl, new_selection);
}
static void
create_children (GNCGeneralSelect *gsl, GNCGeneralSelectType type)
{
- gsl->entry = gtk_entry_new ();
- gtk_editable_set_editable (GTK_EDITABLE (gsl->entry), FALSE);
- gtk_box_pack_start (GTK_BOX (gsl), gsl->entry, TRUE, TRUE, 0);
- gtk_widget_show (gsl->entry);
+ gsl->entry = gtk_entry_new ();
+ gtk_editable_set_editable (GTK_EDITABLE (gsl->entry), FALSE);
+ gtk_box_pack_start (GTK_BOX (gsl), gsl->entry, TRUE, TRUE, 0);
+ gtk_widget_show (gsl->entry);
- if (type == GNC_GENERAL_SELECT_TYPE_SELECT)
- gsl->button = gtk_button_new_with_label (_("Select..."));
- else if (type == GNC_GENERAL_SELECT_TYPE_EDIT)
- gsl->button = gtk_button_new_with_label (_("Edit..."));
- else if (type == GNC_GENERAL_SELECT_TYPE_VIEW)
- gsl->button = gtk_button_new_with_label (_("View..."));
+ if (type == GNC_GENERAL_SELECT_TYPE_SELECT)
+ gsl->button = gtk_button_new_with_label (_("Select..."));
+ else if (type == GNC_GENERAL_SELECT_TYPE_EDIT)
+ gsl->button = gtk_button_new_with_label (_("Edit..."));
+ else if (type == GNC_GENERAL_SELECT_TYPE_VIEW)
+ gsl->button = gtk_button_new_with_label (_("View..."));
- gtk_box_pack_start (GTK_BOX (gsl), gsl->button, FALSE, FALSE, 0);
- g_signal_connect (G_OBJECT (gsl->button), "clicked",
- G_CALLBACK (select_cb), gsl);
- gtk_widget_show (gsl->button);
+ gtk_box_pack_start (GTK_BOX (gsl), gsl->button, FALSE, FALSE, 0);
+ g_signal_connect (G_OBJECT (gsl->button), "clicked",
+ G_CALLBACK (select_cb), gsl);
+ gtk_widget_show (gsl->button);
}
/**
@@ -236,22 +238,22 @@
*/
GtkWidget *
gnc_general_select_new (GNCGeneralSelectType type,
- GNCGeneralSelectGetStringCB get_string,
- GNCGeneralSelectNewSelectCB new_select,
- gpointer cb_arg)
+ GNCGeneralSelectGetStringCB get_string,
+ GNCGeneralSelectNewSelectCB new_select,
+ gpointer cb_arg)
{
- GNCGeneralSelect *gsl;
- g_return_val_if_fail (get_string != NULL, NULL);
- g_return_val_if_fail (new_select != NULL, NULL);
+ GNCGeneralSelect *gsl;
+ g_return_val_if_fail (get_string != NULL, NULL);
+ g_return_val_if_fail (new_select != NULL, NULL);
- gsl = g_object_new(GNC_TYPE_GENERAL_SELECT, NULL, NULL);
+ gsl = g_object_new(GNC_TYPE_GENERAL_SELECT, NULL, NULL);
- create_children (gsl, type);
- gsl->get_string = get_string;
- gsl->new_select = new_select;
- gsl->cb_arg = cb_arg;
+ create_children (gsl, type);
+ gsl->get_string = get_string;
+ gsl->new_select = new_select;
+ gsl->cb_arg = cb_arg;
- return GTK_WIDGET (gsl);
+ return GTK_WIDGET (gsl);
}
/*
@@ -264,10 +266,10 @@
const char *
gnc_general_select_get_printname (GNCGeneralSelect *gsl, gpointer selection)
{
- g_return_val_if_fail (gsl != NULL, NULL);
- g_return_val_if_fail (selection != NULL, NULL);
+ g_return_val_if_fail (gsl != NULL, NULL);
+ g_return_val_if_fail (selection != NULL, NULL);
- return (gsl->get_string)(selection);
+ return (gsl->get_string)(selection);
}
/**
@@ -282,21 +284,21 @@
void
gnc_general_select_set_selected (GNCGeneralSelect *gsl, gpointer selection)
{
- const char *text;
+ const char *text;
- g_return_if_fail(gsl != NULL);
- g_return_if_fail(GNC_IS_GENERAL_SELECT(gsl));
+ g_return_if_fail(gsl != NULL);
+ g_return_if_fail(GNC_IS_GENERAL_SELECT(gsl));
- gsl->selected_item = selection;
+ gsl->selected_item = selection;
- if (selection == NULL)
- text = "";
- else
- text = gnc_general_select_get_printname(gsl, selection);
+ if (selection == NULL)
+ text = "";
+ else
+ text = gnc_general_select_get_printname(gsl, selection);
- gtk_entry_set_text(GTK_ENTRY(gsl->entry), text);
+ gtk_entry_set_text(GTK_ENTRY(gsl->entry), text);
- g_signal_emit(gsl, general_select_signals[SELECTION_CHANGED], 0);
+ g_signal_emit(gsl, general_select_signals[SELECTION_CHANGED], 0);
}
/**
@@ -308,10 +310,10 @@
gpointer
gnc_general_select_get_selected (GNCGeneralSelect *gsl)
{
- g_return_val_if_fail(gsl != NULL, NULL);
- g_return_val_if_fail(GNC_IS_GENERAL_SELECT(gsl), NULL);
+ g_return_val_if_fail(gsl != NULL, NULL);
+ g_return_val_if_fail(GNC_IS_GENERAL_SELECT(gsl), NULL);
- return gsl->selected_item;
+ return gsl->selected_item;
}
/** Sets the editable field from a general selection widget as the
@@ -325,11 +327,11 @@
void
gnc_general_select_make_mnemonic_target (GNCGeneralSelect *gsl, GtkWidget *label)
{
- g_return_if_fail(gsl);
- g_return_if_fail(GNC_IS_GENERAL_SELECT(gsl));
- g_return_if_fail(label);
+ g_return_if_fail(gsl);
+ g_return_if_fail(GNC_IS_GENERAL_SELECT(gsl));
+ g_return_if_fail(label);
- gtk_label_set_mnemonic_widget (GTK_LABEL(label), gsl->entry);
+ gtk_label_set_mnemonic_widget (GTK_LABEL(label), gsl->entry);
}
/*
Modified: gnucash/trunk/src/gnome-utils/gnc-general-select.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-general-select.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-general-select.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -39,43 +39,46 @@
typedef const char * (*GNCGeneralSelectGetStringCB) (gpointer);
typedef gpointer (*GNCGeneralSelectNewSelectCB) (gpointer cbarg, gpointer default_selection, GtkWidget *parent);
-typedef enum {
- GNC_GENERAL_SELECT_TYPE_SELECT = 1,
- GNC_GENERAL_SELECT_TYPE_EDIT = 2,
- GNC_GENERAL_SELECT_TYPE_VIEW = 3
+typedef enum
+{
+ GNC_GENERAL_SELECT_TYPE_SELECT = 1,
+ GNC_GENERAL_SELECT_TYPE_EDIT = 2,
+ GNC_GENERAL_SELECT_TYPE_VIEW = 3
} GNCGeneralSelectType;
-typedef struct {
- GtkHBox hbox;
+typedef struct
+{
+ GtkHBox hbox;
- GtkWidget *entry; /* display of selection name */
- GtkWidget *button; /* button for popping up selection window */
+ GtkWidget *entry; /* display of selection name */
+ GtkWidget *button; /* button for popping up selection window */
- gpointer selected_item;
+ gpointer selected_item;
- GNCGeneralSelectGetStringCB get_string;
- GNCGeneralSelectNewSelectCB new_select;
- gpointer cb_arg;
+ GNCGeneralSelectGetStringCB get_string;
+ GNCGeneralSelectNewSelectCB new_select;
+ gpointer cb_arg;
- int disposed; /* private */
+ int disposed; /* private */
} GNCGeneralSelect;
-typedef struct {
- GtkHBoxClass parent_class;
+typedef struct
+{
+ GtkHBoxClass parent_class;
- void (*changed) (GNCGeneralSelect *edit);
+ void (*changed) (GNCGeneralSelect *edit);
} GNCGeneralSelectClass;
GtkWidget *gnc_general_select_new (GNCGeneralSelectType type,
- GNCGeneralSelectGetStringCB get_string,
- GNCGeneralSelectNewSelectCB new_select,
- gpointer cb_arg);
+ GNCGeneralSelectGetStringCB get_string,
+ GNCGeneralSelectNewSelectCB new_select,
+ gpointer cb_arg);
void gnc_general_select_set_selected (GNCGeneralSelect *gsl,
- gpointer selected);
+ gpointer selected);
gpointer gnc_general_select_get_selected (GNCGeneralSelect *gsl);
const char *gnc_general_select_get_printname (GNCGeneralSelect *gsl,
- gpointer selection);
+ gpointer selection);
GType gnc_general_select_get_type (void);
void gnc_general_select_make_mnemonic_target (GNCGeneralSelect *gsl, GtkWidget *label);
Modified: gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -70,13 +70,13 @@
static void
gnc_global_options_help_cb (GNCOptionWin *win, gpointer dat)
{
- gnc_gnome_help (HF_HELP, HL_GLOBPREFS);
+ gnc_gnome_help (HF_HELP, HL_GLOBPREFS);
}
static void
gnc_commodity_help_cb (void)
{
- gnc_gnome_help (HF_HELP, HL_COMMODITY);
+ gnc_gnome_help (HF_HELP, HL_COMMODITY);
}
/* gnc_configure_date_format
@@ -85,234 +85,246 @@
* Args: Nothing
* Returns: Nothing
*/
-static void
+static void
gnc_configure_date_format (void)
{
- char *format_code = gnc_gconf_get_string(GCONF_GENERAL,
- KEY_DATE_FORMAT, NULL);
+ char *format_code = gnc_gconf_get_string(GCONF_GENERAL,
+ KEY_DATE_FORMAT, NULL);
- QofDateFormat df;
+ QofDateFormat df;
- if (format_code == NULL)
- format_code = g_strdup("locale");
- if (*format_code == '\0') {
- g_free(format_code);
- format_code = g_strdup("locale");
- }
+ if (format_code == NULL)
+ format_code = g_strdup("locale");
+ if (*format_code == '\0')
+ {
+ g_free(format_code);
+ format_code = g_strdup("locale");
+ }
- if (gnc_date_string_to_dateformat(format_code, &df))
- {
- PERR("Incorrect date format code");
- if (format_code != NULL)
- free(format_code);
- return;
- }
+ if (gnc_date_string_to_dateformat(format_code, &df))
+ {
+ PERR("Incorrect date format code");
+ if (format_code != NULL)
+ free(format_code);
+ return;
+ }
- qof_date_format_set(df);
+ qof_date_format_set(df);
- if (format_code != NULL)
- free(format_code);
+ if (format_code != NULL)
+ free(format_code);
}
char *
gnc_gnome_locate_pixmap (const char *name)
{
- char *fullname;
+ char *fullname;
- g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
- fullname = gnome_program_locate_file (gnucash_program,
- GNOME_FILE_DOMAIN_APP_PIXMAP,
- name, TRUE, NULL);
- if (fullname == NULL) {
- PERR ("Could not locate pixmap/pixbuf file %s", name);
- return NULL;
- }
+ fullname = gnome_program_locate_file (gnucash_program,
+ GNOME_FILE_DOMAIN_APP_PIXMAP,
+ name, TRUE, NULL);
+ if (fullname == NULL)
+ {
+ PERR ("Could not locate pixmap/pixbuf file %s", name);
+ return NULL;
+ }
- return fullname;
+ return fullname;
}
char *
gnc_gnome_locate_file (GnomeFileDomain domain, const char *name)
{
- char *fullname;
+ char *fullname;
- g_return_val_if_fail(name, NULL);
- fullname = gnome_program_locate_file(gnucash_program,
- domain, name, TRUE, NULL);
- if (!fullname)
- PERR ("Could not locate file %s", name);
- return fullname;
+ g_return_val_if_fail(name, NULL);
+ fullname = gnome_program_locate_file(gnucash_program,
+ domain, name, TRUE, NULL);
+ if (!fullname)
+ PERR ("Could not locate file %s", name);
+ return fullname;
}
char *
gnc_gnome_locate_data_file (const char *name)
{
- char *fullname;
+ char *fullname;
- g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
- fullname = gnome_program_locate_file (gnucash_program,
- GNOME_FILE_DOMAIN_APP_DATADIR,
- name, TRUE, NULL);
+ fullname = gnome_program_locate_file (gnucash_program,
+ GNOME_FILE_DOMAIN_APP_DATADIR,
+ name, TRUE, NULL);
- if (fullname == NULL) {
- PERR ("Could not locate file %s", name);
- return NULL;
- }
+ if (fullname == NULL)
+ {
+ PERR ("Could not locate file %s", name);
+ return NULL;
+ }
- return fullname;
+ return fullname;
}
char *
gnc_gnome_locate_ui_file (const char *name)
{
- char *partial;
- char *fullname;
+ char *partial;
+ char *fullname;
- g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
- partial = g_strdup_printf("ui/%s", name);
- fullname = gnc_gnome_locate_data_file(partial);
- g_free(partial);
+ partial = g_strdup_printf("ui/%s", name);
+ fullname = gnc_gnome_locate_data_file(partial);
+ g_free(partial);
- return fullname;
+ return fullname;
}
static void
gnc_gtk_add_rc_file (void)
{
- const gchar *var;
- gchar *str;
+ const gchar *var;
+ gchar *str;
- var = g_get_home_dir ();
- if (var) {
- str = g_build_filename (var, ".gtkrc-2.0.gnucash", (char *)NULL);
- gtk_rc_add_default_file (str);
- g_free (str);
- }
+ var = g_get_home_dir ();
+ if (var)
+ {
+ str = g_build_filename (var, ".gtkrc-2.0.gnucash", (char *)NULL);
+ gtk_rc_add_default_file (str);
+ g_free (str);
+ }
}
void
gnc_gnome_init (int argc, char **argv, const char * version)
{
- GError *error = NULL;
- gchar *prefix = gnc_path_get_prefix ();
- gchar *pkgsysconfdir = gnc_path_get_pkgsysconfdir ();
- gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
- gchar *pkglibdir = gnc_path_get_pkglibdir ();
+ GError *error = NULL;
+ gchar *prefix = gnc_path_get_prefix ();
+ gchar *pkgsysconfdir = gnc_path_get_pkgsysconfdir ();
+ gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
+ gchar *pkglibdir = gnc_path_get_pkglibdir ();
- gnc_gtk_add_rc_file();
- gnucash_program = gnome_program_init(
- "gnucash", version, LIBGNOMEUI_MODULE,
- argc, argv,
- GNOME_PARAM_APP_PREFIX, prefix,
- GNOME_PARAM_APP_SYSCONFDIR, pkgsysconfdir,
- GNOME_PARAM_APP_DATADIR, pkgdatadir,
- GNOME_PARAM_APP_LIBDIR, pkglibdir,
- GNOME_PARAM_NONE);
- g_free (prefix);
- g_free (pkgsysconfdir);
- g_free (pkgdatadir);
- g_free (pkglibdir);
+ gnc_gtk_add_rc_file();
+ gnucash_program = gnome_program_init(
+ "gnucash", version, LIBGNOMEUI_MODULE,
+ argc, argv,
+ GNOME_PARAM_APP_PREFIX, prefix,
+ GNOME_PARAM_APP_SYSCONFDIR, pkgsysconfdir,
+ GNOME_PARAM_APP_DATADIR, pkgdatadir,
+ GNOME_PARAM_APP_LIBDIR, pkglibdir,
+ GNOME_PARAM_NONE);
+ g_free (prefix);
+ g_free (pkgsysconfdir);
+ g_free (pkgdatadir);
+ g_free (pkglibdir);
#ifdef G_OS_WIN32
- /* workaround for bug #421792 */
- xmlCleanupInputCallbacks();
+ /* workaround for bug #421792 */
+ xmlCleanupInputCallbacks();
#endif
- /* initialization required for gtkhtml */
- gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
+ /* initialization required for gtkhtml */
+ gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
- /* use custom icon */
- {
- int idx;
- char *icon_filenames[] = {"gnucash-icon-16x16.png",
- "gnucash-icon-32x32.png",
- "gnucash-icon-48x48.png",
- NULL};
- GList *icons = NULL;
- char *fullname, *name_iter;
+ /* use custom icon */
+ {
+ int idx;
+ char *icon_filenames[] = {"gnucash-icon-16x16.png",
+ "gnucash-icon-32x32.png",
+ "gnucash-icon-48x48.png",
+ NULL
+ };
+ GList *icons = NULL;
+ char *fullname, *name_iter;
- for (idx = 0; icon_filenames[idx] != NULL; idx++) {
- GdkPixbuf *buf = NULL;
+ for (idx = 0; icon_filenames[idx] != NULL; idx++)
+ {
+ GdkPixbuf *buf = NULL;
- fullname = gnc_gnome_locate_pixmap(icon_filenames[idx]);
- if (fullname == NULL) {
- g_warning("couldn't find icon file [%s]", icon_filenames[idx]);
- continue;
- }
-
- buf = gnc_gnome_get_gdkpixbuf(fullname);
- if (buf == NULL)
- {
- g_warning("error loading image from [%s]", fullname);
- g_free(fullname);
- continue;
- }
- g_free(fullname);
- icons = g_list_append(icons, buf);
+ fullname = gnc_gnome_locate_pixmap(icon_filenames[idx]);
+ if (fullname == NULL)
+ {
+ g_warning("couldn't find icon file [%s]", icon_filenames[idx]);
+ continue;
+ }
+
+ buf = gnc_gnome_get_gdkpixbuf(fullname);
+ if (buf == NULL)
+ {
+ g_warning("error loading image from [%s]", fullname);
+ g_free(fullname);
+ continue;
+ }
+ g_free(fullname);
+ icons = g_list_append(icons, buf);
+ }
+
+ gtk_window_set_default_icon_list(icons);
+ g_list_foreach(icons, (GFunc)g_object_unref, NULL);
+ g_list_free(icons);
}
- gtk_window_set_default_icon_list(icons);
- g_list_foreach(icons, (GFunc)g_object_unref, NULL);
- g_list_free(icons);
- }
+ druid_gconf_install_check_schemas();
- druid_gconf_install_check_schemas();
-
- return;
+ return;
}
#ifndef G_OS_WIN32
void
gnc_gnome_help (const char *file_name, const char *anchor)
{
- GError *error = NULL;
+ GError *error = NULL;
- DEBUG ("Attempting to opening help file %s", file_name);
- if (gnome_help_display (file_name, anchor, &error))
- return;
+ DEBUG ("Attempting to opening help file %s", file_name);
+ if (gnome_help_display (file_name, anchor, &error))
+ return;
- g_assert(error != NULL);
- {
- const gchar *message =
- _("GnuCash could not find the files for the help documentation. "
- "This is likely because the 'gnucash-docs' package is not installed.");
- gnc_error_dialog(NULL, "%s", message);
- }
- PERR ("%s", error->message);
- g_error_free(error);
+ g_assert(error != NULL);
+ {
+ const gchar *message =
+ _("GnuCash could not find the files for the help documentation. "
+ "This is likely because the 'gnucash-docs' package is not installed.");
+ gnc_error_dialog(NULL, "%s", message);
+ }
+ PERR ("%s", error->message);
+ g_error_free(error);
}
#else /* G_OS_WIN32 */
void
gnc_gnome_help (const char *file_name, const char *anchor)
{
- const gchar * const *lang;
- gchar *pkgdatadir, *fullpath, *found = NULL;
-
- pkgdatadir = gnc_path_get_pkgdatadir ();
- for (lang=g_get_language_names (); *lang; lang++) {
- fullpath = g_build_filename (pkgdatadir, "help", *lang, file_name,
- (gchar*) NULL);
- if (g_file_test (fullpath, G_FILE_TEST_IS_REGULAR)) {
- found = g_strdup (fullpath);
- g_free (fullpath);
- break;
+ const gchar * const *lang;
+ gchar *pkgdatadir, *fullpath, *found = NULL;
+
+ pkgdatadir = gnc_path_get_pkgdatadir ();
+ for (lang = g_get_language_names (); *lang; lang++)
+ {
+ fullpath = g_build_filename (pkgdatadir, "help", *lang, file_name,
+ (gchar*) NULL);
+ if (g_file_test (fullpath, G_FILE_TEST_IS_REGULAR))
+ {
+ found = g_strdup (fullpath);
+ g_free (fullpath);
+ break;
+ }
+ g_free (fullpath);
}
- g_free (fullpath);
- }
- g_free (pkgdatadir);
+ g_free (pkgdatadir);
- if (!found) {
- const gchar *message =
- _("GnuCash could not find the files for the help documentation.");
- gnc_error_dialog (NULL, message);
- } else {
- gnc_show_htmlhelp (found, anchor);
- }
- g_free (found);
+ if (!found)
+ {
+ const gchar *message =
+ _("GnuCash could not find the files for the help documentation.");
+ gnc_error_dialog (NULL, message);
+ }
+ else
+ {
+ gnc_show_htmlhelp (found, anchor);
+ }
+ g_free (found);
}
#endif
@@ -326,24 +338,25 @@
GtkWidget *
gnc_gnome_get_pixmap (const char *name)
{
- GtkWidget *pixmap;
- char *fullname;
+ GtkWidget *pixmap;
+ char *fullname;
- g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
- fullname = gnc_gnome_locate_pixmap (name);
- if (fullname == NULL)
- return NULL;
+ fullname = gnc_gnome_locate_pixmap (name);
+ if (fullname == NULL)
+ return NULL;
- DEBUG ("Loading pixmap file %s", fullname);
+ DEBUG ("Loading pixmap file %s", fullname);
- pixmap = gtk_image_new_from_file (fullname);
- if (pixmap == NULL) {
- PERR ("Could not load pixmap");
- }
- g_free (fullname);
+ pixmap = gtk_image_new_from_file (fullname);
+ if (pixmap == NULL)
+ {
+ PERR ("Could not load pixmap");
+ }
+ g_free (fullname);
- return pixmap;
+ return pixmap;
}
/********************************************************************\
@@ -356,105 +369,106 @@
GdkPixbuf *
gnc_gnome_get_gdkpixbuf (const char *name)
{
- GdkPixbuf *pixbuf;
- GError *error = NULL;
- char *fullname;
+ GdkPixbuf *pixbuf;
+ GError *error = NULL;
+ char *fullname;
- g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
- fullname = gnc_gnome_locate_pixmap (name);
- if (fullname == NULL)
- return NULL;
+ fullname = gnc_gnome_locate_pixmap (name);
+ if (fullname == NULL)
+ return NULL;
- DEBUG ("Loading pixbuf file %s", fullname);
- pixbuf = gdk_pixbuf_new_from_file (fullname, &error);
- if (error != NULL) {
- g_assert (pixbuf == NULL);
- PERR ("Could not load pixbuf: %s", error->message);
- g_error_free (error);
- }
- g_free (fullname);
+ DEBUG ("Loading pixbuf file %s", fullname);
+ pixbuf = gdk_pixbuf_new_from_file (fullname, &error);
+ if (error != NULL)
+ {
+ g_assert (pixbuf == NULL);
+ PERR ("Could not load pixbuf: %s", error->message);
+ g_error_free (error);
+ }
+ g_free (fullname);
- return pixbuf;
+ return pixbuf;
}
static gboolean
gnc_ui_check_events (gpointer not_used)
{
- QofSession *session;
- gboolean force;
+ QofSession *session;
+ gboolean force;
- if (gtk_main_level() != 1)
- return TRUE;
+ if (gtk_main_level() != 1)
+ return TRUE;
- if (!gnc_current_session_exist())
- return TRUE;
- session = gnc_get_current_session ();
+ if (!gnc_current_session_exist())
+ return TRUE;
+ session = gnc_get_current_session ();
- if (gnc_gui_refresh_suspended ())
- return TRUE;
+ if (gnc_gui_refresh_suspended ())
+ return TRUE;
- if (!qof_session_events_pending (session))
- return TRUE;
+ if (!qof_session_events_pending (session))
+ return TRUE;
- gnc_suspend_gui_refresh ();
+ gnc_suspend_gui_refresh ();
- force = qof_session_process_events (session);
+ force = qof_session_process_events (session);
- gnc_resume_gui_refresh ();
+ gnc_resume_gui_refresh ();
- if (force)
- gnc_gui_refresh_all ();
+ if (force)
+ gnc_gui_refresh_all ();
- return TRUE;
+ return TRUE;
}
#ifdef HAVE_X11_XLIB_H
static int
gnc_x_error (Display *display, XErrorEvent *error)
{
- if (error->error_code)
- {
- char buf[64];
+ if (error->error_code)
+ {
+ char buf[64];
- XGetErrorText (display, error->error_code, buf, 63);
+ XGetErrorText (display, error->error_code, buf, 63);
- g_warning ("X-ERROR **: %s\n serial %ld error_code %d "
- "request_code %d minor_code %d\n",
- buf,
- error->serial,
- error->error_code,
- error->request_code,
- error->minor_code);
- }
+ g_warning ("X-ERROR **: %s\n serial %ld error_code %d "
+ "request_code %d minor_code %d\n",
+ buf,
+ error->serial,
+ error->error_code,
+ error->request_code,
+ error->minor_code);
+ }
- return 0;
+ return 0;
}
#endif
int
gnc_ui_start_event_loop (void)
{
- guint id;
+ guint id;
- gnome_is_running = TRUE;
+ gnome_is_running = TRUE;
- id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 10000, /* 10 secs */
- gnc_ui_check_events, NULL, NULL);
+ id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 10000, /* 10 secs */
+ gnc_ui_check_events, NULL, NULL);
#ifdef HAVE_X11_XLIB_H
- XSetErrorHandler (gnc_x_error);
+ XSetErrorHandler (gnc_x_error);
#endif
- /* Enter gnome event loop */
- gtk_main ();
+ /* Enter gnome event loop */
+ gtk_main ();
- g_source_remove (id);
+ g_source_remove (id);
- gnome_is_running = FALSE;
- gnome_is_terminating = FALSE;
+ gnome_is_running = FALSE;
+ gnome_is_terminating = FALSE;
- return 0;
+ return 0;
}
GncMainWindow *
@@ -463,7 +477,8 @@
static GncMainWindow *main_window;
gchar *map;
- if (gnome_is_initialized) {
+ if (gnome_is_initialized)
+ {
return main_window;
}
@@ -503,33 +518,33 @@
gboolean
gnucash_ui_is_running(void)
{
- return gnome_is_running;
+ return gnome_is_running;
}
static void
gnc_gui_destroy (void)
{
- if (!gnome_is_initialized)
- return;
+ if (!gnome_is_initialized)
+ return;
- gnc_extensions_shutdown ();
+ gnc_extensions_shutdown ();
}
static void
gnc_gui_shutdown (void)
{
- gchar *map;
+ gchar *map;
- if (gnome_is_running && !gnome_is_terminating)
- {
- gnome_is_terminating = TRUE;
+ if (gnome_is_running && !gnome_is_terminating)
+ {
+ gnome_is_terminating = TRUE;
- map = gnc_build_dotgnucash_path(ACCEL_MAP_NAME);
- gtk_accel_map_save(map);
- g_free(map);
+ map = gnc_build_dotgnucash_path(ACCEL_MAP_NAME);
+ gtk_accel_map_save(map);
+ g_free(map);
- gtk_main_quit();
- }
+ gtk_main_quit();
+ }
}
/* shutdown gnucash. This function will initiate an orderly
@@ -538,18 +553,23 @@
void
gnc_shutdown (int exit_status)
{
- if (gnucash_ui_is_running()) {
- if (!gnome_is_terminating) {
- if (gnc_file_query_save(FALSE)) {
+ if (gnucash_ui_is_running())
+ {
+ if (!gnome_is_terminating)
+ {
+ if (gnc_file_query_save(FALSE))
+ {
gnc_hook_run(HOOK_UI_SHUTDOWN, NULL);
gnc_gui_shutdown();
}
}
- } else {
+ }
+ else
+ {
gnc_gui_destroy();
gnc_hook_run(HOOK_SHUTDOWN, NULL);
gnc_engine_shutdown();
exit(exit_status);
- }
+ }
}
Modified: gnucash/trunk/src/gnome-utils/gnc-gnome-utils.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-gnome-utils.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-gnome-utils.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -29,7 +29,7 @@
/** @file gnc-gnome-utils.h
@brief Gnome specific utility functions.
@author Copyright (C) 2001 Linux Developers Group
- @author Copyright (C) 2003 David Hampton <hampton at employees.org>
+ @author Copyright (C) 2003 David Hampton <hampton at employees.org>
*/
#ifndef GNC_GNOME_UTILS_H
@@ -109,7 +109,7 @@
* be found.
*/
void gnc_gnome_help (const char *file_name,
- const char *anchor);
+ const char *anchor);
/** Given a file name, find and load the requested pixmap. This
Modified: gnucash/trunk/src/gnome-utils/gnc-gui-query.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-gui-query.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-gui-query.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
/********************************************************************\
- * gnc-gui-query.c -- functions for creating dialogs for GnuCash *
+ * gnc-gui-query.c -- functions for creating dialogs for GnuCash *
* Copyright (C) 1998, 1999, 2000 Linas Vepstas *
* *
* This program is free software; you can redistribute it and/or *
@@ -24,7 +24,7 @@
#include <gnome.h>
#include <glib/gi18n.h>
-
+
#include "dialog-utils.h"
#include "gnc-gconf-utils.h"
#include "qof.h"
@@ -53,32 +53,32 @@
\********************************************************************/
gint
gnc_ok_cancel_dialog(gncUIWidget parent,
- gint default_result,
- const gchar *format,...)
+ gint default_result,
+ const gchar *format, ...)
{
- GtkWidget *dialog = NULL;
- gint result;
- gchar *buffer;
- va_list args;
+ GtkWidget *dialog = NULL;
+ gint result;
+ gchar *buffer;
+ va_list args;
- if (parent == NULL)
- parent = gnc_ui_get_toplevel();
+ if (parent == NULL)
+ parent = gnc_ui_get_toplevel();
- va_start(args, format);
- buffer = g_strdup_vprintf(format, args);
- dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_OK_CANCEL,
- "%s",
- buffer);
- g_free(buffer);
- va_end(args);
+ va_start(args, format);
+ buffer = g_strdup_vprintf(format, args);
+ dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_OK_CANCEL,
+ "%s",
+ buffer);
+ g_free(buffer);
+ va_end(args);
- gtk_dialog_set_default_response (GTK_DIALOG(dialog), default_result);
- result = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy (dialog);
- return(result);
+ gtk_dialog_set_default_response (GTK_DIALOG(dialog), default_result);
+ result = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy (dialog);
+ return(result);
}
@@ -99,166 +99,166 @@
\********************************************************************/
gboolean
gnc_verify_dialog(gncUIWidget parent, gboolean yes_is_default,
- const gchar *format, ...)
+ const gchar *format, ...)
{
- GtkWidget *dialog;
- gchar *buffer;
- gint result;
- va_list args;
+ GtkWidget *dialog;
+ gchar *buffer;
+ gint result;
+ va_list args;
- if (parent == NULL)
- parent = gnc_ui_get_toplevel();
+ if (parent == NULL)
+ parent = gnc_ui_get_toplevel();
- va_start(args, format);
- buffer = g_strdup_vprintf(format, args);
- dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO,
- "%s",
- buffer);
- g_free(buffer);
- va_end(args);
+ va_start(args, format);
+ buffer = g_strdup_vprintf(format, args);
+ dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_YES_NO,
+ "%s",
+ buffer);
+ g_free(buffer);
+ va_end(args);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog),
- (yes_is_default ? GTK_RESPONSE_YES : GTK_RESPONSE_NO));
- result = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy (dialog);
- return (result == GTK_RESPONSE_YES);
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog),
+ (yes_is_default ? GTK_RESPONSE_YES : GTK_RESPONSE_NO));
+ result = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy (dialog);
+ return (result == GTK_RESPONSE_YES);
}
/********************************************************************\
- * gnc_info_dialog *
- * displays an information dialog box *
- * *
- * Args: parent - the parent window *
+ * gnc_info_dialog *
+ * displays an information dialog box *
+ * *
+ * Args: parent - the parent window *
* format - the format string for the message to display *
* This is a standard 'printf' style string. *
* args - a pointer to the first argument for the format *
* string. *
- * Return: none *
+ * Return: none *
\********************************************************************/
-void
+void
gnc_info_dialog(GtkWidget *parent, const gchar *format, ...)
{
- GtkWidget *dialog;
- gchar *buffer;
- va_list args;
+ GtkWidget *dialog;
+ gchar *buffer;
+ va_list args;
- if (parent == NULL)
- parent = gnc_ui_get_toplevel();
+ if (parent == NULL)
+ parent = gnc_ui_get_toplevel();
- va_start(args, format);
- buffer = g_strdup_vprintf(format, args);
- dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_CLOSE,
- "%s",
- buffer);
- va_end(args);
+ va_start(args, format);
+ buffer = g_strdup_vprintf(format, args);
+ dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE,
+ "%s",
+ buffer);
+ va_end(args);
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy (dialog);
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy (dialog);
}
/********************************************************************\
- * gnc_warning_dialog_common *
- * displays a warning dialog box *
- * *
- * Args: parent - the parent window *
+ * gnc_warning_dialog_common *
+ * displays a warning dialog box *
+ * *
+ * Args: parent - the parent window *
* format - the format string for the message to display *
* This is a standard 'printf' style string. *
* args - a pointer to the first argument for the format *
* string. *
- * Return: none *
+ * Return: none *
\********************************************************************/
-static void
+static void
gnc_warning_dialog_common(GtkWidget *parent, const gchar *format, va_list args)
{
- GtkWidget *dialog = NULL;
- gchar *buffer;
+ GtkWidget *dialog = NULL;
+ gchar *buffer;
- if (parent == NULL)
- parent = GTK_WIDGET(gnc_ui_get_toplevel());
+ if (parent == NULL)
+ parent = GTK_WIDGET(gnc_ui_get_toplevel());
- buffer = g_strdup_vprintf(format, args);
- dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_CLOSE,
- "%s",
- buffer);
- g_free(buffer);
+ buffer = g_strdup_vprintf(format, args);
+ dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_CLOSE,
+ "%s",
+ buffer);
+ g_free(buffer);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
}
-void
+void
gnc_warning_dialog(GtkWidget *parent, const gchar *format, ...)
{
- va_list args;
+ va_list args;
- va_start(args, format);
- gnc_warning_dialog_common(parent, format, args);
- va_end(args);
+ va_start(args, format);
+ gnc_warning_dialog_common(parent, format, args);
+ va_end(args);
}
/********************************************************************\
- * gnc_error_dialog_common *
- * displays an error dialog box *
- * *
+ * gnc_error_dialog_common *
+ * displays an error dialog box *
+ * *
* Args: parent - the parent window *
* format - the format string for the message to display *
* This is a standard 'printf' style string. *
* args - a pointer to the first argument for the format *
* string. *
- * Return: none *
+ * Return: none *
\********************************************************************/
-static void
+static void
gnc_error_dialog_common(GtkWidget *parent, const gchar *format, va_list args)
{
- GtkWidget *dialog;
- gchar *buffer;
+ GtkWidget *dialog;
+ gchar *buffer;
- if (parent == NULL)
- parent = GTK_WIDGET(gnc_ui_get_toplevel());
+ if (parent == NULL)
+ parent = GTK_WIDGET(gnc_ui_get_toplevel());
- buffer = g_strdup_vprintf(format, args);
- dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "%s",
- buffer);
- g_free(buffer);
+ buffer = g_strdup_vprintf(format, args);
+ dialog = gtk_message_dialog_new (GTK_WINDOW(parent),
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ "%s",
+ buffer);
+ g_free(buffer);
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy (dialog);
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy (dialog);
}
-void
+void
gnc_error_dialog(GtkWidget *parent, const gchar *format, ...)
{
- va_list args;
+ va_list args;
- va_start(args, format);
- gnc_error_dialog_common(parent, format, args);
- va_end(args);
+ va_start(args, format);
+ gnc_error_dialog_common(parent, format, args);
+ va_end(args);
}
static void
gnc_choose_radio_button_cb(GtkWidget *w, gpointer data)
{
- int *result = data;
+ int *result = data;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
- *result = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), INDEX_LABEL));
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
+ *result = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), INDEX_LABEL));
}
/********************************************************************
@@ -270,82 +270,82 @@
int
gnc_choose_radio_option_dialog(gncUIWidget parent,
- const char *title,
- const char *msg,
- const char *button_name,
- int default_value,
- GList *radio_list)
+ const char *title,
+ const char *msg,
+ const char *button_name,
+ int default_value,
+ GList *radio_list)
{
- int radio_result = 0; /* initial selected value is first one */
- GtkWidget *vbox;
- GtkWidget *main_vbox;
- GtkWidget *label;
- GtkWidget *alignment;
- GtkWidget *radio_button;
- GtkWidget *dialog;
- GtkWidget *dvbox;
- GSList *group = NULL;
- GList *node;
- int i;
+ int radio_result = 0; /* initial selected value is first one */
+ GtkWidget *vbox;
+ GtkWidget *main_vbox;
+ GtkWidget *label;
+ GtkWidget *alignment;
+ GtkWidget *radio_button;
+ GtkWidget *dialog;
+ GtkWidget *dvbox;
+ GSList *group = NULL;
+ GList *node;
+ int i;
- main_vbox = gtk_vbox_new(FALSE, 3);
- gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 6);
- gtk_widget_show(main_vbox);
+ main_vbox = gtk_vbox_new(FALSE, 3);
+ gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 6);
+ gtk_widget_show(main_vbox);
- label = gtk_label_new(msg);
- gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
- gtk_box_pack_start(GTK_BOX(main_vbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
+ label = gtk_label_new(msg);
+ gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
+ gtk_box_pack_start(GTK_BOX(main_vbox), label, FALSE, FALSE, 0);
+ gtk_widget_show(label);
- alignment = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
- gtk_alignment_set_padding (GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
- gtk_box_pack_start(GTK_BOX(main_vbox), alignment, FALSE, FALSE, 0);
- gtk_widget_show(alignment);
+ alignment = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
+ gtk_box_pack_start(GTK_BOX(main_vbox), alignment, FALSE, FALSE, 0);
+ gtk_widget_show(alignment);
- vbox = gtk_vbox_new(TRUE, 3);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
- gtk_container_add(GTK_CONTAINER(alignment), vbox);
- gtk_widget_show(vbox);
+ vbox = gtk_vbox_new(TRUE, 3);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
+ gtk_container_add(GTK_CONTAINER(alignment), vbox);
+ gtk_widget_show(vbox);
- for (node = radio_list, i = 0; node; node = node->next, i++)
- {
- radio_button = gtk_radio_button_new_with_mnemonic(group, node->data);
- group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_button));
+ for (node = radio_list, i = 0; node; node = node->next, i++)
+ {
+ radio_button = gtk_radio_button_new_with_mnemonic(group, node->data);
+ group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_button));
- if (i == default_value) /* default is first radio button */
- {
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button), TRUE);
- radio_result = default_value;
+ if (i == default_value) /* default is first radio button */
+ {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button), TRUE);
+ radio_result = default_value;
+ }
+
+ gtk_widget_show(radio_button);
+ gtk_box_pack_start(GTK_BOX(vbox), radio_button, FALSE, FALSE, 0);
+ g_object_set_data(G_OBJECT(radio_button), INDEX_LABEL, GINT_TO_POINTER(i));
+ g_signal_connect(radio_button, "clicked",
+ G_CALLBACK(gnc_choose_radio_button_cb),
+ &radio_result);
}
- gtk_widget_show(radio_button);
- gtk_box_pack_start(GTK_BOX(vbox), radio_button, FALSE, FALSE, 0);
- g_object_set_data(G_OBJECT(radio_button), INDEX_LABEL, GINT_TO_POINTER(i));
- g_signal_connect(radio_button, "clicked",
- G_CALLBACK(gnc_choose_radio_button_cb),
- &radio_result);
- }
+ if (!button_name)
+ button_name = GTK_STOCK_OK;
+ dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW(parent),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ button_name, GTK_RESPONSE_OK,
+ NULL);
+ gtk_dialog_set_has_separator (GTK_DIALOG(dialog), FALSE);
- if (!button_name)
- button_name = GTK_STOCK_OK;
- dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW(parent),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- button_name, GTK_RESPONSE_OK,
- NULL);
- gtk_dialog_set_has_separator (GTK_DIALOG(dialog), FALSE);
+ /* default to ok */
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
- /* default to ok */
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+ dvbox = GTK_DIALOG(dialog)->vbox;
- dvbox = GTK_DIALOG(dialog)->vbox;
+ gtk_box_pack_start(GTK_BOX(dvbox), main_vbox, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(dvbox), main_vbox, TRUE, TRUE, 0);
+ if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_OK)
+ radio_result = -1;
- if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_OK)
- radio_result = -1;
+ gtk_widget_destroy (dialog);
- gtk_widget_destroy (dialog);
-
- return radio_result;
+ return radio_result;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-gui-query.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-gui-query.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-gui-query.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
/********************************************************************\
- * gnc-gui-query.h -- functions for creating dialogs for GnuCash *
+ * gnc-gui-query.h -- functions for creating dialogs for GnuCash *
* Copyright (C) 1998, 1999, 2000 Linas Vepstas *
* *
* This program is free software; you can redistribute it and/or *
@@ -25,11 +25,11 @@
extern void
gnc_info_dialog(GtkWidget *parent,
- const char *format, ...) G_GNUC_PRINTF (2, 3);
+ const char *format, ...) G_GNUC_PRINTF (2, 3);
extern void
gnc_error_dialog(GtkWidget *parent,
- const char *format, ...) G_GNUC_PRINTF (2, 3);
+ const char *format, ...) G_GNUC_PRINTF (2, 3);
#endif
Modified: gnucash/trunk/src/gnome-utils/gnc-icons.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-icons.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-icons.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -12,103 +12,107 @@
#include "gnc-icons.h"
#include "gnc-gnome-utils.h"
-static GtkStockItem items[] = {
- { GNC_STOCK_ACCOUNT, N_("Account"), 0, 0, NULL },
- { GNC_STOCK_DELETE_ACCOUNT, N_("_Delete Account"), 0, 0, NULL },
- { GNC_STOCK_EDIT_ACCOUNT, N_("_Edit Account"), 0, 0, NULL },
- { GNC_STOCK_NEW_ACCOUNT, N_("_New Account"), 0, 0, NULL },
- { GNC_STOCK_OPEN_ACCOUNT, N_("_Open Account"), 0, 0, NULL },
- { GNC_STOCK_TRANSFER, N_("_Transfer..."), 0, 0, NULL },
- { GNC_STOCK_SPLIT_TRANS, N_("S_plit Transaction"), 0, 0, NULL },
- { GNC_STOCK_JUMP_TO, N_("_Jump"), 0, 0, NULL },
+static GtkStockItem items[] =
+{
+ { GNC_STOCK_ACCOUNT, N_("Account"), 0, 0, NULL },
+ { GNC_STOCK_DELETE_ACCOUNT, N_("_Delete Account"), 0, 0, NULL },
+ { GNC_STOCK_EDIT_ACCOUNT, N_("_Edit Account"), 0, 0, NULL },
+ { GNC_STOCK_NEW_ACCOUNT, N_("_New Account"), 0, 0, NULL },
+ { GNC_STOCK_OPEN_ACCOUNT, N_("_Open Account"), 0, 0, NULL },
+ { GNC_STOCK_TRANSFER, N_("_Transfer..."), 0, 0, NULL },
+ { GNC_STOCK_SPLIT_TRANS, N_("S_plit Transaction"), 0, 0, NULL },
+ { GNC_STOCK_JUMP_TO, N_("_Jump"), 0, 0, NULL },
};
-typedef struct _item_file {
- const gchar *stock_name;
- const gchar *filename_lg;
- const gchar *filename_sm;
+typedef struct _item_file
+{
+ const gchar *stock_name;
+ const gchar *filename_lg;
+ const gchar *filename_sm;
} item_file;
-static item_file item_files[] = {
- { GNC_STOCK_ACCOUNT, "gnc-account.png", "gnc-account-16.png"},
- { GNC_STOCK_DELETE_ACCOUNT, "gnc-account-delete.png", "gnc-account-delete-16.png"},
- { GNC_STOCK_EDIT_ACCOUNT, "gnc-account-edit.png", "gnc-account-edit-16.png"},
- { GNC_STOCK_NEW_ACCOUNT, "gnc-account-new.png", "gnc-account-new-16.png"},
- { GNC_STOCK_OPEN_ACCOUNT, "gnc-account-open.png", "gnc-account-open-16.png"},
- { GNC_STOCK_TRANSFER, "gnc-transfer.png", "gnc-transfer-16.png"},
- { GNC_STOCK_SCHEDULE, "gnc-sx-new.png", "gnc-sx-new-16.png"},
- { GNC_STOCK_SPLIT_TRANS, "gnc-split-trans.png", "gnc-split-trans-16.png"},
- { GNC_STOCK_JUMP_TO, "gnc-jumpto.png", "gnc-jumpto-16.png"},
- { GNC_STOCK_INVOICE, "gnc-invoice.png", "gnc-invoice-16.png"},
- { GNC_STOCK_INVOICE_POST, "gnc-invoice-post.png", "gnc-invoice-post-16.png"},
- { GNC_STOCK_INVOICE_UNPOST, "gnc-invoice-unpost.png", "gnc-invoice-unpost-16.png"},
- { GNC_STOCK_INVOICE_EDIT, "gnc-invoice-edit.png", "gnc-invoice-edit-16.png"},
- { 0 },
+static item_file item_files[] =
+{
+ { GNC_STOCK_ACCOUNT, "gnc-account.png", "gnc-account-16.png"},
+ { GNC_STOCK_DELETE_ACCOUNT, "gnc-account-delete.png", "gnc-account-delete-16.png"},
+ { GNC_STOCK_EDIT_ACCOUNT, "gnc-account-edit.png", "gnc-account-edit-16.png"},
+ { GNC_STOCK_NEW_ACCOUNT, "gnc-account-new.png", "gnc-account-new-16.png"},
+ { GNC_STOCK_OPEN_ACCOUNT, "gnc-account-open.png", "gnc-account-open-16.png"},
+ { GNC_STOCK_TRANSFER, "gnc-transfer.png", "gnc-transfer-16.png"},
+ { GNC_STOCK_SCHEDULE, "gnc-sx-new.png", "gnc-sx-new-16.png"},
+ { GNC_STOCK_SPLIT_TRANS, "gnc-split-trans.png", "gnc-split-trans-16.png"},
+ { GNC_STOCK_JUMP_TO, "gnc-jumpto.png", "gnc-jumpto-16.png"},
+ { GNC_STOCK_INVOICE, "gnc-invoice.png", "gnc-invoice-16.png"},
+ { GNC_STOCK_INVOICE_POST, "gnc-invoice-post.png", "gnc-invoice-post-16.png"},
+ { GNC_STOCK_INVOICE_UNPOST, "gnc-invoice-unpost.png", "gnc-invoice-unpost-16.png"},
+ { GNC_STOCK_INVOICE_EDIT, "gnc-invoice-edit.png", "gnc-invoice-edit-16.png"},
+ { 0 },
};
static void
gnc_add_stock_icon_pair (GtkIconFactory *factory,
- const char *stock,
- const char *filename1,
- const char *filename2)
+ const char *stock,
+ const char *filename1,
+ const char *filename2)
{
- GtkIconSet *set;
- GtkIconSource *source;
- GdkPixbuf *pixbuf1, *pixbuf2;
- char *fullname1, *fullname2;
+ GtkIconSet *set;
+ GtkIconSource *source;
+ GdkPixbuf *pixbuf1, *pixbuf2;
+ char *fullname1, *fullname2;
- /* Find the complete path names for these files */
- fullname1 = gnc_gnome_locate_pixmap (filename1);
- fullname2 = gnc_gnome_locate_pixmap (filename2);
- g_assert (fullname1 && fullname2);
+ /* Find the complete path names for these files */
+ fullname1 = gnc_gnome_locate_pixmap (filename1);
+ fullname2 = gnc_gnome_locate_pixmap (filename2);
+ g_assert (fullname1 && fullname2);
- /* Load the pixbufs */
- pixbuf1 = gnc_gnome_get_gdkpixbuf (filename1);
- pixbuf2 = gnc_gnome_get_gdkpixbuf (filename2);
- g_assert (pixbuf1 && pixbuf2);
+ /* Load the pixbufs */
+ pixbuf1 = gnc_gnome_get_gdkpixbuf (filename1);
+ pixbuf2 = gnc_gnome_get_gdkpixbuf (filename2);
+ g_assert (pixbuf1 && pixbuf2);
- /* Create the icon set */
- set = gtk_icon_set_new ();
- source = gtk_icon_source_new ();
- gtk_icon_source_set_filename (source, fullname1);
- gtk_icon_source_set_pixbuf (source, pixbuf1);
- gtk_icon_set_add_source (set, source);
- gtk_icon_source_free(source);
+ /* Create the icon set */
+ set = gtk_icon_set_new ();
+ source = gtk_icon_source_new ();
+ gtk_icon_source_set_filename (source, fullname1);
+ gtk_icon_source_set_pixbuf (source, pixbuf1);
+ gtk_icon_set_add_source (set, source);
+ gtk_icon_source_free(source);
- source = gtk_icon_source_new ();
- gtk_icon_source_set_filename (source, fullname2);
- gtk_icon_source_set_pixbuf (source, pixbuf2);
- gtk_icon_source_set_size (source, GTK_ICON_SIZE_MENU);
- gtk_icon_source_set_size_wildcarded (source, FALSE);
- gtk_icon_set_add_source (set, source);
- gtk_icon_source_free(source);
+ source = gtk_icon_source_new ();
+ gtk_icon_source_set_filename (source, fullname2);
+ gtk_icon_source_set_pixbuf (source, pixbuf2);
+ gtk_icon_source_set_size (source, GTK_ICON_SIZE_MENU);
+ gtk_icon_source_set_size_wildcarded (source, FALSE);
+ gtk_icon_set_add_source (set, source);
+ gtk_icon_source_free(source);
- /* Add it to the factory */
- gtk_icon_factory_add (factory, stock, set);
+ /* Add it to the factory */
+ gtk_icon_factory_add (factory, stock, set);
- /* Cleanup */
- g_object_unref (pixbuf2);
- g_object_unref (pixbuf1);
- g_free(fullname2);
- g_free(fullname1);
- gtk_icon_set_unref (set);
+ /* Cleanup */
+ g_object_unref (pixbuf2);
+ g_object_unref (pixbuf1);
+ g_free(fullname2);
+ g_free(fullname1);
+ gtk_icon_set_unref (set);
}
void
gnc_load_stock_icons (void)
{
- GtkIconFactory *factory;
- item_file *file;
+ GtkIconFactory *factory;
+ item_file *file;
- /* Register our stock items */
- gtk_stock_add (items, G_N_ELEMENTS (items));
-
- /* Add our custom icon factory to the list of defaults */
- factory = gtk_icon_factory_new ();
- for (file = item_files; file->stock_name; file++) {
- gnc_add_stock_icon_pair (factory, file->stock_name,
- file->filename_lg, file->filename_sm);
- }
+ /* Register our stock items */
+ gtk_stock_add (items, G_N_ELEMENTS (items));
- gtk_icon_factory_add_default (factory);
+ /* Add our custom icon factory to the list of defaults */
+ factory = gtk_icon_factory_new ();
+ for (file = item_files; file->stock_name; file++)
+ {
+ gnc_add_stock_icon_pair (factory, file->stock_name,
+ file->filename_lg, file->filename_sm);
+ }
+
+ gtk_icon_factory_add_default (factory);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -72,10 +72,11 @@
#endif
/** Names of signals generated by the main window. */
-enum {
- PAGE_ADDED,
- PAGE_CHANGED,
- LAST_SIGNAL
+enum
+{
+ PAGE_ADDED,
+ PAGE_CHANGED,
+ LAST_SIGNAL
};
/** This label is used to provide a mapping from a visible page widget
@@ -157,44 +158,44 @@
* object. */
typedef struct GncMainWindowPrivate
{
- /** The dock (vbox) at the top of the window containing the
- * menubar and toolbar. These items are generated bu the UI
- * manager and stored here when the UI manager provides them
- * to the main window. */
- GtkWidget *menu_dock;
- /** The toolbar created by the UI manager. This pointer
- * provides easy access for showing/hiding the toolbar. */
- GtkWidget *toolbar;
- /** The notebook containing all the pages in this window. */
- GtkWidget *notebook;
- /** 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. */
- GtkWidget *statusbar;
- /** A pointer to the progress bar at the bottom right of the
- * window that is contained in the status bar. This pointer
- * provides easy access for updating the progressbar. */
- GtkWidget *progressbar;
+ /** The dock (vbox) at the top of the window containing the
+ * menubar and toolbar. These items are generated bu the UI
+ * manager and stored here when the UI manager provides them
+ * to the main window. */
+ GtkWidget *menu_dock;
+ /** The toolbar created by the UI manager. This pointer
+ * provides easy access for showing/hiding the toolbar. */
+ GtkWidget *toolbar;
+ /** The notebook containing all the pages in this window. */
+ GtkWidget *notebook;
+ /** 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. */
+ GtkWidget *statusbar;
+ /** A pointer to the progress bar at the bottom right of the
+ * window that is contained in the status bar. This pointer
+ * provides easy access for updating the progressbar. */
+ GtkWidget *progressbar;
- /** The group of all actions provided by the main window
- * itself. This does not include any action provided by menu
- * or content plugins. */
- GtkActionGroup *action_group;
+ /** The group of all actions provided by the main window
+ * itself. This does not include any action provided by menu
+ * or content plugins. */
+ GtkActionGroup *action_group;
- /** A list of all pages that are installed in this window. */
- GList *installed_pages;
- /** A list of pages in order of use (most recent -> least recent) */
- GList *usage_order;
- /** The currently selected page. */
- GncPluginPage *current_page;
- /** The identifier for this window's engine event handler. */
- gint event_handler_id;
+ /** A list of all pages that are installed in this window. */
+ GList *installed_pages;
+ /** A list of pages in order of use (most recent -> least recent) */
+ GList *usage_order;
+ /** The currently selected page. */
+ GncPluginPage *current_page;
+ /** The identifier for this window's engine event handler. */
+ gint event_handler_id;
- /** A hash table of all action groups that have been installed
- * into this window. The keys are the name of an action
- * group, the values are structures of type
- * MergedActionEntry. */
- GHashTable *merged_actions_table;
+ /** A hash table of all action groups that have been installed
+ * into this window. The keys are the name of an action
+ * group, the values are structures of type
+ * MergedActionEntry. */
+ GHashTable *merged_actions_table;
} GncMainWindowPrivate;
#define GNC_MAIN_WINDOW_GET_PRIVATE(o) \
@@ -202,13 +203,14 @@
/** This data structure maintains information about one action groups
* that has been installed in this window. */
-typedef struct {
- /** The merge identifier for this action group. This number
- * is provided by the UI manager. */
- guint merge_id;
- /** The action group itself. This contains all actions added
- * by a single menu or content plugin. */
- GtkActionGroup *action_group;
+typedef struct
+{
+ /** The merge identifier for this action group. This number
+ * is provided by the UI manager. */
+ guint merge_id;
+ /** The action group itself. This contains all actions added
+ * by a single menu or content plugin. */
+ GtkActionGroup *action_group;
} MergedActionEntry;
/** A holding place for all the signals generated by the main window
@@ -222,98 +224,136 @@
* them. */
static GtkActionEntry gnc_menu_actions [] =
{
- /* Toplevel */
+ /* Toplevel */
- { "FileAction", NULL, N_("_File"), NULL, NULL, NULL, },
- { "EditAction", NULL, N_("_Edit"), NULL, NULL, NULL },
- { "ViewAction", NULL, N_("_View"), NULL, NULL, NULL },
- { "ActionsAction", NULL, N_("_Actions"), NULL, NULL, NULL },
- { "TransactionAction", NULL, N_("Tra_nsaction"), NULL, NULL, NULL },
- { "ReportsAction", NULL, N_("_Reports"), NULL, NULL, NULL },
- { "ToolsAction", NULL, N_("_Tools"), NULL, NULL, NULL },
- { "ExtensionsAction", NULL, N_("E_xtensions"), NULL, NULL, NULL },
- { "WindowsAction", NULL, N_("_Windows"), NULL, NULL, NULL },
- { "HelpAction", NULL, N_("_Help"), NULL, NULL, NULL },
+ { "FileAction", NULL, N_("_File"), NULL, NULL, NULL, },
+ { "EditAction", NULL, N_("_Edit"), NULL, NULL, NULL },
+ { "ViewAction", NULL, N_("_View"), NULL, NULL, NULL },
+ { "ActionsAction", NULL, N_("_Actions"), NULL, NULL, NULL },
+ { "TransactionAction", NULL, N_("Tra_nsaction"), NULL, NULL, NULL },
+ { "ReportsAction", NULL, N_("_Reports"), NULL, NULL, NULL },
+ { "ToolsAction", NULL, N_("_Tools"), NULL, NULL, NULL },
+ { "ExtensionsAction", NULL, N_("E_xtensions"), NULL, NULL, NULL },
+ { "WindowsAction", NULL, N_("_Windows"), NULL, NULL, NULL },
+ { "HelpAction", NULL, N_("_Help"), NULL, NULL, NULL },
- /* File menu */
+ /* File menu */
- { "FileNewMenuAction", GTK_STOCK_NEW, N_("_New"), "", NULL, NULL },
- { "FileOpenMenuAction", GTK_STOCK_OPEN, N_("_Open"), "", NULL, NULL },
- { "FileImportAction", NULL, N_("_Import"), NULL, NULL, NULL },
- { "FileExportAction", NULL, N_("_Export"), NULL, NULL, NULL },
- { "FilePrintAction", GTK_STOCK_PRINT, N_("_Print..."), "<control>p",
- N_("Print the currently active page"), NULL },
+ { "FileNewMenuAction", GTK_STOCK_NEW, N_("_New"), "", NULL, NULL },
+ { "FileOpenMenuAction", GTK_STOCK_OPEN, N_("_Open"), "", NULL, NULL },
+ { "FileImportAction", NULL, N_("_Import"), NULL, NULL, NULL },
+ { "FileExportAction", NULL, N_("_Export"), NULL, NULL, NULL },
+ {
+ "FilePrintAction", GTK_STOCK_PRINT, N_("_Print..."), "<control>p",
+ N_("Print the currently active page"), NULL
+ },
#ifndef GTK_STOCK_PAGE_SETUP
# define GTK_STOCK_PAGE_SETUP NULL
#endif
- { "FilePageSetupAction", GTK_STOCK_PAGE_SETUP, N_("Pa_ge Setup..."), "<control><shift>p",
- N_("Specify the page size and orientation for printing"),
- G_CALLBACK (gnc_main_window_cmd_page_setup) },
- { "FilePropertiesAction", GTK_STOCK_PROPERTIES, N_("Proper_ties"), "<Alt>Return",
- N_("Edit the properties of the current file"),
- G_CALLBACK (gnc_main_window_cmd_file_properties) },
- { "FileCloseAction", GTK_STOCK_CLOSE, N_("_Close"), NULL,
- N_("Close the currently active page"),
- G_CALLBACK (gnc_main_window_cmd_file_close) },
- { "FileQuitAction", GTK_STOCK_QUIT, N_("_Quit"), NULL,
- N_("Quit this application"),
- G_CALLBACK (gnc_main_window_cmd_file_quit) },
+ {
+ "FilePageSetupAction", GTK_STOCK_PAGE_SETUP, N_("Pa_ge Setup..."), "<control><shift>p",
+ N_("Specify the page size and orientation for printing"),
+ G_CALLBACK (gnc_main_window_cmd_page_setup)
+ },
+ {
+ "FilePropertiesAction", GTK_STOCK_PROPERTIES, N_("Proper_ties"), "<Alt>Return",
+ N_("Edit the properties of the current file"),
+ G_CALLBACK (gnc_main_window_cmd_file_properties)
+ },
+ {
+ "FileCloseAction", GTK_STOCK_CLOSE, N_("_Close"), NULL,
+ N_("Close the currently active page"),
+ G_CALLBACK (gnc_main_window_cmd_file_close)
+ },
+ {
+ "FileQuitAction", GTK_STOCK_QUIT, N_("_Quit"), NULL,
+ N_("Quit this application"),
+ G_CALLBACK (gnc_main_window_cmd_file_quit)
+ },
- /* Edit menu */
+ /* Edit menu */
- { "EditCutAction", GTK_STOCK_CUT, N_("Cu_t"), NULL,
- N_("Cut the current selection and copy it to clipboard"),
- G_CALLBACK (gnc_main_window_cmd_edit_cut) },
- { "EditCopyAction", GTK_STOCK_COPY, N_("_Copy"), NULL,
- N_("Copy the current selection to clipboard"),
- G_CALLBACK (gnc_main_window_cmd_edit_copy) },
- { "EditPasteAction", GTK_STOCK_PASTE, N_("_Paste"), NULL,
- N_("Paste the clipboard content at the cursor position"),
- G_CALLBACK (gnc_main_window_cmd_edit_paste) },
- { "EditPreferencesAction", GTK_STOCK_PREFERENCES, N_("Pr_eferences"), NULL,
- N_("Edit the global preferences of GnuCash"),
- G_CALLBACK (gnc_main_window_cmd_edit_preferences) },
+ {
+ "EditCutAction", GTK_STOCK_CUT, N_("Cu_t"), NULL,
+ N_("Cut the current selection and copy it to clipboard"),
+ G_CALLBACK (gnc_main_window_cmd_edit_cut)
+ },
+ {
+ "EditCopyAction", GTK_STOCK_COPY, N_("_Copy"), NULL,
+ N_("Copy the current selection to clipboard"),
+ G_CALLBACK (gnc_main_window_cmd_edit_copy)
+ },
+ {
+ "EditPasteAction", GTK_STOCK_PASTE, N_("_Paste"), NULL,
+ N_("Paste the clipboard content at the cursor position"),
+ G_CALLBACK (gnc_main_window_cmd_edit_paste)
+ },
+ {
+ "EditPreferencesAction", GTK_STOCK_PREFERENCES, N_("Pr_eferences"), NULL,
+ N_("Edit the global preferences of GnuCash"),
+ G_CALLBACK (gnc_main_window_cmd_edit_preferences)
+ },
- /* View menu */
+ /* View menu */
- { "ViewSortByAction", NULL, N_("_Sort By..."), NULL,
- N_("Select sorting criteria for this page view"), NULL },
- { "ViewFilterByAction", NULL, N_("_Filter By..."), NULL,
- N_("Select the account types that should be displayed."), NULL },
- { "ViewRefreshAction", GTK_STOCK_REFRESH, N_("_Refresh"), "<control>r",
- N_("Refresh this window"),
- G_CALLBACK (gnc_main_window_cmd_view_refresh) },
+ {
+ "ViewSortByAction", NULL, N_("_Sort By..."), NULL,
+ N_("Select sorting criteria for this page view"), NULL
+ },
+ {
+ "ViewFilterByAction", NULL, N_("_Filter By..."), NULL,
+ N_("Select the account types that should be displayed."), NULL
+ },
+ {
+ "ViewRefreshAction", GTK_STOCK_REFRESH, N_("_Refresh"), "<control>r",
+ N_("Refresh this window"),
+ G_CALLBACK (gnc_main_window_cmd_view_refresh)
+ },
- /* Actions menu */
+ /* Actions menu */
- { "ScrubMenuAction", NULL, N_("_Check & Repair"), NULL, NULL, NULL },
- { "ActionsForgetWarningsAction", NULL, N_("Reset _Warnings..."), NULL,
- N_("Reset the state of all warning messages so they will be shown again."),
- G_CALLBACK (gnc_main_window_cmd_actions_reset_warnings) },
- { "ActionsRenamePageAction", NULL, N_("Re_name Page"), NULL,
- N_("Rename this page."),
- G_CALLBACK (gnc_main_window_cmd_actions_rename_page) },
+ { "ScrubMenuAction", NULL, N_("_Check & Repair"), NULL, NULL, NULL },
+ {
+ "ActionsForgetWarningsAction", NULL, N_("Reset _Warnings..."), NULL,
+ N_("Reset the state of all warning messages so they will be shown again."),
+ G_CALLBACK (gnc_main_window_cmd_actions_reset_warnings)
+ },
+ {
+ "ActionsRenamePageAction", NULL, N_("Re_name Page"), NULL,
+ N_("Rename this page."),
+ G_CALLBACK (gnc_main_window_cmd_actions_rename_page)
+ },
- /* Windows menu */
+ /* Windows menu */
- { "WindowNewAction", NULL, N_("_New Window"), NULL,
- N_("Open a new top-level GnuCash window."),
- G_CALLBACK (gnc_main_window_cmd_window_new) },
- { "WindowMovePageAction", NULL, N_("New Window with _Page"), NULL,
- N_("Move the current page to a new top-level GnuCash window."),
- G_CALLBACK (gnc_main_window_cmd_window_move_page) },
+ {
+ "WindowNewAction", NULL, N_("_New Window"), NULL,
+ N_("Open a new top-level GnuCash window."),
+ G_CALLBACK (gnc_main_window_cmd_window_new)
+ },
+ {
+ "WindowMovePageAction", NULL, N_("New Window with _Page"), NULL,
+ N_("Move the current page to a new top-level GnuCash window."),
+ G_CALLBACK (gnc_main_window_cmd_window_move_page)
+ },
- /* Help menu */
+ /* Help menu */
- { "HelpTutorialAction", GNOME_STOCK_BOOK_BLUE, N_("Tutorial and Concepts _Guide"), NULL,
- N_("Open the GnuCash Tutorial"),
- G_CALLBACK (gnc_main_window_cmd_help_tutorial) },
- { "HelpContentsAction", GTK_STOCK_HELP, N_("_Contents"), "F1",
- N_("Open the GnuCash Help"),
- G_CALLBACK (gnc_main_window_cmd_help_contents) },
- { "HelpAboutAction", GNOME_STOCK_ABOUT, N_("_About"), NULL,
- N_("About GnuCash"),
- G_CALLBACK (gnc_main_window_cmd_help_about) },
+ {
+ "HelpTutorialAction", GNOME_STOCK_BOOK_BLUE, N_("Tutorial and Concepts _Guide"), NULL,
+ N_("Open the GnuCash Tutorial"),
+ G_CALLBACK (gnc_main_window_cmd_help_tutorial)
+ },
+ {
+ "HelpContentsAction", GTK_STOCK_HELP, N_("_Contents"), "F1",
+ N_("Open the GnuCash Help"),
+ G_CALLBACK (gnc_main_window_cmd_help_contents)
+ },
+ {
+ "HelpAboutAction", GNOME_STOCK_ABOUT, N_("_About"), NULL,
+ N_("About GnuCash"),
+ G_CALLBACK (gnc_main_window_cmd_help_about)
+ },
};
/** The number of actions provided by the main window. */
static guint gnc_menu_n_actions = G_N_ELEMENTS (gnc_menu_actions);
@@ -322,15 +362,21 @@
* code. */
static GtkToggleActionEntry toggle_actions [] =
{
- { "ViewToolbarAction", NULL, N_("_Toolbar"), NULL,
- N_("Show/hide the toolbar on this window"),
- G_CALLBACK (gnc_main_window_cmd_view_toolbar), TRUE },
- { "ViewSummaryAction", NULL, N_("Su_mmary Bar"), NULL,
- N_("Show/hide the summary bar on this window"),
- G_CALLBACK (gnc_main_window_cmd_view_summary), TRUE },
- { "ViewStatusbarAction", NULL, N_("Stat_us Bar"), NULL,
- N_("Show/hide the status bar on this window"),
- G_CALLBACK (gnc_main_window_cmd_view_statusbar), TRUE },
+ {
+ "ViewToolbarAction", NULL, N_("_Toolbar"), NULL,
+ N_("Show/hide the toolbar on this window"),
+ G_CALLBACK (gnc_main_window_cmd_view_toolbar), TRUE
+ },
+ {
+ "ViewSummaryAction", NULL, N_("Su_mmary Bar"), NULL,
+ N_("Show/hide the summary bar on this window"),
+ G_CALLBACK (gnc_main_window_cmd_view_summary), TRUE
+ },
+ {
+ "ViewStatusbarAction", NULL, N_("Stat_us Bar"), NULL,
+ N_("Show/hide the status bar on this window"),
+ G_CALLBACK (gnc_main_window_cmd_view_statusbar), TRUE
+ },
};
/** The number of toggle actions provided by the main window. */
static guint n_toggle_actions = G_N_ELEMENTS (toggle_actions);
@@ -339,16 +385,16 @@
* code. */
static GtkRadioActionEntry radio_entries [] =
{
- { "Window0Action", NULL, N_("Window _1"), NULL, NULL, 0 },
- { "Window1Action", NULL, N_("Window _2"), NULL, NULL, 1 },
- { "Window2Action", NULL, N_("Window _3"), NULL, NULL, 2 },
- { "Window3Action", NULL, N_("Window _4"), NULL, NULL, 3 },
- { "Window4Action", NULL, N_("Window _5"), NULL, NULL, 4 },
- { "Window5Action", NULL, N_("Window _6"), NULL, NULL, 5 },
- { "Window6Action", NULL, N_("Window _7"), NULL, NULL, 6 },
- { "Window7Action", NULL, N_("Window _8"), NULL, NULL, 7 },
- { "Window8Action", NULL, N_("Window _9"), NULL, NULL, 8 },
- { "Window9Action", NULL, N_("Window _0"), NULL, NULL, 9 },
+ { "Window0Action", NULL, N_("Window _1"), NULL, NULL, 0 },
+ { "Window1Action", NULL, N_("Window _2"), NULL, NULL, 1 },
+ { "Window2Action", NULL, N_("Window _3"), NULL, NULL, 2 },
+ { "Window3Action", NULL, N_("Window _4"), NULL, NULL, 3 },
+ { "Window4Action", NULL, N_("Window _5"), NULL, NULL, 4 },
+ { "Window5Action", NULL, N_("Window _6"), NULL, NULL, 5 },
+ { "Window6Action", NULL, N_("Window _7"), NULL, NULL, 6 },
+ { "Window7Action", NULL, N_("Window _8"), NULL, NULL, 7 },
+ { "Window8Action", NULL, N_("Window _9"), NULL, NULL, 8 },
+ { "Window9Action", NULL, N_("Window _0"), NULL, NULL, 9 },
};
/** The number of radio actions provided by the main window. */
static guint n_radio_entries = G_N_ELEMENTS (radio_entries);
@@ -357,9 +403,10 @@
/** These are the "important" actions provided by the main window.
* Their labels will appear when the toolbar is set to "Icons and
* important text" (e.g. GTK_TOOLBAR_BOTH_HORIZ) mode. */
-static const gchar *gnc_menu_important_actions[] = {
- "FileCloseAction",
- NULL,
+static const gchar *gnc_menu_important_actions[] =
+{
+ "FileCloseAction",
+ NULL,
};
@@ -367,18 +414,20 @@
* present in the menu structure, but they are never sensitive.
* These actions should be overridden in child windows where they
* have meaning. */
-static const gchar *always_insensitive_actions[] = {
- "FilePrintAction",
- NULL
+static const gchar *always_insensitive_actions[] =
+{
+ "FilePrintAction",
+ NULL
};
/** The following items in the main window should be made insensitive
* at startup time. The sensitivity will be changed by some later
* event. */
-static const gchar *initially_insensitive_actions[] = {
- "FileCloseAction",
- NULL
+static const gchar *initially_insensitive_actions[] =
+{
+ "FileCloseAction",
+ NULL
};
@@ -386,26 +435,29 @@
* present in the menu structure, but they are always hidden.
* These actions should be overridden in child windows where they
* have meaning. */
-static const gchar *always_hidden_actions[] = {
- "ViewSortByAction",
- "ViewFilterByAction",
- NULL
+static const gchar *always_hidden_actions[] =
+{
+ "ViewSortByAction",
+ "ViewFilterByAction",
+ NULL
};
/** If a page is flagged as immutable, then the following actions
* cannot be performed on that page. */
-static const gchar *immutable_page_actions[] = {
- "FileCloseAction",
- NULL
+static const gchar *immutable_page_actions[] =
+{
+ "FileCloseAction",
+ NULL
};
/** The following actions can only be performed if there are multiple
* pages in a window. */
-static const gchar *multiple_page_actions[] = {
- "WindowMovePageAction",
- NULL
+static const gchar *multiple_page_actions[] =
+{
+ "WindowMovePageAction",
+ NULL
};
@@ -432,12 +484,13 @@
#define PAGE_NAME "PageName"
#define PAGE_STRING "Page %d"
-typedef struct {
- GKeyFile *key_file;
- const gchar *group_name;
- gint window_num;
- gint page_num;
- gint page_offset;
+typedef struct
+{
+ GKeyFile *key_file;
+ const gchar *group_name;
+ gint window_num;
+ gint page_num;
+ gint page_offset;
} GncMainWindowSaveData;
@@ -446,21 +499,23 @@
void
gnc_main_window_foreach_page (GncMainWindowPageFunc fn, gpointer user_data)
{
- GncMainWindowPrivate *priv;
- GncMainWindow *window;
- GncPluginPage *page;
- GList *w, *p;
+ GncMainWindowPrivate *priv;
+ GncMainWindow *window;
+ GncPluginPage *page;
+ GList *w, *p;
- ENTER(" ");
- for (w = active_windows; w; w = g_list_next(w)) {
- window = w->data;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- for (p = priv->installed_pages; p; p = g_list_next(p)) {
- page = p->data;
- fn(page, user_data);
+ ENTER(" ");
+ for (w = active_windows; w; w = g_list_next(w))
+ {
+ window = w->data;
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ for (p = priv->installed_pages; p; p = g_list_next(p))
+ {
+ page = p->data;
+ fn(page, user_data);
+ }
}
- }
- LEAVE(" ");
+ LEAVE(" ");
}
@@ -479,69 +534,79 @@
gnc_main_window_restore_page (GncMainWindow *window,
GncMainWindowSaveData *data)
{
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
- gchar *page_group, *page_type = NULL, *name = NULL;
- const gchar *class_type;
- GError *error = NULL;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
+ gchar *page_group, *page_type = NULL, *name = NULL;
+ const gchar *class_type;
+ GError *error = NULL;
- ENTER("window %p, data %p (key file %p, window %d, page start %d, page num %d)",
- window, data, data->key_file, data->window_num, data->page_offset,
- data->page_num);
+ ENTER("window %p, data %p (key file %p, window %d, page start %d, page num %d)",
+ window, data, data->key_file, data->window_num, data->page_offset,
+ data->page_num);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- page_group = g_strdup_printf(PAGE_STRING,
- data->page_offset + data->page_num);
- page_type = g_key_file_get_string(data->key_file, page_group,
- PAGE_TYPE, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- page_group, PAGE_TYPE, error->message);
- goto cleanup;
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ page_group = g_strdup_printf(PAGE_STRING,
+ data->page_offset + data->page_num);
+ page_type = g_key_file_get_string(data->key_file, page_group,
+ PAGE_TYPE, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ page_group, PAGE_TYPE, error->message);
+ goto cleanup;
+ }
- /* See if the page already exists. */
- page = g_list_nth_data(priv->installed_pages, data->page_num);
- if (page) {
- class_type = GNC_PLUGIN_PAGE_GET_CLASS(page)->plugin_name;
- if (strcmp(page_type, class_type) != 0) {
- g_warning("error: page types don't match: state %s, existing page %s",
- page_type, class_type);
- goto cleanup;
+ /* See if the page already exists. */
+ page = g_list_nth_data(priv->installed_pages, data->page_num);
+ if (page)
+ {
+ class_type = GNC_PLUGIN_PAGE_GET_CLASS(page)->plugin_name;
+ if (strcmp(page_type, class_type) != 0)
+ {
+ g_warning("error: page types don't match: state %s, existing page %s",
+ page_type, class_type);
+ goto cleanup;
+ }
}
- } else {
- /* create and install the page */
- page = gnc_plugin_page_recreate_page(GTK_WIDGET(window), page_type,
- data->key_file, page_group);
- if (page) {
- /* Does the page still need to be installed into the window? */
- if (page->window == NULL) {
- gnc_plugin_page_set_use_new_window(page, FALSE);
- gnc_main_window_open_page(window, page);
- }
+ else
+ {
+ /* create and install the page */
+ page = gnc_plugin_page_recreate_page(GTK_WIDGET(window), page_type,
+ data->key_file, page_group);
+ if (page)
+ {
+ /* Does the page still need to be installed into the window? */
+ if (page->window == NULL)
+ {
+ gnc_plugin_page_set_use_new_window(page, FALSE);
+ gnc_main_window_open_page(window, page);
+ }
- /* Restore the page name */
- name = g_key_file_get_string(data->key_file, page_group,
- PAGE_NAME, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- page_group, PAGE_NAME, error->message);
- /* Fall through and still show the page. */
- } else {
- DEBUG("updating page name for %p to %s.", page, name);
- main_window_update_page_name(page, name);
- g_free(name);
- }
+ /* Restore the page name */
+ name = g_key_file_get_string(data->key_file, page_group,
+ PAGE_NAME, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ page_group, PAGE_NAME, error->message);
+ /* Fall through and still show the page. */
+ }
+ else
+ {
+ DEBUG("updating page name for %p to %s.", page, name);
+ main_window_update_page_name(page, name);
+ g_free(name);
+ }
+ }
}
- }
- LEAVE("ok");
- cleanup:
- if (error)
- g_error_free(error);
- if (page_type)
- g_free(page_type);
- g_free(page_group);
+ LEAVE("ok");
+cleanup:
+ if (error)
+ g_error_free(error);
+ if (page_type)
+ g_free(page_type);
+ g_free(page_group);
}
@@ -556,228 +621,269 @@
static void
gnc_main_window_restore_window (GncMainWindow *window, GncMainWindowSaveData *data)
{
- GncMainWindowPrivate *priv;
- GtkAction *action;
- gint *pos, *geom, *order;
- gsize length;
- gboolean max, visible, desired_visibility;
- gchar *window_group;
- gint page_start, page_count, i;
- GError *error = NULL;
+ GncMainWindowPrivate *priv;
+ GtkAction *action;
+ gint *pos, *geom, *order;
+ gsize length;
+ gboolean max, visible, desired_visibility;
+ gchar *window_group;
+ gint page_start, page_count, i;
+ GError *error = NULL;
- /* Setup */
- ENTER("window %p, data %p (key file %p, window %d)",
- window, data, data->key_file, data->window_num);
- window_group = g_strdup_printf(WINDOW_STRING, data->window_num + 1);
+ /* Setup */
+ ENTER("window %p, data %p (key file %p, window %d)",
+ window, data, data->key_file, data->window_num);
+ window_group = g_strdup_printf(WINDOW_STRING, data->window_num + 1);
- /* Get this window's notebook info */
- page_count = g_key_file_get_integer(data->key_file,
- window_group, WINDOW_PAGECOUNT, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, WINDOW_PAGECOUNT, error->message);
- goto cleanup;
- }
- if (page_count == 0) {
- /* Shound never happen, but has during alpha testing. Having this
- * check doesn't hurt anything. */
- goto cleanup;
- }
- page_start = g_key_file_get_integer(data->key_file,
- window_group, WINDOW_FIRSTPAGE, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, WINDOW_FIRSTPAGE, error->message);
- goto cleanup;
- }
+ /* Get this window's notebook info */
+ page_count = g_key_file_get_integer(data->key_file,
+ window_group, WINDOW_PAGECOUNT, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, WINDOW_PAGECOUNT, error->message);
+ goto cleanup;
+ }
+ if (page_count == 0)
+ {
+ /* Shound never happen, but has during alpha testing. Having this
+ * check doesn't hurt anything. */
+ goto cleanup;
+ }
+ page_start = g_key_file_get_integer(data->key_file,
+ window_group, WINDOW_FIRSTPAGE, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, WINDOW_FIRSTPAGE, error->message);
+ goto cleanup;
+ }
- /* Build a window if we don't already have one */
- if (window == NULL) {
- DEBUG("Window %d doesn't exist. Creating new window.", data->window_num);
- DEBUG("active_windows %p.", active_windows);
- if (active_windows)
- DEBUG("first window %p.", active_windows->data);
- window = gnc_main_window_new();
- gtk_widget_show(GTK_WIDGET(window));
- }
+ /* Build a window if we don't already have one */
+ if (window == NULL)
+ {
+ DEBUG("Window %d doesn't exist. Creating new window.", data->window_num);
+ DEBUG("active_windows %p.", active_windows);
+ if (active_windows)
+ DEBUG("first window %p.", active_windows->data);
+ window = gnc_main_window_new();
+ gtk_widget_show(GTK_WIDGET(window));
+ }
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- /* Get the window coordinates, etc. */
- geom = g_key_file_get_integer_list(data->key_file, window_group,
- WINDOW_GEOMETRY, &length, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, WINDOW_GEOMETRY, error->message);
- g_error_free(error);
- error = NULL;
- } else if (length != 2) {
- g_warning("invalid number of values for group %s key %s",
- window_group, WINDOW_GEOMETRY);
- } else {
- gtk_window_resize(GTK_WINDOW(window), geom[0], geom[1]);
- DEBUG("window (%p) size %dx%d", window, geom[0], geom[1]);
- }
- /* keep the geometry for a test whether the windows position
- is offscreen */
+ /* Get the window coordinates, etc. */
+ geom = g_key_file_get_integer_list(data->key_file, window_group,
+ WINDOW_GEOMETRY, &length, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, WINDOW_GEOMETRY, error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else if (length != 2)
+ {
+ g_warning("invalid number of values for group %s key %s",
+ window_group, WINDOW_GEOMETRY);
+ }
+ else
+ {
+ gtk_window_resize(GTK_WINDOW(window), geom[0], geom[1]);
+ DEBUG("window (%p) size %dx%d", window, geom[0], geom[1]);
+ }
+ /* keep the geometry for a test whether the windows position
+ is offscreen */
- pos = g_key_file_get_integer_list(data->key_file, window_group,
- WINDOW_POSITION, &length, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, WINDOW_POSITION, error->message);
- g_error_free(error);
- error = NULL;
- } else if (length != 2) {
- g_warning("invalid number of values for group %s key %s",
- window_group, WINDOW_POSITION);
- } else if ((pos[0] + (geom ? geom[0] : 0) < 0) ||
- (pos[0] > gdk_screen_width()) ||
- (pos[1] + (geom ? geom[1] : 0) < 0) ||
- (pos[1] > gdk_screen_height())) {
+ pos = g_key_file_get_integer_list(data->key_file, window_group,
+ WINDOW_POSITION, &length, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, WINDOW_POSITION, error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else if (length != 2)
+ {
+ g_warning("invalid number of values for group %s key %s",
+ window_group, WINDOW_POSITION);
+ }
+ else if ((pos[0] + (geom ? geom[0] : 0) < 0) ||
+ (pos[0] > gdk_screen_width()) ||
+ (pos[1] + (geom ? geom[1] : 0) < 0) ||
+ (pos[1] > gdk_screen_height()))
+ {
// g_debug("position %dx%d, size%dx%d is offscreen; will not move",
// pos[0], pos[1], geom[0], geom[1]);
- } else {
- gtk_window_move(GTK_WINDOW(window), pos[0], pos[1]);
- DEBUG("window (%p) position %dx%d", window, pos[0], pos[1]);
- }
- if (geom) {
- g_free(geom);
- }
- if (pos) {
- g_free(pos);
- }
+ }
+ else
+ {
+ gtk_window_move(GTK_WINDOW(window), pos[0], pos[1]);
+ DEBUG("window (%p) position %dx%d", window, pos[0], pos[1]);
+ }
+ if (geom)
+ {
+ g_free(geom);
+ }
+ if (pos)
+ {
+ g_free(pos);
+ }
- max = g_key_file_get_boolean(data->key_file, window_group,
- WINDOW_MAXIMIZED, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, WINDOW_MAXIMIZED, error->message);
- g_error_free(error);
- error = NULL;
- } else if (max) {
- gtk_window_maximize(GTK_WINDOW(window));
- }
+ max = g_key_file_get_boolean(data->key_file, window_group,
+ WINDOW_MAXIMIZED, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, WINDOW_MAXIMIZED, error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else if (max)
+ {
+ gtk_window_maximize(GTK_WINDOW(window));
+ }
- /* Common view menu items */
- action = gnc_main_window_find_action(window, "ViewToolbarAction");
- visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
- TOOLBAR_VISIBLE, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, TOOLBAR_VISIBLE, error->message);
- g_error_free(error);
- error = NULL;
- } else if (visible != desired_visibility) {
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),desired_visibility);
- }
+ /* Common view menu items */
+ action = gnc_main_window_find_action(window, "ViewToolbarAction");
+ visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
+ TOOLBAR_VISIBLE, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, TOOLBAR_VISIBLE, error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else if (visible != desired_visibility)
+ {
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), desired_visibility);
+ }
- action = gnc_main_window_find_action(window, "ViewSummaryAction");
- visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
- SUMMARYBAR_VISIBLE, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, TOOLBAR_VISIBLE, error->message);
- g_error_free(error);
- error = NULL;
- } else if (visible != desired_visibility) {
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),desired_visibility);
- }
+ action = gnc_main_window_find_action(window, "ViewSummaryAction");
+ visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
+ SUMMARYBAR_VISIBLE, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, TOOLBAR_VISIBLE, error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else if (visible != desired_visibility)
+ {
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), desired_visibility);
+ }
- action = gnc_main_window_find_action(window, "ViewStatusbarAction");
- visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
- STATUSBAR_VISIBLE, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, TOOLBAR_VISIBLE, error->message);
- g_error_free(error);
- error = NULL;
- } else if (visible != desired_visibility) {
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),desired_visibility);
- }
+ action = gnc_main_window_find_action(window, "ViewStatusbarAction");
+ visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
+ STATUSBAR_VISIBLE, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, TOOLBAR_VISIBLE, error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else if (visible != desired_visibility)
+ {
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), desired_visibility);
+ }
- /* Now populate the window with pages. */
- for (i = 0; i < page_count; i++) {
- data->page_offset = page_start;
- data->page_num = i;
- gnc_main_window_restore_page(window, data);
+ /* Now populate the window with pages. */
+ for (i = 0; i < page_count; i++)
+ {
+ data->page_offset = page_start;
+ data->page_num = i;
+ gnc_main_window_restore_page(window, data);
- /* give the page a chance to display */
- while (gtk_events_pending ())
- gtk_main_iteration ();
- }
+ /* give the page a chance to display */
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+ }
- /* Restore page ordering within the notebook. Use +1 notation so the
- * numbers in the page order match the page sections, at least for
- * the one window case. */
- order = g_key_file_get_integer_list(data->key_file, window_group,
- WINDOW_PAGEORDER, &length, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- window_group, WINDOW_PAGEORDER, error->message);
- g_error_free(error);
- error = NULL;
- } else if (length != page_count) {
- g_warning("%s key %s length %" G_GSIZE_FORMAT " differs from window page count %d",
- window_group, WINDOW_PAGEORDER, length, page_count);
- } else {
- /* Dump any list that might exist */
- g_list_free(priv->usage_order);
- priv->usage_order = NULL;
- /* Now rebuild the list from the key file. */
- for (i = 0; i < length; i++) {
- gpointer page = g_list_nth_data(priv->installed_pages, order[i] - 1);
- if (page) {
- priv->usage_order = g_list_append(priv->usage_order, page);
- }
+ /* Restore page ordering within the notebook. Use +1 notation so the
+ * numbers in the page order match the page sections, at least for
+ * the one window case. */
+ order = g_key_file_get_integer_list(data->key_file, window_group,
+ WINDOW_PAGEORDER, &length, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ window_group, WINDOW_PAGEORDER, error->message);
+ g_error_free(error);
+ error = NULL;
}
- gtk_notebook_set_current_page (GTK_NOTEBOOK(priv->notebook),
- order[0] - 1);
- }
- if (order) {
- g_free(order);
- }
+ else if (length != page_count)
+ {
+ g_warning("%s key %s length %" G_GSIZE_FORMAT " differs from window page count %d",
+ window_group, WINDOW_PAGEORDER, length, page_count);
+ }
+ else
+ {
+ /* Dump any list that might exist */
+ g_list_free(priv->usage_order);
+ priv->usage_order = NULL;
+ /* Now rebuild the list from the key file. */
+ for (i = 0; i < length; i++)
+ {
+ gpointer page = g_list_nth_data(priv->installed_pages, order[i] - 1);
+ if (page)
+ {
+ priv->usage_order = g_list_append(priv->usage_order, page);
+ }
+ }
+ gtk_notebook_set_current_page (GTK_NOTEBOOK(priv->notebook),
+ order[0] - 1);
+ }
+ if (order)
+ {
+ g_free(order);
+ }
- LEAVE("window %p", window);
- cleanup:
- if (error)
- g_error_free(error);
- g_free(window_group);
+ LEAVE("window %p", window);
+cleanup:
+ if (error)
+ g_error_free(error);
+ g_free(window_group);
}
void
gnc_main_window_restore_all_windows(const GKeyFile *keyfile)
{
- gint i, window_count;
- GError *error = NULL;
- GncMainWindowSaveData data;
- GncMainWindow *window;
+ gint i, window_count;
+ GError *error = NULL;
+ GncMainWindowSaveData data;
+ GncMainWindow *window;
- /* We use the same struct for reading and for writing, so we cast
- away the const. */
- data.key_file = (GKeyFile *) keyfile;
- window_count = g_key_file_get_integer(data.key_file, STATE_FILE_TOP,
- WINDOW_COUNT, &error);
- if (error) {
- g_warning("error reading group %s key %s: %s",
- STATE_FILE_TOP, WINDOW_COUNT, error->message);
- g_error_free(error);
- LEAVE("can't read count");
- return;
- }
+ /* We use the same struct for reading and for writing, so we cast
+ away the const. */
+ data.key_file = (GKeyFile *) keyfile;
+ window_count = g_key_file_get_integer(data.key_file, STATE_FILE_TOP,
+ WINDOW_COUNT, &error);
+ if (error)
+ {
+ g_warning("error reading group %s key %s: %s",
+ STATE_FILE_TOP, WINDOW_COUNT, error->message);
+ g_error_free(error);
+ LEAVE("can't read count");
+ return;
+ }
- /* Restore all state information on the open windows. Window
- numbers in state file are 1-based. GList indices are 0-based. */
- gnc_set_busy_cursor (NULL, TRUE);
- for (i = 0; i < window_count; i++) {
- data.window_num = i;
- window = g_list_nth_data(active_windows, i);
- gnc_main_window_restore_window(window, &data);
- }
- gnc_unset_busy_cursor (NULL);
+ /* Restore all state information on the open windows. Window
+ numbers in state file are 1-based. GList indices are 0-based. */
+ gnc_set_busy_cursor (NULL, TRUE);
+ for (i = 0; i < window_count; i++)
+ {
+ data.window_num = i;
+ window = g_list_nth_data(active_windows, i);
+ gnc_main_window_restore_window(window, &data);
+ }
+ gnc_unset_busy_cursor (NULL);
}
void
@@ -806,24 +912,25 @@
static void
gnc_main_window_save_page (GncPluginPage *page, GncMainWindowSaveData *data)
{
- gchar *page_group;
- const gchar *plugin_name, *page_name;
+ gchar *page_group;
+ const gchar *plugin_name, *page_name;
- ENTER("page %p, data %p (key file %p, window %d, page %d)",
- page, data, data->key_file, data->window_num, data->page_num);
- plugin_name = gnc_plugin_page_get_plugin_name(page);
- page_name = gnc_plugin_page_get_page_name(page);
- if (!plugin_name || !page_name) {
- LEAVE("not saving invalid page");
- return;
- }
- page_group = g_strdup_printf(PAGE_STRING, data->page_num++);
- g_key_file_set_string(data->key_file, page_group, PAGE_TYPE, plugin_name);
- g_key_file_set_string(data->key_file, page_group, PAGE_NAME, page_name);
+ ENTER("page %p, data %p (key file %p, window %d, page %d)",
+ page, data, data->key_file, data->window_num, data->page_num);
+ plugin_name = gnc_plugin_page_get_plugin_name(page);
+ page_name = gnc_plugin_page_get_page_name(page);
+ if (!plugin_name || !page_name)
+ {
+ LEAVE("not saving invalid page");
+ return;
+ }
+ page_group = g_strdup_printf(PAGE_STRING, data->page_num++);
+ g_key_file_set_string(data->key_file, page_group, PAGE_TYPE, plugin_name);
+ g_key_file_set_string(data->key_file, page_group, PAGE_NAME, page_name);
- gnc_plugin_page_save_page(page, data->key_file, page_group);
- g_free(page_group);
- LEAVE(" ");
+ gnc_plugin_page_save_page(page, data->key_file, page_group);
+ g_free(page_group);
+ LEAVE(" ");
}
@@ -838,77 +945,79 @@
static void
gnc_main_window_save_window (GncMainWindow *window, GncMainWindowSaveData *data)
{
- GncMainWindowPrivate *priv;
- GtkAction *action;
- gint i, num_pages, coords[4], *order;
- gboolean maximized, visible;
- gchar *window_group;
+ GncMainWindowPrivate *priv;
+ GtkAction *action;
+ gint i, num_pages, coords[4], *order;
+ gboolean maximized, visible;
+ gchar *window_group;
- /* Setup */
- ENTER("window %p, data %p (key file %p, window %d)",
- window, data, data->key_file, data->window_num);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ /* Setup */
+ ENTER("window %p, data %p (key file %p, window %d)",
+ window, data, data->key_file, data->window_num);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- /* Check for bogus window structures. */
- num_pages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv->notebook));
- if (0 == num_pages) {
- LEAVE("empty window %p", window);
- return;
- }
+ /* Check for bogus window structures. */
+ num_pages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv->notebook));
+ if (0 == num_pages)
+ {
+ LEAVE("empty window %p", window);
+ return;
+ }
- /* Save this window's notebook info */
- window_group = g_strdup_printf(WINDOW_STRING, data->window_num++);
- g_key_file_set_integer(data->key_file, window_group,
- WINDOW_PAGECOUNT, num_pages);
- g_key_file_set_integer(data->key_file, window_group,
- WINDOW_FIRSTPAGE, data->page_num);
+ /* Save this window's notebook info */
+ window_group = g_strdup_printf(WINDOW_STRING, data->window_num++);
+ g_key_file_set_integer(data->key_file, window_group,
+ WINDOW_PAGECOUNT, num_pages);
+ g_key_file_set_integer(data->key_file, window_group,
+ WINDOW_FIRSTPAGE, data->page_num);
- /* Save page ordering within the notebook. Use +1 notation so the
- * numbers in the page order match the page sections, at least for
- * the one window case. */
- order = g_malloc(sizeof(gint) * num_pages);
- for (i = 0; i < num_pages; i++) {
- gpointer page = g_list_nth_data(priv->usage_order, i);
- order[i] = g_list_index(priv->installed_pages, page) + 1;
- }
- g_key_file_set_integer_list(data->key_file, window_group,
- WINDOW_PAGEORDER, order, num_pages);
- g_free(order);
+ /* Save page ordering within the notebook. Use +1 notation so the
+ * numbers in the page order match the page sections, at least for
+ * the one window case. */
+ order = g_malloc(sizeof(gint) * num_pages);
+ for (i = 0; i < num_pages; i++)
+ {
+ gpointer page = g_list_nth_data(priv->usage_order, i);
+ order[i] = g_list_index(priv->installed_pages, page) + 1;
+ }
+ g_key_file_set_integer_list(data->key_file, window_group,
+ WINDOW_PAGEORDER, order, num_pages);
+ g_free(order);
- /* Save the window coordinates, etc. */
- gtk_window_get_position(GTK_WINDOW(window), &coords[0], &coords[1]);
- gtk_window_get_size(GTK_WINDOW(window), &coords[2], &coords[3]);
- maximized = (gdk_window_get_state((GTK_WIDGET(window))->window)
- & GDK_WINDOW_STATE_MAXIMIZED) != 0;
- g_key_file_set_integer_list(data->key_file, window_group,
- WINDOW_POSITION, &coords[0], 2);
- g_key_file_set_integer_list(data->key_file, window_group,
- WINDOW_GEOMETRY, &coords[2], 2);
- g_key_file_set_boolean(data->key_file, window_group,
- WINDOW_MAXIMIZED, maximized);
- DEBUG("window (%p) position %dx%d, size %dx%d, %s", window, coords[0], coords[1],
- coords[2], coords[3],
- maximized ? "maximized" : "not maximized");
+ /* Save the window coordinates, etc. */
+ gtk_window_get_position(GTK_WINDOW(window), &coords[0], &coords[1]);
+ gtk_window_get_size(GTK_WINDOW(window), &coords[2], &coords[3]);
+ maximized = (gdk_window_get_state((GTK_WIDGET(window))->window)
+ & GDK_WINDOW_STATE_MAXIMIZED) != 0;
+ g_key_file_set_integer_list(data->key_file, window_group,
+ WINDOW_POSITION, &coords[0], 2);
+ g_key_file_set_integer_list(data->key_file, window_group,
+ WINDOW_GEOMETRY, &coords[2], 2);
+ g_key_file_set_boolean(data->key_file, window_group,
+ WINDOW_MAXIMIZED, maximized);
+ DEBUG("window (%p) position %dx%d, size %dx%d, %s", window, coords[0], coords[1],
+ coords[2], coords[3],
+ maximized ? "maximized" : "not maximized");
- /* Common view menu items */
- action = gnc_main_window_find_action(window, "ViewToolbarAction");
- visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- g_key_file_set_boolean(data->key_file, window_group,
- TOOLBAR_VISIBLE, visible);
- action = gnc_main_window_find_action(window, "ViewSummaryAction");
- visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- g_key_file_set_boolean(data->key_file, window_group,
- SUMMARYBAR_VISIBLE, visible);
- action = gnc_main_window_find_action(window, "ViewStatusbarAction");
- visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
- g_key_file_set_boolean(data->key_file, window_group,
- STATUSBAR_VISIBLE, visible);
+ /* Common view menu items */
+ action = gnc_main_window_find_action(window, "ViewToolbarAction");
+ visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ g_key_file_set_boolean(data->key_file, window_group,
+ TOOLBAR_VISIBLE, visible);
+ action = gnc_main_window_find_action(window, "ViewSummaryAction");
+ visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ g_key_file_set_boolean(data->key_file, window_group,
+ SUMMARYBAR_VISIBLE, visible);
+ action = gnc_main_window_find_action(window, "ViewStatusbarAction");
+ visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ g_key_file_set_boolean(data->key_file, window_group,
+ STATUSBAR_VISIBLE, visible);
- /* Save individual pages in this window */
- g_list_foreach(priv->installed_pages, (GFunc)gnc_main_window_save_page, data);
+ /* Save individual pages in this window */
+ g_list_foreach(priv->installed_pages, (GFunc)gnc_main_window_save_page, data);
- g_free(window_group);
- LEAVE("window %p", window);
+ g_free(window_group);
+ LEAVE("window %p", window);
}
void
@@ -932,33 +1041,37 @@
gboolean
gnc_main_window_finish_pending (GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GList *item;
+ GncMainWindowPrivate *priv;
+ GList *item;
- g_return_val_if_fail(GNC_IS_MAIN_WINDOW(window), TRUE);
+ g_return_val_if_fail(GNC_IS_MAIN_WINDOW(window), TRUE);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- for (item = priv->installed_pages; item; item = g_list_next(item)) {
- if (!gnc_plugin_page_finish_pending(item->data)) {
- return FALSE;
- }
- }
- return TRUE;
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ for (item = priv->installed_pages; item; item = g_list_next(item))
+ {
+ if (!gnc_plugin_page_finish_pending(item->data))
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
}
gboolean
gnc_main_window_all_finish_pending (void)
{
- const GList *windows, *item;
+ const GList *windows, *item;
- windows = gnc_gobject_tracking_get_list(GNC_MAIN_WINDOW_NAME);
- for (item = windows; item; item = g_list_next(item)) {
- if (!gnc_main_window_finish_pending(item->data)) {
- return FALSE;
- }
- }
- return TRUE;
+ windows = gnc_gobject_tracking_get_list(GNC_MAIN_WINDOW_NAME);
+ for (item = windows; item; item = g_list_next(item))
+ {
+ if (!gnc_main_window_finish_pending(item->data))
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
}
@@ -975,18 +1088,20 @@
static gboolean
gnc_main_window_page_exists (GncPluginPage *page)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GList *walker;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GList *walker;
- for (walker = active_windows; walker; walker = g_list_next(walker)) {
- window = walker->data;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (g_list_find(priv->installed_pages, page)) {
- return TRUE;
- }
- }
- return FALSE;
+ for (walker = active_windows; walker; walker = g_list_next(walker))
+ {
+ window = walker->data;
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (g_list_find(priv->installed_pages, page))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
}
@@ -1002,116 +1117,122 @@
static gboolean
gnc_main_window_prompt_for_save (GtkWidget *window)
{
- QofSession *session;
- QofBook *book;
- GtkWidget *dialog;
- gint response;
- const gchar *filename, *tmp;
- const gchar *title = _("Save changes to file %s before closing?");
- /* This should be the same message as in gnc-file.c */
- const gchar *message_mins =
- _("If you don't save, changes from the past %d minutes will be discarded.");
- const gchar *message_hours =
- _("If you don't save, changes from the past %d hours and %d minutes will be discarded.");
- const gchar *message_days =
- _("If you don't save, changes from the past %d days and %d hours will be discarded.");
- time_t oldest_change;
- gint minutes, hours, days;
+ QofSession *session;
+ QofBook *book;
+ GtkWidget *dialog;
+ gint response;
+ const gchar *filename, *tmp;
+ const gchar *title = _("Save changes to file %s before closing?");
+ /* This should be the same message as in gnc-file.c */
+ const gchar *message_mins =
+ _("If you don't save, changes from the past %d minutes will be discarded.");
+ const gchar *message_hours =
+ _("If you don't save, changes from the past %d hours and %d minutes will be discarded.");
+ const gchar *message_days =
+ _("If you don't save, changes from the past %d days and %d hours will be discarded.");
+ time_t oldest_change;
+ gint minutes, hours, days;
- session = gnc_get_current_session();
- book = qof_session_get_book(session);
- filename = qof_session_get_url(session);
- if (filename == NULL)
- filename = _("<unknown>");
- if ((tmp = strrchr(filename, '/')) != NULL)
- filename = tmp + 1;
+ session = gnc_get_current_session();
+ book = qof_session_get_book(session);
+ filename = qof_session_get_url(session);
+ if (filename == NULL)
+ filename = _("<unknown>");
+ if ((tmp = strrchr(filename, '/')) != NULL)
+ filename = tmp + 1;
- /* Remove any pending auto-save timeouts */
- gnc_autosave_remove_timer(book);
+ /* Remove any pending auto-save timeouts */
+ gnc_autosave_remove_timer(book);
- dialog = gtk_message_dialog_new(GTK_WINDOW(window),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_NONE,
- title,
- filename);
- oldest_change = qof_book_get_dirty_time(book);
- minutes = (time(NULL) - oldest_change) / 60 + 1;
- hours = minutes / 60;
- minutes = minutes % 60;
- days = hours / 24;
- hours = hours % 24;
- if (days > 0) {
- gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
- message_days, days, hours);
- } else if (hours > 0) {
- gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
- message_hours, hours, minutes);
- } else {
- gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
- message_mins, minutes);
- }
- gtk_dialog_add_buttons(GTK_DIALOG(dialog),
- _("Close _Without Saving"), GTK_RESPONSE_CLOSE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_APPLY,
- NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_APPLY);
- response = gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy(dialog);
+ dialog = gtk_message_dialog_new(GTK_WINDOW(window),
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_NONE,
+ title,
+ filename);
+ oldest_change = qof_book_get_dirty_time(book);
+ minutes = (time(NULL) - oldest_change) / 60 + 1;
+ hours = minutes / 60;
+ minutes = minutes % 60;
+ days = hours / 24;
+ hours = hours % 24;
+ if (days > 0)
+ {
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+ message_days, days, hours);
+ }
+ else if (hours > 0)
+ {
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+ message_hours, hours, minutes);
+ }
+ else
+ {
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+ message_mins, minutes);
+ }
+ gtk_dialog_add_buttons(GTK_DIALOG(dialog),
+ _("Close _Without Saving"), GTK_RESPONSE_CLOSE,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_APPLY,
+ NULL);
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_APPLY);
+ response = gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy(dialog);
- switch (response) {
+ switch (response)
+ {
case GTK_RESPONSE_APPLY:
- gnc_file_save();
- return FALSE;
+ gnc_file_save();
+ return FALSE;
case GTK_RESPONSE_CLOSE:
- qof_book_mark_saved(book);
- return FALSE;
+ qof_book_mark_saved(book);
+ return FALSE;
default:
- return TRUE;
- }
+ return TRUE;
+ }
}
static void
gnc_main_window_add_plugin (gpointer plugin,
- gpointer window)
+ gpointer window)
{
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
- ENTER(" ");
- gnc_plugin_add_to_window (GNC_PLUGIN (plugin),
- GNC_MAIN_WINDOW (window),
- window_type);
- LEAVE(" ");
+ ENTER(" ");
+ gnc_plugin_add_to_window (GNC_PLUGIN (plugin),
+ GNC_MAIN_WINDOW (window),
+ window_type);
+ LEAVE(" ");
}
static void
gnc_main_window_remove_plugin (gpointer plugin,
- gpointer window)
+ gpointer window)
{
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
- ENTER(" ");
- gnc_plugin_remove_from_window (GNC_PLUGIN (plugin),
- GNC_MAIN_WINDOW (window),
- window_type);
- LEAVE(" ");
+ ENTER(" ");
+ gnc_plugin_remove_from_window (GNC_PLUGIN (plugin),
+ GNC_MAIN_WINDOW (window),
+ window_type);
+ LEAVE(" ");
}
static gboolean
gnc_main_window_timed_quit (gpointer dummy)
{
- if (gnc_file_save_in_progress())
- return TRUE;
+ if (gnc_file_save_in_progress())
+ return TRUE;
- gnc_shutdown (0);
- return FALSE;
+ gnc_shutdown (0);
+ return FALSE;
}
static gboolean
@@ -1122,11 +1243,12 @@
session = gnc_get_current_session();
needs_save = qof_book_not_saved(qof_session_get_book(session)) &&
- !gnc_file_save_in_progress();
+ !gnc_file_save_in_progress();
do_shutdown = !needs_save ||
- (needs_save && !gnc_main_window_prompt_for_save(GTK_WIDGET(window)));
+ (needs_save && !gnc_main_window_prompt_for_save(GTK_WIDGET(window)));
- if (do_shutdown) {
+ if (do_shutdown)
+ {
g_timeout_add(250, gnc_main_window_timed_quit, NULL);
return TRUE;
}
@@ -1135,24 +1257,25 @@
static gboolean
gnc_main_window_delete_event (GtkWidget *window,
- GdkEvent *event,
- gpointer user_data)
+ GdkEvent *event,
+ gpointer user_data)
{
- static gboolean already_dead = FALSE;
+ static gboolean already_dead = FALSE;
- if (already_dead)
- return TRUE;
+ if (already_dead)
+ return TRUE;
- if (!gnc_main_window_finish_pending(GNC_MAIN_WINDOW(window))) {
- /* Don't close the window. */
- return TRUE;
- }
+ if (!gnc_main_window_finish_pending(GNC_MAIN_WINDOW(window)))
+ {
+ /* Don't close the window. */
+ return TRUE;
+ }
- if (g_list_length(active_windows) > 1)
- return FALSE;
+ if (g_list_length(active_windows) > 1)
+ return FALSE;
- already_dead = gnc_main_window_quit(GNC_MAIN_WINDOW(window));
- return TRUE;
+ already_dead = gnc_main_window_quit(GNC_MAIN_WINDOW(window));
+ return TRUE;
}
@@ -1179,35 +1302,36 @@
gnc_main_window_event_handler (QofInstance *entity, QofEventId event_type,
gpointer user_data, gpointer event_data)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
- GList *item, *next;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
+ GList *item, *next;
- /* hard failures */
- g_return_if_fail(GNC_IS_MAIN_WINDOW(user_data));
+ /* hard failures */
+ g_return_if_fail(GNC_IS_MAIN_WINDOW(user_data));
- /* soft failures */
- if (!QOF_CHECK_TYPE(entity, QOF_ID_BOOK))
- return;
- if (event_type != QOF_EVENT_DESTROY)
- return;
+ /* soft failures */
+ if (!QOF_CHECK_TYPE(entity, QOF_ID_BOOK))
+ return;
+ if (event_type != QOF_EVENT_DESTROY)
+ return;
- ENTER("entity %p, event %d, window %p, event data %p",
- entity, event_type, user_data, event_data);
- window = GNC_MAIN_WINDOW(user_data);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ ENTER("entity %p, event %d, window %p, event data %p",
+ entity, event_type, user_data, event_data);
+ window = GNC_MAIN_WINDOW(user_data);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- /* This is not a typical list iteration. We're removing while
- * we iterate, so we have to cache the 'next' pointer before
- * executing any code in the loop. */
- for (item = priv->installed_pages; item; item = next) {
- next = g_list_next(item);
- page = GNC_PLUGIN_PAGE(item->data);
- if (gnc_plugin_page_has_book (page, (QofBook *)entity))
- gnc_main_window_close_page (page);
- }
- LEAVE(" ");
+ /* This is not a typical list iteration. We're removing while
+ * we iterate, so we have to cache the 'next' pointer before
+ * executing any code in the loop. */
+ for (item = priv->installed_pages; item; item = next)
+ {
+ next = g_list_next(item);
+ page = GNC_PLUGIN_PAGE(item->data);
+ if (gnc_plugin_page_has_book (page, (QofBook *)entity))
+ gnc_main_window_close_page (page);
+ }
+ LEAVE(" ");
}
@@ -1229,87 +1353,106 @@
static gchar *
gnc_main_window_generate_title (GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
- QofBook *book;
- gchar *filename = NULL;
- const gchar *dirty = "";
- gchar *title, *ptr;
- GtkAction* action;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
+ QofBook *book;
+ gchar *filename = NULL;
+ const gchar *dirty = "";
+ gchar *title, *ptr;
+ GtkAction* action;
- /* The save action is sensitive if the book is dirty */
- action = gnc_main_window_find_action (window, "FileSaveAction");
- if (action != NULL) {
- gtk_action_set_sensitive(action, FALSE);
- }
- if (gnc_current_session_exist()) {
- filename = (gchar*)gnc_session_get_url (gnc_get_current_session ());
- book = gnc_get_current_book();
- if (qof_instance_is_dirty(QOF_INSTANCE(book))) {
- dirty = "*";
- if (action != NULL) {
- gtk_action_set_sensitive(action, TRUE);
- }
- }
- }
+ /* The save action is sensitive if the book is dirty */
+ action = gnc_main_window_find_action (window, "FileSaveAction");
+ if (action != NULL)
+ {
+ gtk_action_set_sensitive(action, FALSE);
+ }
+ if (gnc_current_session_exist())
+ {
+ filename = (gchar*)gnc_session_get_url (gnc_get_current_session ());
+ book = gnc_get_current_book();
+ if (qof_instance_is_dirty(QOF_INSTANCE(book)))
+ {
+ dirty = "*";
+ if (action != NULL)
+ {
+ gtk_action_set_sensitive(action, TRUE);
+ }
+ }
+ }
- if (!filename)
- filename = g_strdup(_("Unsaved Book"));
- else {
- gint num_colons = 0;
- for (ptr = filename; *ptr; ptr = g_utf8_next_char(ptr)) {
- gunichar c = g_utf8_get_char(ptr);
- if (c == ':') num_colons++;
- }
+ if (!filename)
+ filename = g_strdup(_("Unsaved Book"));
+ else
+ {
+ gint num_colons = 0;
+ for (ptr = filename; *ptr; ptr = g_utf8_next_char(ptr))
+ {
+ gunichar c = g_utf8_get_char(ptr);
+ if (c == ':') num_colons++;
+ }
- if (num_colons < 4) {
- /* The Gnome HIG 2.0 recommends only the file name (no path) be used. (p15) */
- ptr = g_utf8_strrchr(filename, -1, G_DIR_SEPARATOR);
- if (ptr != NULL)
- filename = g_strdup(g_utf8_next_char(ptr));
- } else {
- const gchar* src = filename;
- gboolean has_explicit_port = (num_colons == 5);
+ if (num_colons < 4)
+ {
+ /* The Gnome HIG 2.0 recommends only the file name (no path) be used. (p15) */
+ ptr = g_utf8_strrchr(filename, -1, G_DIR_SEPARATOR);
+ if (ptr != NULL)
+ filename = g_strdup(g_utf8_next_char(ptr));
+ }
+ else
+ {
+ const gchar* src = filename;
+ gboolean has_explicit_port = (num_colons == 5);
- filename = g_strdup(filename);
- ptr = filename;
- num_colons = 0;
+ filename = g_strdup(filename);
+ ptr = filename;
+ num_colons = 0;
- /* Loop and copy chars, converting username and password (after 3rd ':' (4th if there's
- an explicit port number) to asterisks. */
- for( ; *src; src = g_utf8_next_char(src)) {
- gunichar unichar;
+ /* Loop and copy chars, converting username and password (after 3rd ':' (4th if there's
+ an explicit port number) to asterisks. */
+ for ( ; *src; src = g_utf8_next_char(src))
+ {
+ gunichar unichar;
- if (*src == ':' ||
- (!has_explicit_port && num_colons < 3) ||
- (has_explicit_port && num_colons < 4)) {
- unichar = g_utf8_get_char(src);
- } else {
- unichar = '*';
- }
- ptr += g_unichar_to_utf8 (unichar, ptr);
- if (unichar == '_') {
- ptr += g_unichar_to_utf8 ('_', ptr);
- } else if (unichar == ':') {
- num_colons++;
- }
- }
- }
- }
+ if (*src == ':' ||
+ (!has_explicit_port && num_colons < 3) ||
+ (has_explicit_port && num_colons < 4))
+ {
+ unichar = g_utf8_get_char(src);
+ }
+ else
+ {
+ unichar = '*';
+ }
+ ptr += g_unichar_to_utf8 (unichar, ptr);
+ if (unichar == '_')
+ {
+ ptr += g_unichar_to_utf8 ('_', ptr);
+ }
+ else if (unichar == ':')
+ {
+ num_colons++;
+ }
+ }
+ }
+ }
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- page = priv->current_page;
- if (page) {
- /* The Gnome HIG 2.0 recommends the application name not be used. (p16)
- * but several developers prefer to use it anyway. */
- title = g_strdup_printf("%s%s - %s - GnuCash", dirty, filename,
- gnc_plugin_page_get_page_name(page));
- } else {
- title = g_strdup_printf("%s%s - GnuCash", dirty, filename);
- }
- g_free(filename);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ page = priv->current_page;
+ if (page)
+ {
+ /* The Gnome HIG 2.0 recommends the application name not be used. (p16)
+ * but several developers prefer to use it anyway. */
+ title = g_strdup_printf("%s%s - %s - GnuCash", dirty, filename,
+ gnc_plugin_page_get_page_name(page));
+ }
+ else
+ {
+ title = g_strdup_printf("%s%s - GnuCash", dirty, filename);
+ }
+ g_free(filename);
- return title;
+ return title;
}
@@ -1325,58 +1468,59 @@
static void
gnc_main_window_update_title (GncMainWindow *window)
{
- gchar *title;
+ gchar *title;
- title = gnc_main_window_generate_title(window);
- gtk_window_set_title(GTK_WINDOW(window), title);
- g_free(title);
+ title = gnc_main_window_generate_title(window);
+ gtk_window_set_title(GTK_WINDOW(window), title);
+ g_free(title);
}
static void
gnc_main_window_update_all_titles (void)
{
- g_list_foreach(active_windows,
- (GFunc)gnc_main_window_update_title,
- NULL);
+ g_list_foreach(active_windows,
+ (GFunc)gnc_main_window_update_title,
+ NULL);
}
static void
gnc_main_window_book_dirty_cb (QofBook *book,
- gboolean dirty,
- gpointer user_data)
+ gboolean dirty,
+ gpointer user_data)
{
- gnc_main_window_update_all_titles();
+ gnc_main_window_update_all_titles();
- /* Auto-save feature */
- gnc_autosave_dirty_handler(book, dirty);
+ /* Auto-save feature */
+ gnc_autosave_dirty_handler(book, dirty);
}
static void
gnc_main_window_attach_to_book (QofSession *session)
{
- QofBook *book;
+ QofBook *book;
- g_return_if_fail(session);
+ g_return_if_fail(session);
- book = qof_session_get_book(session);
- qof_book_set_dirty_cb(book, gnc_main_window_book_dirty_cb, NULL);
- gnc_main_window_update_all_titles();
- gnc_main_window_update_all_menu_items();
+ book = qof_session_get_book(session);
+ qof_book_set_dirty_cb(book, gnc_main_window_book_dirty_cb, NULL);
+ gnc_main_window_update_all_titles();
+ gnc_main_window_update_all_menu_items();
}
/** This data structure is used to describe the requested state of a
* GtkRadioAction, and us used to pass data among several
* functions. */
-struct menu_update {
- /** The name of the GtkRadioAction to be updated. */
- gchar *action_name;
+struct menu_update
+{
+ /** The name of the GtkRadioAction to be updated. */
+ gchar *action_name;
- /** The new label for this GtkRadioAction. */
- gchar *label;
+ /** The new label for this GtkRadioAction. */
+ gchar *label;
- /** Whether or not the GtkRadioAction should be visible. */
- gboolean visible;
+ /** Whether or not the GtkRadioAction should be visible. */
+ gboolean visible;
};
@@ -1395,27 +1539,27 @@
*/
static void
gnc_main_window_update_one_menu_action (GncMainWindow *window,
- struct menu_update *data)
+ struct menu_update *data)
{
- GncMainWindowPrivate *priv;
- GtkAction* action;
+ GncMainWindowPrivate *priv;
+ GtkAction* action;
- ENTER("window %p, action %s, label %s, visible %d", window,
- data->action_name, data->label, data->visible);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- action = gtk_action_group_get_action(priv->action_group, data->action_name);
- if (action)
- g_object_set(G_OBJECT(action),
- "label", data->label,
- "visible", data->visible,
- (char *)NULL);
+ ENTER("window %p, action %s, label %s, visible %d", window,
+ data->action_name, data->label, data->visible);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ action = gtk_action_group_get_action(priv->action_group, data->action_name);
+ if (action)
+ g_object_set(G_OBJECT(action),
+ "label", data->label,
+ "visible", data->visible,
+ (char *)NULL);
#ifdef MAC_INTEGRATION
- {
- GtkWidget *menu = gtk_ui_manager_get_widget(window->ui_merge, "/menubar");
- ige_mac_menu_sync(GTK_MENU_SHELL( menu ));
- }
+ {
+ GtkWidget *menu = gtk_ui_manager_get_widget(window->ui_merge, "/menubar");
+ ige_mac_menu_sync(GTK_MENU_SHELL( menu ));
+ }
#endif
- LEAVE(" ");
+ LEAVE(" ");
}
@@ -1434,37 +1578,38 @@
static void
gnc_main_window_update_radio_button (GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GtkAction *action, *first_action;
- GSList *action_list;
- gchar *action_name;
- gint index;
+ GncMainWindowPrivate *priv;
+ GtkAction *action, *first_action;
+ GSList *action_list;
+ gchar *action_name;
+ gint index;
- ENTER("window %p", window);
+ ENTER("window %p", window);
- /* Show the new entry in all windows. */
- index = g_list_index(active_windows, window);
- if (index >= n_radio_entries) {
- LEAVE("window %d, only %d actions", index, n_radio_entries);
- return;
- }
+ /* Show the new entry in all windows. */
+ index = g_list_index(active_windows, window);
+ if (index >= n_radio_entries)
+ {
+ LEAVE("window %d, only %d actions", index, n_radio_entries);
+ return;
+ }
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- action_name = g_strdup_printf("Window%dAction", index);
- action = gtk_action_group_get_action(priv->action_group, action_name);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ action_name = g_strdup_printf("Window%dAction", index);
+ action = gtk_action_group_get_action(priv->action_group, action_name);
- /* Block the signal so as not to affect window ordering (top to
- * bottom) on the screen */
- action_list = gtk_radio_action_get_group(GTK_RADIO_ACTION(action));
- first_action = g_slist_last(action_list)->data;
- g_signal_handlers_block_by_func(G_OBJECT(first_action),
- G_CALLBACK(gnc_main_window_cmd_window_raise), window);
- DEBUG("blocked signal on %p, set %p active, window %p", first_action, action, window);
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
- g_signal_handlers_unblock_by_func(G_OBJECT(first_action),
- G_CALLBACK(gnc_main_window_cmd_window_raise), window);
- g_free(action_name);
- LEAVE(" ");
+ /* Block the signal so as not to affect window ordering (top to
+ * bottom) on the screen */
+ action_list = gtk_radio_action_get_group(GTK_RADIO_ACTION(action));
+ first_action = g_slist_last(action_list)->data;
+ g_signal_handlers_block_by_func(G_OBJECT(first_action),
+ G_CALLBACK(gnc_main_window_cmd_window_raise), window);
+ DEBUG("blocked signal on %p, set %p active, window %p", first_action, action, window);
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
+ g_signal_handlers_unblock_by_func(G_OBJECT(first_action),
+ G_CALLBACK(gnc_main_window_cmd_window_raise), window);
+ g_free(action_name);
+ LEAVE(" ");
}
@@ -1484,39 +1629,43 @@
static void
gnc_main_window_update_menu_item (GncMainWindow *window)
{
- struct menu_update data;
- gchar **strings, *title, *expanded;
- gint index;
+ struct menu_update data;
+ gchar **strings, *title, *expanded;
+ gint index;
- ENTER("window %p", window);
- index = g_list_index(active_windows, window);
- if (index > n_radio_entries) {
- LEAVE("skip window %d (only %d entries)", index, n_radio_entries);
- return;
- }
+ ENTER("window %p", window);
+ index = g_list_index(active_windows, window);
+ if (index > n_radio_entries)
+ {
+ LEAVE("skip window %d (only %d entries)", index, n_radio_entries);
+ return;
+ }
- /* Figure out the label name. Add the accelerator if possible. */
- title = gnc_main_window_generate_title(window);
- strings = g_strsplit(title, "_", 0);
- g_free(title);
- expanded = g_strjoinv("__", strings);
- if (index < 10) {
- data.label = g_strdup_printf("_%d %s", (index + 1) % 10, expanded);
- g_free(expanded);
- } else {
- data.label = expanded;
- }
- g_strfreev(strings);
+ /* Figure out the label name. Add the accelerator if possible. */
+ title = gnc_main_window_generate_title(window);
+ strings = g_strsplit(title, "_", 0);
+ g_free(title);
+ expanded = g_strjoinv("__", strings);
+ if (index < 10)
+ {
+ data.label = g_strdup_printf("_%d %s", (index + 1) % 10, expanded);
+ g_free(expanded);
+ }
+ else
+ {
+ data.label = expanded;
+ }
+ g_strfreev(strings);
- data.visible = TRUE;
- data.action_name = g_strdup_printf("Window%dAction", index);
- g_list_foreach(active_windows,
- (GFunc)gnc_main_window_update_one_menu_action,
- &data);
- g_free(data.action_name);
- g_free(data.label);
+ data.visible = TRUE;
+ data.action_name = g_strdup_printf("Window%dAction", index);
+ g_list_foreach(active_windows,
+ (GFunc)gnc_main_window_update_one_menu_action,
+ &data);
+ g_free(data.action_name);
+ g_free(data.label);
- LEAVE(" ");
+ LEAVE(" ");
}
/** Update all menu entries for all window menu items in all windows.
@@ -1529,35 +1678,36 @@
static void
gnc_main_window_update_all_menu_items (void)
{
- struct menu_update data;
- gchar *label;
- gint i;
+ struct menu_update data;
+ gchar *label;
+ gint i;
- ENTER("");
+ ENTER("");
- /* First update the entries for all existing windows */
- g_list_foreach(active_windows,
- (GFunc)gnc_main_window_update_menu_item,
- NULL);
- g_list_foreach(active_windows,
- (GFunc)gnc_main_window_update_radio_button,
- NULL);
+ /* First update the entries for all existing windows */
+ g_list_foreach(active_windows,
+ (GFunc)gnc_main_window_update_menu_item,
+ NULL);
+ g_list_foreach(active_windows,
+ (GFunc)gnc_main_window_update_radio_button,
+ NULL);
- /* Now hide any entries that aren't being used. */
- data.visible = FALSE;
- for (i = g_list_length(active_windows); i < n_radio_entries; i++) {
- data.action_name = g_strdup_printf("Window%dAction", i);
- label = g_strdup_printf("Window _%d", (i - 1) % 10);
- data.label = gettext(label);
+ /* Now hide any entries that aren't being used. */
+ data.visible = FALSE;
+ for (i = g_list_length(active_windows); i < n_radio_entries; i++)
+ {
+ data.action_name = g_strdup_printf("Window%dAction", i);
+ label = g_strdup_printf("Window _%d", (i - 1) % 10);
+ data.label = gettext(label);
- g_list_foreach(active_windows,
- (GFunc)gnc_main_window_update_one_menu_action,
- &data);
+ g_list_foreach(active_windows,
+ (GFunc)gnc_main_window_update_one_menu_action,
+ &data);
- g_free(data.action_name);
- g_free(label);
- }
- LEAVE(" ");
+ g_free(data.action_name);
+ g_free(label);
+ }
+ LEAVE(" ");
}
@@ -1574,23 +1724,24 @@
*/
static void
gnc_main_window_update_tab_close_one_page (GncPluginPage *page,
- gpointer user_data)
+ gpointer user_data)
{
- gboolean *new_value = user_data;
- GtkWidget * close_button;
+ gboolean *new_value = user_data;
+ GtkWidget * close_button;
- ENTER("page %p, visible %d", page, *new_value);
- close_button = g_object_get_data(G_OBJECT (page), PLUGIN_PAGE_CLOSE_BUTTON);
- if (!close_button) {
- LEAVE("no close button");
- return;
- }
+ ENTER("page %p, visible %d", page, *new_value);
+ close_button = g_object_get_data(G_OBJECT (page), PLUGIN_PAGE_CLOSE_BUTTON);
+ if (!close_button)
+ {
+ LEAVE("no close button");
+ return;
+ }
- if (*new_value)
- gtk_widget_show (close_button);
- else
- gtk_widget_hide (close_button);
- LEAVE(" ");
+ if (*new_value)
+ gtk_widget_show (close_button);
+ else
+ gtk_widget_hide (close_button);
+ LEAVE(" ");
}
@@ -1608,14 +1759,14 @@
static void
gnc_main_window_update_tab_close (GConfEntry *entry, gpointer user_data)
{
- gboolean new_value;
+ gboolean new_value;
- ENTER(" ");
- new_value = gconf_value_get_bool(entry->value);
- gnc_main_window_foreach_page(
- gnc_main_window_update_tab_close_one_page,
- &new_value);
- LEAVE(" ");
+ ENTER(" ");
+ new_value = gconf_value_get_bool(entry->value);
+ gnc_main_window_foreach_page(
+ gnc_main_window_update_tab_close_one_page,
+ &new_value);
+ LEAVE(" ");
}
@@ -1633,26 +1784,30 @@
*/
static void
gnc_main_window_update_tab_width_one_page (GncPluginPage *page,
- gpointer user_data)
+ gpointer user_data)
{
- gint *new_value = user_data;
- GtkWidget *label;
+ gint *new_value = user_data;
+ GtkWidget *label;
- ENTER("page %p, visible %d", page, *new_value);
- label = g_object_get_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL);
- if (!label) {
- LEAVE("no label");
- return;
- }
+ ENTER("page %p, visible %d", page, *new_value);
+ label = g_object_get_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL);
+ if (!label)
+ {
+ LEAVE("no label");
+ return;
+ }
- if (*new_value != 0) {
- gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
- gtk_label_set_max_width_chars(GTK_LABEL(label), *new_value);
- } else {
- gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
- gtk_label_set_max_width_chars(GTK_LABEL(label), 100);
- }
- LEAVE(" ");
+ if (*new_value != 0)
+ {
+ gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
+ gtk_label_set_max_width_chars(GTK_LABEL(label), *new_value);
+ }
+ else
+ {
+ gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
+ gtk_label_set_max_width_chars(GTK_LABEL(label), 100);
+ }
+ LEAVE(" ");
}
@@ -1670,14 +1825,14 @@
static void
gnc_main_window_update_tab_width (GConfEntry *entry, gpointer user_data)
{
- gint new_value;
+ gint new_value;
- ENTER(" ");
- new_value = gconf_value_get_float(entry->value);
- gnc_main_window_foreach_page(
- gnc_main_window_update_tab_width_one_page,
- &new_value);
- LEAVE(" ");
+ ENTER(" ");
+ new_value = gconf_value_get_float(entry->value);
+ gnc_main_window_foreach_page(
+ gnc_main_window_update_tab_width_one_page,
+ &new_value);
+ LEAVE(" ");
}
@@ -1686,188 +1841,200 @@
************************************************************/
static gboolean
main_window_find_tab_items (GncMainWindow *window,
- GncPluginPage *page,
- GtkWidget **label_p,
- GtkWidget **entry_p)
+ GncPluginPage *page,
+ GtkWidget **label_p,
+ GtkWidget **entry_p)
{
- GncMainWindowPrivate *priv;
- GtkWidget *tab_hbox, *widget;
- GList *children, *tmp;
+ GncMainWindowPrivate *priv;
+ GtkWidget *tab_hbox, *widget;
+ GList *children, *tmp;
- ENTER("window %p, page %p, label_p %p, entry_p %p",
- window, page, label_p, entry_p);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- *label_p = *entry_p = NULL;
- tab_hbox = gtk_notebook_get_tab_label(GTK_NOTEBOOK(priv->notebook),
- page->notebook_page);
- children = gtk_container_get_children(GTK_CONTAINER(tab_hbox));
- for (tmp = children; tmp; tmp = g_list_next(tmp)) {
- widget = tmp->data;
- if (GTK_IS_EVENT_BOX(widget)) {
- *label_p = gtk_bin_get_child(GTK_BIN(widget));
- } else if (GTK_IS_ENTRY(widget)) {
- *entry_p = widget;
+ ENTER("window %p, page %p, label_p %p, entry_p %p",
+ window, page, label_p, entry_p);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ *label_p = *entry_p = NULL;
+ tab_hbox = gtk_notebook_get_tab_label(GTK_NOTEBOOK(priv->notebook),
+ page->notebook_page);
+ children = gtk_container_get_children(GTK_CONTAINER(tab_hbox));
+ for (tmp = children; tmp; tmp = g_list_next(tmp))
+ {
+ widget = tmp->data;
+ if (GTK_IS_EVENT_BOX(widget))
+ {
+ *label_p = gtk_bin_get_child(GTK_BIN(widget));
+ }
+ else if (GTK_IS_ENTRY(widget))
+ {
+ *entry_p = widget;
+ }
}
- }
- g_list_free(children);
+ g_list_free(children);
- LEAVE("label %p, entry %p", *label_p, *entry_p);
- return (*label_p && *entry_p);
+ LEAVE("label %p, entry %p", *label_p, *entry_p);
+ return (*label_p && *entry_p);
}
void
main_window_update_page_name (GncPluginPage *page,
- const gchar *name_in)
+ const gchar *name_in)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GtkWidget *label, *entry;
- gchar *name;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GtkWidget *label, *entry;
+ gchar *name;
- ENTER(" ");
+ ENTER(" ");
- if ((name_in == NULL) || (*name_in == '\0')) {
- LEAVE("no string");
- return;
- }
- name = g_strstrip(g_strdup(name_in));
- /* Optimization, if the name hasn't changed, don't update X. */
- if (*name == '\0' || 0 == strcmp(name, gnc_plugin_page_get_page_name(page))) {
- g_free(name);
- LEAVE("empty string or name unchanged");
- return;
- }
+ if ((name_in == NULL) || (*name_in == '\0'))
+ {
+ LEAVE("no string");
+ return;
+ }
+ name = g_strstrip(g_strdup(name_in));
+ /* Optimization, if the name hasn't changed, don't update X. */
+ if (*name == '\0' || 0 == strcmp(name, gnc_plugin_page_get_page_name(page)))
+ {
+ g_free(name);
+ LEAVE("empty string or name unchanged");
+ return;
+ }
- /* Update the plugin */
- window = GNC_MAIN_WINDOW(page->window);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- gnc_plugin_page_set_page_name(page, name);
+ /* Update the plugin */
+ window = GNC_MAIN_WINDOW(page->window);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ gnc_plugin_page_set_page_name(page, name);
- /* Update the notebook tab */
- main_window_find_tab_items(window, page, &label, &entry);
- gtk_label_set_text(GTK_LABEL(label), name);
+ /* Update the notebook tab */
+ main_window_find_tab_items(window, page, &label, &entry);
+ gtk_label_set_text(GTK_LABEL(label), name);
- /* Update the notebook menu */
- label = gtk_notebook_get_menu_label (GTK_NOTEBOOK(priv->notebook),
- page->notebook_page);
- gtk_label_set_text(GTK_LABEL(label), name);
+ /* Update the notebook menu */
+ label = gtk_notebook_get_menu_label (GTK_NOTEBOOK(priv->notebook),
+ page->notebook_page);
+ gtk_label_set_text(GTK_LABEL(label), name);
- /* Force an update of the window title */
- gnc_main_window_update_title(window);
- g_free(name);
- LEAVE("done");
+ /* Force an update of the window title */
+ gnc_main_window_update_title(window);
+ g_free(name);
+ LEAVE("done");
}
void
main_window_update_page_color (GncPluginPage *page,
- const gchar *color_in)
+ const gchar *color_in)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GtkWidget *event_box;
- GdkColor tab_color;
- gchar *color_string;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GtkWidget *event_box;
+ GdkColor tab_color;
+ gchar *color_string;
- ENTER(" ");
+ ENTER(" ");
- if ((color_in == NULL) || (*color_in == '\0')) {
- LEAVE("no string");
- return;
- }
- color_string = g_strstrip(g_strdup(color_in));
+ if ((color_in == NULL) || (*color_in == '\0'))
+ {
+ LEAVE("no string");
+ return;
+ }
+ color_string = g_strstrip(g_strdup(color_in));
- /* Optimization, if the color hasn't changed, don't update. */
- if (*color_string == '\0' || 0 == safe_strcmp(color_string, gnc_plugin_page_get_page_color(page))) {
- g_free(color_string);
- LEAVE("empty string or color unchanged");
- return;
- }
+ /* Optimization, if the color hasn't changed, don't update. */
+ if (*color_string == '\0' || 0 == safe_strcmp(color_string, gnc_plugin_page_get_page_color(page)))
+ {
+ g_free(color_string);
+ LEAVE("empty string or color unchanged");
+ return;
+ }
- /* Update the plugin */
- window = GNC_MAIN_WINDOW(page->window);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- gnc_plugin_page_set_page_color(page, color_string);
+ /* Update the plugin */
+ window = GNC_MAIN_WINDOW(page->window);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ gnc_plugin_page_set_page_color(page, color_string);
- /* Update the notebook tab */
+ /* Update the notebook tab */
- if (gdk_color_parse(color_string, &tab_color)) {
- }
- g_free(color_string);
- LEAVE("done");
+ if (gdk_color_parse(color_string, &tab_color))
+ {
+ }
+ g_free(color_string);
+ LEAVE("done");
}
static void
gnc_main_window_tab_entry_activate (GtkWidget *entry,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- GtkWidget *label, *entry2;
+ GtkWidget *label, *entry2;
- g_return_if_fail(GTK_IS_ENTRY(entry));
- g_return_if_fail(GNC_IS_PLUGIN_PAGE(page));
+ g_return_if_fail(GTK_IS_ENTRY(entry));
+ g_return_if_fail(GNC_IS_PLUGIN_PAGE(page));
- ENTER("");
- if (!main_window_find_tab_items(GNC_MAIN_WINDOW(page->window),
- page, &label, &entry2)) {
- LEAVE("can't find required widgets");
- return;
- }
+ ENTER("");
+ if (!main_window_find_tab_items(GNC_MAIN_WINDOW(page->window),
+ page, &label, &entry2))
+ {
+ LEAVE("can't find required widgets");
+ return;
+ }
- main_window_update_page_name(page, gtk_entry_get_text(GTK_ENTRY(entry)));
+ main_window_update_page_name(page, gtk_entry_get_text(GTK_ENTRY(entry)));
- gtk_widget_hide(entry);
- gtk_widget_show(label);
- LEAVE("");
+ gtk_widget_hide(entry);
+ gtk_widget_show(label);
+ LEAVE("");
}
static gboolean
gnc_main_window_tab_entry_editing_done (GtkWidget *entry,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- ENTER("");
- gnc_main_window_tab_entry_activate(entry, page);
- LEAVE("");
- return FALSE;
+ ENTER("");
+ gnc_main_window_tab_entry_activate(entry, page);
+ LEAVE("");
+ return FALSE;
}
static gboolean
gnc_main_window_tab_entry_focus_out_event (GtkWidget *entry,
- GdkEvent *event,
- GncPluginPage *page)
+ GdkEvent *event,
+ GncPluginPage *page)
{
- ENTER("");
- gtk_cell_editable_editing_done(GTK_CELL_EDITABLE(entry));
- LEAVE("");
- return FALSE;
+ ENTER("");
+ gtk_cell_editable_editing_done(GTK_CELL_EDITABLE(entry));
+ LEAVE("");
+ return FALSE;
}
static gboolean
gnc_main_window_tab_entry_key_press_event (GtkWidget *entry,
- GdkEventKey *event,
- GncPluginPage *page)
+ GdkEventKey *event,
+ GncPluginPage *page)
{
- if (event->keyval == GDK_Escape) {
- GtkWidget *label, *entry2;
+ if (event->keyval == GDK_Escape)
+ {
+ GtkWidget *label, *entry2;
- g_return_val_if_fail(GTK_IS_ENTRY(entry), FALSE);
- g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), FALSE);
+ g_return_val_if_fail(GTK_IS_ENTRY(entry), FALSE);
+ g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), FALSE);
- ENTER("");
- if (!main_window_find_tab_items(GNC_MAIN_WINDOW(page->window),
- page, &label, &entry2)) {
- LEAVE("can't find required widgets");
- return FALSE;
+ ENTER("");
+ if (!main_window_find_tab_items(GNC_MAIN_WINDOW(page->window),
+ page, &label, &entry2))
+ {
+ LEAVE("can't find required widgets");
+ return FALSE;
+ }
+
+ gtk_entry_set_text(GTK_ENTRY(entry), gtk_label_get_text(GTK_LABEL(label)));
+ gtk_widget_hide(entry);
+ gtk_widget_show(label);
+ LEAVE("");
}
-
- gtk_entry_set_text(GTK_ENTRY(entry), gtk_label_get_text(GTK_LABEL(label)));
- gtk_widget_hide(entry);
- gtk_widget_show(label);
- LEAVE("");
- }
- return FALSE;
+ return FALSE;
}
/************************************************************
@@ -1879,36 +2046,39 @@
GType
gnc_main_window_get_type (void)
{
- static GType gnc_main_window_type = 0;
+ static GType gnc_main_window_type = 0;
- if (gnc_main_window_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncMainWindowClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_main_window_class_init,
- NULL,
- NULL,
- sizeof (GncMainWindow),
- 0,
- (GInstanceInitFunc) gnc_main_window_init
- };
+ if (gnc_main_window_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncMainWindowClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_main_window_class_init,
+ NULL,
+ NULL,
+ sizeof (GncMainWindow),
+ 0,
+ (GInstanceInitFunc) gnc_main_window_init
+ };
- static const GInterfaceInfo plugin_info = {
- (GInterfaceInitFunc) gnc_window_main_window_init,
- NULL,
- NULL
- };
+ static const GInterfaceInfo plugin_info =
+ {
+ (GInterfaceInitFunc) gnc_window_main_window_init,
+ NULL,
+ NULL
+ };
- gnc_main_window_type = g_type_register_static (GTK_TYPE_WINDOW,
- GNC_MAIN_WINDOW_NAME,
- &our_info, 0);
- g_type_add_interface_static (gnc_main_window_type,
- GNC_TYPE_WINDOW,
- &plugin_info);
- }
+ gnc_main_window_type = g_type_register_static (GTK_TYPE_WINDOW,
+ GNC_MAIN_WINDOW_NAME,
+ &our_info, 0);
+ g_type_add_interface_static (gnc_main_window_type,
+ GNC_TYPE_WINDOW,
+ &plugin_info);
+ }
- return gnc_main_window_type;
+ return gnc_main_window_type;
}
@@ -1922,73 +2092,73 @@
static void
gnc_main_window_class_init (GncMainWindowClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS(klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS(klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- window_type = g_quark_from_static_string ("gnc-main-window");
+ window_type = g_quark_from_static_string ("gnc-main-window");
- object_class->finalize = gnc_main_window_finalize;
+ object_class->finalize = gnc_main_window_finalize;
- /* GtkObject signals */
- gtkobject_class->destroy = gnc_main_window_destroy;
+ /* GtkObject signals */
+ gtkobject_class->destroy = gnc_main_window_destroy;
- g_type_class_add_private(klass, sizeof(GncMainWindowPrivate));
+ g_type_class_add_private(klass, sizeof(GncMainWindowPrivate));
- /**
- * GncMainWindow::page_added:
- * @param window: the #GncMainWindow
- * @param page: the #GncPluginPage
- *
- * The "page_added" signal is emitted when a new page is added
- * to the notebook of a GncMainWindow. This can be used to
- * attach a signal from the page so that menu actions can be
- * adjusted based upon events that occur within the page
- * (e.g. an account is selected.)
- */
- main_window_signals[PAGE_ADDED] =
- g_signal_new ("page_added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncMainWindowClass, page_added),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ /**
+ * GncMainWindow::page_added:
+ * @param window: the #GncMainWindow
+ * @param page: the #GncPluginPage
+ *
+ * The "page_added" signal is emitted when a new page is added
+ * to the notebook of a GncMainWindow. This can be used to
+ * attach a signal from the page so that menu actions can be
+ * adjusted based upon events that occur within the page
+ * (e.g. an account is selected.)
+ */
+ main_window_signals[PAGE_ADDED] =
+ g_signal_new ("page_added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncMainWindowClass, page_added),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
- /**
- * GncMainWindow::page_changed:
- * @param window: the #GncMainWindow
- * @param page: the #GncPluginPage
- *
- * The "page_changed" signal is emitted when a new page is
- * selected in the notebook of a GncMainWindow. This can be
- * used to to adjust menu actions based upon which page is
- * currently displayed in a window.
- */
- main_window_signals[PAGE_CHANGED] =
- g_signal_new ("page_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncMainWindowClass, page_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ /**
+ * GncMainWindow::page_changed:
+ * @param window: the #GncMainWindow
+ * @param page: the #GncPluginPage
+ *
+ * The "page_changed" signal is emitted when a new page is
+ * selected in the notebook of a GncMainWindow. This can be
+ * used to to adjust menu actions based upon which page is
+ * currently displayed in a window.
+ */
+ main_window_signals[PAGE_CHANGED] =
+ g_signal_new ("page_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncMainWindowClass, page_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
- gnc_gconf_general_register_cb (KEY_SHOW_CLOSE_BUTTON,
- gnc_main_window_update_tab_close,
- NULL);
- 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,
- (GFunc)gnc_main_window_attach_to_book, NULL);
+ gnc_gconf_general_register_cb (KEY_SHOW_CLOSE_BUTTON,
+ gnc_main_window_update_tab_close,
+ NULL);
+ 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,
+ (GFunc)gnc_main_window_attach_to_book, NULL);
- tips = gtk_tooltips_new();
+ tips = gtk_tooltips_new();
}
@@ -2002,23 +2172,23 @@
* object. */
static void
gnc_main_window_init (GncMainWindow *window,
- GncMainWindowClass *klass)
+ GncMainWindowClass *klass)
{
- GncMainWindowPrivate *priv;
+ GncMainWindowPrivate *priv;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- priv->merged_actions_table =
- g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ priv->merged_actions_table =
+ g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
- priv->event_handler_id =
- qof_event_register_handler(gnc_main_window_event_handler, window);
+ priv->event_handler_id =
+ qof_event_register_handler(gnc_main_window_event_handler, window);
- gnc_main_window_setup_window (window);
+ gnc_main_window_setup_window (window);
#ifdef MAC_INTEGRATION
- gtk_quartz_set_menu(window);
+ gtk_quartz_set_menu(window);
#endif
- gnc_gobject_tracking_remember(G_OBJECT(window),
- G_OBJECT_CLASS(klass));
+ gnc_gobject_tracking_remember(G_OBJECT(window),
+ G_OBJECT_CLASS(klass));
}
@@ -2035,72 +2205,74 @@
static void
gnc_main_window_finalize (GObject *object)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_MAIN_WINDOW (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (object));
- window = GNC_MAIN_WINDOW (object);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE (window);
+ window = GNC_MAIN_WINDOW (object);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE (window);
- if (active_windows == NULL) {
- /* Oops. User killed last window and we didn't catch it. */
- g_idle_add((GSourceFunc)gnc_shutdown, 0);
- }
+ if (active_windows == NULL)
+ {
+ /* Oops. User killed last window and we didn't catch it. */
+ g_idle_add((GSourceFunc)gnc_shutdown, 0);
+ }
- gnc_gobject_tracking_forget(object);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ gnc_gobject_tracking_forget(object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gnc_main_window_destroy (GtkObject *object)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GncPluginManager *manager;
- GList *plugins;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GncPluginManager *manager;
+ GList *plugins;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_MAIN_WINDOW (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (object));
- window = GNC_MAIN_WINDOW (object);
+ window = GNC_MAIN_WINDOW (object);
- active_windows = g_list_remove (active_windows, window);
+ active_windows = g_list_remove (active_windows, window);
- /* Do these things once */
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->merged_actions_table) {
+ /* Do these things once */
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->merged_actions_table)
+ {
- /* Close any pages in this window */
- while (priv->current_page)
- gnc_main_window_close_page(priv->current_page);
+ /* Close any pages in this window */
+ while (priv->current_page)
+ gnc_main_window_close_page(priv->current_page);
- if (gnc_window_get_progressbar_window() == GNC_WINDOW(window))
- gnc_window_set_progressbar_window(NULL);
+ if (gnc_window_get_progressbar_window() == GNC_WINDOW(window))
+ gnc_window_set_progressbar_window(NULL);
- /* Update the "Windows" menu in all other windows */
- gnc_main_window_update_all_menu_items();
+ /* Update the "Windows" menu in all other windows */
+ gnc_main_window_update_all_menu_items();
- gnc_gconf_remove_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE,
- GNC_MAIN_WINDOW_NAME);
- gnc_gconf_remove_notification(G_OBJECT(window), GCONF_GENERAL,
- GNC_MAIN_WINDOW_NAME);
+ gnc_gconf_remove_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE,
+ GNC_MAIN_WINDOW_NAME);
+ gnc_gconf_remove_notification(G_OBJECT(window), GCONF_GENERAL,
+ GNC_MAIN_WINDOW_NAME);
- qof_event_unregister_handler(priv->event_handler_id);
- priv->event_handler_id = 0;
+ qof_event_unregister_handler(priv->event_handler_id);
+ priv->event_handler_id = 0;
- g_hash_table_destroy (priv->merged_actions_table);
- priv->merged_actions_table = NULL;
+ g_hash_table_destroy (priv->merged_actions_table);
+ priv->merged_actions_table = NULL;
- /* GncPluginManager stuff */
- manager = gnc_plugin_manager_get ();
- plugins = gnc_plugin_manager_get_plugins (manager);
- g_list_foreach (plugins, gnc_main_window_remove_plugin, window);
- g_list_free (plugins);
- }
- GTK_OBJECT_CLASS (parent_class)->destroy (object);
+ /* GncPluginManager stuff */
+ manager = gnc_plugin_manager_get ();
+ plugins = gnc_plugin_manager_get_plugins (manager);
+ g_list_foreach (plugins, gnc_main_window_remove_plugin, window);
+ g_list_free (plugins);
+ }
+ GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
@@ -2112,16 +2284,18 @@
GncMainWindow *window;
gncUIWidget old_window;
- window = g_object_new (GNC_TYPE_MAIN_WINDOW, NULL);
+ window = g_object_new (GNC_TYPE_MAIN_WINDOW, NULL);
gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
old_window = gnc_ui_get_toplevel();
- if (old_window) {
+ if (old_window)
+ {
gint width, height;
gtk_window_get_size (GTK_WINDOW (old_window), &width, &height);
gtk_window_resize (GTK_WINDOW (window), width, height);
if ((gdk_window_get_state((GTK_WIDGET(old_window))->window)
- & GDK_WINDOW_STATE_MAXIMIZED) != 0) {
+ & GDK_WINDOW_STATE_MAXIMIZED) != 0)
+ {
gtk_window_maximize (GTK_WINDOW (window));
}
}
@@ -2140,18 +2314,18 @@
static void
gnc_main_window_engine_commit_error_callback( gpointer data,
- QofBackendError errcode )
+ QofBackendError errcode )
{
- GncMainWindow* window = GNC_MAIN_WINDOW(data);
- GtkWidget* dialog;
+ GncMainWindow* window = GNC_MAIN_WINDOW(data);
+ GtkWidget* dialog;
- dialog = gtk_message_dialog_new( GTK_WINDOW(window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Unable to save to database" );
- gtk_dialog_run(GTK_DIALOG (dialog));
- gtk_widget_destroy(dialog);
+ dialog = gtk_message_dialog_new( GTK_WINDOW(window),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ "Unable to save to database" );
+ gtk_dialog_run(GTK_DIALOG (dialog));
+ gtk_widget_destroy(dialog);
}
@@ -2174,31 +2348,31 @@
*/
static void
gnc_main_window_connect (GncMainWindow *window,
- GncPluginPage *page,
- GtkWidget *tab_hbox,
- GtkWidget *menu_label)
+ GncPluginPage *page,
+ GtkWidget *tab_hbox,
+ GtkWidget *menu_label)
{
- GncMainWindowPrivate *priv;
- GtkNotebook *notebook;
+ GncMainWindowPrivate *priv;
+ GtkNotebook *notebook;
- page->window = GTK_WIDGET(window);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- notebook = GTK_NOTEBOOK (priv->notebook);
- priv->installed_pages = g_list_append (priv->installed_pages, page);
- priv->usage_order = g_list_prepend (priv->usage_order, page);
- gtk_notebook_append_page_menu (notebook, page->notebook_page,
- tab_hbox, menu_label);
- gtk_notebook_set_tab_reorderable (notebook, page->notebook_page, TRUE);
- gnc_plugin_page_inserted (page);
- gtk_notebook_set_current_page (notebook, -1);
- if (GNC_PLUGIN_PAGE_GET_CLASS(page)->window_changed)
- (GNC_PLUGIN_PAGE_GET_CLASS(page)->window_changed)(page, GTK_WIDGET(window));
- g_signal_emit (window, main_window_signals[PAGE_ADDED], 0, page);
+ page->window = GTK_WIDGET(window);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ notebook = GTK_NOTEBOOK (priv->notebook);
+ priv->installed_pages = g_list_append (priv->installed_pages, page);
+ priv->usage_order = g_list_prepend (priv->usage_order, page);
+ gtk_notebook_append_page_menu (notebook, page->notebook_page,
+ tab_hbox, menu_label);
+ gtk_notebook_set_tab_reorderable (notebook, page->notebook_page, TRUE);
+ gnc_plugin_page_inserted (page);
+ gtk_notebook_set_current_page (notebook, -1);
+ if (GNC_PLUGIN_PAGE_GET_CLASS(page)->window_changed)
+ (GNC_PLUGIN_PAGE_GET_CLASS(page)->window_changed)(page, GTK_WIDGET(window));
+ g_signal_emit (window, main_window_signals[PAGE_ADDED], 0, page);
- g_signal_connect(G_OBJECT(page->notebook_page), "popup-menu",
- G_CALLBACK(gnc_main_window_popup_menu_cb), page);
- g_signal_connect_after(G_OBJECT(page->notebook_page), "button-press-event",
- G_CALLBACK(gnc_main_window_button_press_cb), page);
+ g_signal_connect(G_OBJECT(page->notebook_page), "popup-menu",
+ G_CALLBACK(gnc_main_window_popup_menu_cb), page);
+ g_signal_connect_after(G_OBJECT(page->notebook_page), "button-press-event",
+ G_CALLBACK(gnc_main_window_button_press_cb), page);
}
@@ -2217,58 +2391,62 @@
*/
static void
gnc_main_window_disconnect (GncMainWindow *window,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- GncMainWindowPrivate *priv;
- GtkNotebook *notebook;
- GncPluginPage *new_page;
- gint page_num;
+ GncMainWindowPrivate *priv;
+ GtkNotebook *notebook;
+ GncPluginPage *new_page;
+ gint page_num;
- /* Disconnect the callbacks */
- g_signal_handlers_disconnect_by_func(G_OBJECT(page->notebook_page),
- G_CALLBACK(gnc_main_window_popup_menu_cb), page);
- g_signal_handlers_disconnect_by_func(G_OBJECT(page->notebook_page),
- G_CALLBACK(gnc_main_window_button_press_cb), page);
+ /* Disconnect the callbacks */
+ g_signal_handlers_disconnect_by_func(G_OBJECT(page->notebook_page),
+ G_CALLBACK(gnc_main_window_popup_menu_cb), page);
+ g_signal_handlers_disconnect_by_func(G_OBJECT(page->notebook_page),
+ G_CALLBACK(gnc_main_window_button_press_cb), page);
- /* Disconnect the page and summarybar from the window */
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->current_page == page) {
- gnc_plugin_page_unmerge_actions (page, window->ui_merge);
- gnc_plugin_page_unselected (page);
- priv->current_page = NULL;
- }
+ /* Disconnect the page and summarybar from the window */
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->current_page == page)
+ {
+ gnc_plugin_page_unmerge_actions (page, window->ui_merge);
+ gnc_plugin_page_unselected (page);
+ priv->current_page = NULL;
+ }
- /* Remove it from the list of pages in the window */
- priv->installed_pages = g_list_remove (priv->installed_pages, page);
- priv->usage_order = g_list_remove (priv->usage_order, page);
+ /* Remove it from the list of pages in the window */
+ priv->installed_pages = g_list_remove (priv->installed_pages, page);
+ priv->usage_order = g_list_remove (priv->usage_order, page);
- /* Switch to the last recently used page */
- notebook = GTK_NOTEBOOK (priv->notebook);
- if (gnc_gconf_get_bool(GCONF_GENERAL, KEY_TAB_NEXT_RECENT, NULL)) {
- new_page = g_list_nth_data (priv->usage_order, 0);
- if (new_page) {
- page_num = gtk_notebook_page_num(notebook, new_page->notebook_page);
- gtk_notebook_set_current_page(notebook, page_num);
- }
+ /* Switch to the last recently used page */
+ notebook = GTK_NOTEBOOK (priv->notebook);
+ if (gnc_gconf_get_bool(GCONF_GENERAL, KEY_TAB_NEXT_RECENT, NULL))
+ {
+ new_page = g_list_nth_data (priv->usage_order, 0);
+ if (new_page)
+ {
+ page_num = gtk_notebook_page_num(notebook, new_page->notebook_page);
+ gtk_notebook_set_current_page(notebook, page_num);
}
+ }
- /* Remove the page from the notebook */
- page_num = gtk_notebook_page_num(notebook, page->notebook_page);
- gtk_notebook_remove_page (notebook, page_num);
+ /* Remove the page from the notebook */
+ page_num = gtk_notebook_page_num(notebook, page->notebook_page);
+ gtk_notebook_remove_page (notebook, page_num);
- if ( gtk_notebook_get_current_page(notebook) == -1) {
- /* Need to synthesize a page changed signal when the last
- * page is removed. The notebook doesn't generate a signal
- * for this, therefore the switch_page code in this file
- * never gets called to generate this signal. */
- gnc_main_window_switch_page(notebook, NULL, -1, window);
- //g_signal_emit (window, main_window_signals[PAGE_CHANGED], 0, NULL);
- }
+ if ( gtk_notebook_get_current_page(notebook) == -1)
+ {
+ /* Need to synthesize a page changed signal when the last
+ * page is removed. The notebook doesn't generate a signal
+ * for this, therefore the switch_page code in this file
+ * never gets called to generate this signal. */
+ gnc_main_window_switch_page(notebook, NULL, -1, window);
+ //g_signal_emit (window, main_window_signals[PAGE_CHANGED], 0, NULL);
+ }
- gnc_plugin_page_removed (page);
+ gnc_plugin_page_removed (page);
- gtk_ui_manager_ensure_update (window->ui_merge);
- gnc_window_set_status (GNC_WINDOW(window), page, NULL);
+ gtk_ui_manager_ensure_update (window->ui_merge);
+ gnc_window_set_status (GNC_WINDOW(window), page, NULL);
}
@@ -2280,17 +2458,17 @@
void
gnc_main_window_display_page (GncPluginPage *page)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GtkNotebook *notebook;
- gint page_num;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GtkNotebook *notebook;
+ gint page_num;
- window = GNC_MAIN_WINDOW (page->window);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- notebook = GTK_NOTEBOOK (priv->notebook);
- page_num = gtk_notebook_page_num(notebook, page->notebook_page);
- gtk_notebook_set_current_page (notebook, page_num);
- gtk_window_present(GTK_WINDOW(window));
+ window = GNC_MAIN_WINDOW (page->window);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ notebook = GTK_NOTEBOOK (priv->notebook);
+ page_num = gtk_notebook_page_num(notebook, page->notebook_page);
+ gtk_notebook_set_current_page (notebook, page_num);
+ gtk_window_present(GTK_WINDOW(window));
}
@@ -2303,136 +2481,146 @@
*/
void
gnc_main_window_open_page (GncMainWindow *window,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- GncMainWindowPrivate *priv;
- GtkWidget *tab_hbox;
- GtkWidget *label, *entry, *event_box;
- const gchar *icon, *text;
- GtkWidget *image;
- GList *tmp;
- gint width;
+ GncMainWindowPrivate *priv;
+ GtkWidget *tab_hbox;
+ GtkWidget *label, *entry, *event_box;
+ const gchar *icon, *text;
+ GtkWidget *image;
+ GList *tmp;
+ gint width;
- ENTER("window %p, page %p", window, page);
+ 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));
- g_return_if_fail (gnc_plugin_page_has_books(page));
+ if (window)
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (gnc_plugin_page_has_books(page));
- if (gnc_main_window_page_exists(page)) {
- gnc_main_window_display_page(page);
- return;
- }
+ if (gnc_main_window_page_exists(page))
+ {
+ gnc_main_window_display_page(page);
+ return;
+ }
- /* Does the page want to be in a new window? */
- if (gnc_plugin_page_get_use_new_window(page)) {
- /* See if there's a blank window. If so, use that. */
- for (tmp = active_windows; tmp; tmp = g_list_next(tmp)) {
- window = GNC_MAIN_WINDOW(tmp->data);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->installed_pages == NULL) {
- break;
- }
- }
- if (tmp == NULL)
- window = gnc_main_window_new ();
- gtk_widget_show(GTK_WIDGET(window));
- } else if ((window == NULL) && active_windows) {
- window = active_windows->data;
- }
+ /* Does the page want to be in a new window? */
+ if (gnc_plugin_page_get_use_new_window(page))
+ {
+ /* See if there's a blank window. If so, use that. */
+ for (tmp = active_windows; tmp; tmp = g_list_next(tmp))
+ {
+ window = GNC_MAIN_WINDOW(tmp->data);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->installed_pages == NULL)
+ {
+ break;
+ }
+ }
+ if (tmp == NULL)
+ window = gnc_main_window_new ();
+ gtk_widget_show(GTK_WIDGET(window));
+ }
+ else if ((window == NULL) && active_windows)
+ {
+ window = active_windows->data;
+ }
- page->window = GTK_WIDGET(window);
- page->notebook_page = gnc_plugin_page_create_widget (page);
- g_object_set_data (G_OBJECT (page->notebook_page),
- PLUGIN_PAGE_LABEL, page);
+ page->window = GTK_WIDGET(window);
+ page->notebook_page = gnc_plugin_page_create_widget (page);
+ g_object_set_data (G_OBJECT (page->notebook_page),
+ PLUGIN_PAGE_LABEL, page);
- /*
- * The page tab.
- */
- width = gnc_gconf_get_float(GCONF_GENERAL, KEY_TAB_WIDTH, NULL);
- icon = GNC_PLUGIN_PAGE_GET_CLASS(page)->tab_icon;
- label = gtk_label_new (gnc_plugin_page_get_page_name(page));
- if (width != 0) {
- gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
- gtk_label_set_max_width_chars(GTK_LABEL(label), width);
- }
- gtk_widget_show (label);
- g_object_set_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL, label);
+ /*
+ * The page tab.
+ */
+ width = gnc_gconf_get_float(GCONF_GENERAL, KEY_TAB_WIDTH, NULL);
+ icon = GNC_PLUGIN_PAGE_GET_CLASS(page)->tab_icon;
+ label = gtk_label_new (gnc_plugin_page_get_page_name(page));
+ if (width != 0)
+ {
+ gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
+ gtk_label_set_max_width_chars(GTK_LABEL(label), width);
+ }
+ gtk_widget_show (label);
+ g_object_set_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL, label);
- tab_hbox = gtk_hbox_new (FALSE, 6);
- gtk_widget_show (tab_hbox);
+ tab_hbox = gtk_hbox_new (FALSE, 6);
+ gtk_widget_show (tab_hbox);
- if (icon != NULL) {
- image = gtk_image_new_from_stock (icon, GTK_ICON_SIZE_MENU);
- gtk_widget_show (image);
- gtk_box_pack_start (GTK_BOX (tab_hbox), image, FALSE, FALSE, 0);
- }
+ if (icon != NULL)
+ {
+ image = gtk_image_new_from_stock (icon, GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image);
+ gtk_box_pack_start (GTK_BOX (tab_hbox), image, FALSE, FALSE, 0);
+ }
- event_box = gtk_event_box_new();
- gtk_event_box_set_visible_window(GTK_EVENT_BOX(event_box), FALSE);
- gtk_widget_show(event_box);
- gtk_container_add(GTK_CONTAINER(event_box), label);
- gtk_box_pack_start (GTK_BOX (tab_hbox), event_box, TRUE, TRUE, 0);
+ event_box = gtk_event_box_new();
+ gtk_event_box_set_visible_window(GTK_EVENT_BOX(event_box), FALSE);
+ gtk_widget_show(event_box);
+ gtk_container_add(GTK_CONTAINER(event_box), label);
+ gtk_box_pack_start (GTK_BOX (tab_hbox), event_box, TRUE, TRUE, 0);
- text = gnc_plugin_page_get_page_long_name(page);
- if (text) {
- gtk_tooltips_set_tip(tips, event_box, text, NULL);
- }
+ text = gnc_plugin_page_get_page_long_name(page);
+ if (text)
+ {
+ gtk_tooltips_set_tip(tips, event_box, text, NULL);
+ }
- entry = gtk_entry_new();
- gtk_widget_hide (entry);
- gtk_box_pack_start (GTK_BOX (tab_hbox), entry, TRUE, TRUE, 0);
- g_signal_connect(G_OBJECT(entry), "activate",
- G_CALLBACK(gnc_main_window_tab_entry_activate), page);
- g_signal_connect(G_OBJECT(entry), "focus-out-event",
- G_CALLBACK(gnc_main_window_tab_entry_focus_out_event),
- page);
- g_signal_connect(G_OBJECT(entry), "key-press-event",
- G_CALLBACK(gnc_main_window_tab_entry_key_press_event),
- page);
- g_signal_connect(G_OBJECT(entry), "editing-done",
- G_CALLBACK(gnc_main_window_tab_entry_editing_done),
- page);
+ entry = gtk_entry_new();
+ gtk_widget_hide (entry);
+ gtk_box_pack_start (GTK_BOX (tab_hbox), entry, TRUE, TRUE, 0);
+ g_signal_connect(G_OBJECT(entry), "activate",
+ G_CALLBACK(gnc_main_window_tab_entry_activate), page);
+ g_signal_connect(G_OBJECT(entry), "focus-out-event",
+ G_CALLBACK(gnc_main_window_tab_entry_focus_out_event),
+ page);
+ g_signal_connect(G_OBJECT(entry), "key-press-event",
+ G_CALLBACK(gnc_main_window_tab_entry_key_press_event),
+ page);
+ g_signal_connect(G_OBJECT(entry), "editing-done",
+ G_CALLBACK(gnc_main_window_tab_entry_editing_done),
+ page);
- /* Add close button - Not for immutable pages */
- if (!g_object_get_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE)) {
- GtkWidget *close_image, *close_button;
- GtkRequisition requisition;
+ /* Add close button - Not for immutable pages */
+ if (!g_object_get_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE))
+ {
+ GtkWidget *close_image, *close_button;
+ GtkRequisition requisition;
- close_button = gtk_button_new();
- gtk_button_set_relief(GTK_BUTTON(close_button), GTK_RELIEF_NONE);
- close_image = gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
- gtk_widget_show(close_image);
- gtk_widget_size_request(close_image, &requisition);
- gtk_widget_set_size_request(close_button, requisition.width + 4,
- requisition.height + 2);
- gtk_button_set_alignment(GTK_BUTTON(close_button), 0.5, 0.5);
- gtk_container_add(GTK_CONTAINER(close_button), close_image);
- if (gnc_gconf_get_bool(GCONF_GENERAL, KEY_SHOW_CLOSE_BUTTON, NULL))
- gtk_widget_show (close_button);
- else
- gtk_widget_hide (close_button);
+ close_button = gtk_button_new();
+ gtk_button_set_relief(GTK_BUTTON(close_button), GTK_RELIEF_NONE);
+ close_image = gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
+ gtk_widget_show(close_image);
+ gtk_widget_size_request(close_image, &requisition);
+ gtk_widget_set_size_request(close_button, requisition.width + 4,
+ requisition.height + 2);
+ gtk_button_set_alignment(GTK_BUTTON(close_button), 0.5, 0.5);
+ gtk_container_add(GTK_CONTAINER(close_button), close_image);
+ if (gnc_gconf_get_bool(GCONF_GENERAL, KEY_SHOW_CLOSE_BUTTON, NULL))
+ gtk_widget_show (close_button);
+ else
+ gtk_widget_hide (close_button);
- g_signal_connect_swapped (G_OBJECT (close_button), "clicked",
- G_CALLBACK(gnc_main_window_close_page), page);
+ g_signal_connect_swapped (G_OBJECT (close_button), "clicked",
+ G_CALLBACK(gnc_main_window_close_page), page);
- gtk_box_pack_start (GTK_BOX (tab_hbox), close_button, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (tab_hbox), close_button, FALSE, FALSE, 0);
- g_object_set_data (G_OBJECT (page), PLUGIN_PAGE_CLOSE_BUTTON, close_button);
- }
+ g_object_set_data (G_OBJECT (page), PLUGIN_PAGE_CLOSE_BUTTON, close_button);
+ }
- /*
- * The popup menu
- */
- label = gtk_label_new (gnc_plugin_page_get_page_name(page));
+ /*
+ * The popup menu
+ */
+ label = gtk_label_new (gnc_plugin_page_get_page_name(page));
- /*
- * Now install it all in the window.
- */
- gnc_main_window_connect(window, page, tab_hbox, label);
+ /*
+ * Now install it all in the window.
+ */
+ gnc_main_window_connect(window, page, tab_hbox, label);
- LEAVE("");
+ LEAVE("");
}
@@ -2444,35 +2632,38 @@
void
gnc_main_window_close_page (GncPluginPage *page)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
- if (!page || !page->notebook_page)
- return;
+ if (!page || !page->notebook_page)
+ return;
- if (!gnc_plugin_page_finish_pending(page))
- return;
+ if (!gnc_plugin_page_finish_pending(page))
+ return;
- if (!GNC_IS_MAIN_WINDOW (page->window))
- return;
+ if (!GNC_IS_MAIN_WINDOW (page->window))
+ return;
- window = GNC_MAIN_WINDOW (page->window);
- if (!window) {
- g_warning("Page is not in a window.");
- return;
- }
+ window = GNC_MAIN_WINDOW (page->window);
+ if (!window)
+ {
+ g_warning("Page is not in a window.");
+ return;
+ }
- gnc_main_window_disconnect(window, page);
- gnc_plugin_page_destroy_widget (page);
- g_object_unref(page);
+ gnc_main_window_disconnect(window, page);
+ gnc_plugin_page_destroy_widget (page);
+ g_object_unref(page);
- /* If this isn't the last window, go ahead and destroy the window. */
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->installed_pages == NULL) {
- if (g_list_length(active_windows) > 1) {
- gtk_widget_destroy(GTK_WIDGET(window));
- }
- }
+ /* If this isn't the last window, go ahead and destroy the window. */
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->installed_pages == NULL)
+ {
+ if (g_list_length(active_windows) > 1)
+ {
+ gtk_widget_destroy(GTK_WIDGET(window));
+ }
+ }
}
@@ -2486,10 +2677,10 @@
GncPluginPage *
gnc_main_window_get_current_page (GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
+ GncMainWindowPrivate *priv;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- return priv->current_page;
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ return priv->current_page;
}
@@ -2500,24 +2691,24 @@
*/
void
gnc_main_window_manual_merge_actions (GncMainWindow *window,
- const gchar *group_name,
- GtkActionGroup *group,
- guint merge_id)
+ const gchar *group_name,
+ GtkActionGroup *group,
+ guint merge_id)
{
- GncMainWindowPrivate *priv;
- MergedActionEntry *entry;
+ GncMainWindowPrivate *priv;
+ MergedActionEntry *entry;
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (group_name != NULL);
- g_return_if_fail (GTK_IS_ACTION_GROUP(group));
- g_return_if_fail (merge_id > 0);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (group_name != NULL);
+ g_return_if_fail (GTK_IS_ACTION_GROUP(group));
+ g_return_if_fail (merge_id > 0);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- entry = g_new0 (MergedActionEntry, 1);
- entry->action_group = group;
- entry->merge_id = merge_id;
- gtk_ui_manager_ensure_update (window->ui_merge);
- g_hash_table_insert (priv->merged_actions_table, g_strdup (group_name), entry);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ entry = g_new0 (MergedActionEntry, 1);
+ entry->action_group = group;
+ entry->merge_id = merge_id;
+ gtk_ui_manager_ensure_update (window->ui_merge);
+ g_hash_table_insert (priv->merged_actions_table, g_strdup (group_name), entry);
}
@@ -2529,50 +2720,53 @@
*/
void
gnc_main_window_merge_actions (GncMainWindow *window,
- const gchar *group_name,
- GtkActionEntry *actions,
- guint n_actions,
- const gchar *filename,
- gpointer user_data)
+ const gchar *group_name,
+ GtkActionEntry *actions,
+ guint n_actions,
+ const gchar *filename,
+ gpointer user_data)
{
- GncMainWindowPrivate *priv;
- GncMainWindowActionData *data;
- MergedActionEntry *entry;
- GError *error = NULL;
- gchar *pathname;
+ GncMainWindowPrivate *priv;
+ GncMainWindowActionData *data;
+ MergedActionEntry *entry;
+ GError *error = NULL;
+ gchar *pathname;
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (group_name != NULL);
- g_return_if_fail (actions != NULL);
- g_return_if_fail (n_actions > 0);
- g_return_if_fail (filename != NULL);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (group_name != NULL);
+ g_return_if_fail (actions != NULL);
+ g_return_if_fail (n_actions > 0);
+ g_return_if_fail (filename != NULL);
- data = g_new0 (GncMainWindowActionData, 1);
- data->window = window;
- data->data = user_data;
+ data = g_new0 (GncMainWindowActionData, 1);
+ data->window = window;
+ data->data = user_data;
- pathname = gnc_gnome_locate_ui_file (filename);
- if (pathname == NULL)
- return;
+ pathname = gnc_gnome_locate_ui_file (filename);
+ if (pathname == NULL)
+ return;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- entry = g_new0 (MergedActionEntry, 1);
- entry->action_group = gtk_action_group_new (group_name);
- gnc_gtk_action_group_set_translation_domain (entry->action_group, GETTEXT_PACKAGE);
- gtk_action_group_add_actions (entry->action_group, actions, n_actions, data);
- gtk_ui_manager_insert_action_group (window->ui_merge, entry->action_group, 0);
- entry->merge_id = gtk_ui_manager_add_ui_from_file (window->ui_merge, pathname, &error);
- g_assert(entry->merge_id || error);
- if (entry->merge_id) {
- gtk_ui_manager_ensure_update (window->ui_merge);
- g_hash_table_insert (priv->merged_actions_table, g_strdup (group_name), entry);
- } else {
- g_critical("Failed to load ui file.\n Filename %s\n Error %s",
- filename, error->message);
- g_error_free(error);
- g_free(entry);
- }
- g_free(pathname);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ entry = g_new0 (MergedActionEntry, 1);
+ entry->action_group = gtk_action_group_new (group_name);
+ gnc_gtk_action_group_set_translation_domain (entry->action_group, GETTEXT_PACKAGE);
+ gtk_action_group_add_actions (entry->action_group, actions, n_actions, data);
+ gtk_ui_manager_insert_action_group (window->ui_merge, entry->action_group, 0);
+ entry->merge_id = gtk_ui_manager_add_ui_from_file (window->ui_merge, pathname, &error);
+ g_assert(entry->merge_id || error);
+ if (entry->merge_id)
+ {
+ gtk_ui_manager_ensure_update (window->ui_merge);
+ g_hash_table_insert (priv->merged_actions_table, g_strdup (group_name), entry);
+ }
+ else
+ {
+ g_critical("Failed to load ui file.\n Filename %s\n Error %s",
+ filename, error->message);
+ g_error_free(error);
+ g_free(entry);
+ }
+ g_free(pathname);
}
@@ -2583,27 +2777,27 @@
*/
void
gnc_main_window_unmerge_actions (GncMainWindow *window,
- const gchar *group_name)
+ const gchar *group_name)
{
- GncMainWindowPrivate *priv;
- MergedActionEntry *entry;
+ GncMainWindowPrivate *priv;
+ MergedActionEntry *entry;
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (group_name != NULL);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (group_name != NULL);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->merged_actions_table == NULL)
- return;
- entry = g_hash_table_lookup (priv->merged_actions_table, group_name);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->merged_actions_table == NULL)
+ return;
+ entry = g_hash_table_lookup (priv->merged_actions_table, group_name);
- if (entry == NULL)
- return;
+ if (entry == NULL)
+ return;
- gtk_ui_manager_remove_action_group (window->ui_merge, entry->action_group);
- gtk_ui_manager_remove_ui (window->ui_merge, entry->merge_id);
- gtk_ui_manager_ensure_update (window->ui_merge);
+ gtk_ui_manager_remove_action_group (window->ui_merge, entry->action_group);
+ gtk_ui_manager_remove_ui (window->ui_merge, entry->merge_id);
+ gtk_ui_manager_ensure_update (window->ui_merge);
- g_hash_table_remove (priv->merged_actions_table, group_name);
+ g_hash_table_remove (priv->merged_actions_table, group_name);
}
@@ -2615,35 +2809,36 @@
void
gnc_main_window_actions_updated (GncMainWindow *window)
{
- GtkActionGroup *force;
+ GtkActionGroup *force;
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- /* Unfortunately gtk_ui_manager_ensure_update doesn't work
- * here. Force a full update by adding and removing an empty
- * action group.
- */
- force = gtk_action_group_new("force_update");
- gtk_ui_manager_insert_action_group (window->ui_merge, force, 0);
- gtk_ui_manager_ensure_update (window->ui_merge);
- gtk_ui_manager_remove_action_group (window->ui_merge, force);
- g_object_unref(force);
+ /* Unfortunately gtk_ui_manager_ensure_update doesn't work
+ * here. Force a full update by adding and removing an empty
+ * action group.
+ */
+ force = gtk_action_group_new("force_update");
+ gtk_ui_manager_insert_action_group (window->ui_merge, force, 0);
+ gtk_ui_manager_ensure_update (window->ui_merge);
+ gtk_ui_manager_remove_action_group (window->ui_merge, force);
+ g_object_unref(force);
}
static GtkAction *
gnc_main_window_find_action (GncMainWindow *window, const gchar *name)
{
- GtkAction *action = NULL;
- const GList *groups, *tmp;
+ GtkAction *action = NULL;
+ const GList *groups, *tmp;
- groups = gtk_ui_manager_get_action_groups(window->ui_merge);
- for (tmp = groups; tmp; tmp = g_list_next(tmp)) {
- action = gtk_action_group_get_action(GTK_ACTION_GROUP(tmp->data), name);
- if (action)
- break;
- }
- return action;
+ groups = gtk_ui_manager_get_action_groups(window->ui_merge);
+ for (tmp = groups; tmp; tmp = g_list_next(tmp))
+ {
+ action = gtk_action_group_get_action(GTK_ACTION_GROUP(tmp->data), name);
+ if (action)
+ break;
+ }
+ return action;
}
@@ -2653,61 +2848,62 @@
*/
GtkActionGroup *
gnc_main_window_get_action_group (GncMainWindow *window,
- const gchar *group_name)
+ const gchar *group_name)
{
- GncMainWindowPrivate *priv;
- MergedActionEntry *entry;
+ GncMainWindowPrivate *priv;
+ MergedActionEntry *entry;
- g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window), NULL);
- g_return_val_if_fail (group_name != NULL, NULL);
+ g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window), NULL);
+ g_return_val_if_fail (group_name != NULL, NULL);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->merged_actions_table == NULL)
- return NULL;
- entry = g_hash_table_lookup (priv->merged_actions_table, group_name);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->merged_actions_table == NULL)
+ return NULL;
+ entry = g_hash_table_lookup (priv->merged_actions_table, group_name);
- if (entry == NULL)
- return NULL;
+ if (entry == NULL)
+ return NULL;
- return entry->action_group;
+ return entry->action_group;
}
static void
gnc_main_window_update_toolbar (GncMainWindow *window)
{
- GtkToolbarStyle style;
- GSList *list;
+ GtkToolbarStyle style;
+ GSList *list;
- ENTER("window %p", window);
+ ENTER("window %p", window);
- style = gnc_get_toolbar_style();
- list = gtk_ui_manager_get_toplevels(window->ui_merge, GTK_UI_MANAGER_TOOLBAR);
- g_slist_foreach(list, (GFunc)gtk_toolbar_set_style, GINT_TO_POINTER(style));
- g_slist_free(list);
- LEAVE("");
+ style = gnc_get_toolbar_style();
+ list = gtk_ui_manager_get_toplevels(window->ui_merge, GTK_UI_MANAGER_TOOLBAR);
+ g_slist_foreach(list, (GFunc)gtk_toolbar_set_style, GINT_TO_POINTER(style));
+ g_slist_free(list);
+ LEAVE("");
}
static void
gnc_main_window_update_tab_position (GncMainWindow *window)
{
- GtkPositionType position = GTK_POS_TOP;
- gchar *conf_string;
- GncMainWindowPrivate *priv;
+ GtkPositionType position = GTK_POS_TOP;
+ gchar *conf_string;
+ GncMainWindowPrivate *priv;
- ENTER ("window %p", window);
- conf_string = gnc_gconf_get_string (GCONF_GENERAL,
- KEY_TAB_POSITION, NULL);
- if (conf_string) {
- position = gnc_enum_from_nick (GTK_TYPE_POSITION_TYPE,
- conf_string, GTK_POS_TOP);
- g_free (conf_string);
- }
+ ENTER ("window %p", window);
+ conf_string = gnc_gconf_get_string (GCONF_GENERAL,
+ KEY_TAB_POSITION, NULL);
+ if (conf_string)
+ {
+ position = gnc_enum_from_nick (GTK_TYPE_POSITION_TYPE,
+ conf_string, GTK_POS_TOP);
+ g_free (conf_string);
+ }
- priv = GNC_MAIN_WINDOW_GET_PRIVATE (window);
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (priv->notebook), position);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE (window);
+ gtk_notebook_set_tab_pos (GTK_NOTEBOOK (priv->notebook), position);
- LEAVE ("");
+ LEAVE ("");
}
/*
@@ -2716,136 +2912,140 @@
static void
gnc_main_window_update_edit_actions_sensitivity (GncMainWindow *window, gboolean hide)
{
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
- GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
- GtkAction *action;
- gboolean can_copy = FALSE, can_cut = FALSE, can_paste = FALSE;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
+ GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
+ GtkAction *action;
+ gboolean can_copy = FALSE, can_cut = FALSE, can_paste = FALSE;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- page = priv->current_page;
- if (page && GNC_PLUGIN_PAGE_GET_CLASS(page)->update_edit_menu_actions) {
- (GNC_PLUGIN_PAGE_GET_CLASS(page)->update_edit_menu_actions)(page, hide);
- return;
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ page = priv->current_page;
+ if (page && GNC_PLUGIN_PAGE_GET_CLASS(page)->update_edit_menu_actions)
+ {
+ (GNC_PLUGIN_PAGE_GET_CLASS(page)->update_edit_menu_actions)(page, hide);
+ return;
+ }
- if (GTK_IS_EDITABLE (widget))
- {
- gboolean has_selection;
+ if (GTK_IS_EDITABLE (widget))
+ {
+ gboolean has_selection;
- has_selection = gtk_editable_get_selection_bounds
- (GTK_EDITABLE (widget), NULL, NULL);
+ has_selection = gtk_editable_get_selection_bounds
+ (GTK_EDITABLE (widget), NULL, NULL);
- can_copy = has_selection;
- can_cut = has_selection;
- can_paste = TRUE;
- }
- else if (GTK_IS_TEXT_VIEW (widget))
- {
- gboolean has_selection;
- GtkTextBuffer *text_buffer;
+ can_copy = has_selection;
+ can_cut = has_selection;
+ can_paste = TRUE;
+ }
+ else if (GTK_IS_TEXT_VIEW (widget))
+ {
+ gboolean has_selection;
+ GtkTextBuffer *text_buffer;
- text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
- has_selection = gtk_text_buffer_get_selection_bounds
- (text_buffer, NULL, NULL);
+ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
+ has_selection = gtk_text_buffer_get_selection_bounds
+ (text_buffer, NULL, NULL);
- can_copy = has_selection;
- can_cut = has_selection;
- can_paste = TRUE;
- }
- else
- {
+ can_copy = has_selection;
+ can_cut = has_selection;
+ can_paste = TRUE;
+ }
+ else
+ {
#ifdef ORIGINAL_EPIPHANY_CODE
- /* For now we assume all actions are possible */
- can_copy = can_cut = can_paste = TRUE;
+ /* For now we assume all actions are possible */
+ can_copy = can_cut = can_paste = TRUE;
#else
- /* If its not a GtkEditable, we don't know what to do
- * with it. */
- can_copy = can_cut = can_paste = FALSE;
+ /* If its not a GtkEditable, we don't know what to do
+ * with it. */
+ can_copy = can_cut = can_paste = FALSE;
#endif
- }
+ }
- action = gnc_main_window_find_action (window, "EditCopyAction");
- gtk_action_set_sensitive (action, can_copy);
- gtk_action_set_visible (action, !hide || can_copy);
- action = gnc_main_window_find_action (window, "EditCutAction");
- gtk_action_set_sensitive (action, can_cut);
- gtk_action_set_visible (action, !hide || can_cut);
- action = gnc_main_window_find_action (window, "EditPasteAction");
- gtk_action_set_sensitive (action, can_paste);
- gtk_action_set_visible (action, !hide || can_paste);
+ action = gnc_main_window_find_action (window, "EditCopyAction");
+ gtk_action_set_sensitive (action, can_copy);
+ gtk_action_set_visible (action, !hide || can_copy);
+ action = gnc_main_window_find_action (window, "EditCutAction");
+ gtk_action_set_sensitive (action, can_cut);
+ gtk_action_set_visible (action, !hide || can_cut);
+ action = gnc_main_window_find_action (window, "EditPasteAction");
+ gtk_action_set_sensitive (action, can_paste);
+ gtk_action_set_visible (action, !hide || can_paste);
}
static void
gnc_main_window_enable_edit_actions_sensitivity (GncMainWindow *window)
{
- GtkAction *action;
+ GtkAction *action;
- action = gnc_main_window_find_action (window, "EditCopyAction");
- gtk_action_set_sensitive (action, TRUE);
- gtk_action_set_visible (action, TRUE);
- action = gnc_main_window_find_action (window, "EditCutAction");
- gtk_action_set_sensitive (action, TRUE);
- gtk_action_set_visible (action, TRUE);
- action = gnc_main_window_find_action (window, "EditPasteAction");
- gtk_action_set_sensitive (action, TRUE);
- gtk_action_set_visible (action, TRUE);
+ action = gnc_main_window_find_action (window, "EditCopyAction");
+ gtk_action_set_sensitive (action, TRUE);
+ gtk_action_set_visible (action, TRUE);
+ action = gnc_main_window_find_action (window, "EditCutAction");
+ gtk_action_set_sensitive (action, TRUE);
+ gtk_action_set_visible (action, TRUE);
+ action = gnc_main_window_find_action (window, "EditPasteAction");
+ gtk_action_set_sensitive (action, TRUE);
+ gtk_action_set_visible (action, TRUE);
}
static void
gnc_main_window_edit_menu_show_cb (GtkWidget *menu,
- GncMainWindow *window)
+ GncMainWindow *window)
{
- gnc_main_window_update_edit_actions_sensitivity (window, FALSE);
+ gnc_main_window_update_edit_actions_sensitivity (window, FALSE);
}
static void
gnc_main_window_edit_menu_hide_cb (GtkWidget *menu,
- GncMainWindow *window)
+ GncMainWindow *window)
{
- gnc_main_window_enable_edit_actions_sensitivity (window);
+ gnc_main_window_enable_edit_actions_sensitivity (window);
}
static void
gnc_main_window_init_menu_updaters (GncMainWindow *window)
{
- GtkWidget *edit_menu_item, *edit_menu;
+ GtkWidget *edit_menu_item, *edit_menu;
- edit_menu_item = gtk_ui_manager_get_widget
- (window->ui_merge, "/menubar/Edit");
- edit_menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (edit_menu_item));
+ edit_menu_item = gtk_ui_manager_get_widget
+ (window->ui_merge, "/menubar/Edit");
+ edit_menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (edit_menu_item));
- g_signal_connect (edit_menu, "show",
- G_CALLBACK (gnc_main_window_edit_menu_show_cb), window);
- g_signal_connect (edit_menu, "hide",
- G_CALLBACK (gnc_main_window_edit_menu_hide_cb), window);
+ g_signal_connect (edit_menu, "show",
+ G_CALLBACK (gnc_main_window_edit_menu_show_cb), window);
+ g_signal_connect (edit_menu, "hide",
+ G_CALLBACK (gnc_main_window_edit_menu_hide_cb), window);
}
static void
gnc_main_window_gconf_changed (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
{
- GncMainWindow *window;
- GConfValue *value;
- const gchar *key, *key_tail;
+ GncMainWindow *window;
+ GConfValue *value;
+ const gchar *key, *key_tail;
- window = GNC_MAIN_WINDOW(user_data);
+ window = GNC_MAIN_WINDOW(user_data);
- key = gconf_entry_get_key(entry);
- value = gconf_entry_get_value(entry);
- if (!key || !value)
- return;
+ key = gconf_entry_get_key(entry);
+ value = gconf_entry_get_value(entry);
+ if (!key || !value)
+ return;
- key_tail = strrchr(key, '/');
- if (key_tail != NULL)
- key_tail++;
- if (strcmp(key_tail, KEY_TOOLBAR_STYLE) == 0) {
- gnc_main_window_update_toolbar(window);
- } else if (strcmp(key_tail, KEY_TAB_POSITION) == 0) {
- gnc_main_window_update_tab_position(window);
- }
+ key_tail = strrchr(key, '/');
+ if (key_tail != NULL)
+ key_tail++;
+ if (strcmp(key_tail, KEY_TOOLBAR_STYLE) == 0)
+ {
+ gnc_main_window_update_toolbar(window);
+ }
+ else if (strcmp(key_tail, KEY_TAB_POSITION) == 0)
+ {
+ gnc_main_window_update_tab_position(window);
+ }
}
/* CS: This callback functions will set the statusbar text to the
@@ -2854,84 +3054,85 @@
* This code is directly copied from gtk+/test/testmerge.c.
* Thanks to (L)GPL! */
typedef struct _ActionStatus ActionStatus;
-struct _ActionStatus {
- GtkAction *action;
- GtkWidget *statusbar;
+struct _ActionStatus
+{
+ GtkAction *action;
+ GtkWidget *statusbar;
};
static void
action_status_destroy (gpointer data)
{
- ActionStatus *action_status = data;
+ ActionStatus *action_status = data;
- g_object_unref (action_status->action);
- g_object_unref (action_status->statusbar);
+ g_object_unref (action_status->action);
+ g_object_unref (action_status->statusbar);
- g_free (action_status);
+ g_free (action_status);
}
static void
set_tip (GtkWidget *widget)
{
- ActionStatus *data;
- gchar *tooltip;
+ ActionStatus *data;
+ gchar *tooltip;
- data = g_object_get_data (G_OBJECT (widget), "action-status");
+ data = g_object_get_data (G_OBJECT (widget), "action-status");
- if (data)
+ if (data)
{
- g_object_get (data->action, "tooltip", &tooltip, NULL);
+ g_object_get (data->action, "tooltip", &tooltip, NULL);
- gtk_statusbar_push (GTK_STATUSBAR (data->statusbar), 0,
- tooltip ? tooltip : "");
+ gtk_statusbar_push (GTK_STATUSBAR (data->statusbar), 0,
+ tooltip ? tooltip : "");
- g_free (tooltip);
+ g_free (tooltip);
}
}
static void
unset_tip (GtkWidget *widget)
{
- ActionStatus *data;
+ ActionStatus *data;
- data = g_object_get_data (G_OBJECT (widget), "action-status");
+ data = g_object_get_data (G_OBJECT (widget), "action-status");
- if (data)
- gtk_statusbar_pop (GTK_STATUSBAR (data->statusbar), 0);
+ if (data)
+ gtk_statusbar_pop (GTK_STATUSBAR (data->statusbar), 0);
}
static void
connect_proxy (GtkUIManager *merge,
- GtkAction *action,
- GtkWidget *proxy,
- GtkWidget *statusbar)
+ GtkAction *action,
+ GtkWidget *proxy,
+ GtkWidget *statusbar)
{
- if (GTK_IS_MENU_ITEM (proxy))
+ if (GTK_IS_MENU_ITEM (proxy))
{
- ActionStatus *data;
+ ActionStatus *data;
- data = g_object_get_data (G_OBJECT (proxy), "action-status");
- if (data)
- {
- g_object_unref (data->action);
- g_object_unref (data->statusbar);
+ data = g_object_get_data (G_OBJECT (proxy), "action-status");
+ if (data)
+ {
+ g_object_unref (data->action);
+ g_object_unref (data->statusbar);
- data->action = g_object_ref (action);
- data->statusbar = g_object_ref (statusbar);
- }
- else
- {
- data = g_new0 (ActionStatus, 1);
+ data->action = g_object_ref (action);
+ data->statusbar = g_object_ref (statusbar);
+ }
+ else
+ {
+ data = g_new0 (ActionStatus, 1);
- data->action = g_object_ref (action);
- data->statusbar = g_object_ref (statusbar);
+ data->action = g_object_ref (action);
+ data->statusbar = g_object_ref (statusbar);
- g_object_set_data_full (G_OBJECT (proxy), "action-status",
- data, action_status_destroy);
+ g_object_set_data_full (G_OBJECT (proxy), "action-status",
+ data, action_status_destroy);
- g_signal_connect (proxy, "select", G_CALLBACK (set_tip), NULL);
- g_signal_connect (proxy, "deselect", G_CALLBACK (unset_tip), NULL);
- }
+ g_signal_connect (proxy, "select", G_CALLBACK (set_tip), NULL);
+ g_signal_connect (proxy, "deselect", G_CALLBACK (unset_tip), NULL);
+ }
}
}
/* CS: end copied code from gtk+/test/testmerge.c */
@@ -2939,181 +3140,186 @@
static void
gnc_main_window_setup_window (GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GtkWidget *main_vbox;
- guint merge_id;
- GncPluginManager *manager;
- GList *plugins;
- GError *error = NULL;
- gchar *filename;
+ GncMainWindowPrivate *priv;
+ GtkWidget *main_vbox;
+ guint merge_id;
+ GncPluginManager *manager;
+ GList *plugins;
+ GError *error = NULL;
+ gchar *filename;
- ENTER(" ");
+ ENTER(" ");
- /* Catch window manager delete signal */
- g_signal_connect (G_OBJECT (window), "delete-event",
- G_CALLBACK (gnc_main_window_delete_event), window);
+ /* Catch window manager delete signal */
+ g_signal_connect (G_OBJECT (window), "delete-event",
+ G_CALLBACK (gnc_main_window_delete_event), window);
- /* Create widgets and add them to the window */
- main_vbox = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (main_vbox);
- gtk_container_add (GTK_CONTAINER (window), main_vbox);
+ /* Create widgets and add them to the window */
+ main_vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (main_vbox);
+ gtk_container_add (GTK_CONTAINER (window), main_vbox);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- priv->menu_dock = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (priv->menu_dock);
- gtk_box_pack_start (GTK_BOX (main_vbox), priv->menu_dock,
- FALSE, TRUE, 0);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ priv->menu_dock = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (priv->menu_dock);
+ gtk_box_pack_start (GTK_BOX (main_vbox), priv->menu_dock,
+ FALSE, TRUE, 0);
- priv->notebook = gtk_notebook_new ();
- g_object_set(G_OBJECT(priv->notebook),
- "scrollable", TRUE,
- "enable-popup", TRUE,
- (char *)NULL);
- gtk_widget_show (priv->notebook);
- g_signal_connect (G_OBJECT (priv->notebook), "switch-page",
- G_CALLBACK (gnc_main_window_switch_page), window);
- g_signal_connect (G_OBJECT (priv->notebook), "page-reordered",
- G_CALLBACK (gnc_main_window_page_reordered), window);
- gtk_box_pack_start (GTK_BOX (main_vbox), priv->notebook,
- TRUE, TRUE, 0);
+ priv->notebook = gtk_notebook_new ();
+ g_object_set(G_OBJECT(priv->notebook),
+ "scrollable", TRUE,
+ "enable-popup", TRUE,
+ (char *)NULL);
+ gtk_widget_show (priv->notebook);
+ g_signal_connect (G_OBJECT (priv->notebook), "switch-page",
+ G_CALLBACK (gnc_main_window_switch_page), window);
+ g_signal_connect (G_OBJECT (priv->notebook), "page-reordered",
+ G_CALLBACK (gnc_main_window_page_reordered), window);
+ gtk_box_pack_start (GTK_BOX (main_vbox), priv->notebook,
+ TRUE, TRUE, 0);
- priv->statusbar = gtk_statusbar_new ();
- gtk_widget_show (priv->statusbar);
- gtk_box_pack_start (GTK_BOX (main_vbox), priv->statusbar,
- FALSE, TRUE, 0);
- gtk_statusbar_set_has_resize_grip( GTK_STATUSBAR(priv->statusbar), TRUE );
+ priv->statusbar = gtk_statusbar_new ();
+ gtk_widget_show (priv->statusbar);
+ gtk_box_pack_start (GTK_BOX (main_vbox), priv->statusbar,
+ FALSE, TRUE, 0);
+ gtk_statusbar_set_has_resize_grip( GTK_STATUSBAR(priv->statusbar), TRUE );
- priv->progressbar = gtk_progress_bar_new ();
- gtk_progress_bar_set_text(GTK_PROGRESS_BAR(priv->progressbar), " ");
- gtk_widget_show (priv->progressbar);
- gtk_box_pack_start (GTK_BOX (priv->statusbar), priv->progressbar,
- FALSE, TRUE, 0);
- gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(priv->progressbar),
- 0.01);
+ priv->progressbar = gtk_progress_bar_new ();
+ gtk_progress_bar_set_text(GTK_PROGRESS_BAR(priv->progressbar), " ");
+ gtk_widget_show (priv->progressbar);
+ gtk_box_pack_start (GTK_BOX (priv->statusbar), priv->progressbar,
+ FALSE, TRUE, 0);
+ gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(priv->progressbar),
+ 0.01);
- window->ui_merge = gtk_ui_manager_new ();
+ window->ui_merge = gtk_ui_manager_new ();
- /* Create menu and toolbar information */
- priv->action_group = gtk_action_group_new ("MainWindowActions");
- gnc_gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
- gtk_action_group_add_actions (priv->action_group, gnc_menu_actions,
+ /* Create menu and toolbar information */
+ priv->action_group = gtk_action_group_new ("MainWindowActions");
+ gnc_gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
+ gtk_action_group_add_actions (priv->action_group, gnc_menu_actions,
gnc_menu_n_actions, window);
- gtk_action_group_add_toggle_actions (priv->action_group,
+ gtk_action_group_add_toggle_actions (priv->action_group,
toggle_actions, n_toggle_actions,
window);
- gtk_action_group_add_radio_actions (priv->action_group,
+ gtk_action_group_add_radio_actions (priv->action_group,
radio_entries, n_radio_entries,
0,
G_CALLBACK(gnc_main_window_cmd_window_raise),
window);
- gnc_plugin_update_actions(priv->action_group,
+ gnc_plugin_update_actions(priv->action_group,
initially_insensitive_actions,
"sensitive", FALSE);
- gnc_plugin_update_actions(priv->action_group,
+ gnc_plugin_update_actions(priv->action_group,
always_insensitive_actions,
"sensitive", FALSE);
- gnc_plugin_update_actions(priv->action_group,
+ gnc_plugin_update_actions(priv->action_group,
always_hidden_actions,
"visible", FALSE);
- gnc_plugin_set_important_actions (priv->action_group,
+ gnc_plugin_set_important_actions (priv->action_group,
gnc_menu_important_actions);
- gtk_ui_manager_insert_action_group (window->ui_merge, priv->action_group, 0);
+ gtk_ui_manager_insert_action_group (window->ui_merge, priv->action_group, 0);
- g_signal_connect (G_OBJECT (window->ui_merge), "add_widget",
- G_CALLBACK (gnc_main_window_add_widget), window);
- /* Use the "connect-proxy" signal for tooltip display in the
- status bar */
- g_signal_connect (G_OBJECT (window->ui_merge), "connect-proxy",
+ g_signal_connect (G_OBJECT (window->ui_merge), "add_widget",
+ G_CALLBACK (gnc_main_window_add_widget), window);
+ /* Use the "connect-proxy" signal for tooltip display in the
+ status bar */
+ g_signal_connect (G_OBJECT (window->ui_merge), "connect-proxy",
G_CALLBACK (connect_proxy), priv->statusbar);
- filename = gnc_gnome_locate_ui_file("gnc-main-window-ui.xml");
+ filename = gnc_gnome_locate_ui_file("gnc-main-window-ui.xml");
- /* Can't do much without a ui. */
- g_assert (filename);
+ /* Can't do much without a ui. */
+ g_assert (filename);
- merge_id = gtk_ui_manager_add_ui_from_file (window->ui_merge,
- filename, &error);
- g_assert(merge_id || error);
- if (merge_id) {
- gtk_window_add_accel_group (GTK_WINDOW (window),
- gtk_ui_manager_get_accel_group(window->ui_merge));
- gtk_ui_manager_ensure_update (window->ui_merge);
- } else {
- g_critical("Failed to load ui file.\n Filename %s\n Error %s",
- filename, error->message);
- g_error_free(error);
- g_assert(merge_id != 0);
- }
- g_free(filename);
+ merge_id = gtk_ui_manager_add_ui_from_file (window->ui_merge,
+ filename, &error);
+ g_assert(merge_id || error);
+ if (merge_id)
+ {
+ gtk_window_add_accel_group (GTK_WINDOW (window),
+ gtk_ui_manager_get_accel_group(window->ui_merge));
+ gtk_ui_manager_ensure_update (window->ui_merge);
+ }
+ else
+ {
+ g_critical("Failed to load ui file.\n Filename %s\n Error %s",
+ filename, error->message);
+ g_error_free(error);
+ g_assert(merge_id != 0);
+ }
+ g_free(filename);
- gnc_gconf_add_notification(G_OBJECT(window), GCONF_GENERAL,
+ gnc_gconf_add_notification(G_OBJECT(window), GCONF_GENERAL,
gnc_main_window_gconf_changed,
GNC_MAIN_WINDOW_NAME);
- gnc_gconf_add_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE,
+ gnc_gconf_add_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE,
gnc_main_window_gconf_changed,
GNC_MAIN_WINDOW_NAME);
- gnc_main_window_update_toolbar(window);
- gnc_main_window_update_tab_position(window);
+ gnc_main_window_update_toolbar(window);
+ gnc_main_window_update_tab_position(window);
- gnc_main_window_init_menu_updaters(window);
+ gnc_main_window_init_menu_updaters(window);
/* Testing */
- /* Now update the "eXtensions" menu */
- if (!gnc_is_extra_enabled()) {
- GtkAction* action;
+ /* Now update the "eXtensions" menu */
+ if (!gnc_is_extra_enabled())
+ {
+ GtkAction* action;
- action = gtk_action_group_get_action(priv->action_group,
- "ExtensionsAction");
- gtk_action_set_visible(action, FALSE);
- }
+ action = gtk_action_group_get_action(priv->action_group,
+ "ExtensionsAction");
+ gtk_action_set_visible(action, FALSE);
+ }
- /* GncPluginManager stuff */
- manager = gnc_plugin_manager_get ();
- plugins = gnc_plugin_manager_get_plugins (manager);
+ /* GncPluginManager stuff */
+ manager = gnc_plugin_manager_get ();
+ plugins = gnc_plugin_manager_get_plugins (manager);
g_list_foreach (plugins, gnc_main_window_add_plugin, window);
g_list_free (plugins);
- g_signal_connect (G_OBJECT (manager), "plugin-added",
+ g_signal_connect (G_OBJECT (manager), "plugin-added",
G_CALLBACK (gnc_main_window_plugin_added), window);
- g_signal_connect (G_OBJECT (manager), "plugin-removed",
+ g_signal_connect (G_OBJECT (manager), "plugin-removed",
G_CALLBACK (gnc_main_window_plugin_removed), window);
- LEAVE(" ");
+ LEAVE(" ");
}
#ifdef MAC_INTEGRATION
static void
-gtk_quartz_set_menu(GncMainWindow* window) {
+gtk_quartz_set_menu(GncMainWindow* window)
+{
IgeMacMenuGroup *group;
GtkWidget *menu;
GtkWidget *item;
menu = gtk_ui_manager_get_widget (window->ui_merge, "/menubar");
if (GTK_IS_MENU_ITEM (menu))
- menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu));
+ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu));
gtk_widget_hide(menu);
ige_mac_menu_set_menu_bar (GTK_MENU_SHELL (menu));
item = gtk_ui_manager_get_widget (window->ui_merge,
- "/menubar/File/FileQuit");
+ "/menubar/File/FileQuit");
if (GTK_IS_MENU_ITEM (item))
- ige_mac_menu_set_quit_menu_item (GTK_MENU_ITEM (item));
+ ige_mac_menu_set_quit_menu_item (GTK_MENU_ITEM (item));
/* the about group */
group = ige_mac_menu_add_app_menu_group ();
item = gtk_ui_manager_get_widget (window->ui_merge,
- "/menubar/Help/HelpAbout");
+ "/menubar/Help/HelpAbout");
if (GTK_IS_MENU_ITEM (item))
- ige_mac_menu_add_app_menu_item (group, GTK_MENU_ITEM (item), _("About GnuCash"));
+ ige_mac_menu_add_app_menu_item (group, GTK_MENU_ITEM (item), _("About GnuCash"));
/* the preferences group */
group = ige_mac_menu_add_app_menu_group ();
item = gtk_ui_manager_get_widget (window->ui_merge,
- "/menubar/Edit/EditPreferences");
+ "/menubar/Edit/EditPreferences");
if (GTK_IS_MENU_ITEM (item))
- ige_mac_menu_add_app_menu_item (group, GTK_MENU_ITEM (item), NULL);
+ ige_mac_menu_add_app_menu_item (group, GTK_MENU_ITEM (item), NULL);
}
#endif //MAC_INTEGRATION
@@ -3121,18 +3327,19 @@
/* Callbacks */
static void
gnc_main_window_add_widget (GtkUIManager *merge,
- GtkWidget *widget,
- GncMainWindow *window)
+ GtkWidget *widget,
+ GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
+ GncMainWindowPrivate *priv;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (GTK_IS_TOOLBAR (widget)) {
- priv->toolbar = widget;
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (GTK_IS_TOOLBAR (widget))
+ {
+ priv->toolbar = widget;
+ }
- gtk_box_pack_start (GTK_BOX (priv->menu_dock), widget, FALSE, FALSE, 0);
- gtk_widget_show (widget);
+ gtk_box_pack_start (GTK_BOX (priv->menu_dock), widget, FALSE, FALSE, 0);
+ gtk_widget_show (widget);
}
/** Should a summary bar be visible in this window? In order to
@@ -3150,15 +3357,15 @@
static gboolean
gnc_main_window_show_summarybar (GncMainWindow *window, GtkAction *action)
{
- GncMainWindowPrivate *priv;
+ GncMainWindowPrivate *priv;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (action == NULL)
- action = gtk_action_group_get_action(priv->action_group,
- "ViewSummaryAction");
- if (action == NULL)
- return TRUE;
- return gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (action == NULL)
+ action = gtk_action_group_get_action(priv->action_group,
+ "ViewSummaryAction");
+ if (action == NULL)
+ return TRUE;
+ return gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
}
/** This function is invoked when the GtkNotebook switches pages. It
@@ -3172,66 +3379,71 @@
*/
static void
gnc_main_window_switch_page (GtkNotebook *notebook,
- GtkNotebookPage *notebook_page,
- gint pos,
- GncMainWindow *window)
+ GtkNotebookPage *notebook_page,
+ gint pos,
+ GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GtkWidget *child;
- GncPluginPage *page;
- gboolean immutable, visible;
+ GncMainWindowPrivate *priv;
+ GtkWidget *child;
+ GncPluginPage *page;
+ gboolean immutable, visible;
- ENTER("Notebook %p, page, %p, index %d, window %p",
- notebook, notebook_page, pos, window);
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ ENTER("Notebook %p, page, %p, index %d, window %p",
+ notebook, notebook_page, pos, window);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->current_page != NULL) {
- page = priv->current_page;
- gnc_plugin_page_unmerge_actions (page, window->ui_merge);
- gnc_plugin_page_unselected (page);
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->current_page != NULL)
+ {
+ page = priv->current_page;
+ gnc_plugin_page_unmerge_actions (page, window->ui_merge);
+ gnc_plugin_page_unselected (page);
+ }
- child = gtk_notebook_get_nth_page (notebook, pos);
- if (child) {
- page = g_object_get_data (G_OBJECT (child), PLUGIN_PAGE_LABEL);
- } else {
- page = NULL;
- }
+ child = gtk_notebook_get_nth_page (notebook, pos);
+ if (child)
+ {
+ page = g_object_get_data (G_OBJECT (child), PLUGIN_PAGE_LABEL);
+ }
+ else
+ {
+ page = NULL;
+ }
- priv->current_page = page;
+ priv->current_page = page;
- if (page != NULL) {
- /* Update the user interface (e.g. menus and toolbars */
- gnc_plugin_page_merge_actions (page, window->ui_merge);
- visible = gnc_main_window_show_summarybar(window, NULL);
- gnc_plugin_page_show_summarybar (page, visible);
+ if (page != NULL)
+ {
+ /* Update the user interface (e.g. menus and toolbars */
+ gnc_plugin_page_merge_actions (page, window->ui_merge);
+ visible = gnc_main_window_show_summarybar(window, NULL);
+ gnc_plugin_page_show_summarybar (page, visible);
- /* Allow page specific actions */
- gnc_plugin_page_selected (page);
- gnc_window_update_status (GNC_WINDOW(window), page);
+ /* Allow page specific actions */
+ gnc_plugin_page_selected (page);
+ gnc_window_update_status (GNC_WINDOW(window), page);
- /* Update the page reference info */
- priv->usage_order = g_list_remove (priv->usage_order, page);
- priv->usage_order = g_list_prepend (priv->usage_order, page);
- }
+ /* Update the page reference info */
+ priv->usage_order = g_list_remove (priv->usage_order, page);
+ priv->usage_order = g_list_prepend (priv->usage_order, page);
+ }
- /* Update the menus based upon whether this is an "immutable" page. */
- immutable = page &&
- g_object_get_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE);
- gnc_plugin_update_actions(priv->action_group,
- immutable_page_actions,
- "sensitive", !immutable);
- gnc_plugin_update_actions(priv->action_group,
- multiple_page_actions,
- "sensitive",
- g_list_length(priv->installed_pages) > 1);
+ /* Update the menus based upon whether this is an "immutable" page. */
+ immutable = page &&
+ g_object_get_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE);
+ gnc_plugin_update_actions(priv->action_group,
+ immutable_page_actions,
+ "sensitive", !immutable);
+ gnc_plugin_update_actions(priv->action_group,
+ multiple_page_actions,
+ "sensitive",
+ g_list_length(priv->installed_pages) > 1);
- gnc_main_window_update_title(window);
- gnc_main_window_update_menu_item(window);
+ gnc_main_window_update_title(window);
+ gnc_main_window_update_menu_item(window);
- g_signal_emit (window, main_window_signals[PAGE_CHANGED], 0, page);
- LEAVE(" ");
+ g_signal_emit (window, main_window_signals[PAGE_CHANGED], 0, page);
+ LEAVE(" ");
}
/** This function is invoked when a GtkNotebook tab gets reordered by
@@ -3242,94 +3454,95 @@
*/
static void
gnc_main_window_page_reordered (GtkNotebook *notebook,
- GtkWidget *child,
- guint pos,
- GncMainWindow *window)
+ GtkWidget *child,
+ guint pos,
+ GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
- GList *old_link;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
+ GList *old_link;
- ENTER("Notebook %p, child %p, index %d, window %p",
- notebook, child, pos, window);
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ ENTER("Notebook %p, child %p, index %d, window %p",
+ notebook, child, pos, window);
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- if (!child) return;
+ if (!child) return;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- page = g_object_get_data (G_OBJECT (child), PLUGIN_PAGE_LABEL);
- if (!page) return;
+ page = g_object_get_data (G_OBJECT (child), PLUGIN_PAGE_LABEL);
+ if (!page) return;
- old_link = g_list_find (priv->installed_pages, page);
- if (!old_link) return;
+ old_link = g_list_find (priv->installed_pages, page);
+ if (!old_link) return;
- priv->installed_pages = g_list_delete_link (priv->installed_pages,
- old_link);
- priv->installed_pages = g_list_insert (priv->installed_pages,
- page, pos);
+ priv->installed_pages = g_list_delete_link (priv->installed_pages,
+ old_link);
+ priv->installed_pages = g_list_insert (priv->installed_pages,
+ page, pos);
- LEAVE(" ");
+ LEAVE(" ");
}
static void
gnc_main_window_plugin_added (GncPlugin *manager,
- GncPlugin *plugin,
- GncMainWindow *window)
+ GncPlugin *plugin,
+ GncMainWindow *window)
{
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
- gnc_plugin_add_to_window (plugin, window, window_type);
+ gnc_plugin_add_to_window (plugin, window, window_type);
}
static void
gnc_main_window_plugin_removed (GncPlugin *manager,
- GncPlugin *plugin,
- GncMainWindow *window)
+ GncPlugin *plugin,
+ GncMainWindow *window)
{
- g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
- gnc_plugin_remove_from_window (plugin, window, window_type);
+ gnc_plugin_remove_from_window (plugin, window, window_type);
}
/* Command callbacks */
static void
gnc_main_window_cmd_page_setup (GtkAction *action,
- GncMainWindow *window)
+ GncMainWindow *window)
{
- GtkWindow *gtk_window;
+ GtkWindow *gtk_window;
- g_return_if_fail(GNC_IS_MAIN_WINDOW(window));
+ g_return_if_fail(GNC_IS_MAIN_WINDOW(window));
- gtk_window = gnc_window_get_gtk_window(GNC_WINDOW(window));
- gnc_ui_page_setup(gtk_window);
+ gtk_window = gnc_window_get_gtk_window(GNC_WINDOW(window));
+ gnc_ui_page_setup(gtk_window);
}
static void
gnc_main_window_cmd_file_properties (GtkAction *action, GncMainWindow *window)
{
- SCM func = scm_c_eval_string("gnc:main-window-properties-cb");
- if (!scm_is_procedure (func)) {
- PERR ("not a procedure\n");
- return;
- }
- scm_call_0(func);
+ SCM func = scm_c_eval_string("gnc:main-window-properties-cb");
+ if (!scm_is_procedure (func))
+ {
+ PERR ("not a procedure\n");
+ return;
+ }
+ scm_call_0(func);
}
static void
gnc_main_window_cmd_file_close (GtkAction *action, GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
- g_return_if_fail(GNC_IS_MAIN_WINDOW(window));
+ g_return_if_fail(GNC_IS_MAIN_WINDOW(window));
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- page = priv->current_page;
- gnc_main_window_close_page(page);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ page = priv->current_page;
+ gnc_main_window_close_page(page);
}
static void
@@ -3344,62 +3557,71 @@
static void
gnc_main_window_cmd_edit_cut (GtkAction *action, GncMainWindow *window)
{
- GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
- GtkTextBuffer *text_buffer;
- GtkClipboard *clipboard;
- gboolean editable;
+ GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
+ GtkTextBuffer *text_buffer;
+ GtkClipboard *clipboard;
+ gboolean editable;
- if (GTK_IS_EDITABLE (widget)) {
- gtk_editable_cut_clipboard (GTK_EDITABLE (widget));
- } else if (GTK_IS_TEXT_VIEW (widget)) {
- text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
- clipboard = gtk_widget_get_clipboard (GTK_WIDGET(text_buffer),
- GDK_SELECTION_CLIPBOARD);
- editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (widget));
- gtk_text_buffer_cut_clipboard (text_buffer, clipboard, editable);
- }
+ if (GTK_IS_EDITABLE (widget))
+ {
+ gtk_editable_cut_clipboard (GTK_EDITABLE (widget));
+ }
+ else if (GTK_IS_TEXT_VIEW (widget))
+ {
+ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET(text_buffer),
+ GDK_SELECTION_CLIPBOARD);
+ editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (widget));
+ gtk_text_buffer_cut_clipboard (text_buffer, clipboard, editable);
+ }
}
static void
gnc_main_window_cmd_edit_copy (GtkAction *action, GncMainWindow *window)
{
- GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
- GtkTextBuffer *text_buffer;
- GtkClipboard *clipboard;
+ GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
+ GtkTextBuffer *text_buffer;
+ GtkClipboard *clipboard;
- if (GTK_IS_EDITABLE (widget)) {
- gtk_editable_copy_clipboard (GTK_EDITABLE (widget));
- } else if (GTK_IS_TEXT_VIEW (widget)) {
- text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
- clipboard = gtk_widget_get_clipboard (GTK_WIDGET(text_buffer),
- GDK_SELECTION_CLIPBOARD);
- gtk_text_buffer_copy_clipboard (text_buffer, clipboard);
- }
+ if (GTK_IS_EDITABLE (widget))
+ {
+ gtk_editable_copy_clipboard (GTK_EDITABLE (widget));
+ }
+ else if (GTK_IS_TEXT_VIEW (widget))
+ {
+ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET(text_buffer),
+ GDK_SELECTION_CLIPBOARD);
+ gtk_text_buffer_copy_clipboard (text_buffer, clipboard);
+ }
}
static void
gnc_main_window_cmd_edit_paste (GtkAction *action, GncMainWindow *window)
{
- GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
- GtkTextBuffer *text_buffer;
- GtkClipboard *clipboard;
- gboolean editable;
+ GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
+ GtkTextBuffer *text_buffer;
+ GtkClipboard *clipboard;
+ gboolean editable;
- if (GTK_IS_EDITABLE (widget)) {
- gtk_editable_paste_clipboard (GTK_EDITABLE (widget));
- } else if (GTK_IS_TEXT_VIEW (widget)) {
- text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
- clipboard = gtk_widget_get_clipboard (GTK_WIDGET(text_buffer),
- GDK_SELECTION_CLIPBOARD);
- editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (widget));
- gtk_text_buffer_paste_clipboard (text_buffer, clipboard, NULL, FALSE);
- }
+ if (GTK_IS_EDITABLE (widget))
+ {
+ gtk_editable_paste_clipboard (GTK_EDITABLE (widget));
+ }
+ else if (GTK_IS_TEXT_VIEW (widget))
+ {
+ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(widget));
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET(text_buffer),
+ GDK_SELECTION_CLIPBOARD);
+ editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (widget));
+ gtk_text_buffer_paste_clipboard (text_buffer, clipboard, NULL, FALSE);
+ }
}
static void
gnc_main_window_cmd_edit_preferences (GtkAction *action, GncMainWindow *window)
{
- gnc_preferences_dialog ();
+ gnc_preferences_dialog ();
}
static void
@@ -3410,168 +3632,177 @@
static void
gnc_main_window_cmd_actions_reset_warnings (GtkAction *action, GncMainWindow *window)
{
- gnc_reset_warnings_dialog(GTK_WIDGET(window));
+ gnc_reset_warnings_dialog(GTK_WIDGET(window));
}
static void
gnc_main_window_cmd_actions_rename_page (GtkAction *action, GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GncPluginPage *page;
- GtkWidget *label, *entry;
+ GncMainWindowPrivate *priv;
+ GncPluginPage *page;
+ GtkWidget *label, *entry;
- ENTER(" ");
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- page = priv->current_page;
- if (!page) {
- LEAVE("No current page");
- return;
- }
+ ENTER(" ");
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ page = priv->current_page;
+ if (!page)
+ {
+ LEAVE("No current page");
+ return;
+ }
- if (!main_window_find_tab_items(window, page, &label, &entry)) {
- LEAVE("can't find required widgets");
- return;
- }
+ if (!main_window_find_tab_items(window, page, &label, &entry))
+ {
+ LEAVE("can't find required widgets");
+ return;
+ }
- gtk_entry_set_text(GTK_ENTRY(entry), gtk_label_get_text(GTK_LABEL(label)));
- gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1);
- gtk_widget_hide(label);
- gtk_widget_show(entry);
- gtk_widget_grab_focus(entry);
- LEAVE("opened for editing");
+ gtk_entry_set_text(GTK_ENTRY(entry), gtk_label_get_text(GTK_LABEL(label)));
+ gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1);
+ gtk_widget_hide(label);
+ gtk_widget_show(entry);
+ gtk_widget_grab_focus(entry);
+ LEAVE("opened for editing");
}
static void
gnc_main_window_cmd_view_toolbar (GtkAction *action, GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
+ GncMainWindowPrivate *priv;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))) {
- gtk_widget_show (priv->toolbar);
- } else {
- gtk_widget_hide (priv->toolbar);
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)))
+ {
+ gtk_widget_show (priv->toolbar);
+ }
+ else
+ {
+ gtk_widget_hide (priv->toolbar);
+ }
}
static void
gnc_main_window_cmd_view_summary (GtkAction *action, GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
- GList *item;
- gboolean visible;
+ GncMainWindowPrivate *priv;
+ GList *item;
+ gboolean visible;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- visible = gnc_main_window_show_summarybar(window, action);
- for (item = priv->installed_pages; item; item = g_list_next(item)) {
- gnc_plugin_page_show_summarybar(item->data, visible);
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ visible = gnc_main_window_show_summarybar(window, action);
+ for (item = priv->installed_pages; item; item = g_list_next(item))
+ {
+ gnc_plugin_page_show_summarybar(item->data, visible);
+ }
}
static void
gnc_main_window_cmd_view_statusbar (GtkAction *action, GncMainWindow *window)
{
- GncMainWindowPrivate *priv;
+ GncMainWindowPrivate *priv;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))) {
- gtk_widget_show (priv->statusbar);
- } else {
- gtk_widget_hide (priv->statusbar);
- }
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)))
+ {
+ gtk_widget_show (priv->statusbar);
+ }
+ else
+ {
+ gtk_widget_hide (priv->statusbar);
+ }
}
static void
gnc_main_window_cmd_window_new (GtkAction *action, GncMainWindow *window)
{
- GncMainWindow *new_window;
+ GncMainWindow *new_window;
- /* Create the new window */
- ENTER(" ");
- new_window = gnc_main_window_new ();
- gtk_widget_show(GTK_WIDGET(new_window));
- LEAVE(" ");
+ /* Create the new window */
+ ENTER(" ");
+ new_window = gnc_main_window_new ();
+ gtk_widget_show(GTK_WIDGET(new_window));
+ LEAVE(" ");
}
static void
gnc_main_window_cmd_window_move_page (GtkAction *action, GncMainWindow *window)
{
- GncMainWindowPrivate *priv, *new_priv;
- GncMainWindow *new_window;
- GncPluginPage *page;
- GtkNotebook *notebook;
- GtkWidget *tab_widget, *menu_widget;
+ GncMainWindowPrivate *priv, *new_priv;
+ GncMainWindow *new_window;
+ GncPluginPage *page;
+ GtkNotebook *notebook;
+ GtkWidget *tab_widget, *menu_widget;
- /* Setup */
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- if (priv->current_page == NULL)
- return;
- notebook = GTK_NOTEBOOK (priv->notebook);
- page = priv->current_page;
- tab_widget = gtk_notebook_get_tab_label (notebook, page->notebook_page);
- menu_widget = gtk_notebook_get_menu_label (notebook, page->notebook_page);
+ /* Setup */
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ if (priv->current_page == NULL)
+ return;
+ notebook = GTK_NOTEBOOK (priv->notebook);
+ page = priv->current_page;
+ tab_widget = gtk_notebook_get_tab_label (notebook, page->notebook_page);
+ menu_widget = gtk_notebook_get_menu_label (notebook, page->notebook_page);
- /* Ref the page components, then remove it from its old window */
- g_object_ref(page);
- g_object_ref(tab_widget);
- g_object_ref(menu_widget);
- g_object_ref(page->notebook_page);
- gnc_main_window_disconnect(window, page);
+ /* Ref the page components, then remove it from its old window */
+ g_object_ref(page);
+ g_object_ref(tab_widget);
+ g_object_ref(menu_widget);
+ g_object_ref(page->notebook_page);
+ gnc_main_window_disconnect(window, page);
- /* Create the new window */
- new_window = gnc_main_window_new ();
- gtk_widget_show(GTK_WIDGET(new_window));
+ /* Create the new window */
+ new_window = gnc_main_window_new ();
+ gtk_widget_show(GTK_WIDGET(new_window));
- /* Now add the page to the new window */
- gnc_main_window_connect (new_window, page, tab_widget, menu_widget);
+ /* Now add the page to the new window */
+ gnc_main_window_connect (new_window, page, tab_widget, menu_widget);
- /* Unref the page components now that we're done */
- g_object_unref(page->notebook_page);
- g_object_unref(menu_widget);
- g_object_unref(tab_widget);
- g_object_unref(page);
+ /* Unref the page components now that we're done */
+ g_object_unref(page->notebook_page);
+ g_object_unref(menu_widget);
+ g_object_unref(tab_widget);
+ g_object_unref(page);
- /* just a little debugging. :-) */
- new_priv = GNC_MAIN_WINDOW_GET_PRIVATE(new_window);
- DEBUG("Moved page %p from window %p to new window %p",
- page, window, new_window);
- DEBUG("Old window current is %p, new window current is %p",
- priv->current_page, priv->current_page);
+ /* just a little debugging. :-) */
+ new_priv = GNC_MAIN_WINDOW_GET_PRIVATE(new_window);
+ DEBUG("Moved page %p from window %p to new window %p",
+ page, window, new_window);
+ DEBUG("Old window current is %p, new window current is %p",
+ priv->current_page, priv->current_page);
}
static void
gnc_main_window_cmd_window_raise (GtkAction *action,
- GtkRadioAction *current,
- GncMainWindow *old_window)
+ GtkRadioAction *current,
+ GncMainWindow *old_window)
{
- GncMainWindow *new_window;
- gint value;
+ GncMainWindow *new_window;
+ gint value;
- g_return_if_fail(GTK_IS_ACTION(action));
- g_return_if_fail(GTK_IS_RADIO_ACTION(current));
- g_return_if_fail(GNC_IS_MAIN_WINDOW(old_window));
+ g_return_if_fail(GTK_IS_ACTION(action));
+ g_return_if_fail(GTK_IS_RADIO_ACTION(current));
+ g_return_if_fail(GNC_IS_MAIN_WINDOW(old_window));
- ENTER("action %p, current %p, window %p", action, current, old_window);
- value = gtk_radio_action_get_current_value(current);
- new_window = g_list_nth_data(active_windows, value);
- gtk_window_present(GTK_WINDOW(new_window));
+ ENTER("action %p, current %p, window %p", action, current, old_window);
+ value = gtk_radio_action_get_current_value(current);
+ new_window = g_list_nth_data(active_windows, value);
+ gtk_window_present(GTK_WINDOW(new_window));
- /* revert the change in the radio group
+ /* revert the change in the radio group
* impossible while handling "changed" (G_SIGNAL_NO_RECURSE) */
- g_idle_add((GSourceFunc)gnc_main_window_update_radio_button, old_window);
- LEAVE(" ");
+ g_idle_add((GSourceFunc)gnc_main_window_update_radio_button, old_window);
+ LEAVE(" ");
}
static void
gnc_main_window_cmd_help_tutorial (GtkAction *action, GncMainWindow *window)
{
- gnc_gnome_help (HF_GUIDE, NULL);
+ gnc_gnome_help (HF_GUIDE, NULL);
}
static void
gnc_main_window_cmd_help_contents (GtkAction *action, GncMainWindow *window)
{
- gnc_gnome_help (HF_HELP, NULL);
+ gnc_gnome_help (HF_HELP, NULL);
}
/** This is a helper function to find a data file and suck it into
@@ -3586,20 +3817,20 @@
static gchar *
get_file (const gchar *partial)
{
- gchar *filename, *text = NULL;
+ gchar *filename, *text = NULL;
- filename = gnc_gnome_locate_data_file(partial);
- g_file_get_contents(filename, &text, NULL, NULL);
- g_free(filename);
+ filename = gnc_gnome_locate_data_file(partial);
+ g_file_get_contents(filename, &text, NULL, NULL);
+ g_free(filename);
- /* Anything there? */
- if (text && *text)
- return text;
+ /* Anything there? */
+ if (text && *text)
+ return text;
- /* Just a empty string or no string at all. */
- if (text)
- g_free(text);
- return NULL;
+ /* Just a empty string or no string at all. */
+ if (text)
+ g_free(text);
+ return NULL;
}
@@ -3615,15 +3846,15 @@
static gchar **
get_file_strsplit (const gchar *partial)
{
- gchar *text, **lines;
+ gchar *text, **lines;
- text = get_file(partial);
- if (!text)
- return NULL;
+ text = get_file(partial);
+ if (!text)
+ return NULL;
- lines = g_strsplit_set(text, "\r\n", -1);
- g_free(text);
- return lines;
+ lines = g_strsplit_set(text, "\r\n", -1);
+ g_free(text);
+ return lines;
}
@@ -3636,44 +3867,44 @@
static void
gnc_main_window_cmd_help_about (GtkAction *action, GncMainWindow *window)
{
- const gchar *fixed_message = _("The GnuCash personal finance manager. "
- "The GNU way to manage your money!");
- const gchar *copyright = "© 1997-2009 Contributors";
- gchar **authors, **documenters, *license, *message;
- GdkPixbuf *logo;
+ const gchar *fixed_message = _("The GnuCash personal finance manager. "
+ "The GNU way to manage your money!");
+ const gchar *copyright = "© 1997-2009 Contributors";
+ gchar **authors, **documenters, *license, *message;
+ GdkPixbuf *logo;
- logo = gnc_gnome_get_gdkpixbuf ("gnucash-icon-48x48.png");
+ logo = gnc_gnome_get_gdkpixbuf ("gnucash-icon-48x48.png");
- authors = get_file_strsplit("doc/AUTHORS");
- documenters = get_file_strsplit("doc/DOCUMENTERS");
- license = get_file("doc/LICENSE");
+ authors = get_file_strsplit("doc/AUTHORS");
+ documenters = get_file_strsplit("doc/DOCUMENTERS");
+ license = get_file("doc/LICENSE");
#ifdef GNUCASH_SVN
- /* Development version */
- message = g_strdup_printf(_("%s This copy was built from svn r%s on %s."),
- fixed_message, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
+ /* Development version */
+ message = g_strdup_printf(_("%s This copy was built from svn r%s on %s."),
+ fixed_message, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
#else
- message = g_strdup_printf(_("%s This copy was built from r%s on %s."),
- fixed_message, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
+ message = g_strdup_printf(_("%s This copy was built from r%s on %s."),
+ fixed_message, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
#endif
- gtk_show_about_dialog
- (GTK_WINDOW (window),
- "authors", authors,
- "documenters", documenters,
- "comments", message,
- "copyright", copyright,
- "license", license,
- "logo", logo,
- "name", "GnuCash",
- "translator-credits", _("translator_credits"),
- "version", VERSION,
- "website", "http://www.gnucash.org",
- (gchar *)NULL);
+ gtk_show_about_dialog
+ (GTK_WINDOW (window),
+ "authors", authors,
+ "documenters", documenters,
+ "comments", message,
+ "copyright", copyright,
+ "license", license,
+ "logo", logo,
+ "name", "GnuCash",
+ "translator-credits", _("translator_credits"),
+ "version", VERSION,
+ "website", "http://www.gnucash.org",
+ (gchar *)NULL);
- g_free(message);
- if (license) g_free(license);
- if (documenters) g_strfreev(documenters);
- if (authors) g_strfreev(authors);
- g_object_unref (logo);
+ g_free(message);
+ if (license) g_free(license);
+ if (documenters) g_strfreev(documenters);
+ if (authors) g_strfreev(authors);
+ g_object_unref (logo);
}
@@ -3698,13 +3929,13 @@
gncUIWidget
gnc_ui_get_toplevel (void)
{
- GList *window;
+ GList *window;
- for (window=active_windows; window; window=window->next)
- if (gtk_window_is_active (GTK_WINDOW (window->data)))
- return window->data;
+ for (window = active_windows; window; window = window->next)
+ if (gtk_window_is_active (GTK_WINDOW (window->data)))
+ return window->data;
- return NULL;
+ return NULL;
}
@@ -3716,8 +3947,8 @@
static GtkWindow *
gnc_main_window_get_gtk_window (GncWindow *window)
{
- g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window), NULL);
- return GTK_WINDOW(window);
+ g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window), NULL);
+ return GTK_WINDOW(window);
}
@@ -3729,14 +3960,14 @@
static GtkWidget *
gnc_main_window_get_statusbar (GncWindow *window_in)
{
- GncMainWindowPrivate *priv;
- GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GncMainWindow *window;
- g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window_in), NULL);
+ g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window_in), NULL);
- window = GNC_MAIN_WINDOW(window_in);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- return priv->statusbar;
+ window = GNC_MAIN_WINDOW(window_in);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ return priv->statusbar;
}
@@ -3748,41 +3979,44 @@
static GtkWidget *
gnc_main_window_get_progressbar (GncWindow *window_in)
{
- GncMainWindowPrivate *priv;
- GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GncMainWindow *window;
- g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window_in), NULL);
+ g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window_in), NULL);
- window = GNC_MAIN_WINDOW(window_in);
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- return priv->progressbar;
+ window = GNC_MAIN_WINDOW(window_in);
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ return priv->progressbar;
}
static void
gnc_main_window_all_ui_set_sensitive (GncWindow *unused, gboolean sensitive)
{
- GncMainWindow *window;
- GncMainWindowPrivate *priv;
- GList *groupp, *groups, *winp, *tmp;
- GtkWidget *close_button;
+ GncMainWindow *window;
+ GncMainWindowPrivate *priv;
+ GList *groupp, *groups, *winp, *tmp;
+ GtkWidget *close_button;
- for (winp = active_windows; winp; winp = g_list_next(winp)) {
- window = winp->data;
- priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+ for (winp = active_windows; winp; winp = g_list_next(winp))
+ {
+ window = winp->data;
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- groups = gtk_ui_manager_get_action_groups(window->ui_merge);
- for (groupp = groups; groupp; groupp = g_list_next(groupp)) {
- gtk_action_group_set_sensitive(GTK_ACTION_GROUP(groupp->data), sensitive);
- }
+ groups = gtk_ui_manager_get_action_groups(window->ui_merge);
+ for (groupp = groups; groupp; groupp = g_list_next(groupp))
+ {
+ gtk_action_group_set_sensitive(GTK_ACTION_GROUP(groupp->data), sensitive);
+ }
- for (tmp = priv->installed_pages; tmp; tmp = g_list_next(tmp)) {
- close_button = g_object_get_data(tmp->data, PLUGIN_PAGE_CLOSE_BUTTON);
- if (!close_button)
- continue;
- gtk_widget_set_sensitive (close_button, sensitive);
- }
- }
+ for (tmp = priv->installed_pages; tmp; tmp = g_list_next(tmp))
+ {
+ close_button = g_object_get_data(tmp->data, PLUGIN_PAGE_CLOSE_BUTTON);
+ if (!close_button)
+ continue;
+ gtk_widget_set_sensitive (close_button, sensitive);
+ }
+ }
}
@@ -3793,10 +4027,10 @@
static void
gnc_window_main_window_init (GncWindowIface *iface)
{
- iface->get_gtk_window = gnc_main_window_get_gtk_window;
- iface->get_statusbar = gnc_main_window_get_statusbar;
- iface->get_progressbar = gnc_main_window_get_progressbar;
- iface->ui_set_sensitive = gnc_main_window_all_ui_set_sensitive;
+ iface->get_gtk_window = gnc_main_window_get_gtk_window;
+ iface->get_statusbar = gnc_main_window_get_statusbar;
+ iface->get_progressbar = gnc_main_window_get_progressbar;
+ iface->ui_set_sensitive = gnc_main_window_all_ui_set_sensitive;
}
@@ -3807,9 +4041,9 @@
void
gnc_main_window_set_progressbar_window (GncMainWindow *window)
{
- GncWindow *gncwin;
- gncwin = GNC_WINDOW(window);
- gnc_window_set_progressbar_window(gncwin);
+ GncWindow *gncwin;
+ gncwin = GNC_WINDOW(window);
+ gnc_window_set_progressbar_window(gncwin);
}
@@ -3828,35 +4062,40 @@
static void
do_popup_menu(GncPluginPage *page, GdkEventButton *event)
{
- GtkUIManager *ui_merge;
- GtkWidget *menu;
- int button, event_time;
+ GtkUIManager *ui_merge;
+ GtkWidget *menu;
+ int button, event_time;
- g_return_if_fail(GNC_IS_PLUGIN_PAGE(page));
+ g_return_if_fail(GNC_IS_PLUGIN_PAGE(page));
- ENTER("page %p, event %p", page, event);
- ui_merge = gnc_plugin_page_get_ui_merge(page);
- if (ui_merge == NULL) {
- LEAVE("no ui merge");
- return;
- }
+ ENTER("page %p, event %p", page, event);
+ ui_merge = gnc_plugin_page_get_ui_merge(page);
+ if (ui_merge == NULL)
+ {
+ LEAVE("no ui merge");
+ return;
+ }
- menu = gtk_ui_manager_get_widget(ui_merge, "/MainPopup");
- if (!menu) {
- LEAVE("no menu");
- return;
- }
+ menu = gtk_ui_manager_get_widget(ui_merge, "/MainPopup");
+ if (!menu)
+ {
+ LEAVE("no menu");
+ return;
+ }
- if (event) {
- button = event->button;
- event_time = event->time;
- } else {
- button = 0;
- event_time = gtk_get_current_event_time ();
- }
+ if (event)
+ {
+ button = event->button;
+ event_time = event->time;
+ }
+ else
+ {
+ button = 0;
+ event_time = gtk_get_current_event_time ();
+ }
- gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, button, event_time);
- LEAVE(" ");
+ gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, button, event_time);
+ LEAVE(" ");
}
@@ -3875,12 +4114,12 @@
*/
static gboolean
gnc_main_window_popup_menu_cb (GtkWidget *widget,
- GncPluginPage *page)
+ GncPluginPage *page)
{
- ENTER("widget %p, page %p", widget, page);
- do_popup_menu(page, NULL);
- LEAVE(" ");
- return TRUE;
+ ENTER("widget %p, page %p", widget, page);
+ do_popup_menu(page, NULL);
+ LEAVE(" ");
+ return TRUE;
}
@@ -3890,32 +4129,33 @@
*/
gboolean
gnc_main_window_button_press_cb (GtkWidget *whatever,
- GdkEventButton *event,
- GncPluginPage *page)
+ GdkEventButton *event,
+ GncPluginPage *page)
{
- g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), FALSE);
+ g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), FALSE);
- ENTER("widget %p, event %p, page %p", whatever, event, page);
- /* Ignore double-clicks and triple-clicks */
- if (event->button == 3 && event->type == GDK_BUTTON_PRESS) {
- do_popup_menu(page, event);
- LEAVE("menu shown");
- return TRUE;
- }
+ ENTER("widget %p, event %p, page %p", whatever, event, page);
+ /* Ignore double-clicks and triple-clicks */
+ if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
+ {
+ do_popup_menu(page, event);
+ LEAVE("menu shown");
+ return TRUE;
+ }
- LEAVE("other click");
- return FALSE;
+ LEAVE("other click");
+ return FALSE;
}
/* CS: Code copied from gtk/gtkactiongroup.c */
static gchar *
dgettext_swapped (const gchar *msgid,
- const gchar *domainname)
+ const gchar *domainname)
{
- /* CS: Pass this through dgettext if and only if msgid is
- nonempty. */
- return (msgid && *msgid) ? dgettext (domainname, msgid) : (gchar*) msgid;
+ /* CS: Pass this through dgettext if and only if msgid is
+ nonempty. */
+ return (msgid && *msgid) ? dgettext (domainname, msgid) : (gchar*) msgid;
}
/*
@@ -3929,28 +4169,29 @@
*/
void
gnc_gtk_action_group_set_translation_domain (GtkActionGroup *action_group,
- const gchar *domain)
+ const gchar *domain)
{
- g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
+ g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
- gtk_action_group_set_translate_func (action_group,
- (GtkTranslateFunc)dgettext_swapped,
- g_strdup (domain),
- g_free);
+ gtk_action_group_set_translate_func (action_group,
+ (GtkTranslateFunc)dgettext_swapped,
+ g_strdup (domain),
+ g_free);
}
/* CS: End of code copied from gtk/gtkactiongroup.c */
void
gnc_main_window_all_action_set_sensitive (const gchar *action_name,
- gboolean sensitive)
+ gboolean sensitive)
{
- GList *tmp;
- GtkAction *action;
+ GList *tmp;
+ GtkAction *action;
- for (tmp = active_windows; tmp; tmp = g_list_next(tmp)) {
- action = gnc_main_window_find_action (tmp->data, action_name);
- gtk_action_set_sensitive (action, sensitive);
- }
+ for (tmp = active_windows; tmp; tmp = g_list_next(tmp))
+ {
+ action = gnc_main_window_find_action (tmp->data, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+ }
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-main-window.h -- GtkWindow which represents the
* GnuCash main window.
*
@@ -52,27 +52,30 @@
/* typedefs & structures */
/** The instance data structure for a main window object. */
-typedef struct GncMainWindow {
- GtkWindow gtk_window; /**< The parent object for a main window. */
- GtkUIManager *ui_merge; /**< A pointer to the UI Manager data
+typedef struct GncMainWindow
+{
+ GtkWindow gtk_window; /**< The parent object for a main window. */
+ GtkUIManager *ui_merge; /**< A pointer to the UI Manager data
structure for the whole window. */
} GncMainWindow;
/** The class data structure for a main window object. */
-typedef struct {
- GtkWindowClass gtk_window; /**< The parent class for a
+typedef struct
+{
+ GtkWindowClass gtk_window; /**< The parent class for a
main window. */
- /* callbacks */
- void (*page_added) (GncMainWindow *window,
- GncPluginPage *page);
- void (*page_changed) (GncMainWindow *window,
- GncPluginPage *page);
+ /* callbacks */
+ void (*page_added) (GncMainWindow *window,
+ GncPluginPage *page);
+ void (*page_changed) (GncMainWindow *window,
+ GncPluginPage *page);
} GncMainWindowClass;
-typedef struct {
- GncMainWindow *window;
- gpointer data;
+typedef struct
+{
+ GncMainWindow *window;
+ gpointer data;
} GncMainWindowActionData;
typedef void (*GncMainWindowFunc) (GncMainWindow *window, GncPluginPage *page);
@@ -115,7 +118,7 @@
* page of data the should be brought to the top and displayed.
*/
void gnc_main_window_open_page (GncMainWindow *window,
- GncPluginPage *page);
+ GncPluginPage *page);
/** Remove a data plugin page from a window and display the previous
@@ -164,7 +167,7 @@
*/
void
main_window_update_page_name (GncPluginPage *page,
- const gchar *name_in);
+ const gchar *name_in);
/** Update the color on the page tabs in the main window.
@@ -175,7 +178,7 @@
*/
void
main_window_update_page_color (GncPluginPage *page,
- const gchar *color_in);
+ const gchar *color_in);
/** Manually add a set of actions to the specified window. Plugins
@@ -197,9 +200,9 @@
* gtk_ui_manager_new_merge_id().
*/
void gnc_main_window_manual_merge_actions (GncMainWindow *window,
- const gchar *group_name,
- GtkActionGroup *group,
- guint merge_id);
+ const gchar *group_name,
+ GtkActionGroup *group,
+ guint merge_id);
/** Add a set of actions to the specified window. This function
@@ -227,11 +230,11 @@
* functions.
*/
void gnc_main_window_merge_actions (GncMainWindow *window,
- const gchar *group_name,
- GtkActionEntry *entries,
- guint n_entries,
- const gchar *filename,
- gpointer user_data);
+ const gchar *group_name,
+ GtkActionEntry *entries,
+ guint n_entries,
+ const gchar *filename,
+ gpointer user_data);
/** Remove a set of actions from the specified window. This function
@@ -246,7 +249,7 @@
* the same name provided when the actions were installed.
*/
void gnc_main_window_unmerge_actions (GncMainWindow *window,
- const gchar *group_name);
+ const gchar *group_name);
/** Force a full update of the user interface for the specified
@@ -276,7 +279,7 @@
* returned.
*/
GtkActionGroup *gnc_main_window_get_action_group (GncMainWindow *window,
- const gchar *group_name);
+ const gchar *group_name);
/** Set the window where all progressbar updates should occur. This
@@ -306,32 +309,32 @@
* handled the click.
*/
gboolean gnc_main_window_button_press_cb (GtkWidget *whatever,
- GdkEventButton *event,
- GncPluginPage *page);
+ GdkEventButton *event,
+ GncPluginPage *page);
/** Restore the persistent state of all windows.
*
* @param keyfile The GKeyFile containing persistent window state.
- */
+ */
void gnc_main_window_restore_all_windows(const GKeyFile *keyfile);
/** Save the persistent state of all windows.
*
* @param keyfile The GKeyFile to contain persistent window state.
- */
+ */
void gnc_main_window_save_all_windows(GKeyFile *keyfile);
/** Restore the persistent state of one window to a sane default.
- */
+ */
void gnc_main_window_restore_default_state(void);
/**
* gnc_gtk_action_group_set_translation_domain:
* @param action_group a #GtkActionGroup
* @param domain the translation domain to use for dgettext() calls
- *
- * Sets the translation domain and uses dgettext() for translating the
- * @a label and @a tooltip of #GtkActionEntry<!-- -->s added by
+ *
+ * Sets the translation domain and uses dgettext() for translating the
+ * @a label and @a tooltip of #GtkActionEntry<!-- -->s added by
* gtk_action_group_add_actions().
*
* This is copied from gtk's gtk_action_group_set_translation_domain()
@@ -343,9 +346,9 @@
* gnc_gtk_action_group_set_translation_domain can be replaced by
* gtk_action_group_set_translation_domain again.
**/
-void
+void
gnc_gtk_action_group_set_translation_domain (GtkActionGroup *action_group,
- const gchar *domain);
+ const gchar *domain);
/** Tell a window to finish any outstanding activities. This function
@@ -382,7 +385,7 @@
/**
* Shows all main windows.
- **/
+ **/
void gnc_main_window_show_all_windows(void);
#endif /* __GNC_MAIN_WINDOW_H */
Modified: gnucash/trunk/src/gnome-utils/gnc-menu-extensions.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-menu-extensions.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-menu-extensions.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -34,11 +34,11 @@
typedef struct _Getters Getters;
struct _Getters
{
- SCM type;
- SCM name;
- SCM documentation;
- SCM path;
- SCM script;
+ SCM type;
+ SCM name;
+ SCM documentation;
+ SCM path;
+ SCM script;
};
/* This static indicates the debugging module that this .o belongs to. */
@@ -50,64 +50,71 @@
GSList *
gnc_extensions_get_menu_list (void)
{
- return g_slist_copy(extension_list);
+ return g_slist_copy(extension_list);
}
static void
initialize_getters()
{
- static gboolean getters_initialized = FALSE;
+ static gboolean getters_initialized = FALSE;
- if (getters_initialized)
- return;
+ if (getters_initialized)
+ return;
- getters.type = scm_c_eval_string("gnc:extension-type");
- getters.name = scm_c_eval_string("gnc:extension-name");
- getters.documentation = scm_c_eval_string("gnc:extension-documentation");
- getters.path = scm_c_eval_string("gnc:extension-path");
- getters.script = scm_c_eval_string("gnc:extension-script");
+ getters.type = scm_c_eval_string("gnc:extension-type");
+ getters.name = scm_c_eval_string("gnc:extension-name");
+ getters.documentation = scm_c_eval_string("gnc:extension-documentation");
+ getters.path = scm_c_eval_string("gnc:extension-path");
+ getters.script = scm_c_eval_string("gnc:extension-script");
- getters_initialized = TRUE;
+ getters_initialized = TRUE;
}
static gboolean
gnc_extension_type (SCM extension, GtkUIManagerItemType *type)
{
- char *string;
+ char *string;
- initialize_getters();
+ initialize_getters();
- string = gnc_guile_call1_symbol_to_string(getters.type, extension);
- if (string == NULL)
- {
- PERR("bad type");
- return FALSE;
- }
+ string = gnc_guile_call1_symbol_to_string(getters.type, extension);
+ if (string == NULL)
+ {
+ PERR("bad type");
+ return FALSE;
+ }
- if (safe_strcmp(string, "menu-item") == 0) {
- *type = GTK_UI_MANAGER_MENUITEM;
- } else if (safe_strcmp(string, "menu") == 0) {
- *type = GTK_UI_MANAGER_MENU;
- } else if (safe_strcmp(string, "separator") == 0) {
- *type = GTK_UI_MANAGER_SEPARATOR;
- } else {
- PERR("bad type");
- return FALSE;
- }
+ if (safe_strcmp(string, "menu-item") == 0)
+ {
+ *type = GTK_UI_MANAGER_MENUITEM;
+ }
+ else if (safe_strcmp(string, "menu") == 0)
+ {
+ *type = GTK_UI_MANAGER_MENU;
+ }
+ else if (safe_strcmp(string, "separator") == 0)
+ {
+ *type = GTK_UI_MANAGER_SEPARATOR;
+ }
+ else
+ {
+ PERR("bad type");
+ return FALSE;
+ }
- free(string);
+ free(string);
- return TRUE;
+ return TRUE;
}
/* returns malloc'd name */
static char *
gnc_extension_name (SCM extension)
{
- initialize_getters();
+ initialize_getters();
- return gnc_guile_call1_to_string(getters.name, extension);
+ return gnc_guile_call1_to_string(getters.name, extension);
}
@@ -115,71 +122,72 @@
static char *
gnc_extension_documentation (SCM extension)
{
- initialize_getters();
+ initialize_getters();
- return gnc_guile_call1_to_string(getters.documentation, extension);
+ return gnc_guile_call1_to_string(getters.documentation, extension);
}
/* returns g_malloc'd path */
static void
gnc_extension_path (SCM extension, char **fullpath)
{
- SCM path;
- gchar **strings;
- gint i;
- gint num_strings;
+ SCM path;
+ gchar **strings;
+ gint i;
+ gint num_strings;
- initialize_getters();
+ initialize_getters();
- path = gnc_guile_call1_to_list(getters.path, extension);
- if ((path == SCM_UNDEFINED) || scm_is_null(path)) {
- *fullpath = g_strdup("");
- return;
- }
+ path = gnc_guile_call1_to_list(getters.path, extension);
+ if ((path == SCM_UNDEFINED) || scm_is_null(path))
+ {
+ *fullpath = g_strdup("");
+ return;
+ }
- num_strings = scm_ilength(path) + 2;
- strings = g_new0(gchar *, num_strings);
- strings[0] = "/menubar";
+ num_strings = scm_ilength(path) + 2;
+ strings = g_new0(gchar *, num_strings);
+ strings[0] = "/menubar";
- i = 1;
- while (!scm_is_null(path))
- {
- SCM item;
+ i = 1;
+ while (!scm_is_null(path))
+ {
+ SCM item;
- item = SCM_CAR(path);
- path = SCM_CDR(path);
+ item = SCM_CAR(path);
+ path = SCM_CDR(path);
- if (scm_is_string(item))
- {
- if (i == 1)
- strings[i] = g_strdup(scm_to_locale_string(item));
- else
- strings[i] = g_strdup(gettext(scm_to_locale_string(item)));
- }
- else
- {
- g_free(strings);
+ if (scm_is_string(item))
+ {
+ if (i == 1)
+ strings[i] = g_strdup(scm_to_locale_string(item));
+ else
+ strings[i] = g_strdup(gettext(scm_to_locale_string(item)));
+ }
+ else
+ {
+ g_free(strings);
- PERR("not a string");
+ PERR("not a string");
- *fullpath = g_strdup("");
- return;
+ *fullpath = g_strdup("");
+ return;
+ }
+
+ i++;
}
- i++;
- }
+ *fullpath = g_strjoinv("/", strings);
- *fullpath = g_strjoinv("/", strings);
+ for (i = 1; i < num_strings; i++)
+ {
+ if (strings[i] != NULL)
+ {
+ g_free(strings[i]);
+ }
+ }
- for (i = 1; i < num_strings; i++)
- {
- if (strings[i] != NULL)
- {
- g_free(strings[i]);
- }
- }
-
- g_free(strings);
+ g_free(strings);
}
/******************** New Menu Item ********************/
@@ -188,22 +196,23 @@
gnc_ext_gen_action_name (const gchar *name)
{
- const gchar *extChar;
- GString *actionName;
+ const gchar *extChar;
+ GString *actionName;
- actionName = g_string_sized_new( strlen( name ) + 7 );
+ actionName = g_string_sized_new( strlen( name ) + 7 );
- // 'Mum & ble' => 'Mumble'
- for ( extChar = name; *extChar != '\0'; extChar++ ) {
- if ( ! isalnum( *extChar ) )
- continue;
- g_string_append_c( actionName, *extChar );
- }
+ // 'Mum & ble' => 'Mumble'
+ for ( extChar = name; *extChar != '\0'; extChar++ )
+ {
+ if ( ! isalnum( *extChar ) )
+ continue;
+ g_string_append_c( actionName, *extChar );
+ }
- // 'Mumble + 'Action' => 'MumbleAction'
- g_string_append_printf( actionName, "Action" );
+ // 'Mumble + 'Action' => 'MumbleAction'
+ g_string_append_printf( actionName, "Action" );
- return g_string_free(actionName, FALSE);
+ return g_string_free(actionName, FALSE);
}
/******************** Callback ********************/
@@ -211,18 +220,18 @@
void
gnc_extension_invoke_cb (SCM extension, SCM window)
{
- SCM script;
+ SCM script;
- initialize_getters();
+ initialize_getters();
- script = gnc_guile_call1_to_procedure(getters.script, extension);
- if (script == SCM_UNDEFINED)
- {
- PERR("not a procedure.");
- return;
- }
+ script = gnc_guile_call1_to_procedure(getters.script, extension);
+ if (script == SCM_UNDEFINED)
+ {
+ PERR("not a procedure.");
+ return;
+ }
- scm_call_1(script, window);
+ scm_call_1(script, window);
}
/******************** New Menu Item ********************/
@@ -230,76 +239,84 @@
static gboolean
gnc_create_extension_info (SCM extension)
{
- ExtensionInfo *ext_info;
- gchar *typeStr, *tmp;
- const gchar *name;
+ ExtensionInfo *ext_info;
+ gchar *typeStr, *tmp;
+ const gchar *name;
- ext_info = g_new0(ExtensionInfo, 1);
- ext_info->extension = extension;
- gnc_extension_path(extension, &ext_info->path);
- if (!gnc_extension_type( extension, &ext_info->type )) {
- /* Can't parse the type passed to us. Bail now. */
- g_free(ext_info);
- return FALSE;
- }
+ ext_info = g_new0(ExtensionInfo, 1);
+ ext_info->extension = extension;
+ gnc_extension_path(extension, &ext_info->path);
+ if (!gnc_extension_type( extension, &ext_info->type ))
+ {
+ /* Can't parse the type passed to us. Bail now. */
+ g_free(ext_info);
+ return FALSE;
+ }
- /* Get all the pieces */
- name = gnc_extension_name(extension);
- ext_info->ae.label = g_strdup(gettext(name));
- ext_info->ae.name = gnc_ext_gen_action_name(name);
- ext_info->ae.tooltip = gnc_extension_documentation(extension);
- ext_info->ae.stock_id = NULL;
- ext_info->ae.accelerator = NULL;
- ext_info->ae.callback = NULL;
+ /* Get all the pieces */
+ name = gnc_extension_name(extension);
+ ext_info->ae.label = g_strdup(gettext(name));
+ ext_info->ae.name = gnc_ext_gen_action_name(name);
+ ext_info->ae.tooltip = gnc_extension_documentation(extension);
+ ext_info->ae.stock_id = NULL;
+ ext_info->ae.accelerator = NULL;
+ ext_info->ae.callback = NULL;
- tmp = g_strdup_printf("%s/%s", ext_info->path, ext_info->ae.label);
- ext_info->sort_key = g_utf8_collate_key(tmp, -1);
- g_free(tmp);
+ tmp = g_strdup_printf("%s/%s", ext_info->path, ext_info->ae.label);
+ ext_info->sort_key = g_utf8_collate_key(tmp, -1);
+ g_free(tmp);
- switch (ext_info->type) {
- case GTK_UI_MANAGER_MENU: typeStr = "menu"; break;
- case GTK_UI_MANAGER_MENUITEM: typeStr = "menuitem"; break;
- default: typeStr = "unk"; break;
- }
- ext_info->typeStr = typeStr;
+ switch (ext_info->type)
+ {
+ case GTK_UI_MANAGER_MENU:
+ typeStr = "menu";
+ break;
+ case GTK_UI_MANAGER_MENUITEM:
+ typeStr = "menuitem";
+ break;
+ default:
+ typeStr = "unk";
+ break;
+ }
+ ext_info->typeStr = typeStr;
- DEBUG( "extension: %s/%s [%s] tip [%s] type %s\n",
- ext_info->path, ext_info->ae.label, ext_info->ae.name,
- ext_info->ae.tooltip, ext_info->typeStr );
+ DEBUG( "extension: %s/%s [%s] tip [%s] type %s\n",
+ ext_info->path, ext_info->ae.label, ext_info->ae.name,
+ ext_info->ae.tooltip, ext_info->typeStr );
- scm_gc_protect_object(extension);
+ scm_gc_protect_object(extension);
- /* need to append so we can run them in order */
- extension_list = g_slist_append(extension_list, ext_info);
+ /* need to append so we can run them in order */
+ extension_list = g_slist_append(extension_list, ext_info);
- return TRUE;
+ return TRUE;
}
static void
cleanup_extension_info(gpointer extension_info, gpointer not_used)
{
- ExtensionInfo *ext_info = extension_info;
+ ExtensionInfo *ext_info = extension_info;
- if (ext_info->extension)
- scm_gc_unprotect_object(ext_info->extension);
+ if (ext_info->extension)
+ scm_gc_unprotect_object(ext_info->extension);
- g_free(ext_info->sort_key);
- g_free((gchar *)ext_info->ae.name);
- g_free((gchar *)ext_info->ae.label);
- g_free((gchar *)ext_info->ae.tooltip);
- g_free(ext_info->path);
- g_free(ext_info);
+ g_free(ext_info->sort_key);
+ g_free((gchar *)ext_info->ae.name);
+ g_free((gchar *)ext_info->ae.label);
+ g_free((gchar *)ext_info->ae.tooltip);
+ g_free(ext_info->path);
+ g_free(ext_info);
}
void
gnc_add_scm_extension (SCM extension)
{
- if (!gnc_create_extension_info(extension))
- {
- PERR("bad extension");
- return;
- }
+ if (!gnc_create_extension_info(extension))
+ {
+ PERR("bad extension");
+ return;
+ }
}
/******************** Shutdown ********************/
@@ -307,9 +324,9 @@
void
gnc_extensions_shutdown (void)
{
- g_slist_foreach(extension_list, cleanup_extension_info, NULL);
+ g_slist_foreach(extension_list, cleanup_extension_info, NULL);
- g_slist_free(extension_list);
+ g_slist_free(extension_list);
- extension_list = NULL;
+ extension_list = NULL;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-menu-extensions.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-menu-extensions.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-menu-extensions.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -27,14 +27,14 @@
typedef struct _ExtensionInfo
{
- SCM extension;
+ SCM extension;
- GtkActionEntry ae;
- gchar *path;
- gchar *sort_key;
- const gchar *typeStr;
- GtkUIManagerItemType type;
- gboolean accel_assigned;
+ GtkActionEntry ae;
+ gchar *path;
+ gchar *sort_key;
+ const gchar *typeStr;
+ GtkUIManagerItemType type;
+ gboolean accel_assigned;
} ExtensionInfo;
Modified: gnucash/trunk/src/gnome-utils/gnc-period-select.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-period-select.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-period-select.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -38,16 +38,18 @@
#include "gnc-gconf-utils.h"
#include "gnc-period-select.h"
-enum {
- PROP_0,
- PROP_FY_END,
- PROP_SHOW_DATE,
- PROP_DATE_BASE,
+enum
+{
+ PROP_0,
+ PROP_FY_END,
+ PROP_SHOW_DATE,
+ PROP_DATE_BASE,
};
-enum {
- CHANGED,
- LAST_SIGNAL
+enum
+{
+ CHANGED,
+ LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };
@@ -60,34 +62,36 @@
static GtkComboBoxClass *parent_class;
-const gchar *start_strings[GNC_ACCOUNTING_PERIOD_LAST] = {
- /* CY Strings */
- N_("Today"),
- N_("Start of this month"),
- N_("Start of previous month"),
- N_("Start of this quarter"),
- N_("Start of previous quarter"),
- N_("Start of this year"),
- N_("Start of previous year"),
+const gchar *start_strings[GNC_ACCOUNTING_PERIOD_LAST] =
+{
+ /* CY Strings */
+ N_("Today"),
+ N_("Start of this month"),
+ N_("Start of previous month"),
+ N_("Start of this quarter"),
+ N_("Start of previous quarter"),
+ N_("Start of this year"),
+ N_("Start of previous year"),
- /* FY Strings */
- N_("Start of this fiscal year"),
- N_("Start of previous fiscal year"),
+ /* FY Strings */
+ N_("Start of this fiscal year"),
+ N_("Start of previous fiscal year"),
};
-const gchar *end_strings[GNC_ACCOUNTING_PERIOD_LAST] = {
- /* CY Strings */
- N_("Today"),
- N_("End of this month"),
- N_("End of previous month"),
- N_("End of this quarter"),
- N_("End of previous quarter"),
- N_("End of this year"),
- N_("End of previous year"),
+const gchar *end_strings[GNC_ACCOUNTING_PERIOD_LAST] =
+{
+ /* CY Strings */
+ N_("Today"),
+ N_("End of this month"),
+ N_("End of previous month"),
+ N_("End of this quarter"),
+ N_("End of previous quarter"),
+ N_("End of this year"),
+ N_("End of previous year"),
- /* FY Strings */
- N_("End of this fiscal year"),
- N_("End of previous fiscal year"),
+ /* FY Strings */
+ N_("End of this fiscal year"),
+ N_("End of previous fiscal year"),
};
@@ -96,14 +100,14 @@
typedef struct _GncPeriodSelectPrivate GncPeriodSelectPrivate;
struct _GncPeriodSelectPrivate
{
- GtkWidget *selector;
+ GtkWidget *selector;
- gboolean start;
- GDate *fy_end;
+ gboolean start;
+ GDate *fy_end;
- GDate *date_base;
- GtkWidget *date_label;
- GtkWidget *date_align;
+ GDate *date_base;
+ GtkWidget *date_label;
+ GtkWidget *date_align;
};
#define GNC_PERIOD_SELECT_GET_PRIVATE(o) \
@@ -119,9 +123,9 @@
void
gnc_period_select_changed (GncPeriodSelect *period)
{
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- g_signal_emit(G_OBJECT(period), signals[CHANGED], 0);
+ g_signal_emit(G_OBJECT(period), signals[CHANGED], 0);
}
@@ -133,18 +137,18 @@
static void
gnc_period_sample_update_date_label (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
- gchar *time_string;
- time_t secs;
+ GncPeriodSelectPrivate *priv;
+ gchar *time_string;
+ time_t secs;
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- if (!priv->date_label)
- return;
- secs = gnc_period_select_get_time(GNC_PERIOD_SELECT(period));
- time_string = qof_print_date(secs);
- gtk_label_set_label(GTK_LABEL(priv->date_label), time_string);
- g_free(time_string);
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ if (!priv->date_label)
+ return;
+ secs = gnc_period_select_get_time(GNC_PERIOD_SELECT(period));
+ time_string = qof_print_date(secs);
+ gtk_label_set_label(GTK_LABEL(priv->date_label), time_string);
+ g_free(time_string);
}
@@ -161,13 +165,13 @@
static void
gnc_period_sample_combobox_changed (GtkComboBox *box, GncPeriodSelect *period)
{
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- /* Update this widget */
- gnc_period_sample_update_date_label(period);
+ /* Update this widget */
+ gnc_period_sample_update_date_label(period);
- /* Pass it on... */
- gnc_period_select_changed(period);
+ /* Pass it on... */
+ gnc_period_select_changed(period);
}
@@ -183,9 +187,9 @@
*/
static void
gnc_period_sample_new_date_format (GConfEntry *unused,
- GncPeriodSelect *period)
+ GncPeriodSelect *period)
{
- gnc_period_sample_update_date_label(period);
+ gnc_period_sample_update_date_label(period);
}
@@ -203,18 +207,18 @@
GDate *
gnc_period_select_get_fy_end (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ GncPeriodSelectPrivate *priv;
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- g_return_val_if_fail(period != NULL, NULL);
- g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), NULL);
+ g_return_val_if_fail(period != NULL, NULL);
+ g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), NULL);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- if (!priv->fy_end)
- return NULL;
- return g_date_new_dmy(g_date_get_day(priv->fy_end),
- g_date_get_month(priv->fy_end),
- G_DATE_BAD_YEAR);
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ if (!priv->fy_end)
+ return NULL;
+ return g_date_new_dmy(g_date_get_day(priv->fy_end),
+ g_date_get_month(priv->fy_end),
+ G_DATE_BAD_YEAR);
}
@@ -225,69 +229,80 @@
void
gnc_period_select_set_fy_end (GncPeriodSelect *period, const GDate *fy_end)
{
- GncPeriodSelectPrivate *priv;
- const gchar *label;
- gint i;
+ GncPeriodSelectPrivate *priv;
+ const gchar *label;
+ gint i;
- g_return_if_fail(period != NULL);
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ g_return_if_fail(period != NULL);
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- if (priv->fy_end)
- g_date_free(priv->fy_end);
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ if (priv->fy_end)
+ g_date_free(priv->fy_end);
- if (fy_end) {
- priv->fy_end = g_date_new_dmy(g_date_get_day(fy_end),
- g_date_get_month(fy_end),
- G_DATE_BAD_YEAR);
- } else {
- priv->fy_end = NULL;
- }
+ if (fy_end)
+ {
+ priv->fy_end = g_date_new_dmy(g_date_get_day(fy_end),
+ g_date_get_month(fy_end),
+ G_DATE_BAD_YEAR);
+ }
+ else
+ {
+ priv->fy_end = NULL;
+ }
- if (fy_end) {
- for (i = GNC_ACCOUNTING_PERIOD_CYEAR_LAST; i < GNC_ACCOUNTING_PERIOD_FYEAR_LAST; i++) {
- label = priv->start ? _(start_strings[i]) : _(end_strings[i]);
- gtk_combo_box_append_text(GTK_COMBO_BOX(priv->selector), label);
+ if (fy_end)
+ {
+ for (i = GNC_ACCOUNTING_PERIOD_CYEAR_LAST; i < GNC_ACCOUNTING_PERIOD_FYEAR_LAST; i++)
+ {
+ label = priv->start ? _(start_strings[i]) : _(end_strings[i]);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(priv->selector), label);
+ }
}
- } else {
- for (i = GNC_ACCOUNTING_PERIOD_FYEAR_LAST - 1; i >= GNC_ACCOUNTING_PERIOD_FYEAR_LAST; i--) {
- gtk_combo_box_remove_text(GTK_COMBO_BOX(priv->selector), i);
+ else
+ {
+ for (i = GNC_ACCOUNTING_PERIOD_FYEAR_LAST - 1; i >= GNC_ACCOUNTING_PERIOD_FYEAR_LAST; i--)
+ {
+ gtk_combo_box_remove_text(GTK_COMBO_BOX(priv->selector), i);
+ }
}
- }
}
static void
gnc_period_select_set_date_common (GncPeriodSelect *period, const GDate *date)
{
- GncPeriodSelectPrivate *priv;
+ GncPeriodSelectPrivate *priv;
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- if (date) {
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ if (date)
+ {
+ if (priv->date_base)
+ g_date_free(priv->date_base);
+ priv->date_base = g_date_new_dmy(g_date_get_day(date),
+ g_date_get_month(date),
+ g_date_get_year(date));
+ if (priv->date_label == NULL)
+ {
+ priv->date_align = gtk_alignment_new(0.5, 0.5, 0, 0);
+ gtk_alignment_set_padding(GTK_ALIGNMENT(priv->date_align), 0, 0, 6, 0);
+ gtk_box_pack_start_defaults(GTK_BOX(period), priv->date_align);
+ priv->date_label = gtk_label_new("");
+ gtk_container_add(GTK_CONTAINER(priv->date_align), priv->date_label);
+ gtk_widget_show_all(priv->date_align);
+ }
+ gnc_period_sample_update_date_label(period);
+ return;
+ }
+
if (priv->date_base)
- g_date_free(priv->date_base);
- priv->date_base = g_date_new_dmy(g_date_get_day(date),
- g_date_get_month(date),
- g_date_get_year(date));
- if (priv->date_label == NULL) {
- priv->date_align = gtk_alignment_new(0.5, 0.5, 0, 0);
- gtk_alignment_set_padding(GTK_ALIGNMENT(priv->date_align), 0, 0, 6, 0);
- gtk_box_pack_start_defaults(GTK_BOX(period), priv->date_align);
- priv->date_label = gtk_label_new("");
- gtk_container_add(GTK_CONTAINER(priv->date_align), priv->date_label);
- gtk_widget_show_all(priv->date_align);
+ {
+ g_date_free(priv->date_base);
+ priv->date_base = NULL;
+ gtk_widget_destroy(priv->date_align);
+ priv->date_align = NULL;
+ priv->date_label = NULL;
}
- gnc_period_sample_update_date_label(period);
- return;
- }
-
- if (priv->date_base) {
- g_date_free(priv->date_base);
- priv->date_base = NULL;
- gtk_widget_destroy(priv->date_align);
- priv->date_align = NULL;
- priv->date_label = NULL;
- }
}
@@ -297,13 +312,13 @@
gboolean
gnc_period_select_get_show_date (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
+ GncPeriodSelectPrivate *priv;
- g_return_val_if_fail(period != NULL, FALSE);
- g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), FALSE);
+ g_return_val_if_fail(period != NULL, FALSE);
+ g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), FALSE);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- return (priv->date_base != NULL);
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ return (priv->date_base != NULL);
}
/* Set the "show date" setting on a GncPeriodSelect widget. If set
@@ -313,35 +328,38 @@
void
gnc_period_select_set_show_date (GncPeriodSelect *period, const gboolean show_date)
{
- GDate date;
+ GDate date;
- g_return_if_fail(period != NULL);
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ g_return_if_fail(period != NULL);
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- if (show_date) {
- g_date_clear(&date, 1);
- g_date_set_time_t(&date, time (NULL));
- gnc_period_select_set_date_common(period, &date);
- } else {
- gnc_period_select_set_date_common(period, NULL);
- }
+ if (show_date)
+ {
+ g_date_clear(&date, 1);
+ g_date_set_time_t(&date, time (NULL));
+ gnc_period_select_set_date_common(period, &date);
+ }
+ else
+ {
+ gnc_period_select_set_date_common(period, NULL);
+ }
}
GDate *
gnc_period_select_get_date_base (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
+ GncPeriodSelectPrivate *priv;
- g_return_val_if_fail(period != NULL, NULL);
- g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), NULL);
+ g_return_val_if_fail(period != NULL, NULL);
+ g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), NULL);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- if (!priv->date_base)
- return NULL;
- return g_date_new_dmy(g_date_get_day(priv->date_base),
- g_date_get_month(priv->date_base),
- g_date_get_year(priv->date_base));
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ if (!priv->date_base)
+ return NULL;
+ return g_date_new_dmy(g_date_get_day(priv->date_base),
+ g_date_get_month(priv->date_base),
+ g_date_get_year(priv->date_base));
}
@@ -351,10 +369,10 @@
void
gnc_period_select_set_date_base (GncPeriodSelect *period, const GDate *date_base)
{
- g_return_if_fail(period != NULL);
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ g_return_if_fail(period != NULL);
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- gnc_period_select_set_date_common(period, date_base);
+ gnc_period_select_set_date_common(period, date_base);
}
@@ -367,26 +385,26 @@
*/
static void
gnc_period_select_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- GncPeriodSelect *period = GNC_PERIOD_SELECT(object);
+ GncPeriodSelect *period = GNC_PERIOD_SELECT(object);
- switch (prop_id)
+ switch (prop_id)
{
case PROP_FY_END:
- g_value_set_pointer(value, gnc_period_select_get_fy_end(period));
- break;
+ g_value_set_pointer(value, gnc_period_select_get_fy_end(period));
+ break;
case PROP_SHOW_DATE:
- g_value_set_boolean(value, gnc_period_select_get_show_date(period));
- break;
+ g_value_set_boolean(value, gnc_period_select_get_show_date(period));
+ break;
case PROP_DATE_BASE:
- g_value_set_pointer(value, gnc_period_select_get_date_base(period));
- break;
+ g_value_set_pointer(value, gnc_period_select_get_date_base(period));
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+ break;
}
}
@@ -401,26 +419,26 @@
*/
static void
gnc_period_select_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- GncPeriodSelect *period = GNC_PERIOD_SELECT(object);
+ GncPeriodSelect *period = GNC_PERIOD_SELECT(object);
- switch (prop_id)
+ switch (prop_id)
{
case PROP_FY_END:
- gnc_period_select_set_fy_end(period, g_value_get_pointer(value));
- break;
+ gnc_period_select_set_fy_end(period, g_value_get_pointer(value));
+ break;
case PROP_SHOW_DATE:
- gnc_period_select_set_show_date(period, g_value_get_boolean(value));
- break;
+ gnc_period_select_set_show_date(period, g_value_get_boolean(value));
+ break;
case PROP_DATE_BASE:
- gnc_period_select_set_date_base(period, g_value_get_pointer(value));
- break;
+ gnc_period_select_set_date_base(period, g_value_get_pointer(value));
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+ break;
}
}
@@ -438,28 +456,30 @@
GType
gnc_period_select_get_type (void)
{
- static GType period_select_type = 0;
+ static GType period_select_type = 0;
- if (period_select_type == 0) {
- static const GTypeInfo period_select_info = {
- sizeof (GncPeriodSelectClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_period_select_class_init,
- NULL,
- NULL,
- sizeof (GncPeriodSelect),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_period_select_init,
- NULL
- };
+ if (period_select_type == 0)
+ {
+ static const GTypeInfo period_select_info =
+ {
+ sizeof (GncPeriodSelectClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_period_select_class_init,
+ NULL,
+ NULL,
+ sizeof (GncPeriodSelect),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_period_select_init,
+ NULL
+ };
- period_select_type = g_type_register_static(GTK_TYPE_HBOX,
- "GncPeriodSelect",
- &period_select_info, 0);
- }
+ period_select_type = g_type_register_static(GTK_TYPE_HBOX,
+ "GncPeriodSelect",
+ &period_select_info, 0);
+ }
- return period_select_type;
+ return period_select_type;
}
@@ -475,47 +495,47 @@
static void
gnc_period_select_class_init (GncPeriodSelectClass *klass)
{
- GObjectClass *gobject_class;
+ GObjectClass *gobject_class;
- parent_class = g_type_class_peek_parent(klass);
+ parent_class = g_type_class_peek_parent(klass);
- gobject_class = G_OBJECT_CLASS(klass);
- gobject_class->set_property = gnc_period_select_set_property;
- gobject_class->get_property = gnc_period_select_get_property;
- gobject_class->finalize = gnc_period_select_finalize;
+ gobject_class = G_OBJECT_CLASS(klass);
+ gobject_class->set_property = gnc_period_select_set_property;
+ gobject_class->get_property = gnc_period_select_get_property;
+ gobject_class->finalize = gnc_period_select_finalize;
- signals[CHANGED] = g_signal_new("changed",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(GncPeriodSelectClass, changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ signals[CHANGED] = g_signal_new("changed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(GncPeriodSelectClass, changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
- g_object_class_install_property(gobject_class,
- PROP_FY_END,
- g_param_spec_pointer("fy-end",
- "Fiscal Year End",
- "The fiscal year to use for this widget",
- G_PARAM_READWRITE));
- g_object_class_install_property(gobject_class,
- PROP_SHOW_DATE,
- g_param_spec_boolean("show-date",
- "Show Date",
- "Show the start/end date of the accouting period in this widget",
- FALSE,
- G_PARAM_READWRITE));
- g_object_class_install_property(gobject_class,
- PROP_DATE_BASE,
- g_param_spec_pointer("date-base",
- "Date Base",
- "The starting date to use for display calculations",
- G_PARAM_READWRITE));
+ g_object_class_install_property(gobject_class,
+ PROP_FY_END,
+ g_param_spec_pointer("fy-end",
+ "Fiscal Year End",
+ "The fiscal year to use for this widget",
+ G_PARAM_READWRITE));
+ g_object_class_install_property(gobject_class,
+ PROP_SHOW_DATE,
+ g_param_spec_boolean("show-date",
+ "Show Date",
+ "Show the start/end date of the accouting period in this widget",
+ FALSE,
+ G_PARAM_READWRITE));
+ g_object_class_install_property(gobject_class,
+ PROP_DATE_BASE,
+ g_param_spec_pointer("date-base",
+ "Date Base",
+ "The starting date to use for display calculations",
+ G_PARAM_READWRITE));
- g_type_class_add_private(klass, sizeof(GncPeriodSelectPrivate));
+ g_type_class_add_private(klass, sizeof(GncPeriodSelectPrivate));
}
@@ -530,10 +550,10 @@
static void
gnc_period_select_init (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
+ GncPeriodSelectPrivate *priv;
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- priv->start = TRUE;
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ priv->start = TRUE;
}
@@ -550,31 +570,31 @@
static void
gnc_period_select_finalize (GObject *object)
{
- GncPeriodSelectPrivate *priv;
- GncPeriodSelect *period;
+ GncPeriodSelectPrivate *priv;
+ GncPeriodSelect *period;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_PERIOD_SELECT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_PERIOD_SELECT (object));
- period = GNC_PERIOD_SELECT(object);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ period = GNC_PERIOD_SELECT(object);
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- /* Stop tracking changes to date formatting */
- gnc_gconf_general_remove_cb(KEY_DATE_FORMAT,
- (GncGconfGeneralCb)gnc_period_sample_new_date_format, period);
+ /* Stop tracking changes to date formatting */
+ gnc_gconf_general_remove_cb(KEY_DATE_FORMAT,
+ (GncGconfGeneralCb)gnc_period_sample_new_date_format, period);
- /* The selector and date_label were added to the hbox. They will be
- * freed automatically. */
- if (priv->fy_end)
- g_date_free(priv->fy_end);
- if (priv->date_base)
- g_date_free(priv->date_base);
+ /* The selector and date_label were added to the hbox. They will be
+ * freed automatically. */
+ if (priv->fy_end)
+ g_date_free(priv->fy_end);
+ if (priv->date_base)
+ g_date_free(priv->date_base);
- /* Do not free the private data structure. It is part of a larger
- * memory block allocated by the type system. */
+ /* Do not free the private data structure. It is part of a larger
+ * memory block allocated by the type system. */
- if (G_OBJECT_CLASS(parent_class)->finalize)
- (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+ if (G_OBJECT_CLASS(parent_class)->finalize)
+ (* G_OBJECT_CLASS(parent_class)->finalize) (object);
}
@@ -590,37 +610,38 @@
GtkWidget *
gnc_period_select_new (gboolean starting_labels)
{
- GncPeriodSelectPrivate *priv;
- GncPeriodSelect *period;
- const gchar *label;
- gint i;
+ GncPeriodSelectPrivate *priv;
+ GncPeriodSelect *period;
+ const gchar *label;
+ gint i;
- period = g_object_new(GNC_TYPE_PERIOD_SELECT, NULL);
+ period = g_object_new(GNC_TYPE_PERIOD_SELECT, NULL);
- /* Set up private data structures */
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- priv->selector = gtk_combo_box_new_text();
- priv->start = starting_labels;
+ /* Set up private data structures */
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ priv->selector = gtk_combo_box_new_text();
+ priv->start = starting_labels;
- /* Add the internal widgets to the hbox */
- gtk_box_pack_start_defaults(GTK_BOX(period), priv->selector);
- gtk_widget_show(priv->selector);
+ /* Add the internal widgets to the hbox */
+ gtk_box_pack_start_defaults(GTK_BOX(period), priv->selector);
+ gtk_widget_show(priv->selector);
- /* Find out when the combo box changes */
- g_signal_connect(G_OBJECT(priv->selector), "changed",
- G_CALLBACK(gnc_period_sample_combobox_changed), period);
+ /* Find out when the combo box changes */
+ g_signal_connect(G_OBJECT(priv->selector), "changed",
+ G_CALLBACK(gnc_period_sample_combobox_changed), period);
- /* Build all the labels except the fiscal year labels */
- for (i = 0; i < GNC_ACCOUNTING_PERIOD_CYEAR_LAST; i++) {
- label = starting_labels ? _(start_strings[i]) : _(end_strings[i]);
- gtk_combo_box_append_text(GTK_COMBO_BOX(priv->selector), label);
- }
+ /* Build all the labels except the fiscal year labels */
+ for (i = 0; i < GNC_ACCOUNTING_PERIOD_CYEAR_LAST; i++)
+ {
+ label = starting_labels ? _(start_strings[i]) : _(end_strings[i]);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(priv->selector), label);
+ }
- /* Track changes to date formatting */
- gnc_gconf_general_register_cb(KEY_DATE_FORMAT,
- (GncGconfGeneralCb)gnc_period_sample_new_date_format, period);
+ /* Track changes to date formatting */
+ gnc_gconf_general_register_cb(KEY_DATE_FORMAT,
+ (GncGconfGeneralCb)gnc_period_sample_new_date_format, period);
- return GTK_WIDGET (period);
+ return GTK_WIDGET (period);
}
@@ -631,15 +652,15 @@
*/
GtkWidget *
gnc_period_select_new_glade (gchar *widget_name,
- gchar *string1, gchar *string2,
- gint int1, gint int2)
+ gchar *string1, gchar *string2,
+ gint int1, gint int2)
{
- GtkWidget *widget;
- widget = gnc_period_select_new(int1 != 0);
- if (int2)
- gnc_period_select_set_show_date(GNC_PERIOD_SELECT(widget), TRUE);
- gtk_widget_show(widget);
- return widget;
+ GtkWidget *widget;
+ widget = gnc_period_select_new(int1 != 0);
+ if (int2)
+ gnc_period_select_set_show_date(GNC_PERIOD_SELECT(widget), TRUE);
+ gtk_widget_show(widget);
+ return widget;
}
/** @} */
@@ -655,17 +676,17 @@
*/
void
gnc_period_select_set_active (GncPeriodSelect *period,
- GncAccountingPeriod which)
+ GncAccountingPeriod which)
{
- GncPeriodSelectPrivate *priv;
+ GncPeriodSelectPrivate *priv;
- g_return_if_fail(period != NULL);
- g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
- g_return_if_fail(which >= 0);
- g_return_if_fail(which < GNC_ACCOUNTING_PERIOD_LAST);
+ g_return_if_fail(period != NULL);
+ g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+ g_return_if_fail(which >= 0);
+ g_return_if_fail(which < GNC_ACCOUNTING_PERIOD_LAST);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- gtk_combo_box_set_active(GTK_COMBO_BOX(priv->selector), which);
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(priv->selector), which);
}
@@ -676,13 +697,13 @@
GncAccountingPeriod
gnc_period_select_get_active (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
+ GncPeriodSelectPrivate *priv;
- g_return_val_if_fail(period != NULL, -1);
- g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), -1);
+ g_return_val_if_fail(period != NULL, -1);
+ g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), -1);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- return gtk_combo_box_get_active(GTK_COMBO_BOX(priv->selector));
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ return gtk_combo_box_get_active(GTK_COMBO_BOX(priv->selector));
}
@@ -693,22 +714,22 @@
GDate *
gnc_period_select_get_date (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
- GncAccountingPeriod which;
+ GncPeriodSelectPrivate *priv;
+ GncAccountingPeriod which;
- g_return_val_if_fail(period != NULL, 0);
- g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), 0);
+ g_return_val_if_fail(period != NULL, 0);
+ g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), 0);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- which = gtk_combo_box_get_active(GTK_COMBO_BOX(priv->selector));
- if (which == -1)
- return NULL;
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ which = gtk_combo_box_get_active(GTK_COMBO_BOX(priv->selector));
+ if (which == -1)
+ return NULL;
- if (priv->start)
- return gnc_accounting_period_start_gdate(which, priv->fy_end,
- priv->date_base);
- return gnc_accounting_period_end_gdate(which, priv->fy_end,
- priv->date_base);
+ if (priv->start)
+ return gnc_accounting_period_start_gdate(which, priv->fy_end,
+ priv->date_base);
+ return gnc_accounting_period_end_gdate(which, priv->fy_end,
+ priv->date_base);
}
@@ -719,22 +740,22 @@
time_t
gnc_period_select_get_time (GncPeriodSelect *period)
{
- GncPeriodSelectPrivate *priv;
- GncAccountingPeriod which;
+ GncPeriodSelectPrivate *priv;
+ GncAccountingPeriod which;
- g_return_val_if_fail(period != NULL, 0);
- g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), 0);
+ g_return_val_if_fail(period != NULL, 0);
+ g_return_val_if_fail(GNC_IS_PERIOD_SELECT(period), 0);
- priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
- which = gtk_combo_box_get_active(GTK_COMBO_BOX(priv->selector));
- if (which == -1)
- return 0;
+ priv = GNC_PERIOD_SELECT_GET_PRIVATE(period);
+ which = gtk_combo_box_get_active(GTK_COMBO_BOX(priv->selector));
+ if (which == -1)
+ return 0;
- if (priv->start)
- return gnc_accounting_period_start_timet(which, priv->fy_end,
- priv->date_base);
- return gnc_accounting_period_end_timet(which, priv->fy_end,
- priv->date_base);
+ if (priv->start)
+ return gnc_accounting_period_start_timet(which, priv->fy_end,
+ priv->date_base);
+ return gnc_accounting_period_end_timet(which, priv->fy_end,
+ priv->date_base);
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-period-select.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-period-select.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-period-select.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -42,15 +42,17 @@
#define GNC_IS_PERIOD_SELECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_PERIOD_SELECT))
/* typedefs & structures */
-typedef struct {
- GtkHBox hbox;
+typedef struct
+{
+ GtkHBox hbox;
} GncPeriodSelect;
-typedef struct {
- GtkHBoxClass hbox;
+typedef struct
+{
+ GtkHBoxClass hbox;
- /* Signals */
- void (*changed) (GncPeriodSelect *period);
+ /* Signals */
+ void (*changed) (GncPeriodSelect *period);
} GncPeriodSelectClass;
@@ -73,7 +75,7 @@
/** Create a new GncPeriodSelect widget which is used to select a
* accounting period like "previous month" or "this year".
- *
+ *
* @param starting_labels If set to TRUE then all the labels will
* refer to the "Start of...". If FALSE, labels will refer to "End
* of...".
@@ -91,8 +93,8 @@
* @return A newly created GncPeriodSelect widget.
*/
GtkWidget * gnc_period_select_new_glade (gchar *widget_name,
- gchar *string1, gchar *string2,
- gint int1, gint int2);
+ gchar *string1, gchar *string2,
+ gint int1, gint int2);
/** @} */
@@ -102,7 +104,7 @@
/** Set the fiscal year end on a GncPeriodSelect widget. If set to a
* value other than NULL then widget will include fiscal accounting
* period like "this fiscal year".
- *
+ *
* @param period The GncPeriodSelect widget to update.
*
* @param fy_end The new fiscal year end value, or NULL if no fiscal
@@ -115,7 +117,7 @@
/** Get the current value of the fiscal year end setting from a
* GncPeriodSelect widget. If the result is NULL then fiscal years
* are not currently supported.
- *
+ *
* @param period The GncPeriodSelect widget to query.
*
* @return A pointer to a GDate containing the fiscal year end value,
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin-file-history.c --
+/*
+ * gnc-plugin-file-history.c --
* Copyright (C) 2003,2005 David Hampton <hampton at employees.org>
*
* This program is free software; you can redistribute it and/or
@@ -76,17 +76,18 @@
* will be updated to reflect the users recent choices. This list is
* limited to ten actions, although there may be a smaller limit set
* by the user. The typical limit is four. */
-static GtkActionEntry gnc_plugin_actions [] = {
- { "RecentFile0Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile1Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile2Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile3Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile4Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile5Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile6Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile7Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile8Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
- { "RecentFile9Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+static GtkActionEntry gnc_plugin_actions [] =
+{
+ { "RecentFile0Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile1Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile2Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile3Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile4Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile5Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile6Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile7Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile8Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
+ { "RecentFile9Action", NULL, "", NULL, NULL, G_CALLBACK (gnc_plugin_file_history_cmd_open_file) },
};
/** The number of actions provided by this plugin. */
static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
@@ -96,7 +97,7 @@
* structure is unused. */
typedef struct GncPluginFileHistoryPrivate
{
- gpointer dummy;
+ gpointer dummy;
} GncPluginFileHistoryPrivate;
@@ -118,7 +119,7 @@
static gchar *
gnc_history_gconf_index_to_key (guint index)
{
- return g_strdup_printf(HISTORY_STRING_FILE_N, index);
+ return g_strdup_printf(HISTORY_STRING_FILE_N, index);
}
@@ -133,14 +134,14 @@
static gint
gnc_history_gconf_key_to_index (const gchar *key)
{
- gint index, result;
+ gint index, result;
- result = sscanf(key, HISTORY_STRING_FILE_N, &index);
- if (result != 1)
- return -1;
- if ((index < 0) || (index >= gnc_plugin_n_actions))
- return -1;
- return index;
+ result = sscanf(key, HISTORY_STRING_FILE_N, &index);
+ if (result != 1)
+ return -1;
+ if ((index < 0) || (index >= gnc_plugin_n_actions))
+ return -1;
+ return index;
}
@@ -152,57 +153,64 @@
void
gnc_history_add_file (const char *newfile)
{
- gchar *filename, *from, *to;
- gint i, last;
+ gchar *filename, *from, *to;
+ gint i, last;
- if (newfile == NULL)
- return;
- if (!g_utf8_validate(newfile, -1, NULL))
- return;
+ if (newfile == NULL)
+ return;
+ if (!g_utf8_validate(newfile, -1, NULL))
+ return;
- /*
- * Look for the filename in gconf.
- */
- last = MAX_HISTORY_FILES - 1;
- for (i = 0; i < MAX_HISTORY_FILES; i++) {
- from = gnc_history_gconf_index_to_key(i);
- filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, from, NULL);
- g_free(from);
+ /*
+ * Look for the filename in gconf.
+ */
+ last = MAX_HISTORY_FILES - 1;
+ for (i = 0; i < MAX_HISTORY_FILES; i++)
+ {
+ from = gnc_history_gconf_index_to_key(i);
+ filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, from, NULL);
+ g_free(from);
- if (!filename) {
- last = i;
- break;
+ if (!filename)
+ {
+ last = i;
+ break;
+ }
+ if (g_utf8_collate(newfile, filename) == 0)
+ {
+ g_free(filename);
+ last = i;
+ break;
+ }
+ g_free(filename);
}
- if (g_utf8_collate(newfile, filename) == 0) {
- g_free(filename);
- last = i;
- break;
+
+ /*
+ * Shuffle filenames upward through gconf.
+ */
+ to = gnc_history_gconf_index_to_key(last);
+ for (i = last - 1; i >= 0; i--)
+ {
+ from = gnc_history_gconf_index_to_key(i);
+ filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, from, NULL);
+ if (filename)
+ {
+ gnc_gconf_set_string(HISTORY_STRING_SECTION, to, filename, NULL);
+ g_free(filename);
+ }
+ else
+ {
+ gnc_gconf_unset(HISTORY_STRING_SECTION, to, NULL);
+ }
+ g_free(to);
+ to = from;
}
- g_free(filename);
- }
- /*
- * Shuffle filenames upward through gconf.
- */
- to = gnc_history_gconf_index_to_key(last);
- for (i = last - 1; i >= 0; i--) {
- from = gnc_history_gconf_index_to_key(i);
- filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, from, NULL);
- if (filename) {
- gnc_gconf_set_string(HISTORY_STRING_SECTION, to, filename, NULL);
- g_free(filename);
- } else {
- gnc_gconf_unset(HISTORY_STRING_SECTION, to, NULL);
- }
+ /*
+ * Store the new zero entry.
+ */
+ gnc_gconf_set_string(HISTORY_STRING_SECTION, to, newfile, NULL);
g_free(to);
- to = from;
- }
-
- /*
- * Store the new zero entry.
- */
- gnc_gconf_set_string(HISTORY_STRING_SECTION, to, newfile, NULL);
- g_free(to);
}
@@ -214,33 +222,39 @@
void
gnc_history_remove_file (const char *oldfile)
{
- gchar *filename, *from, *to;
- gint i, j;
+ gchar *filename, *from, *to;
+ gint i, j;
- if (!oldfile)
- return;
- if (!g_utf8_validate(oldfile, -1, NULL))
- return;
+ if (!oldfile)
+ return;
+ if (!g_utf8_validate(oldfile, -1, NULL))
+ return;
- for (i=0, j=0; i<MAX_HISTORY_FILES; i++) {
- from = gnc_history_gconf_index_to_key(i);
- filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, from, NULL);
+ for (i = 0, j = 0; i < MAX_HISTORY_FILES; i++)
+ {
+ from = gnc_history_gconf_index_to_key(i);
+ filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, from, NULL);
- if (filename) {
- if (g_utf8_collate(oldfile, filename) == 0) {
- gnc_gconf_unset(HISTORY_STRING_SECTION, from, NULL);
- } else {
- if (i != j) {
- to = gnc_history_gconf_index_to_key(j);
- gnc_gconf_set_string(HISTORY_STRING_SECTION, to, filename, NULL);
- gnc_gconf_unset(HISTORY_STRING_SECTION, from, NULL);
- g_free(to);
+ if (filename)
+ {
+ if (g_utf8_collate(oldfile, filename) == 0)
+ {
+ gnc_gconf_unset(HISTORY_STRING_SECTION, from, NULL);
+ }
+ else
+ {
+ if (i != j)
+ {
+ to = gnc_history_gconf_index_to_key(j);
+ gnc_gconf_set_string(HISTORY_STRING_SECTION, to, filename, NULL);
+ gnc_gconf_unset(HISTORY_STRING_SECTION, from, NULL);
+ g_free(to);
+ }
+ j++;
+ }
}
- j++;
- }
+ g_free(from);
}
- g_free(from);
- }
}
/* Retrieve the name of the file most recently accessed. This is the
@@ -250,13 +264,13 @@
char *
gnc_history_get_last (void)
{
- char *filename, *key;
+ char *filename, *key;
- key = gnc_history_gconf_index_to_key(0);
- filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, key, NULL);
- g_free(key);
+ key = gnc_history_gconf_index_to_key(0);
+ filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, key, NULL);
+ g_free(key);
- return filename;
+ return filename;
}
@@ -276,72 +290,85 @@
static gchar *
gnc_history_generate_label (int index, const gchar *filename)
{
- const gchar *src;
- gchar *result, *dst;
- gunichar unichar;
+ const gchar *src;
+ gchar *result, *dst;
+ gunichar unichar;
- /* raw byte length, not num characters */
- result = g_malloc(strlen(filename) * 2);
+ /* raw byte length, not num characters */
+ result = g_malloc(strlen(filename) * 2);
- dst = result;
- if (index < 10)
- dst += g_sprintf(result, "_%d ", (index + 1) % 10);
+ dst = result;
+ if (index < 10)
+ dst += g_sprintf(result, "_%d ", (index + 1) % 10);
- /* If the filename begins with "mysql://" or "postgres://", hide the
- user name and password. Otherwise, it is a filename - hide everything
- except the file name. */
+ /* If the filename begins with "mysql://" or "postgres://", hide the
+ user name and password. Otherwise, it is a filename - hide everything
+ except the file name. */
- if (g_ascii_strncasecmp(filename, "mysql://", 8) == 0 ||
- g_ascii_strncasecmp(filename, "postgres://", 11) == 0 ) {
- gint num_colons = 0;
- gboolean has_explicit_port;
+ if (g_ascii_strncasecmp(filename, "mysql://", 8) == 0 ||
+ g_ascii_strncasecmp(filename, "postgres://", 11) == 0 )
+ {
+ gint num_colons = 0;
+ gboolean has_explicit_port;
- /* Count the number of colons to see if there is an explicit port number or not */
- for (src = filename; *src; src = g_utf8_next_char(src)) {
- gunichar c = g_utf8_get_char(src);
- if (c == ':') num_colons++;
- }
- has_explicit_port = (num_colons == 5);
- num_colons = 0;
+ /* Count the number of colons to see if there is an explicit port number or not */
+ for (src = filename; *src; src = g_utf8_next_char(src))
+ {
+ gunichar c = g_utf8_get_char(src);
+ if (c == ':') num_colons++;
+ }
+ has_explicit_port = (num_colons == 5);
+ num_colons = 0;
- /* Loop for all chars and copy from 'src' to 'dst'. While doing this,
- convert username and password (after 2nd ':', 3rd if explicit port) to asterisks. */
- src = filename;
- for( ; *src; src = g_utf8_next_char(src)) {
- if (*src == ':' ||
- (!has_explicit_port && num_colons < 3) ||
- (has_explicit_port && num_colons < 4)) {
- unichar = g_utf8_get_char(src);
- } else {
- unichar = '*';
- }
- dst += g_unichar_to_utf8 (unichar, dst);
- if (unichar == '_') {
- dst += g_unichar_to_utf8 ('_', dst);
- } else if (unichar == ':') {
- num_colons++;
- }
- }
- } else {
- /* Find the filename portion of the path */
- src = g_utf8_strrchr(filename, -1, G_DIR_SEPARATOR);
- if (src) {
- src = g_utf8_next_char(src);
+ /* Loop for all chars and copy from 'src' to 'dst'. While doing this,
+ convert username and password (after 2nd ':', 3rd if explicit port) to asterisks. */
+ src = filename;
+ for ( ; *src; src = g_utf8_next_char(src))
+ {
+ if (*src == ':' ||
+ (!has_explicit_port && num_colons < 3) ||
+ (has_explicit_port && num_colons < 4))
+ {
+ unichar = g_utf8_get_char(src);
+ }
+ else
+ {
+ unichar = '*';
+ }
+ dst += g_unichar_to_utf8 (unichar, dst);
+ if (unichar == '_')
+ {
+ dst += g_unichar_to_utf8 ('_', dst);
+ }
+ else if (unichar == ':')
+ {
+ num_colons++;
+ }
+ }
+ }
+ else
+ {
+ /* Find the filename portion of the path */
+ src = g_utf8_strrchr(filename, -1, G_DIR_SEPARATOR);
+ if (src)
+ {
+ src = g_utf8_next_char(src);
- /* Fix up any underline characters so they aren't mistaken as
- * command accelerator keys. */
- for ( ; *src; src = g_utf8_next_char(src)) {
- unichar = g_utf8_get_char(src);
- dst += g_unichar_to_utf8 (unichar, dst);
+ /* Fix up any underline characters so they aren't mistaken as
+ * command accelerator keys. */
+ for ( ; *src; src = g_utf8_next_char(src))
+ {
+ unichar = g_utf8_get_char(src);
+ dst += g_unichar_to_utf8 (unichar, dst);
- if (unichar == '_')
- dst += g_unichar_to_utf8 ('_', dst);
- }
- }
- }
+ if (unichar == '_')
+ dst += g_unichar_to_utf8 ('_', dst);
+ }
+ }
+ }
- *dst = '\0';
- return result;
+ *dst = '\0';
+ return result;
}
@@ -364,43 +391,46 @@
*/
static void
gnc_history_update_action (GncMainWindow *window,
- gint index,
- const gchar *filename)
+ gint index,
+ const gchar *filename)
{
- GtkActionGroup *action_group;
- GtkAction *action;
- gchar *action_name, *label_name, *old_filename;
- gint limit;
+ GtkActionGroup *action_group;
+ GtkAction *action;
+ gchar *action_name, *label_name, *old_filename;
+ gint limit;
- ENTER("window %p, index %d, filename %s", window, index,
- filename ? filename : "(null)");
- /* Get the action group */
- action_group =
- gnc_main_window_get_action_group(window, PLUGIN_ACTIONS_NAME);
+ ENTER("window %p, index %d, filename %s", window, index,
+ filename ? filename : "(null)");
+ /* Get the action group */
+ action_group =
+ gnc_main_window_get_action_group(window, PLUGIN_ACTIONS_NAME);
- action_name = g_strdup_printf("RecentFile%dAction", index);
- action = gtk_action_group_get_action (action_group, action_name);
+ action_name = g_strdup_printf("RecentFile%dAction", index);
+ action = gtk_action_group_get_action (action_group, action_name);
- limit = gnc_gconf_get_int (HISTORY_STRING_SECTION,
- HISTORY_STRING_MAXFILES,
- NULL);
+ limit = gnc_gconf_get_int (HISTORY_STRING_SECTION,
+ HISTORY_STRING_MAXFILES,
+ NULL);
- if (filename && (strlen(filename) > 0) && (index < limit)) {
- /* set the menu label (w/accelerator) */
- label_name = gnc_history_generate_label(index, filename);
- g_object_set(G_OBJECT(action), "label", label_name, "visible", TRUE, NULL);
- g_free(label_name);
+ if (filename && (strlen(filename) > 0) && (index < limit))
+ {
+ /* set the menu label (w/accelerator) */
+ label_name = gnc_history_generate_label(index, filename);
+ g_object_set(G_OBJECT(action), "label", label_name, "visible", TRUE, NULL);
+ g_free(label_name);
- /* set the filename for the callback function */
- old_filename = g_object_get_data(G_OBJECT(action), FILENAME_STRING);
- if (old_filename)
- g_free(old_filename);
- g_object_set_data(G_OBJECT(action), FILENAME_STRING, g_strdup(filename));
- } else {
- gtk_action_set_visible(action, FALSE);
- }
- g_free(action_name);
- LEAVE("");
+ /* set the filename for the callback function */
+ old_filename = g_object_get_data(G_OBJECT(action), FILENAME_STRING);
+ if (old_filename)
+ g_free(old_filename);
+ g_object_set_data(G_OBJECT(action), FILENAME_STRING, g_strdup(filename));
+ }
+ else
+ {
+ gtk_action_set_visible(action, FALSE);
+ }
+ g_free(action_name);
+ LEAVE("");
}
@@ -415,18 +445,19 @@
static void
gnc_history_update_menus (GncMainWindow *window)
{
- gchar *filename, *key;
- guint i;
+ gchar *filename, *key;
+ guint i;
- ENTER("");
- for (i = 0; i < MAX_HISTORY_FILES; i++) {
- key = gnc_history_gconf_index_to_key(i);
- filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, key, NULL);
- gnc_history_update_action(window, i, filename);
- g_free(filename);
- g_free(key);
- }
- LEAVE("");
+ ENTER("");
+ for (i = 0; i < MAX_HISTORY_FILES; i++)
+ {
+ key = gnc_history_gconf_index_to_key(i);
+ filename = gnc_gconf_get_string(HISTORY_STRING_SECTION, key, NULL);
+ gnc_history_update_action(window, i, filename);
+ g_free(filename);
+ g_free(key);
+ }
+ LEAVE("");
}
@@ -447,41 +478,44 @@
*/
static void
gnc_plugin_history_list_changed (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
{
- GncMainWindow *window;
- GConfValue *value;
- const gchar *fullkey, *key, *filename;
- gint index;
+ GncMainWindow *window;
+ GConfValue *value;
+ const gchar *fullkey, *key, *filename;
+ gint index;
- ENTER("");
- window = GNC_MAIN_WINDOW(user_data);
+ ENTER("");
+ window = GNC_MAIN_WINDOW(user_data);
- fullkey = gconf_entry_get_key(entry);
- key = strrchr(fullkey, '/') + 1;
- if (strcmp(key, HISTORY_STRING_MAXFILES) == 0) {
- gnc_history_update_menus (window);
- LEAVE("updated maxfiles");
- return;
- }
- index = gnc_history_gconf_key_to_index(key);
- if (index < 0) {
- LEAVE("bad index");
- return;
- }
+ fullkey = gconf_entry_get_key(entry);
+ key = strrchr(fullkey, '/') + 1;
+ if (strcmp(key, HISTORY_STRING_MAXFILES) == 0)
+ {
+ gnc_history_update_menus (window);
+ LEAVE("updated maxfiles");
+ return;
+ }
+ index = gnc_history_gconf_key_to_index(key);
+ if (index < 0)
+ {
+ LEAVE("bad index");
+ return;
+ }
- value = gconf_entry_get_value(entry);
- if (!value) {
- LEAVE("No gconf value");
- return;
- }
- filename = gconf_value_get_string(value);
- gnc_history_update_action (window, index, filename);
+ value = gconf_entry_get_value(entry);
+ if (!value)
+ {
+ LEAVE("No gconf value");
+ return;
+ }
+ filename = gconf_value_get_string(value);
+ gnc_history_update_action (window, index, filename);
- gnc_main_window_actions_updated (window);
- LEAVE("");
+ gnc_main_window_actions_updated (window);
+ LEAVE("");
}
@@ -490,61 +524,67 @@
static void
gnc_plugin_history_list_from_gnucash1 (void)
{
- GKeyFile *keyfile;
- const gchar *home;
- gchar *mdi_file, *value;
- gchar **keys, **key, *new_key;
- gint file_id, max;
+ GKeyFile *keyfile;
+ const gchar *home;
+ gchar *mdi_file, *value;
+ gchar **keys, **key, *new_key;
+ gint file_id, max;
- /* First test if there are already files in the gconf file history.
- * If so, then bail out now. */
- value = gnc_gconf_get_string(HISTORY_STRING_SECTION, "file0", NULL);
- if (value) {
- g_free(value);
- return;
- }
+ /* First test if there are already files in the gconf file history.
+ * If so, then bail out now. */
+ value = gnc_gconf_get_string(HISTORY_STRING_SECTION, "file0", NULL);
+ if (value)
+ {
+ g_free(value);
+ return;
+ }
- home = g_get_home_dir();
- if (!home)
- return;
+ home = g_get_home_dir();
+ if (!home)
+ return;
- /* Copy the old values from the gnucash 1.x/gnome1 settings file to
- * the gnucash 2.x/gconf settings area. */
- mdi_file = g_build_filename(home, ".gnome", "GnuCash", (gchar *)NULL);
- keyfile = gnc_key_file_load_from_file (mdi_file, FALSE, FALSE, NULL);
- if (keyfile) {
- keys = g_key_file_get_keys(keyfile, GNOME1_HISTORY, NULL, NULL);
- if (keys) {
- for (key = keys; *key; key++) {
- if (!strcmp(*key, GNOME1_MAXFILES)) {
- max = g_key_file_get_integer(keyfile, GNOME1_HISTORY,
- GNOME1_MAXFILES, NULL);
- printf("Found old maxfiles: %d\n", max);
- if ((max > 0) && (max < MAX_HISTORY_FILES))
- printf("Setting maxfiles: %d\n\n", max);
- gnc_gconf_set_int(HISTORY_STRING_SECTION, HISTORY_STRING_MAXFILES,
- max, NULL);
- continue;
- }
+ /* Copy the old values from the gnucash 1.x/gnome1 settings file to
+ * the gnucash 2.x/gconf settings area. */
+ mdi_file = g_build_filename(home, ".gnome", "GnuCash", (gchar *)NULL);
+ keyfile = gnc_key_file_load_from_file (mdi_file, FALSE, FALSE, NULL);
+ if (keyfile)
+ {
+ keys = g_key_file_get_keys(keyfile, GNOME1_HISTORY, NULL, NULL);
+ if (keys)
+ {
+ for (key = keys; *key; key++)
+ {
+ if (!strcmp(*key, GNOME1_MAXFILES))
+ {
+ max = g_key_file_get_integer(keyfile, GNOME1_HISTORY,
+ GNOME1_MAXFILES, NULL);
+ printf("Found old maxfiles: %d\n", max);
+ if ((max > 0) && (max < MAX_HISTORY_FILES))
+ printf("Setting maxfiles: %d\n\n", max);
+ gnc_gconf_set_int(HISTORY_STRING_SECTION, HISTORY_STRING_MAXFILES,
+ max, NULL);
+ continue;
+ }
- if (sscanf(*key, "File%d", &file_id) == 1) {
- value = g_key_file_get_string(keyfile, GNOME1_HISTORY, *key, NULL);
- if (!value)
- continue;
- printf("Found old file %d: %s\n", file_id, value);
- new_key = g_strdup_printf(HISTORY_STRING_FILE_N, file_id);
- gnc_gconf_set_string (HISTORY_STRING_SECTION, new_key, value, NULL);
- printf("Setting %s: %s\n\n", new_key, value);
- g_free(new_key);
- g_free(value);
- }
- }
- g_strfreev(keys);
+ if (sscanf(*key, "File%d", &file_id) == 1)
+ {
+ value = g_key_file_get_string(keyfile, GNOME1_HISTORY, *key, NULL);
+ if (!value)
+ continue;
+ printf("Found old file %d: %s\n", file_id, value);
+ new_key = g_strdup_printf(HISTORY_STRING_FILE_N, file_id);
+ gnc_gconf_set_string (HISTORY_STRING_SECTION, new_key, value, NULL);
+ printf("Setting %s: %s\n\n", new_key, value);
+ g_free(new_key);
+ g_free(value);
+ }
+ }
+ g_strfreev(keys);
+ }
+ g_key_file_free(keyfile);
}
- g_key_file_free(keyfile);
- }
- g_free(mdi_file);
+ g_free(mdi_file);
}
/************************************************************
@@ -555,28 +595,30 @@
GType
gnc_plugin_file_history_get_type (void)
{
- static GType gnc_plugin_file_history_type = 0;
+ static GType gnc_plugin_file_history_type = 0;
- if (gnc_plugin_file_history_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncPluginFileHistoryClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_plugin_file_history_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncPluginFileHistory),
- 0,
- (GInstanceInitFunc) gnc_plugin_file_history_init
- };
+ if (gnc_plugin_file_history_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncPluginFileHistoryClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_plugin_file_history_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncPluginFileHistory),
+ 0,
+ (GInstanceInitFunc) gnc_plugin_file_history_init
+ };
- gnc_plugin_file_history_type =
- g_type_register_static (GNC_TYPE_PLUGIN,
- "GncPluginFileHistory",
- &our_info, 0);
- }
+ gnc_plugin_file_history_type =
+ g_type_register_static (GNC_TYPE_PLUGIN,
+ "GncPluginFileHistory",
+ &our_info, 0);
+ }
- return gnc_plugin_file_history_type;
+ return gnc_plugin_file_history_type;
}
@@ -584,33 +626,33 @@
static void
gnc_plugin_file_history_class_init (GncPluginFileHistoryClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = gnc_plugin_file_history_finalize;
+ object_class->finalize = gnc_plugin_file_history_finalize;
- /* plugin info */
- plugin_class->plugin_name = GNC_PLUGIN_FILE_HISTORY_NAME;
+ /* plugin info */
+ plugin_class->plugin_name = GNC_PLUGIN_FILE_HISTORY_NAME;
- /* function overrides */
- plugin_class->add_to_window = gnc_plugin_file_history_add_to_window;
- plugin_class->remove_from_window =
- gnc_plugin_file_history_remove_from_window;
+ /* function overrides */
+ plugin_class->add_to_window = gnc_plugin_file_history_add_to_window;
+ plugin_class->remove_from_window =
+ gnc_plugin_file_history_remove_from_window;
- /* widget addition/removal */
- plugin_class->actions_name = PLUGIN_ACTIONS_NAME;
- plugin_class->actions = gnc_plugin_actions;
- plugin_class->n_actions = gnc_plugin_n_actions;
- plugin_class->ui_filename = PLUGIN_UI_FILENAME;
+ /* widget addition/removal */
+ plugin_class->actions_name = PLUGIN_ACTIONS_NAME;
+ plugin_class->actions = gnc_plugin_actions;
+ plugin_class->n_actions = gnc_plugin_n_actions;
+ plugin_class->ui_filename = PLUGIN_UI_FILENAME;
- plugin_class->gconf_section = HISTORY_STRING_SECTION;
- plugin_class->gconf_notifications = gnc_plugin_history_list_changed;
+ plugin_class->gconf_section = HISTORY_STRING_SECTION;
+ plugin_class->gconf_notifications = gnc_plugin_history_list_changed;
- g_type_class_add_private(klass, sizeof(GncPluginFileHistoryPrivate));
+ g_type_class_add_private(klass, sizeof(GncPluginFileHistoryPrivate));
- gnc_plugin_history_list_from_gnucash1();
+ gnc_plugin_history_list_from_gnucash1();
}
@@ -618,8 +660,8 @@
static void
gnc_plugin_file_history_init (GncPluginFileHistory *plugin)
{
- ENTER("plugin %p", plugin);
- LEAVE("");
+ ENTER("plugin %p", plugin);
+ LEAVE("");
}
@@ -627,17 +669,17 @@
static void
gnc_plugin_file_history_finalize (GObject *object)
{
- GncPluginFileHistory *plugin;
- GncPluginFileHistoryPrivate *priv;
+ GncPluginFileHistory *plugin;
+ GncPluginFileHistoryPrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_FILE_HISTORY (object));
+ g_return_if_fail (GNC_IS_PLUGIN_FILE_HISTORY (object));
- ENTER("plugin %p", object);
- plugin = GNC_PLUGIN_FILE_HISTORY (object);
- priv = GNC_PLUGIN_FILE_HISTORY_GET_PRIVATE (plugin);
+ ENTER("plugin %p", object);
+ plugin = GNC_PLUGIN_FILE_HISTORY (object);
+ priv = GNC_PLUGIN_FILE_HISTORY_GET_PRIVATE (plugin);
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE("");
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE("");
}
@@ -647,12 +689,12 @@
GncPlugin *
gnc_plugin_file_history_new (void)
{
- GncPlugin *plugin_page = NULL;
+ GncPlugin *plugin_page = NULL;
- ENTER("");
- plugin_page = GNC_PLUGIN (g_object_new (GNC_TYPE_PLUGIN_FILE_HISTORY, NULL));
- LEAVE("plugin %p", plugin_page);
- return plugin_page;
+ ENTER("");
+ plugin_page = GNC_PLUGIN (g_object_new (GNC_TYPE_PLUGIN_FILE_HISTORY, NULL));
+ LEAVE("plugin %p", plugin_page);
+ return plugin_page;
}
/************************************************************
@@ -677,10 +719,10 @@
*/
static void
gnc_plugin_file_history_add_to_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type)
+ GncMainWindow *window,
+ GQuark type)
{
- gnc_history_update_menus(window);
+ gnc_history_update_menus(window);
}
@@ -698,8 +740,8 @@
*/
static void
gnc_plugin_file_history_remove_from_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type)
+ GncMainWindow *window,
+ GQuark type)
{
}
@@ -721,23 +763,23 @@
*/
static void
gnc_plugin_file_history_cmd_open_file (GtkAction *action,
- GncMainWindowActionData *data)
+ GncMainWindowActionData *data)
{
- gchar *filename;
+ gchar *filename;
- g_return_if_fail(GTK_IS_ACTION(action));
- g_return_if_fail(data != NULL);
+ g_return_if_fail(GTK_IS_ACTION(action));
+ g_return_if_fail(data != NULL);
- /* DRH - Do we need to close all open windows but the first?
- * Which progress bar should we be using? One in a window, or
- * in a new "file loading" dialog???
- */
- filename = g_object_get_data(G_OBJECT(action), FILENAME_STRING);
- gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
- /* also opens new account page */
- if (!gnc_file_open_file (filename))
- gnc_history_remove_file (filename);
- gnc_window_set_progressbar_window (NULL);
+ /* DRH - Do we need to close all open windows but the first?
+ * Which progress bar should we be using? One in a window, or
+ * in a new "file loading" dialog???
+ */
+ filename = g_object_get_data(G_OBJECT(action), FILENAME_STRING);
+ gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
+ /* also opens new account page */
+ if (!gnc_file_open_file (filename))
+ gnc_history_remove_file (filename);
+ gnc_window_set_progressbar_window (NULL);
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin-file-history.h --
+/*
+ * gnc-plugin-file-history.h --
* Copyright (C) 2003,2005 David Hampton <hampton at employees.org>
*
* This program is free software; you can redistribute it and/or
@@ -56,14 +56,16 @@
/* typedefs & structures */
/** The instance data structure for a file history plugin. */
-typedef struct {
- GncPlugin gnc_plugin;
+typedef struct
+{
+ GncPlugin gnc_plugin;
} GncPluginFileHistory;
/** The class data structure for a file history plugin. */
-typedef struct {
- GncPluginClass gnc_plugin;
+typedef struct
+{
+ GncPluginClass gnc_plugin;
} GncPluginFileHistoryClass;
/* function prototypes */
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin-manager.c --
+/*
+ * gnc-plugin-manager.c --
*
* Copyright (C) 2003 Jan Arne Petersen
* Author: Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -40,17 +40,18 @@
typedef struct GncPluginManagerPrivate
{
- GList *plugins;
- GHashTable *plugins_table;
+ GList *plugins;
+ GHashTable *plugins_table;
} GncPluginManagerPrivate;
#define GNC_PLUGIN_MANAGER_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_MANAGER, GncPluginManagerPrivate))
-enum {
- PLUGIN_ADDED,
- PLUGIN_REMOVED,
- LAST_SIGNAL
+enum
+{
+ PLUGIN_ADDED,
+ PLUGIN_REMOVED,
+ LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };
@@ -61,202 +62,207 @@
GType
gnc_plugin_manager_get_type (void)
{
- static GType gnc_plugin_manager_type = 0;
+ static GType gnc_plugin_manager_type = 0;
- if (gnc_plugin_manager_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncPluginManagerClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_plugin_manager_class_init,
- NULL,
- NULL,
- sizeof (GncPluginManager),
- 0,
- (GInstanceInitFunc) gnc_plugin_manager_init
- };
-
- gnc_plugin_manager_type = g_type_register_static (G_TYPE_OBJECT,
- "GncPluginManager",
- &our_info, 0);
- }
+ if (gnc_plugin_manager_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncPluginManagerClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_plugin_manager_class_init,
+ NULL,
+ NULL,
+ sizeof (GncPluginManager),
+ 0,
+ (GInstanceInitFunc) gnc_plugin_manager_init
+ };
- return gnc_plugin_manager_type;
+ gnc_plugin_manager_type = g_type_register_static (G_TYPE_OBJECT,
+ "GncPluginManager",
+ &our_info, 0);
+ }
+
+ return gnc_plugin_manager_type;
}
GncPluginManager *
gnc_plugin_manager_get (void)
{
- if (singleton == NULL) {
- singleton = g_object_new (GNC_TYPE_PLUGIN_MANAGER,
- NULL);
- gnc_hook_add_dangler (HOOK_UI_SHUTDOWN,
- gnc_plugin_manager_shutdown, NULL);
- }
+ if (singleton == NULL)
+ {
+ singleton = g_object_new (GNC_TYPE_PLUGIN_MANAGER,
+ NULL);
+ gnc_hook_add_dangler (HOOK_UI_SHUTDOWN,
+ gnc_plugin_manager_shutdown, NULL);
+ }
- return singleton;
+ return singleton;
}
void
gnc_plugin_manager_add_plugin (GncPluginManager *manager,
- GncPlugin *plugin)
+ GncPlugin *plugin)
{
- GncPluginManagerPrivate *priv;
- gint index;
+ GncPluginManagerPrivate *priv;
+ gint index;
- ENTER (" ");
- g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ ENTER (" ");
+ g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
- index = g_list_index (priv->plugins, plugin);
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+ index = g_list_index (priv->plugins, plugin);
- if (index >= 0)
- return;
+ if (index >= 0)
+ return;
- priv->plugins = g_list_append (priv->plugins, plugin);
- g_hash_table_insert (priv->plugins_table,
- g_strdup( GNC_PLUGIN_GET_CLASS(plugin)->plugin_name ),
- plugin);
+ priv->plugins = g_list_append (priv->plugins, plugin);
+ g_hash_table_insert (priv->plugins_table,
+ g_strdup( GNC_PLUGIN_GET_CLASS(plugin)->plugin_name ),
+ plugin);
- g_signal_emit (G_OBJECT (manager), signals[PLUGIN_ADDED], 0, plugin);
- LEAVE ("added %s to GncPluginManager", gnc_plugin_get_name(plugin));
+ g_signal_emit (G_OBJECT (manager), signals[PLUGIN_ADDED], 0, plugin);
+ LEAVE ("added %s to GncPluginManager", gnc_plugin_get_name(plugin));
}
void
gnc_plugin_manager_remove_plugin (GncPluginManager *manager,
- GncPlugin *plugin)
+ GncPlugin *plugin)
{
- GncPluginManagerPrivate *priv;
- gint index;
-
- ENTER (" ");
- g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ GncPluginManagerPrivate *priv;
+ gint index;
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
- index = g_list_index (priv->plugins, plugin);
+ ENTER (" ");
+ g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
- if (index < 0)
- return;
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+ index = g_list_index (priv->plugins, plugin);
- priv->plugins = g_list_remove (priv->plugins, plugin);
- g_hash_table_remove (priv->plugins_table,
- GNC_PLUGIN_GET_CLASS(plugin)->plugin_name);
+ if (index < 0)
+ return;
- g_signal_emit (G_OBJECT (manager), signals[PLUGIN_REMOVED], 0, plugin);
+ priv->plugins = g_list_remove (priv->plugins, plugin);
+ g_hash_table_remove (priv->plugins_table,
+ GNC_PLUGIN_GET_CLASS(plugin)->plugin_name);
- LEAVE ("removed %s from GncPluginManager",
- gnc_plugin_get_name(plugin));
- g_object_unref (plugin);
+ g_signal_emit (G_OBJECT (manager), signals[PLUGIN_REMOVED], 0, plugin);
+
+ LEAVE ("removed %s from GncPluginManager",
+ gnc_plugin_get_name(plugin));
+ g_object_unref (plugin);
}
GList *
gnc_plugin_manager_get_plugins (GncPluginManager *manager)
{
- GncPluginManagerPrivate *priv;
+ GncPluginManagerPrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_MANAGER (manager), NULL);
-
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
- return g_list_copy (priv->plugins);
+ g_return_val_if_fail (GNC_IS_PLUGIN_MANAGER (manager), NULL);
+
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+ return g_list_copy (priv->plugins);
}
GncPlugin *
gnc_plugin_manager_get_plugin (GncPluginManager *manager,
- const gchar *name)
+ const gchar *name)
{
- GncPluginManagerPrivate *priv;
+ GncPluginManagerPrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_MANAGER (manager), NULL);
- g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_MANAGER (manager), NULL);
+ g_return_val_if_fail (name != NULL, NULL);
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
- return GNC_PLUGIN (g_hash_table_lookup (priv->plugins_table, name));
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+ return GNC_PLUGIN (g_hash_table_lookup (priv->plugins_table, name));
}
static void
gnc_plugin_manager_class_init (GncPluginManagerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->dispose = gnc_plugin_manager_dispose;
- object_class->finalize = gnc_plugin_manager_finalize;
+ object_class->dispose = gnc_plugin_manager_dispose;
+ object_class->finalize = gnc_plugin_manager_finalize;
- g_type_class_add_private(klass, sizeof(GncPluginManagerPrivate));
+ g_type_class_add_private(klass, sizeof(GncPluginManagerPrivate));
- signals[PLUGIN_ADDED] = g_signal_new ("plugin-added",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginManagerClass, plugin_added),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- GNC_TYPE_PLUGIN);
- signals[PLUGIN_REMOVED] = g_signal_new ("plugin-removed",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginManagerClass, plugin_removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- GNC_TYPE_PLUGIN);
+ signals[PLUGIN_ADDED] = g_signal_new ("plugin-added",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginManagerClass, plugin_added),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ GNC_TYPE_PLUGIN);
+ signals[PLUGIN_REMOVED] = g_signal_new ("plugin-removed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginManagerClass, plugin_removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ GNC_TYPE_PLUGIN);
}
static void
gnc_plugin_manager_init (GncPluginManager *manager)
{
- GncPluginManagerPrivate *priv;
+ GncPluginManagerPrivate *priv;
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
- priv->plugins_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+ priv->plugins_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
}
static void
gnc_plugin_manager_dispose (GObject *object)
{
- GncPluginManager *manager = GNC_PLUGIN_MANAGER (object);
- GncPluginManagerPrivate *priv;
+ GncPluginManager *manager = GNC_PLUGIN_MANAGER (object);
+ GncPluginManagerPrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
+ g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
- if (priv->plugins_table) {
- g_hash_table_destroy (priv->plugins_table);
- priv->plugins_table = NULL;
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+ if (priv->plugins_table)
+ {
+ g_hash_table_destroy (priv->plugins_table);
+ priv->plugins_table = NULL;
- g_list_foreach (priv->plugins, (GFunc)g_object_unref, NULL);
- g_list_free (priv->plugins);
- priv->plugins = NULL;
- }
+ g_list_foreach (priv->plugins, (GFunc)g_object_unref, NULL);
+ g_list_free (priv->plugins);
+ priv->plugins = NULL;
+ }
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
gnc_plugin_manager_finalize (GObject *object)
{
- GncPluginManager *manager;
- GncPluginManagerPrivate *priv;
+ GncPluginManager *manager;
+ GncPluginManagerPrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_MANAGER (object));
+ g_return_if_fail (GNC_IS_PLUGIN_MANAGER (object));
- manager = GNC_PLUGIN_MANAGER (object);
- priv = GNC_PLUGIN_MANAGER_GET_PRIVATE (manager);
+ manager = GNC_PLUGIN_MANAGER (object);
+ priv = GNC_PLUGIN_MANAGER_GET_PRIVATE (manager);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gnc_plugin_manager_shutdown (gpointer dummy, gpointer dummy2)
{
- if (singleton != NULL) {
- g_object_unref(singleton);
- singleton = NULL;
- }
+ if (singleton != NULL)
+ {
+ g_object_unref(singleton);
+ singleton = NULL;
+ }
}
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-plugin-manager.h -- Manage gnucash plugins.
*
* Copyright (C) 2003 Jan Arne Petersen
@@ -26,7 +26,7 @@
@{ */
/** @addtogroup PluginManager Plugin Management Functions
@{ */
-/** @file gnc-plugin-manager.h
+/** @file gnc-plugin-manager.h
@brief Plugin management functions for the GnuCash UI
@author Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -66,18 +66,20 @@
#define GNC_PLUGIN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_MANAGER, GncPluginManagerClass))
/* typedefs & structures */
-typedef struct {
- GObject gobject;
+typedef struct
+{
+ GObject gobject;
} GncPluginManager;
-typedef struct {
- GObjectClass gobject;
+typedef struct
+{
+ GObjectClass gobject;
- /* Signals */
- void (* plugin_added)
- (GncPluginManager *plugin_manager, GncPlugin *plugin);
- void (* plugin_removed)
- (GncPluginManager *plugin_manager, GncPlugin *plugin);
+ /* Signals */
+ void (* plugin_added)
+ (GncPluginManager *plugin_manager, GncPlugin *plugin);
+ void (* plugin_removed)
+ (GncPluginManager *plugin_manager, GncPlugin *plugin);
} GncPluginManagerClass;
/** Retrieve the GType value for the gnucash plugin manager.
@@ -114,7 +116,7 @@
* the plugin after passing it off to the plugin manager.
*/
void gnc_plugin_manager_add_plugin (GncPluginManager *manager,
- GncPlugin *plugin);
+ GncPlugin *plugin);
/** Remove a plugin from the list maintained by the plugin manager.
@@ -125,7 +127,7 @@
* @param plugin A pointer to the plugin to add.
*/
void gnc_plugin_manager_remove_plugin (GncPluginManager *manager,
- GncPlugin *plugin);
+ GncPlugin *plugin);
/** Get a list of all plugins being held by the plugin manager. This
@@ -153,7 +155,7 @@
* couldn't be found.
*/
GncPlugin *gnc_plugin_manager_get_plugin (GncPluginManager *manager,
- const gchar *name);
+ const gchar *name);
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin-menu-additions.c --
+/*
+ * gnc-plugin-menu-additions.c --
* Copyright (C) 2005 David Hampton hampton at employees.org>
*
* From:
@@ -67,7 +67,7 @@
/** Private data for this plugin. This data structure is unused. */
typedef struct GncPluginMenuAdditionsPrivate
{
- gpointer dummy;
+ gpointer dummy;
} GncPluginMenuAdditionsPrivate;
#define GNC_PLUGIN_MENU_ADDITIONS_GET_PRIVATE(o) \
@@ -78,13 +78,13 @@
* that it manages its own menu items. */
typedef struct _GncPluginMenuAdditionsPerWindow
{
- /** The menu/toolbar action information associated with a specific
- window. This plugin must maintain its own data because of the
- way the menus are currently built. */
- GncMainWindow *window;
- GtkUIManager *ui_manager;
- GtkActionGroup *group;
- gint merge_id;
+ /** The menu/toolbar action information associated with a specific
+ window. This plugin must maintain its own data because of the
+ way the menus are currently built. */
+ GncMainWindow *window;
+ GtkUIManager *ui_manager;
+ GtkActionGroup *group;
+ gint merge_id;
} GncPluginMenuAdditionsPerWindow;
/************************************************************
@@ -94,70 +94,72 @@
GType
gnc_plugin_menu_additions_get_type (void)
{
- static GType gnc_plugin_menu_additions_type = 0;
+ static GType gnc_plugin_menu_additions_type = 0;
- if (gnc_plugin_menu_additions_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncPluginMenuAdditionsClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_plugin_menu_additions_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncPluginMenuAdditions),
- 0,
- (GInstanceInitFunc) gnc_plugin_menu_additions_init
- };
+ if (gnc_plugin_menu_additions_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncPluginMenuAdditionsClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_plugin_menu_additions_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncPluginMenuAdditions),
+ 0,
+ (GInstanceInitFunc) gnc_plugin_menu_additions_init
+ };
- gnc_plugin_menu_additions_type = g_type_register_static (GNC_TYPE_PLUGIN,
- "GncPluginMenuAdditions",
- &our_info, 0);
- }
+ gnc_plugin_menu_additions_type = g_type_register_static (GNC_TYPE_PLUGIN,
+ "GncPluginMenuAdditions",
+ &our_info, 0);
+ }
- return gnc_plugin_menu_additions_type;
+ return gnc_plugin_menu_additions_type;
}
static void
gnc_plugin_menu_additions_class_init (GncPluginMenuAdditionsClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = gnc_plugin_menu_additions_finalize;
+ object_class->finalize = gnc_plugin_menu_additions_finalize;
- /* plugin info */
- plugin_class->plugin_name = GNC_PLUGIN_MENU_ADDITIONS_NAME;
+ /* plugin info */
+ plugin_class->plugin_name = GNC_PLUGIN_MENU_ADDITIONS_NAME;
- /* function overrides */
- plugin_class->add_to_window = gnc_plugin_menu_additions_add_to_window;
- plugin_class->remove_from_window = gnc_plugin_menu_additions_remove_from_window;
+ /* function overrides */
+ plugin_class->add_to_window = gnc_plugin_menu_additions_add_to_window;
+ plugin_class->remove_from_window = gnc_plugin_menu_additions_remove_from_window;
- g_type_class_add_private(klass, sizeof(GncPluginMenuAdditionsPrivate));
+ g_type_class_add_private(klass, sizeof(GncPluginMenuAdditionsPrivate));
}
static void
gnc_plugin_menu_additions_init (GncPluginMenuAdditions *plugin)
{
- ENTER("plugin %p", plugin);
- LEAVE("");
+ ENTER("plugin %p", plugin);
+ LEAVE("");
}
static void
gnc_plugin_menu_additions_finalize (GObject *object)
{
- GncPluginMenuAdditions *plugin;
- GncPluginMenuAdditionsPrivate *priv;
+ GncPluginMenuAdditions *plugin;
+ GncPluginMenuAdditionsPrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_MENU_ADDITIONS (object));
+ g_return_if_fail (GNC_IS_PLUGIN_MENU_ADDITIONS (object));
- ENTER("plugin %p", object);
- plugin = GNC_PLUGIN_MENU_ADDITIONS (object);
- priv = GNC_PLUGIN_MENU_ADDITIONS_GET_PRIVATE (plugin);
+ ENTER("plugin %p", object);
+ plugin = GNC_PLUGIN_MENU_ADDITIONS (object);
+ priv = GNC_PLUGIN_MENU_ADDITIONS_GET_PRIVATE (plugin);
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE("");
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE("");
}
@@ -169,12 +171,12 @@
GncPlugin *
gnc_plugin_menu_additions_new (void)
{
- GncPlugin *plugin_page = NULL;
+ GncPlugin *plugin_page = NULL;
- ENTER("");
- plugin_page = GNC_PLUGIN (g_object_new (GNC_TYPE_PLUGIN_MENU_ADDITIONS, NULL));
- LEAVE("plugin %p", plugin_page);
- return plugin_page;
+ ENTER("");
+ plugin_page = GNC_PLUGIN (g_object_new (GNC_TYPE_PLUGIN_MENU_ADDITIONS, NULL));
+ LEAVE("plugin %p", plugin_page);
+ return plugin_page;
}
/************************************************************
@@ -184,15 +186,15 @@
static SCM
gnc_main_window_to_scm (GncMainWindow *window)
{
- static swig_type_info * main_window_type = NULL;
+ static swig_type_info * main_window_type = NULL;
- if (!window)
- return SCM_BOOL_F;
+ if (!window)
+ return SCM_BOOL_F;
- if (!main_window_type)
- main_window_type = SWIG_TypeQuery("_p_GncMainWindow");
+ if (!main_window_type)
+ main_window_type = SWIG_TypeQuery("_p_GncMainWindow");
- return SWIG_NewPointerObj(window, main_window_type, 0);
+ return SWIG_NewPointerObj(window, main_window_type, 0);
}
@@ -209,13 +211,13 @@
*/
static void
gnc_plugin_menu_additions_action_cb (GtkAction *action,
- GncMainWindowActionData *data)
+ GncMainWindowActionData *data)
{
- g_return_if_fail(GTK_IS_ACTION(action));
- g_return_if_fail(data != NULL);
+ g_return_if_fail(GTK_IS_ACTION(action));
+ g_return_if_fail(data != NULL);
- gnc_extension_invoke_cb(data->data, gnc_main_window_to_scm(data->window));
+ gnc_extension_invoke_cb(data->data, gnc_main_window_to_scm(data->window));
}
@@ -233,14 +235,14 @@
static gint
gnc_menu_additions_sort (ExtensionInfo *a, ExtensionInfo *b)
{
- if (a->type == b->type)
- return strcmp(a->sort_key, b->sort_key);
- else if (a->type == GTK_UI_MANAGER_MENU)
- return -1;
- else if (b->type == GTK_UI_MANAGER_MENU)
- return 1;
- else
- return 0;
+ if (a->type == b->type)
+ return strcmp(a->sort_key, b->sort_key);
+ else if (a->type == GTK_UI_MANAGER_MENU)
+ return -1;
+ else if (b->type == GTK_UI_MANAGER_MENU)
+ return 1;
+ else
+ return 0;
}
@@ -252,7 +254,7 @@
static gpointer
gnc_menu_additions_init_accel_table (gpointer unused)
{
- return g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
+ return g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
}
@@ -269,43 +271,46 @@
static void
gnc_menu_additions_do_preassigned_accel (ExtensionInfo *info, GHashTable *table)
{
- gchar *map, *new_map, *accel_key;
- const gchar *ptr;
+ gchar *map, *new_map, *accel_key;
+ const gchar *ptr;
- ENTER("Checking %s/%s [%s]", info->path, info->ae.label, info->ae.name);
- if (info->accel_assigned) {
- LEAVE("Already processed");
- return;
- }
+ ENTER("Checking %s/%s [%s]", info->path, info->ae.label, info->ae.name);
+ if (info->accel_assigned)
+ {
+ LEAVE("Already processed");
+ return;
+ }
- if (!g_utf8_validate(info->ae.label, -1, NULL)) {
- g_warning("Extension menu label '%s' is not valid utf8.", info->ae.label);
- info->accel_assigned = TRUE;
- LEAVE("Label is invalid utf8");
- return;
- }
+ if (!g_utf8_validate(info->ae.label, -1, NULL))
+ {
+ g_warning("Extension menu label '%s' is not valid utf8.", info->ae.label);
+ info->accel_assigned = TRUE;
+ LEAVE("Label is invalid utf8");
+ return;
+ }
- /* Was an accelerator pre-assigned in the source? */
- ptr = g_utf8_strchr(info->ae.label, -1, '_');
- if (ptr == NULL) {
- LEAVE("not preassigned");
- return;
- }
+ /* Was an accelerator pre-assigned in the source? */
+ ptr = g_utf8_strchr(info->ae.label, -1, '_');
+ if (ptr == NULL)
+ {
+ LEAVE("not preassigned");
+ return;
+ }
- accel_key = g_utf8_strdown(g_utf8_next_char(ptr), 1);
- DEBUG("Accelerator preassigned: '%s'", accel_key);
+ accel_key = g_utf8_strdown(g_utf8_next_char(ptr), 1);
+ DEBUG("Accelerator preassigned: '%s'", accel_key);
- /* Now build a new map. Old one freed automatically. */
- map = g_hash_table_lookup(table, info->path);
- if (map == NULL)
- map = "";
- new_map = g_strconcat(map, accel_key, (gchar *)NULL);
- DEBUG("path '%s', map '%s' -> '%s'", info->path, map, new_map);
- g_hash_table_replace(table, info->path, new_map);
+ /* Now build a new map. Old one freed automatically. */
+ map = g_hash_table_lookup(table, info->path);
+ if (map == NULL)
+ map = "";
+ new_map = g_strconcat(map, accel_key, (gchar *)NULL);
+ DEBUG("path '%s', map '%s' -> '%s'", info->path, map, new_map);
+ g_hash_table_replace(table, info->path, new_map);
- info->accel_assigned = TRUE;
- g_free(accel_key);
- LEAVE("preassigned");
+ info->accel_assigned = TRUE;
+ g_free(accel_key);
+ LEAVE("preassigned");
}
@@ -323,58 +328,61 @@
static void
gnc_menu_additions_assign_accel (ExtensionInfo *info, GHashTable *table)
{
- gchar *map, *new_map, *new_label, *start, buf[16];
- const gchar *ptr;
- gunichar uni;
- gint len;
+ gchar *map, *new_map, *new_label, *start, buf[16];
+ const gchar *ptr;
+ gunichar uni;
+ gint len;
- ENTER("Checking %s/%s [%s]", info->path, info->ae.label, info->ae.name);
- if (info->accel_assigned) {
- LEAVE("Already processed");
- return;
- }
+ ENTER("Checking %s/%s [%s]", info->path, info->ae.label, info->ae.name);
+ if (info->accel_assigned)
+ {
+ LEAVE("Already processed");
+ return;
+ }
- /* Get map of used keys */
- map = g_hash_table_lookup(table, info->path);
- if (map == NULL)
- map = g_strdup("");
- DEBUG("map '%s', path %s", map, info->path);
+ /* Get map of used keys */
+ map = g_hash_table_lookup(table, info->path);
+ if (map == NULL)
+ map = g_strdup("");
+ DEBUG("map '%s', path %s", map, info->path);
- for (ptr = info->ae.label; *ptr; ptr = g_utf8_next_char(ptr)) {
- uni = g_utf8_get_char(ptr);
- if (!g_unichar_isalpha(uni))
- continue;
- uni = g_unichar_tolower(uni);
- len = g_unichar_to_utf8(uni, buf);
- buf[len] = '\0';
- DEBUG("Testing character '%s'", buf);
- if (!g_utf8_strchr(map, -1, uni))
- break;
- }
+ for (ptr = info->ae.label; *ptr; ptr = g_utf8_next_char(ptr))
+ {
+ uni = g_utf8_get_char(ptr);
+ if (!g_unichar_isalpha(uni))
+ continue;
+ uni = g_unichar_tolower(uni);
+ len = g_unichar_to_utf8(uni, buf);
+ buf[len] = '\0';
+ DEBUG("Testing character '%s'", buf);
+ if (!g_utf8_strchr(map, -1, uni))
+ break;
+ }
- if (ptr == NULL) {
- /* Ran out of characters. Nothing to do. */
- info->accel_assigned = TRUE;
- LEAVE("All characters already assigned");
- return;
- }
+ if (ptr == NULL)
+ {
+ /* Ran out of characters. Nothing to do. */
+ info->accel_assigned = TRUE;
+ LEAVE("All characters already assigned");
+ return;
+ }
- /* Now build a new string in the form "<start>_<end>". */
- start = g_strndup(info->ae.label, ptr - info->ae.label);
- DEBUG("start %p, len %ld, text '%s'", start, g_utf8_strlen(start, -1), start);
- new_label = g_strconcat(start, "_", ptr, (gchar *)NULL);
- g_free(start);
- DEBUG("label '%s' -> '%s'", info->ae.label, new_label);
- g_free((gchar *)info->ae.label);
- info->ae.label = new_label;
+ /* Now build a new string in the form "<start>_<end>". */
+ start = g_strndup(info->ae.label, ptr - info->ae.label);
+ DEBUG("start %p, len %ld, text '%s'", start, g_utf8_strlen(start, -1), start);
+ new_label = g_strconcat(start, "_", ptr, (gchar *)NULL);
+ g_free(start);
+ DEBUG("label '%s' -> '%s'", info->ae.label, new_label);
+ g_free((gchar *)info->ae.label);
+ info->ae.label = new_label;
- /* Now build a new map. Old one freed automatically. */
- new_map = g_strconcat(map, buf, (gchar *)NULL);
- DEBUG("map '%s' -> '%s'", map, new_map);
- g_hash_table_replace(table, info->path, new_map);
+ /* Now build a new map. Old one freed automatically. */
+ new_map = g_strconcat(map, buf, (gchar *)NULL);
+ DEBUG("map '%s' -> '%s'", map, new_map);
+ g_hash_table_replace(table, info->path, new_map);
- info->accel_assigned = TRUE;
- LEAVE("assigned");
+ info->accel_assigned = TRUE;
+ LEAVE("assigned");
}
@@ -389,26 +397,26 @@
* plugin. */
static void
gnc_menu_additions_menu_setup_one (ExtensionInfo *ext_info,
- GncPluginMenuAdditionsPerWindow *per_window)
+ GncPluginMenuAdditionsPerWindow *per_window)
{
- GncMainWindowActionData *cb_data;
+ GncMainWindowActionData *cb_data;
- DEBUG( "Adding %s/%s [%s] as [%s]", ext_info->path, ext_info->ae.label,
- ext_info->ae.name, ext_info->typeStr );
+ DEBUG( "Adding %s/%s [%s] as [%s]", ext_info->path, ext_info->ae.label,
+ ext_info->ae.name, ext_info->typeStr );
- cb_data = g_new0 (GncMainWindowActionData, 1);
- cb_data->window = per_window->window;
- cb_data->data = ext_info->extension;
+ cb_data = g_new0 (GncMainWindowActionData, 1);
+ cb_data->window = per_window->window;
+ cb_data->data = ext_info->extension;
- if (ext_info->type == GTK_UI_MANAGER_MENUITEM)
- ext_info->ae.callback = (GCallback)gnc_plugin_menu_additions_action_cb;
+ if (ext_info->type == GTK_UI_MANAGER_MENUITEM)
+ ext_info->ae.callback = (GCallback)gnc_plugin_menu_additions_action_cb;
- gtk_action_group_add_actions_full(per_window->group, &ext_info->ae, 1,
- cb_data, g_free);
- gtk_ui_manager_add_ui(per_window->ui_manager, per_window->merge_id,
- ext_info->path, ext_info->ae.label, ext_info->ae.name,
- ext_info->type, FALSE);
- gtk_ui_manager_ensure_update(per_window->ui_manager);
+ gtk_action_group_add_actions_full(per_window->group, &ext_info->ae, 1,
+ cb_data, g_free);
+ gtk_ui_manager_add_ui(per_window->ui_manager, per_window->merge_id,
+ ext_info->path, ext_info->ae.label, ext_info->ae.name,
+ ext_info->type, FALSE);
+ gtk_ui_manager_ensure_update(per_window->ui_manager);
}
@@ -426,42 +434,42 @@
*/
static void
gnc_plugin_menu_additions_add_to_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type)
+ GncMainWindow *window,
+ GQuark type)
{
- GncPluginMenuAdditionsPerWindow per_window;
- static GOnce accel_table_init = G_ONCE_INIT;
- static GHashTable *table;
- GSList *menu_list;
+ GncPluginMenuAdditionsPerWindow per_window;
+ static GOnce accel_table_init = G_ONCE_INIT;
+ static GHashTable *table;
+ GSList *menu_list;
- ENTER(" ");
+ ENTER(" ");
- per_window.window = window;
- per_window.ui_manager = window->ui_merge;
- per_window.group = gtk_action_group_new ("MenuAdditions" );
- gnc_gtk_action_group_set_translation_domain (per_window.group, GETTEXT_PACKAGE);
- per_window.merge_id = gtk_ui_manager_new_merge_id(window->ui_merge);
- gtk_ui_manager_insert_action_group(window->ui_merge, per_window.group, 0);
+ per_window.window = window;
+ per_window.ui_manager = window->ui_merge;
+ per_window.group = gtk_action_group_new ("MenuAdditions" );
+ gnc_gtk_action_group_set_translation_domain (per_window.group, GETTEXT_PACKAGE);
+ per_window.merge_id = gtk_ui_manager_new_merge_id(window->ui_merge);
+ gtk_ui_manager_insert_action_group(window->ui_merge, per_window.group, 0);
- menu_list = g_slist_sort(gnc_extensions_get_menu_list(),
- (GCompareFunc)gnc_menu_additions_sort);
+ menu_list = g_slist_sort(gnc_extensions_get_menu_list(),
+ (GCompareFunc)gnc_menu_additions_sort);
- /* Assign accelerators */
- table = g_once(&accel_table_init, gnc_menu_additions_init_accel_table, NULL);
- g_slist_foreach(menu_list,
- (GFunc)gnc_menu_additions_do_preassigned_accel, table);
- g_slist_foreach(menu_list, (GFunc)gnc_menu_additions_assign_accel, table);
+ /* Assign accelerators */
+ table = g_once(&accel_table_init, gnc_menu_additions_init_accel_table, NULL);
+ g_slist_foreach(menu_list,
+ (GFunc)gnc_menu_additions_do_preassigned_accel, table);
+ g_slist_foreach(menu_list, (GFunc)gnc_menu_additions_assign_accel, table);
- /* Add to window. */
- g_slist_foreach(menu_list, (GFunc)gnc_menu_additions_menu_setup_one,
- &per_window);
+ /* Add to window. */
+ g_slist_foreach(menu_list, (GFunc)gnc_menu_additions_menu_setup_one,
+ &per_window);
- /* Tell the window code about the actions that were just added
- * behind its back (so to speak) */
- gnc_main_window_manual_merge_actions (window, PLUGIN_ACTIONS_NAME,
- per_window.group, per_window.merge_id);
+ /* Tell the window code about the actions that were just added
+ * behind its back (so to speak) */
+ gnc_main_window_manual_merge_actions (window, PLUGIN_ACTIONS_NAME,
+ per_window.group, per_window.merge_id);
- LEAVE(" ");
+ LEAVE(" ");
}
@@ -478,24 +486,24 @@
*/
static void
gnc_plugin_menu_additions_remove_from_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type)
+ GncMainWindow *window,
+ GQuark type)
{
- GtkActionGroup *group;
+ GtkActionGroup *group;
- ENTER(" ");
+ ENTER(" ");
- /* Have to remove our actions manually. Its only automatic if the
- * actions name is installed into the plugin class. */
- group = gnc_main_window_get_action_group(window, PLUGIN_ACTIONS_NAME);
- if (group)
- gtk_ui_manager_remove_action_group(window->ui_merge, group);
+ /* Have to remove our actions manually. Its only automatic if the
+ * actions name is installed into the plugin class. */
+ group = gnc_main_window_get_action_group(window, PLUGIN_ACTIONS_NAME);
+ if (group)
+ gtk_ui_manager_remove_action_group(window->ui_merge, group);
- /* Note: This code does not clean up the per-callback data structures
- * that are created by the gnc_menu_additions_menu_setup_one()
- * function. Its not much memory and shouldn't be a problem. */
+ /* Note: This code does not clean up the per-callback data structures
+ * that are created by the gnc_menu_additions_menu_setup_one()
+ * function. Its not much memory and shouldn't be a problem. */
- LEAVE(" ");
+ LEAVE(" ");
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin-menu-additions.h --
+/*
+ * gnc-plugin-menu-additions.h --
* Copyright (C) 2005 David Hampton <hampton at employees.org>
*
* This program is free software; you can redistribute it and/or
@@ -53,12 +53,14 @@
#define GNC_PLUGIN_MENU_ADDITIONS_NAME "gnc-plugin-menu-additions"
/* typedefs & structures */
-typedef struct {
- GncPlugin gnc_plugin;
+typedef struct
+{
+ GncPlugin gnc_plugin;
} GncPluginMenuAdditions;
-typedef struct {
- GncPluginClass gnc_plugin;
+typedef struct
+{
+ GncPluginClass gnc_plugin;
} GncPluginMenuAdditionsClass;
/* function prototypes */
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-page.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-page.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-page.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin_page.c --
+/*
+ * gnc-plugin_page.c --
*
* Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
* Copyright (C) 2003,2005 David Hampton <hampton at employees.org>
@@ -47,36 +47,38 @@
static void gnc_plugin_page_class_init (GncPluginPageClass *klass);
static void gnc_plugin_page_init (GncPluginPage *plugin_page,
- GncPluginPageClass *klass);
+ GncPluginPageClass *klass);
static void gnc_plugin_page_finalize (GObject *object);
static void gnc_plugin_page_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
static void gnc_plugin_page_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
-enum {
- INSERTED,
- REMOVED,
- SELECTED,
- UNSELECTED,
- LAST_SIGNAL
+enum
+{
+ INSERTED,
+ REMOVED,
+ SELECTED,
+ UNSELECTED,
+ LAST_SIGNAL
};
-enum {
- PROP_0,
- PROP_PAGE_NAME,
- PROP_PAGE_COLOR,
- PROP_PAGE_URI,
- PROP_BOOK,
- PROP_STATUSBAR_TEXT,
- PROP_USE_NEW_WINDOW,
- PROP_UI_DESCRIPTION,
- PROP_UI_MERGE,
- PROP_ACTION_GROUP,
+enum
+{
+ PROP_0,
+ PROP_PAGE_NAME,
+ PROP_PAGE_COLOR,
+ PROP_PAGE_URI,
+ PROP_BOOK,
+ PROP_STATUSBAR_TEXT,
+ PROP_USE_NEW_WINDOW,
+ PROP_UI_DESCRIPTION,
+ PROP_UI_MERGE,
+ PROP_ACTION_GROUP,
};
static guint signals[LAST_SIGNAL] = { 0 };
@@ -85,21 +87,21 @@
/** The instance private data for a content plugin. */
typedef struct _GncPluginPagePrivate
{
- /** The group of all actions provided by this plugin. */
- GtkActionGroup *action_group;
- GtkUIManager *ui_merge;
- guint merge_id;
- char *ui_description;
+ /** The group of all actions provided by this plugin. */
+ GtkActionGroup *action_group;
+ GtkUIManager *ui_merge;
+ guint merge_id;
+ char *ui_description;
- GList *books;
+ GList *books;
- gboolean use_new_window;
+ gboolean use_new_window;
- gchar *page_name;
- gchar *page_long_name;
- gchar *page_color;
- gchar *uri;
- gchar *statusbar_text;
+ gchar *page_name;
+ gchar *page_long_name;
+ gchar *page_color;
+ gchar *uri;
+ gchar *statusbar_text;
} GncPluginPagePrivate;
#define GNC_PLUGIN_PAGE_GET_PRIVATE(o) \
@@ -108,28 +110,30 @@
GType
gnc_plugin_page_get_type (void)
{
- static GType gnc_plugin_page_type = 0;
+ static GType gnc_plugin_page_type = 0;
- if (gnc_plugin_page_type == 0) {
- static const GTypeInfo our_info = {
+ if (gnc_plugin_page_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
- sizeof (GncPluginPageClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_plugin_page_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncPluginPage),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_plugin_page_init,
- };
+ sizeof (GncPluginPageClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_plugin_page_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncPluginPage),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_plugin_page_init,
+ };
- gnc_plugin_page_type = g_type_register_static (G_TYPE_OBJECT,
- "GncPluginPage",
- &our_info, 0);
- }
+ gnc_plugin_page_type = g_type_register_static (G_TYPE_OBJECT,
+ "GncPluginPage",
+ &our_info, 0);
+ }
- return gnc_plugin_page_type;
+ return gnc_plugin_page_type;
}
@@ -141,27 +145,27 @@
GtkWidget *
gnc_plugin_page_create_widget (GncPluginPage *plugin_page)
{
- GncPluginPageClass *klass;
- GtkWidget *widget;
+ GncPluginPageClass *klass;
+ GtkWidget *widget;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page), NULL);
- klass = GNC_PLUGIN_PAGE_GET_CLASS (plugin_page);
- g_return_val_if_fail (klass != NULL, NULL);
- g_return_val_if_fail (klass->create_widget != NULL, NULL);
+ klass = GNC_PLUGIN_PAGE_GET_CLASS (plugin_page);
+ g_return_val_if_fail (klass != NULL, NULL);
+ g_return_val_if_fail (klass->create_widget != NULL, NULL);
- widget = klass->create_widget (plugin_page);
+ widget = klass->create_widget (plugin_page);
- /*
- * If there is a destroy function, add a ref so that the
- * widgets will exists when the destroy function is called.
- * Otherwise it will be destroyed when it is removed from the
- * main notebook for the window.
- */
- if (klass->destroy_widget)
- g_object_ref(widget);
+ /*
+ * If there is a destroy function, add a ref so that the
+ * widgets will exists when the destroy function is called.
+ * Otherwise it will be destroyed when it is removed from the
+ * main notebook for the window.
+ */
+ if (klass->destroy_widget)
+ g_object_ref(widget);
- return widget;
+ return widget;
}
@@ -171,33 +175,36 @@
void
gnc_plugin_page_destroy_widget (GncPluginPage *plugin_page)
{
- GncPluginPageClass *klass;
+ GncPluginPageClass *klass;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
- klass = GNC_PLUGIN_PAGE_GET_CLASS (plugin_page);
- g_return_if_fail (klass != NULL);
- g_return_if_fail (klass->destroy_widget != NULL);
+ klass = GNC_PLUGIN_PAGE_GET_CLASS (plugin_page);
+ g_return_if_fail (klass != NULL);
+ g_return_if_fail (klass->destroy_widget != NULL);
- klass->destroy_widget (plugin_page);
+ klass->destroy_widget (plugin_page);
}
/* Show/hide the summarybar associated with this page. */
void
gnc_plugin_page_show_summarybar (GncPluginPage *page,
- gboolean visible)
+ gboolean visible)
{
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- if (!page->summarybar)
- return;
+ if (!page->summarybar)
+ return;
- if (visible) {
- gtk_widget_show(page->summarybar);
- } else {
- gtk_widget_hide(page->summarybar);
- }
+ if (visible)
+ {
+ gtk_widget_show(page->summarybar);
+ }
+ else
+ {
+ gtk_widget_hide(page->summarybar);
+ }
}
@@ -207,22 +214,22 @@
* user starts gnucash. */
void
gnc_plugin_page_save_page (GncPluginPage *page,
- GKeyFile *key_file,
- const gchar *group_name)
+ GKeyFile *key_file,
+ const gchar *group_name)
{
- GncPluginPageClass *klass;
+ GncPluginPageClass *klass;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- g_return_if_fail (key_file != NULL);
- g_return_if_fail (group_name != NULL);
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (key_file != NULL);
+ g_return_if_fail (group_name != NULL);
- ENTER(" ");
- klass = GNC_PLUGIN_PAGE_GET_CLASS (page);
- g_return_if_fail (klass != NULL);
- g_return_if_fail (klass->save_page != NULL);
+ ENTER(" ");
+ klass = GNC_PLUGIN_PAGE_GET_CLASS (page);
+ g_return_if_fail (klass != NULL);
+ g_return_if_fail (klass->save_page != NULL);
- klass->save_page(page, key_file, group_name);
- LEAVE(" ");
+ klass->save_page(page, key_file, group_name);
+ LEAVE(" ");
}
@@ -231,91 +238,94 @@
* its content to a previous state. */
GncPluginPage *
gnc_plugin_page_recreate_page(GtkWidget *window,
- const gchar *page_type,
- GKeyFile *key_file,
- const gchar *page_group)
+ const gchar *page_type,
+ GKeyFile *key_file,
+ const gchar *page_group)
{
- GncPluginPageClass *klass;
- GncPluginPage *page = NULL;
- GType type;
+ GncPluginPageClass *klass;
+ GncPluginPage *page = NULL;
+ GType type;
- ENTER("type %s, keyfile %p, group %s", page_type, key_file, page_group);
- type = g_type_from_name(page_type);
- if (type == 0) {
- LEAVE("Cannot find type named %s", page_type);
- return NULL;
- }
+ ENTER("type %s, keyfile %p, group %s", page_type, key_file, page_group);
+ type = g_type_from_name(page_type);
+ if (type == 0)
+ {
+ LEAVE("Cannot find type named %s", page_type);
+ return NULL;
+ }
- klass = g_type_class_ref(type);
- if (klass == NULL) {
- const gchar *type_name = g_type_name(type);
- LEAVE("Cannot create class %s(%s)", page_type, type_name ? type_name : "invalid type");
- return NULL;
- }
+ klass = g_type_class_ref(type);
+ if (klass == NULL)
+ {
+ const gchar *type_name = g_type_name(type);
+ LEAVE("Cannot create class %s(%s)", page_type, type_name ? type_name : "invalid type");
+ return NULL;
+ }
- if (!klass->recreate_page) {
- LEAVE("Class %shas no recreate function.", page_type);
+ if (!klass->recreate_page)
+ {
+ LEAVE("Class %shas no recreate function.", page_type);
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ page = (klass->recreate_page)(window, key_file, page_group);
g_type_class_unref(klass);
- return NULL;
- }
-
- page = (klass->recreate_page)(window, key_file, page_group);
- g_type_class_unref(klass);
- LEAVE(" ");
- return page;
+ LEAVE(" ");
+ return page;
}
/* Add the actions for a content page to the specified window. */
void
gnc_plugin_page_merge_actions (GncPluginPage *page,
- GtkUIManager *ui_merge)
+ GtkUIManager *ui_merge)
{
- GncPluginPagePrivate *priv;
-
- g_return_if_fail (GNC_IS_PLUGIN_PAGE(page));
+ GncPluginPagePrivate *priv;
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- priv->ui_merge = ui_merge;
- priv->merge_id = gnc_plugin_add_actions(priv->ui_merge,
- priv->action_group,
- priv->ui_description);
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE(page));
+
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ priv->ui_merge = ui_merge;
+ priv->merge_id = gnc_plugin_add_actions(priv->ui_merge,
+ priv->action_group,
+ priv->ui_description);
}
/* Remove the actions for a content page from the specified window. */
void
gnc_plugin_page_unmerge_actions (GncPluginPage *page,
- GtkUIManager *ui_merge)
+ GtkUIManager *ui_merge)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- g_return_if_fail (priv->merge_id != 0);
- g_return_if_fail (priv->action_group != NULL);
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (priv->merge_id != 0);
+ g_return_if_fail (priv->action_group != NULL);
- gtk_ui_manager_remove_ui(ui_merge, priv->merge_id);
- gtk_ui_manager_remove_action_group(ui_merge, priv->action_group);
+ gtk_ui_manager_remove_ui(ui_merge, priv->merge_id);
+ gtk_ui_manager_remove_action_group(ui_merge, priv->action_group);
- priv->ui_merge = NULL;
- priv->merge_id = 0;
+ priv->ui_merge = NULL;
+ priv->merge_id = 0;
}
GtkAction *
gnc_plugin_page_get_action (GncPluginPage *page, const gchar *name)
{
- GncPluginPagePrivate *priv;
-
- g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), NULL);
- g_return_val_if_fail(name != NULL, NULL);
+ GncPluginPagePrivate *priv;
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (!priv->action_group)
- return NULL;
- return gtk_action_group_get_action (priv->action_group, name);
+ g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), NULL);
+ g_return_val_if_fail(name != NULL, NULL);
+
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (!priv->action_group)
+ return NULL;
+ return gtk_action_group_get_action (priv->action_group, name);
}
@@ -323,14 +333,14 @@
const gchar *
gnc_plugin_page_get_plugin_name (GncPluginPage *plugin_page)
{
- GncPluginPageClass *klass;
+ GncPluginPageClass *klass;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page), NULL);
- klass = GNC_PLUGIN_PAGE_GET_CLASS (plugin_page);
- g_return_val_if_fail (klass != NULL, NULL);
+ klass = GNC_PLUGIN_PAGE_GET_CLASS (plugin_page);
+ g_return_val_if_fail (klass != NULL, NULL);
- return (klass->plugin_name);
+ return (klass->plugin_name);
}
@@ -338,33 +348,33 @@
void
gnc_plugin_page_inserted (GncPluginPage *plugin_page)
{
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
- g_signal_emit (G_OBJECT (plugin_page), signals[INSERTED], 0);
+ g_signal_emit (G_OBJECT (plugin_page), signals[INSERTED], 0);
}
void
gnc_plugin_page_removed (GncPluginPage *plugin_page)
{
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
- g_signal_emit (G_OBJECT (plugin_page), signals[REMOVED], 0);
+ g_signal_emit (G_OBJECT (plugin_page), signals[REMOVED], 0);
}
void
gnc_plugin_page_selected (GncPluginPage *plugin_page)
{
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
- g_signal_emit (G_OBJECT (plugin_page), signals[SELECTED], 0);
+ g_signal_emit (G_OBJECT (plugin_page), signals[SELECTED], 0);
}
void
gnc_plugin_page_unselected (GncPluginPage *plugin_page)
{
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
- g_signal_emit (G_OBJECT (plugin_page), signals[UNSELECTED], 0);
+ g_signal_emit (G_OBJECT (plugin_page), signals[UNSELECTED], 0);
}
@@ -378,137 +388,137 @@
static void
gnc_plugin_page_class_init (GncPluginPageClass *klass)
{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
- gobject_class->finalize = gnc_plugin_page_finalize;
- gobject_class->set_property = gnc_plugin_page_set_property;
- gobject_class->get_property = gnc_plugin_page_get_property;
+ parent_class = g_type_class_peek_parent (klass);
+ gobject_class->finalize = gnc_plugin_page_finalize;
+ gobject_class->set_property = gnc_plugin_page_set_property;
+ gobject_class->get_property = gnc_plugin_page_get_property;
- klass->tab_icon = NULL;
- klass->plugin_name = NULL;
+ klass->tab_icon = NULL;
+ klass->plugin_name = NULL;
- g_type_class_add_private(klass, sizeof(GncPluginPagePrivate));
+ g_type_class_add_private(klass, sizeof(GncPluginPagePrivate));
- g_object_class_install_property
- (gobject_class,
- PROP_PAGE_NAME,
- g_param_spec_string ("page-name",
- "Page Name",
- "The name of this page. This value is "
- "used to generate the notebook tab and "
- "menu items, and also the window title "
- "when this page is visible.",
- NULL,
- G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PAGE_NAME,
+ g_param_spec_string ("page-name",
+ "Page Name",
+ "The name of this page. This value is "
+ "used to generate the notebook tab and "
+ "menu items, and also the window title "
+ "when this page is visible.",
+ NULL,
+ G_PARAM_READWRITE));
- g_object_class_install_property
- (gobject_class,
- PROP_PAGE_COLOR,
- g_param_spec_string ("page-color",
- "Page Color",
- "The color of this page. This value is "
- "used to generate the notebook tab color "
- "when this page is visible.",
- NULL,
- G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PAGE_COLOR,
+ g_param_spec_string ("page-color",
+ "Page Color",
+ "The color of this page. This value is "
+ "used to generate the notebook tab color "
+ "when this page is visible.",
+ NULL,
+ G_PARAM_READWRITE));
- g_object_class_install_property
- (gobject_class,
- PROP_PAGE_URI,
- g_param_spec_string ("page-uri",
- "Page URI",
- "The uri for this page.",
- NULL,
- G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PAGE_URI,
+ g_param_spec_string ("page-uri",
+ "Page URI",
+ "The uri for this page.",
+ NULL,
+ G_PARAM_READWRITE));
- g_object_class_install_property
- (gobject_class,
- PROP_STATUSBAR_TEXT,
- g_param_spec_string ("statusbar-text",
- "Statusbar Text",
- "The text to be displayed in the statusbar "
- "at the bottom of the window when this page "
- "is visible.",
- NULL,
- G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_STATUSBAR_TEXT,
+ g_param_spec_string ("statusbar-text",
+ "Statusbar Text",
+ "The text to be displayed in the statusbar "
+ "at the bottom of the window when this page "
+ "is visible.",
+ NULL,
+ G_PARAM_READWRITE));
- g_object_class_install_property
- (gobject_class,
- PROP_USE_NEW_WINDOW,
- g_param_spec_boolean ("use-new-window",
- "Use New Window",
- "When TRUE a new top level window will be "
- "created to hold this page.",
- FALSE,
- G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_USE_NEW_WINDOW,
+ g_param_spec_boolean ("use-new-window",
+ "Use New Window",
+ "When TRUE a new top level window will be "
+ "created to hold this page.",
+ FALSE,
+ G_PARAM_READWRITE));
- g_object_class_install_property
- (gobject_class,
- PROP_UI_DESCRIPTION,
- g_param_spec_string ("ui-description",
- "UI Description File",
- "The filename containing the XML data that "
- "describes this pages menus and toolbars.",
- NULL,
- G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_UI_DESCRIPTION,
+ g_param_spec_string ("ui-description",
+ "UI Description File",
+ "The filename containing the XML data that "
+ "describes this pages menus and toolbars.",
+ NULL,
+ G_PARAM_READWRITE));
- g_object_class_install_property
- (gobject_class,
- PROP_UI_MERGE,
- g_param_spec_object ("ui-merge",
- "UI Merge",
- "A pointer to the GtkUIManager object that "
- "represents this pages menu hierarchy.",
- GTK_TYPE_UI_MANAGER,
- G_PARAM_READABLE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_UI_MERGE,
+ g_param_spec_object ("ui-merge",
+ "UI Merge",
+ "A pointer to the GtkUIManager object that "
+ "represents this pages menu hierarchy.",
+ GTK_TYPE_UI_MANAGER,
+ G_PARAM_READABLE));
- g_object_class_install_property
- (gobject_class,
- PROP_ACTION_GROUP,
- g_param_spec_object ("action-group",
- "Action Group",
- "A pointer to the GtkActionGroup object that "
- "represents this pages available menu/toolbar "
- "actions.",
- GTK_TYPE_ACTION_GROUP,
- G_PARAM_READABLE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_ACTION_GROUP,
+ g_param_spec_object ("action-group",
+ "Action Group",
+ "A pointer to the GtkActionGroup object that "
+ "represents this pages available menu/toolbar "
+ "actions.",
+ GTK_TYPE_ACTION_GROUP,
+ G_PARAM_READABLE));
- signals[INSERTED] = g_signal_new ("inserted",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginPageClass, inserted),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
- signals[REMOVED] = g_signal_new ("removed",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginPageClass, removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
- signals[SELECTED] = g_signal_new ("selected",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginPageClass, selected),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
- signals[UNSELECTED] = g_signal_new ("unselected",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginPageClass, unselected),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ signals[INSERTED] = g_signal_new ("inserted",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginPageClass, inserted),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals[REMOVED] = g_signal_new ("removed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginPageClass, removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals[SELECTED] = g_signal_new ("selected",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginPageClass, selected),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals[UNSELECTED] = g_signal_new ("unselected",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginPageClass, unselected),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
@@ -523,17 +533,17 @@
static void
gnc_plugin_page_init (GncPluginPage *page, GncPluginPageClass *klass)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- priv->page_name = NULL;
- priv->page_color = NULL;
- priv->uri = NULL;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ priv->page_name = NULL;
+ priv->page_color = NULL;
+ priv->uri = NULL;
- page->window = NULL;
- page->summarybar = NULL;
+ page->window = NULL;
+ page->summarybar = NULL;
- gnc_gobject_tracking_remember(G_OBJECT(page), G_OBJECT_CLASS(klass));
+ gnc_gobject_tracking_remember(G_OBJECT(page), G_OBJECT_CLASS(klass));
}
@@ -547,30 +557,31 @@
static void
gnc_plugin_page_finalize (GObject *object)
{
- GncPluginPagePrivate *priv;
- GncPluginPage *page;
+ GncPluginPagePrivate *priv;
+ GncPluginPage *page;
- page = GNC_PLUGIN_PAGE (object);
+ page = GNC_PLUGIN_PAGE (object);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->page_name)
- g_free(priv->page_name);
- if (priv->page_color)
- g_free(priv->page_color);
- if (priv->uri)
- g_free(priv->uri);
- if (priv->statusbar_text)
- g_free(priv->statusbar_text);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->page_name)
+ g_free(priv->page_name);
+ if (priv->page_color)
+ g_free(priv->page_color);
+ if (priv->uri)
+ g_free(priv->uri);
+ if (priv->statusbar_text)
+ g_free(priv->statusbar_text);
- if (priv->books) {
- g_list_free(priv->books);
- priv->books = NULL;
- }
+ if (priv->books)
+ {
+ g_list_free(priv->books);
+ priv->books = NULL;
+ }
- page->window = NULL; // Don't need to free it.
+ page->window = NULL; // Don't need to free it.
- gnc_gobject_tracking_forget(object);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ gnc_gobject_tracking_forget(object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
/************************************************************/
@@ -596,46 +607,46 @@
* being retrieved. */
static void
gnc_plugin_page_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- GncPluginPage *page;
- GncPluginPagePrivate *priv;
+ GncPluginPage *page;
+ GncPluginPagePrivate *priv;
- g_return_if_fail(GNC_IS_PLUGIN_PAGE(object));
+ g_return_if_fail(GNC_IS_PLUGIN_PAGE(object));
- page = GNC_PLUGIN_PAGE(object);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- switch (prop_id)
+ page = GNC_PLUGIN_PAGE(object);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ switch (prop_id)
{
case PROP_PAGE_NAME:
- g_value_set_string (value, priv->page_name);
- break;
+ g_value_set_string (value, priv->page_name);
+ break;
case PROP_PAGE_COLOR:
- g_value_set_string (value, priv->page_color);
- break;
+ g_value_set_string (value, priv->page_color);
+ break;
case PROP_PAGE_URI:
- g_value_set_string (value, priv->uri);
- break;
+ g_value_set_string (value, priv->uri);
+ break;
case PROP_STATUSBAR_TEXT:
- g_value_set_string (value, priv->statusbar_text);
- break;
+ g_value_set_string (value, priv->statusbar_text);
+ break;
case PROP_USE_NEW_WINDOW:
- g_value_set_boolean (value, priv->use_new_window);
- break;
+ g_value_set_boolean (value, priv->use_new_window);
+ break;
case PROP_UI_DESCRIPTION:
- g_value_set_string (value, priv->ui_description);
- break;
+ g_value_set_string (value, priv->ui_description);
+ break;
case PROP_UI_MERGE:
- g_value_set_object (value, priv->ui_merge);
- break;
+ g_value_set_object (value, priv->ui_merge);
+ break;
case PROP_ACTION_GROUP:
- g_value_set_object (value, priv->action_group);
- break;
+ g_value_set_object (value, priv->action_group);
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
}
@@ -658,39 +669,39 @@
* being retrieved. */
static void
gnc_plugin_page_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- GncPluginPage *page;
+ GncPluginPage *page;
- g_return_if_fail(GNC_IS_PLUGIN_PAGE(object));
+ g_return_if_fail(GNC_IS_PLUGIN_PAGE(object));
- page = GNC_PLUGIN_PAGE(object);
-
- switch (prop_id)
+ page = GNC_PLUGIN_PAGE(object);
+
+ switch (prop_id)
{
case PROP_PAGE_NAME:
- gnc_plugin_page_set_page_name(page, g_value_get_string(value));
- break;
+ gnc_plugin_page_set_page_name(page, g_value_get_string(value));
+ break;
case PROP_PAGE_COLOR:
- gnc_plugin_page_set_page_color(page, g_value_get_string(value));
- break;
+ gnc_plugin_page_set_page_color(page, g_value_get_string(value));
+ break;
case PROP_PAGE_URI:
- gnc_plugin_page_set_uri(page, g_value_get_string(value));
- break;
+ gnc_plugin_page_set_uri(page, g_value_get_string(value));
+ break;
case PROP_STATUSBAR_TEXT:
- gnc_plugin_page_set_statusbar_text(page, g_value_get_string(value));
- break;
+ gnc_plugin_page_set_statusbar_text(page, g_value_get_string(value));
+ break;
case PROP_USE_NEW_WINDOW:
- gnc_plugin_page_set_use_new_window(page, g_value_get_boolean(value));
- break;
+ gnc_plugin_page_set_use_new_window(page, g_value_get_boolean(value));
+ break;
case PROP_UI_DESCRIPTION:
- gnc_plugin_page_set_ui_description(page, g_value_get_string(value));
- break;
+ gnc_plugin_page_set_ui_description(page, g_value_get_string(value));
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
}
@@ -702,13 +713,13 @@
void
gnc_plugin_page_add_book (GncPluginPage *page, QofBook *book)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- g_return_if_fail (book != NULL);
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (book != NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- priv->books = g_list_append(priv->books, book);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ priv->books = g_list_append(priv->books, book);
}
@@ -716,19 +727,21 @@
gboolean
gnc_plugin_page_has_book (GncPluginPage *page, QofBook *book)
{
- GncPluginPagePrivate *priv;
- GList *item;
+ GncPluginPagePrivate *priv;
+ GList *item;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
- g_return_val_if_fail (book != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
+ g_return_val_if_fail (book != NULL, FALSE);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- for (item = priv->books; item; item = g_list_next(item)) {
- if (item->data == book) {
- return TRUE;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ for (item = priv->books; item; item = g_list_next(item))
+ {
+ if (item->data == book)
+ {
+ return TRUE;
+ }
}
- }
- return FALSE;
+ return FALSE;
}
@@ -736,12 +749,12 @@
gboolean
gnc_plugin_page_has_books (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return (priv->books != NULL);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return (priv->books != NULL);
}
@@ -750,9 +763,9 @@
GtkWidget *
gnc_plugin_page_get_window (GncPluginPage *page)
{
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- return page->window;
+ return page->window;
}
@@ -761,12 +774,12 @@
const gchar *
gnc_plugin_page_get_page_name (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->page_name;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->page_name;
}
@@ -775,21 +788,22 @@
void
gnc_plugin_page_set_page_name (GncPluginPage *page, const gchar *name)
{
- GncPluginPagePrivate *priv;
- GncPluginPageClass *klass;
+ GncPluginPagePrivate *priv;
+ GncPluginPageClass *klass;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->page_name)
- g_free(priv->page_name);
- priv->page_name = g_strdup(name);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->page_name)
+ g_free(priv->page_name);
+ priv->page_name = g_strdup(name);
- /* Perform page specific actions */
- klass = GNC_PLUGIN_PAGE_GET_CLASS (page);
- if (klass->page_name_changed) {
- klass->page_name_changed(page, name);
- }
+ /* Perform page specific actions */
+ klass = GNC_PLUGIN_PAGE_GET_CLASS (page);
+ if (klass->page_name_changed)
+ {
+ klass->page_name_changed(page, name);
+ }
}
@@ -799,12 +813,12 @@
const gchar *
gnc_plugin_page_get_page_long_name (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->page_long_name;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->page_long_name;
}
@@ -813,14 +827,14 @@
void
gnc_plugin_page_set_page_long_name (GncPluginPage *page, const gchar *name)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->page_long_name)
- g_free(priv->page_long_name);
- priv->page_long_name = g_strdup(name);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->page_long_name)
+ g_free(priv->page_long_name);
+ priv->page_long_name = g_strdup(name);
}
@@ -828,12 +842,12 @@
const gchar *
gnc_plugin_page_get_page_color (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->page_color;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->page_color;
}
@@ -841,14 +855,14 @@
void
gnc_plugin_page_set_page_color (GncPluginPage *page, const gchar *color)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->page_color)
- g_free(priv->page_color);
- priv->page_color = g_strdup(color);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->page_color)
+ g_free(priv->page_color);
+ priv->page_color = g_strdup(color);
}
@@ -856,12 +870,12 @@
const gchar *
gnc_plugin_page_get_uri (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->uri;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->uri;
}
@@ -869,14 +883,14 @@
void
gnc_plugin_page_set_uri (GncPluginPage *page, const gchar *name)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->uri)
- g_free(priv->uri);
- priv->uri = g_strdup(name);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->uri)
+ g_free(priv->uri);
+ priv->uri = g_strdup(name);
}
@@ -884,12 +898,12 @@
const gchar *
gnc_plugin_page_get_statusbar_text (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->statusbar_text;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->statusbar_text;
}
@@ -897,14 +911,14 @@
void
gnc_plugin_page_set_statusbar_text (GncPluginPage *page, const gchar *message)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->statusbar_text)
- g_free(priv->statusbar_text);
- priv->statusbar_text = g_strdup(message);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->statusbar_text)
+ g_free(priv->statusbar_text);
+ priv->statusbar_text = g_strdup(message);
}
@@ -912,12 +926,12 @@
gboolean
gnc_plugin_page_get_use_new_window (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->use_new_window;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->use_new_window;
}
@@ -928,12 +942,12 @@
void
gnc_plugin_page_set_use_new_window (GncPluginPage *page, gboolean use_new)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+ g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- priv->use_new_window = use_new;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ priv->use_new_window = use_new;
}
@@ -941,12 +955,12 @@
const gchar *
gnc_plugin_page_get_ui_description (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), FALSE);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->ui_description;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->ui_description;
}
@@ -954,16 +968,16 @@
* may only use actions specified in the source for the page. */
void
gnc_plugin_page_set_ui_description (GncPluginPage *page,
- const char *ui_filename)
+ const char *ui_filename)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_if_fail(GNC_IS_PLUGIN_PAGE(page));
+ g_return_if_fail(GNC_IS_PLUGIN_PAGE(page));
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- if (priv->ui_description)
- g_free(priv->ui_description);
- priv->ui_description = g_strdup(ui_filename);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ if (priv->ui_description)
+ g_free(priv->ui_description);
+ priv->ui_description = g_strdup(ui_filename);
}
@@ -971,12 +985,12 @@
GtkUIManager *
gnc_plugin_page_get_ui_merge (GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), NULL);
+ g_return_val_if_fail(GNC_IS_PLUGIN_PAGE(page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->ui_merge;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->ui_merge;
}
@@ -984,11 +998,11 @@
GtkActionGroup *
gnc_plugin_page_get_action_group(GncPluginPage *page)
{
- GncPluginPagePrivate *priv;
+ GncPluginPagePrivate *priv;
- g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- return priv->action_group;
+ g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ return priv->action_group;
}
@@ -996,27 +1010,27 @@
GtkActionGroup *
gnc_plugin_page_create_action_group (GncPluginPage *page, const gchar *group_name)
{
- GncPluginPagePrivate *priv;
- GtkActionGroup *group;
+ GncPluginPagePrivate *priv;
+ GtkActionGroup *group;
- priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
- group = gtk_action_group_new(group_name);
- gnc_gtk_action_group_set_translation_domain(group, GETTEXT_PACKAGE);
- priv->action_group = group;
- return group;
+ priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+ group = gtk_action_group_new(group_name);
+ gnc_gtk_action_group_set_translation_domain(group, GETTEXT_PACKAGE);
+ priv->action_group = group;
+ return group;
}
gboolean
gnc_plugin_page_finish_pending (GncPluginPage *page)
{
- if (!page)
- return TRUE;
- if (!GNC_IS_PLUGIN_PAGE(page))
- return TRUE;
+ if (!page)
+ return TRUE;
+ if (!GNC_IS_PLUGIN_PAGE(page))
+ return TRUE;
- if (!GNC_PLUGIN_PAGE_GET_CLASS(page)->finish_pending)
- return TRUE;
- return (GNC_PLUGIN_PAGE_GET_CLASS(page)->finish_pending)(page);
+ if (!GNC_PLUGIN_PAGE_GET_CLASS(page)->finish_pending)
+ return TRUE;
+ return (GNC_PLUGIN_PAGE_GET_CLASS(page)->finish_pending)(page);
}
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-page.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-page.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-page.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-plugin-page.h -- A page, which can be added to the
* GnuCash main window.
*
@@ -54,19 +54,20 @@
/* typedefs & structures */
/** The instance data structure for a content plugin. */
-typedef struct GncPluginPage {
- GObject gobject; /**< The parent object data. */
+typedef struct GncPluginPage
+{
+ GObject gobject; /**< The parent object data. */
- GtkWidget *window; /**< The window that contains the
+ GtkWidget *window; /**< The window that contains the
* display widget for this plugin.
* This field is private to the
* gnucash window management
* code. */
- GtkWidget *notebook_page; /**< The display widget for this
+ GtkWidget *notebook_page; /**< The display widget for this
* plugin. This field is private to
* the gnucash window management
* code. */
- GtkWidget *summarybar; /**< The summary bar widget (if any)
+ GtkWidget *summarybar; /**< The summary bar widget (if any)
* that is associated with this
* plugin. This field is private to
* the gnucash window management
@@ -75,113 +76,114 @@
/** The class data structure for a content plugin. */
-typedef struct {
- GObjectClass gobject;
+typedef struct
+{
+ GObjectClass gobject;
- /** The relative name of the icon that should be shown on the
- * tab for this page. */
- const gchar *tab_icon;
- /** The textual name of this plugin. */
- const gchar *plugin_name;
+ /** The relative name of the icon that should be shown on the
+ * tab for this page. */
+ const gchar *tab_icon;
+ /** The textual name of this plugin. */
+ const gchar *plugin_name;
- /* Signals */
- void (* inserted) (GncPluginPage *plugin_page);
- void (* removed) (GncPluginPage *plugin_page);
- void (* selected) (GncPluginPage *plugin_page);
- void (* unselected) (GncPluginPage *plugin_page);
+ /* Signals */
+ void (* inserted) (GncPluginPage *plugin_page);
+ void (* removed) (GncPluginPage *plugin_page);
+ void (* selected) (GncPluginPage *plugin_page);
+ void (* unselected) (GncPluginPage *plugin_page);
- /* Virtual Table */
+ /* Virtual Table */
- /** Function called to create the display widget for a
- * particular type of plugin. The returned widget should
- * encompass all information that goes with this page,
- * including scroll bars, a summary bar, etc.
- *
- * @param plugin_page A pointer to the plugin for which a
- * display widget should be created.
- *
- * @return A displayable gtk widget. */
- GtkWidget *(* create_widget) (GncPluginPage *plugin_page);
- /** Function called to destroy the display widget for a
- * particular type of plugin.
- *
- * @param plugin_page A pointer to the plugin whose display
- * widget should be destroyed. */
- void (* destroy_widget) (GncPluginPage *plugin_page);
+ /** Function called to create the display widget for a
+ * particular type of plugin. The returned widget should
+ * encompass all information that goes with this page,
+ * including scroll bars, a summary bar, etc.
+ *
+ * @param plugin_page A pointer to the plugin for which a
+ * display widget should be created.
+ *
+ * @return A displayable gtk widget. */
+ GtkWidget *(* create_widget) (GncPluginPage *plugin_page);
+ /** Function called to destroy the display widget for a
+ * particular type of plugin.
+ *
+ * @param plugin_page A pointer to the plugin whose display
+ * widget should be destroyed. */
+ void (* destroy_widget) (GncPluginPage *plugin_page);
- /** Save enough information about this page so that it can be
- * recreated next time the user starts gnucash.
- *
- * @param page The page to save.
- *
- * @param key_file A pointer to the GKeyFile data structure where the
- * page information should be written.
- *
- * @param group_name The group name to use when writing data.
- * The name is specific to this page instance. */
- void (* save_page) (GncPluginPage *page, GKeyFile *file,
- const gchar *group);
+ /** Save enough information about this page so that it can be
+ * recreated next time the user starts gnucash.
+ *
+ * @param page The page to save.
+ *
+ * @param key_file A pointer to the GKeyFile data structure where the
+ * page information should be written.
+ *
+ * @param group_name The group name to use when writing data.
+ * The name is specific to this page instance. */
+ void (* save_page) (GncPluginPage *page, GKeyFile *file,
+ const gchar *group);
- /** Create a new page based on the information saved during a
- * previous instantiation of gnucash. This function may or
- * may not install the new page in the window as it sees fit.
- * Generally the function will install the page int the
- * window in order to manipulate the menu items that are
- * created at install time.
- *
- * @param window The window where this new page will be
- * installed.
- *
- * @param key_file A pointer to the GKeyFile data structure where the
- * page information should be retrieved.
- *
- * @param group_name The group name to use when retrieving
- * data. The name is specific to this page instance.
- *
- * @return A pointer to the new page. */
- GncPluginPage * (* recreate_page) (GtkWidget *window, GKeyFile *file,
- const gchar *group);
+ /** Create a new page based on the information saved during a
+ * previous instantiation of gnucash. This function may or
+ * may not install the new page in the window as it sees fit.
+ * Generally the function will install the page int the
+ * window in order to manipulate the menu items that are
+ * created at install time.
+ *
+ * @param window The window where this new page will be
+ * installed.
+ *
+ * @param key_file A pointer to the GKeyFile data structure where the
+ * page information should be retrieved.
+ *
+ * @param group_name The group name to use when retrieving
+ * data. The name is specific to this page instance.
+ *
+ * @return A pointer to the new page. */
+ GncPluginPage * (* recreate_page) (GtkWidget *window, GKeyFile *file,
+ const gchar *group);
- /** Perform plugin specific actions when a page is added to a
- * window (or has been removed from one window and added to a
- * new window). This function is called after the page is
- * installed in the window, just before the window's
- * PAGE_ADDED signal is generated.
- *
- * @param page The page that was added to a window.
- *
- * @param window The window where the page was added. */
- void (* window_changed) (GncPluginPage *plugin_page, GtkWidget *window);
+ /** Perform plugin specific actions when a page is added to a
+ * window (or has been removed from one window and added to a
+ * new window). This function is called after the page is
+ * installed in the window, just before the window's
+ * PAGE_ADDED signal is generated.
+ *
+ * @param page The page that was added to a window.
+ *
+ * @param window The window where the page was added. */
+ void (* window_changed) (GncPluginPage *plugin_page, GtkWidget *window);
- /** This function vector allows page specific actions to occur
- * when the page name is changed.
- *
- * @param page The page to update.
- *
- * @param name The new name for this page. */
- void (* page_name_changed) (GncPluginPage *plugin_page,
- const gchar *name);
+ /** This function vector allows page specific actions to occur
+ * when the page name is changed.
+ *
+ * @param page The page to update.
+ *
+ * @param name The new name for this page. */
+ void (* page_name_changed) (GncPluginPage *plugin_page,
+ const gchar *name);
- /** This function vector allows page specific actions to
- * override the generic code for setting the sensitivity of
- * items in the Edit menu.
- *
- * @param page The front page in a main window..
- *
- * @param hide Whether the widgets should be shown or
- * hidden. */
- void (* update_edit_menu_actions) (GncPluginPage *plugin_page, gboolean hide);
+ /** This function vector allows page specific actions to
+ * override the generic code for setting the sensitivity of
+ * items in the Edit menu.
+ *
+ * @param page The front page in a main window..
+ *
+ * @param hide Whether the widgets should be shown or
+ * hidden. */
+ void (* update_edit_menu_actions) (GncPluginPage *plugin_page, gboolean hide);
- /** This function vector is called to finish any outstanding
- * activities. It will be called for such things as closing a
- * page, saving the data file, etc.
- *
- * @param page The page in a main window.
- *
- * @return FALSE if the page could not or would not comply,
- * which should cancel the pending operation. TRUE
- * otherwise */
- gboolean (* finish_pending) (GncPluginPage *plugin_page);
+ /** This function vector is called to finish any outstanding
+ * activities. It will be called for such things as closing a
+ * page, saving the data file, etc.
+ *
+ * @param page The page in a main window.
+ *
+ * @return FALSE if the page could not or would not comply,
+ * which should cancel the pending operation. TRUE
+ * otherwise */
+ gboolean (* finish_pending) (GncPluginPage *plugin_page);
} GncPluginPageClass;
@@ -235,8 +237,8 @@
*
* @param group_name The group name to use when saving data. */
void gnc_plugin_page_save_page (GncPluginPage *page,
- GKeyFile *key_file,
- const gchar *group_name);
+ GKeyFile *key_file,
+ const gchar *group_name);
/** This function looks up a specific plugin type by name, and then
@@ -252,9 +254,9 @@
*
* @param group_name The group name to use when restoring data. */
GncPluginPage *gnc_plugin_page_recreate_page (GtkWidget *window,
- const gchar *page_type,
- GKeyFile *key_file,
- const gchar *group_name);
+ const gchar *page_type,
+ GKeyFile *key_file,
+ const gchar *group_name);
/** Add the actions for a content page to the specified window.
@@ -264,7 +266,7 @@
*
* @param merge A pointer to the UI manager data structure for a
* window. */
-void gnc_plugin_page_merge_actions (GncPluginPage *plugin_page,
+void gnc_plugin_page_merge_actions (GncPluginPage *plugin_page,
GtkUIManager *merge);
@@ -275,7 +277,7 @@
*
* @param merge A pointer to the UI manager data structure for a
* window. */
-void gnc_plugin_page_unmerge_actions (GncPluginPage *plugin_page,
+void gnc_plugin_page_unmerge_actions (GncPluginPage *plugin_page,
GtkUIManager *merge);
@@ -431,8 +433,8 @@
*
* @param name The new statusbar text for the page.
*/
-void gnc_plugin_page_set_statusbar_text (GncPluginPage *page,
- const char *name);
+void gnc_plugin_page_set_statusbar_text (GncPluginPage *page,
+ const char *name);
/** Retrieve the "use new window" setting associated with this page.
@@ -453,8 +455,8 @@
*
* @param use_new The new value for this setting.
*/
-void gnc_plugin_page_set_use_new_window (GncPluginPage *page,
- gboolean use_new);
+void gnc_plugin_page_set_use_new_window (GncPluginPage *page,
+ gboolean use_new);
/** Retrieve the name of the XML UI file associated with this page.
@@ -477,8 +479,8 @@
*
* @param ui_filename The filename (no path) of the alternate UI.
*/
-void gnc_plugin_page_set_ui_description (GncPluginPage *page,
- const char *ui_filename);
+void gnc_plugin_page_set_ui_description (GncPluginPage *page,
+ const char *ui_filename);
/** Retrieve the GtkUIManager object associated with this page.
@@ -509,8 +511,8 @@
*
* @return A pointer to the newly created GtkActionGroup object for
* this page. */
-GtkActionGroup * gnc_plugin_page_create_action_group (GncPluginPage *page,
- const gchar *group_name);
+GtkActionGroup * gnc_plugin_page_create_action_group (GncPluginPage *page,
+ const gchar *group_name);
/** Retrieve a GtkAction object associated with this page.
*
@@ -529,7 +531,7 @@
void gnc_plugin_page_unselected (GncPluginPage *plugin_page);
/** Tell a page to finish any outstanding activities.
- *
+ *
* @param plugin_page A page.
*
* @return FALSE if the page could not or would not comply, which
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-plugin.c --
+/*
+ * gnc-plugin.c --
*
* Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
* Copyright (C) 2003,2005 David Hampton <hampton at employees.org>
@@ -50,14 +50,15 @@
static void gnc_plugin_class_init (GncPluginClass *klass);
static void gnc_plugin_init (GncPlugin *plugin_page,
- GncPluginClass *klass);
+ GncPluginClass *klass);
static void gnc_plugin_finalize (GObject *object);
/** The instance private data for a menu-only plugin. This data
* structure is unused. */
-typedef struct GncPluginPrivate {
- gpointer dummy;
+typedef struct GncPluginPrivate
+{
+ gpointer dummy;
} GncPluginPrivate;
#define GNC_PLUGIN_GET_PRIVATE(o) \
@@ -69,27 +70,29 @@
GType
gnc_plugin_get_type (void)
{
- static GType gnc_plugin_type = 0;
+ static GType gnc_plugin_type = 0;
- if (gnc_plugin_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncPluginClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_plugin_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncPlugin),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_plugin_init,
- };
+ if (gnc_plugin_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncPluginClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_plugin_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncPlugin),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_plugin_init,
+ };
- gnc_plugin_type = g_type_register_static (G_TYPE_OBJECT,
- GNC_PLUGIN_NAME,
- &our_info, 0);
- }
+ gnc_plugin_type = g_type_register_static (G_TYPE_OBJECT,
+ GNC_PLUGIN_NAME,
+ &our_info, 0);
+ }
- return gnc_plugin_type;
+ return gnc_plugin_type;
}
@@ -103,12 +106,12 @@
static void
gnc_plugin_class_init (GncPluginClass *klass)
{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
- gobject_class->finalize = gnc_plugin_finalize;
+ parent_class = g_type_class_peek_parent (klass);
+ gobject_class->finalize = gnc_plugin_finalize;
- g_type_class_add_private(klass, sizeof(GncPluginPrivate));
+ g_type_class_add_private(klass, sizeof(GncPluginPrivate));
}
@@ -123,8 +126,8 @@
static void
gnc_plugin_init (GncPlugin *plugin_page, GncPluginClass *klass)
{
- gnc_gobject_tracking_remember(G_OBJECT(plugin_page),\
- G_OBJECT_CLASS(klass));
+ gnc_gobject_tracking_remember(G_OBJECT(plugin_page), \
+ G_OBJECT_CLASS(klass));
}
@@ -138,16 +141,16 @@
static void
gnc_plugin_finalize (GObject *object)
{
- GncPlugin *plugin;
- GncPluginPrivate *priv;
+ GncPlugin *plugin;
+ GncPluginPrivate *priv;
- g_return_if_fail (GNC_IS_PLUGIN (object));
+ g_return_if_fail (GNC_IS_PLUGIN (object));
- plugin = GNC_PLUGIN (object);
- priv = GNC_PLUGIN_GET_PRIVATE (plugin);
+ plugin = GNC_PLUGIN (object);
+ priv = GNC_PLUGIN_GET_PRIVATE (plugin);
- gnc_gobject_tracking_forget(object);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ gnc_gobject_tracking_forget(object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -159,53 +162,57 @@
* See gnc-plugin.h for documentation on the function arguments. */
void
gnc_plugin_add_to_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type)
+ GncMainWindow *window,
+ GQuark type)
{
- GncPluginClass *class;
- GtkActionGroup *action_group;
+ GncPluginClass *class;
+ GtkActionGroup *action_group;
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
- class = GNC_PLUGIN_GET_CLASS (plugin);
- ENTER (": plugin %s(%p), window %p", gnc_plugin_get_name(plugin),
- plugin, window);
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ class = GNC_PLUGIN_GET_CLASS (plugin);
+ ENTER (": plugin %s(%p), window %p", gnc_plugin_get_name(plugin),
+ plugin, window);
- /*
- * Update window with additional UI items
- */
- if (class->actions_name) {
- DEBUG ("%s: %d actions to merge with gui from %s",
- class->actions_name, class->n_actions, class->ui_filename);
- gnc_main_window_merge_actions (window, class->actions_name,
- class->actions, class->n_actions,
- class->ui_filename, plugin);
+ /*
+ * Update window with additional UI items
+ */
+ if (class->actions_name)
+ {
+ DEBUG ("%s: %d actions to merge with gui from %s",
+ class->actions_name, class->n_actions, class->ui_filename);
+ gnc_main_window_merge_actions (window, class->actions_name,
+ class->actions, class->n_actions,
+ class->ui_filename, plugin);
- if (class->important_actions) {
- action_group =
- gnc_main_window_get_action_group(window, class->actions_name);
- gnc_plugin_set_important_actions(action_group,
- class->important_actions);
- }
- }
+ if (class->important_actions)
+ {
+ action_group =
+ gnc_main_window_get_action_group(window, class->actions_name);
+ gnc_plugin_set_important_actions(action_group,
+ class->important_actions);
+ }
+ }
- /*
- * Setup gconf notifications if requested
- */
- if (class->gconf_section && class->gconf_notifications) {
- DEBUG ("Requesting notification for section %s", class->gconf_section);
- gnc_gconf_add_notification(G_OBJECT(window), class->gconf_section,
- class->gconf_notifications, GNC_PLUGIN_NAME);
- }
+ /*
+ * Setup gconf notifications if requested
+ */
+ if (class->gconf_section && class->gconf_notifications)
+ {
+ DEBUG ("Requesting notification for section %s", class->gconf_section);
+ gnc_gconf_add_notification(G_OBJECT(window), class->gconf_section,
+ class->gconf_notifications, GNC_PLUGIN_NAME);
+ }
- /*
- * Do plugin specific actions.
- */
- if (GNC_PLUGIN_GET_CLASS (plugin)->add_to_window) {
- DEBUG ("Calling child class function %p", GNC_PLUGIN_GET_CLASS (plugin)->add_to_window);
- GNC_PLUGIN_GET_CLASS (plugin)->add_to_window (plugin, window, type);
- }
- LEAVE ("");
+ /*
+ * Do plugin specific actions.
+ */
+ if (GNC_PLUGIN_GET_CLASS (plugin)->add_to_window)
+ {
+ DEBUG ("Calling child class function %p", GNC_PLUGIN_GET_CLASS (plugin)->add_to_window);
+ GNC_PLUGIN_GET_CLASS (plugin)->add_to_window (plugin, window, type);
+ }
+ LEAVE ("");
}
@@ -217,43 +224,46 @@
* See gnc-plugin.h for documentation on the function arguments. */
void
gnc_plugin_remove_from_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type)
+ GncMainWindow *window,
+ GQuark type)
{
- GncPluginClass *class;
+ GncPluginClass *class;
- g_return_if_fail (GNC_IS_PLUGIN (plugin));
- class = GNC_PLUGIN_GET_CLASS (plugin);
- ENTER (": plugin %s(%p), window %p", gnc_plugin_get_name(plugin),
- plugin, window);
+ g_return_if_fail (GNC_IS_PLUGIN (plugin));
+ class = GNC_PLUGIN_GET_CLASS (plugin);
+ ENTER (": plugin %s(%p), window %p", gnc_plugin_get_name(plugin),
+ plugin, window);
- /*
- * Do plugin specific actions.
- */
- if (GNC_PLUGIN_GET_CLASS (plugin)->remove_from_window) {
- DEBUG ("Calling child class function %p",
- GNC_PLUGIN_GET_CLASS (plugin)->remove_from_window);
- GNC_PLUGIN_GET_CLASS (plugin)->remove_from_window (plugin, window, type);
- }
+ /*
+ * Do plugin specific actions.
+ */
+ if (GNC_PLUGIN_GET_CLASS (plugin)->remove_from_window)
+ {
+ DEBUG ("Calling child class function %p",
+ GNC_PLUGIN_GET_CLASS (plugin)->remove_from_window);
+ GNC_PLUGIN_GET_CLASS (plugin)->remove_from_window (plugin, window, type);
+ }
- /*
- * Remove any gconf notifications
- */
- if (class->gconf_section && class->gconf_notifications) {
- DEBUG ("Remove notification for section %s", class->gconf_section);
- gnc_gconf_remove_notification (G_OBJECT(window), class->gconf_section,
- GNC_PLUGIN_NAME);
- }
+ /*
+ * Remove any gconf notifications
+ */
+ if (class->gconf_section && class->gconf_notifications)
+ {
+ DEBUG ("Remove notification for section %s", class->gconf_section);
+ gnc_gconf_remove_notification (G_OBJECT(window), class->gconf_section,
+ GNC_PLUGIN_NAME);
+ }
- /*
- * Update window to remove UI items
- */
- if (class->actions_name) {
- DEBUG ("%s: %d actions to unmerge",
- class->actions_name, class->n_actions);
- gnc_main_window_unmerge_actions (window, class->actions_name);
- }
- LEAVE ("");
+ /*
+ * Update window to remove UI items
+ */
+ if (class->actions_name)
+ {
+ DEBUG ("%s: %d actions to unmerge",
+ class->actions_name, class->n_actions);
+ gnc_main_window_unmerge_actions (window, class->actions_name);
+ }
+ LEAVE ("");
}
@@ -262,8 +272,8 @@
const gchar *
gnc_plugin_get_name (GncPlugin *plugin)
{
- g_return_val_if_fail (GNC_IS_PLUGIN (plugin), NULL);
- return (GNC_PLUGIN_GET_CLASS(plugin)->plugin_name);
+ g_return_val_if_fail (GNC_IS_PLUGIN (plugin), NULL);
+ return (GNC_PLUGIN_GET_CLASS(plugin)->plugin_name);
}
@@ -278,21 +288,22 @@
* See gnc-plugin.h for documentation on the function arguments. */
void
gnc_plugin_init_short_names (GtkActionGroup *action_group,
- action_toolbar_labels *toolbar_labels)
+ action_toolbar_labels *toolbar_labels)
{
- GtkAction *action;
- GValue value = { 0, };
- gint i;
+ GtkAction *action;
+ GValue value = { 0, };
+ gint i;
- g_value_init (&value, G_TYPE_STRING);
+ g_value_init (&value, G_TYPE_STRING);
- for (i = 0; toolbar_labels[i].action_name; i++) {
- /* Add a couple of short labels for the toolbar */
- action = gtk_action_group_get_action (action_group,
- toolbar_labels[i].action_name);
- g_value_set_static_string (&value, gettext(toolbar_labels[i].label));
- g_object_set_property (G_OBJECT(action), "short_label", &value);
- }
+ for (i = 0; toolbar_labels[i].action_name; i++)
+ {
+ /* Add a couple of short labels for the toolbar */
+ action = gtk_action_group_get_action (action_group,
+ toolbar_labels[i].action_name);
+ g_value_set_static_string (&value, gettext(toolbar_labels[i].label));
+ g_object_set_property (G_OBJECT(action), "short_label", &value);
+ }
}
@@ -303,19 +314,20 @@
* See gnc-plugin.h for documentation on the function arguments. */
void
gnc_plugin_set_important_actions (GtkActionGroup *action_group,
- const gchar **name)
+ const gchar **name)
{
- GtkAction *action;
- gint i;
+ GtkAction *action;
+ gint i;
- for (i = 0; name[i]; i++) {
- action = gtk_action_group_get_action (action_group, name[i]);
- g_object_set (G_OBJECT(action), "is_important", TRUE, NULL);
- }
+ for (i = 0; name[i]; i++)
+ {
+ action = gtk_action_group_get_action (action_group, name[i]);
+ g_object_set (G_OBJECT(action), "is_important", TRUE, NULL);
+ }
- /* If this trips, you've got too many "important" actions. That
- * can't *all* be that important, can they? */
- g_assert(i <= 3);
+ /* If this trips, you've got too many "important" actions. That
+ * can't *all* be that important, can they? */
+ g_assert(i <= 3);
}
@@ -326,21 +338,22 @@
* See gnc-plugin.h for documentation on the function arguments. */
void
gnc_plugin_update_actions (GtkActionGroup *action_group,
- const gchar **action_names,
- const gchar *property_name,
- gboolean value)
+ const gchar **action_names,
+ const gchar *property_name,
+ gboolean value)
{
- GtkAction *action;
- GValue gvalue = { 0 };
- gint i;
+ GtkAction *action;
+ GValue gvalue = { 0 };
+ gint i;
- g_value_init (&gvalue, G_TYPE_BOOLEAN);
- g_value_set_boolean (&gvalue, value);
+ g_value_init (&gvalue, G_TYPE_BOOLEAN);
+ g_value_set_boolean (&gvalue, value);
- for (i = 0; action_names[i]; i++) {
- action = gtk_action_group_get_action (action_group, action_names[i]);
- g_object_set_property (G_OBJECT(action), property_name, &gvalue);
- }
+ for (i = 0; action_names[i]; i++)
+ {
+ action = gtk_action_group_get_action (action_group, action_names[i]);
+ g_object_set_property (G_OBJECT(action), property_name, &gvalue);
+ }
}
@@ -349,73 +362,77 @@
* See gnc-plugin.h for documentation on the function arguments. */
gint
gnc_plugin_add_actions (GtkUIManager *ui_merge,
- GtkActionGroup *action_group,
- const gchar *filename)
+ GtkActionGroup *action_group,
+ const gchar *filename)
{
- GError *error = NULL;
- gchar *pathname;
- gint merge_id;
-
- g_return_val_if_fail (ui_merge, 0);
- g_return_val_if_fail (action_group, 0);
- g_return_val_if_fail (filename, 0);
+ GError *error = NULL;
+ gchar *pathname;
+ gint merge_id;
- ENTER("ui_merge %p, action_group %p, filename %s",
- ui_merge, action_group, filename);
- gtk_ui_manager_insert_action_group (ui_merge, action_group, 0);
+ g_return_val_if_fail (ui_merge, 0);
+ g_return_val_if_fail (action_group, 0);
+ g_return_val_if_fail (filename, 0);
- pathname = gnc_gnome_locate_ui_file (filename);
- if (pathname == NULL)
+ ENTER("ui_merge %p, action_group %p, filename %s",
+ ui_merge, action_group, filename);
+ gtk_ui_manager_insert_action_group (ui_merge, action_group, 0);
+
+ pathname = gnc_gnome_locate_ui_file (filename);
+ if (pathname == NULL)
{
- LEAVE("fail");
- return 0;
+ LEAVE("fail");
+ return 0;
}
- merge_id = gtk_ui_manager_add_ui_from_file (ui_merge, pathname, &error);
- DEBUG("merge_id is %d", merge_id);
+ merge_id = gtk_ui_manager_add_ui_from_file (ui_merge, pathname, &error);
+ DEBUG("merge_id is %d", merge_id);
- g_assert(merge_id || error);
- if (merge_id) {
- gtk_ui_manager_ensure_update (ui_merge);
- } else {
- g_critical("Failed to load ui file.\n Filename %s\n Error %s",
- filename, error->message);
- g_error_free(error);
- }
+ g_assert(merge_id || error);
+ if (merge_id)
+ {
+ gtk_ui_manager_ensure_update (ui_merge);
+ }
+ else
+ {
+ g_critical("Failed to load ui file.\n Filename %s\n Error %s",
+ filename, error->message);
+ g_error_free(error);
+ }
- g_free(pathname);
- LEAVE(" ");
- return merge_id;
+ g_free(pathname);
+ LEAVE(" ");
+ return merge_id;
}
#if 0
static void
gnc_plugin_base_init (gpointer klass)
{
- static gboolean initialized = FALSE;
+ static gboolean initialized = FALSE;
- if (!initialized) {
- initialized = TRUE;
+ if (!initialized)
+ {
+ initialized = TRUE;
- signals[MERGE_ACTIONS] = g_signal_new ("merge-actions",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginClass, merge_actions),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE,
- 1,
- GTK_TYPE_MENU_MERGE);
- signals[UNMERGE_ACTIONS] = g_signal_new ("unmerge-actions",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GncPluginClass, unmerge_actions),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE,
- 1,
- GTK_TYPE_MENU_MERGE);
- }
+ signals[MERGE_ACTIONS] = g_signal_new ("merge-actions",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginClass, merge_actions),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1,
+ GTK_TYPE_MENU_MERGE);
+ signals[UNMERGE_ACTIONS] = g_signal_new ("unmerge-actions",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GncPluginClass, unmerge_actions),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1,
+ GTK_TYPE_MENU_MERGE);
+ }
}
#endif
Modified: gnucash/trunk/src/gnome-utils/gnc-plugin.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-plugin.h -- A module or plugin which can add more
* functionality to GnuCash.
* Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -98,93 +98,95 @@
/* typedefs & structures */
/** The instance data structure for a menu-only plugin. */
-typedef struct {
- /** The parent object for this widget */
- GObject gobject;
+typedef struct
+{
+ /** The parent object for this widget */
+ GObject gobject;
} GncPlugin;
/** The class data structure for a menu-only plugin. */
-typedef struct {
- /** The parent class for this widget. */
- GObjectClass gobject;
- /** The textual name of this plugin. */
- const gchar *plugin_name;
+typedef struct
+{
+ /** The parent class for this widget. */
+ GObjectClass gobject;
+ /** The textual name of this plugin. */
+ const gchar *plugin_name;
- /* Actions section */
+ /* Actions section */
- /** A name for the set of actions that will be added by this
- * plugin. The actual name is irrelevant, as long as it is
- * unique within GnuCash. */
- const gchar *actions_name;
- /** An array of actions that should automatically be added to
- * any GnuCash "main" content window that is opened. */
- GtkActionEntry *actions;
- /** The number of actions in the actions array. */
- guint n_actions;
- /** A NULL terminated list of actions that should be considered
- * important. In the toolbar, these actions will display the
- * action name when the toolbar is in "text beside icons"
- * mode. */
- const gchar **important_actions;
- /** The relative name of the XML file describing the
- * menu/toolbar action items. */
- const gchar *ui_filename;
+ /** A name for the set of actions that will be added by this
+ * plugin. The actual name is irrelevant, as long as it is
+ * unique within GnuCash. */
+ const gchar *actions_name;
+ /** An array of actions that should automatically be added to
+ * any GnuCash "main" content window that is opened. */
+ GtkActionEntry *actions;
+ /** The number of actions in the actions array. */
+ guint n_actions;
+ /** A NULL terminated list of actions that should be considered
+ * important. In the toolbar, these actions will display the
+ * action name when the toolbar is in "text beside icons"
+ * mode. */
+ const gchar **important_actions;
+ /** The relative name of the XML file describing the
+ * menu/toolbar action items. */
+ const gchar *ui_filename;
- /* GConf section */
+ /* GConf section */
- /** The partial section name that will be used in GConf for
- * any preferences that are automatically stored for this
- * page. This will be converted to a full section name by
- * prefixing the string "/apps/gnucash/" to whatever is
- * here. */
- const gchar* gconf_section;
- /** A callback that will be invoked when any key in the
- * specified GConf section is changed.
- *
- * @param client A pointer to the gconf client instance.
- *
- * @param cnxn_id The id number for this callback function.
- *
- * @param entry A pointer to the changed data.
- *
- * @param user_data A pointer to the GncWindow where the
- * plugin is installed. */
- void (* gconf_notifications)
- (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data);
+ /** The partial section name that will be used in GConf for
+ * any preferences that are automatically stored for this
+ * page. This will be converted to a full section name by
+ * prefixing the string "/apps/gnucash/" to whatever is
+ * here. */
+ const gchar* gconf_section;
+ /** A callback that will be invoked when any key in the
+ * specified GConf section is changed.
+ *
+ * @param client A pointer to the gconf client instance.
+ *
+ * @param cnxn_id The id number for this callback function.
+ *
+ * @param entry A pointer to the changed data.
+ *
+ * @param user_data A pointer to the GncWindow where the
+ * plugin is installed. */
+ void (* gconf_notifications)
+ (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data);
- /* Virtual Table */
+ /* Virtual Table */
- /** A callback that will be invoked when this plugin is added
- * to a window. This allows the plugin to perform any
- * special actions at insertion time.
- *
- * @param user_data A pointer to the this GncPlugin data
- * structure.
- *
- * @param window A pointer to the window in which this plugin
- * has just been installed.
- *
- * @param type An identifier for the type of window
- * specified. Currently the only type is a "main" content
- * window. */
- void (* add_to_window)
- (GncPlugin *plugin, GncMainWindow *window, GQuark type);
+ /** A callback that will be invoked when this plugin is added
+ * to a window. This allows the plugin to perform any
+ * special actions at insertion time.
+ *
+ * @param user_data A pointer to the this GncPlugin data
+ * structure.
+ *
+ * @param window A pointer to the window in which this plugin
+ * has just been installed.
+ *
+ * @param type An identifier for the type of window
+ * specified. Currently the only type is a "main" content
+ * window. */
+ void (* add_to_window)
+ (GncPlugin *plugin, GncMainWindow *window, GQuark type);
- /** A callback that will be invoked when this plugin is
- * removed from a window. This allows the plugin to perform
- * any special actions at removal time.
- *
- * @param user_data A pointer to the this GncPlugin data
- * structure.
- *
- * @param window A pointer to the window from which this
- * plugin is about to be removed.
- *
- * @param type An identifier for the type of window
- * specified. Currently the only type is a "main" content
- * window. */
- void (* remove_from_window)
- (GncPlugin *plugin, GncMainWindow *window, GQuark type);
+ /** A callback that will be invoked when this plugin is
+ * removed from a window. This allows the plugin to perform
+ * any special actions at removal time.
+ *
+ * @param user_data A pointer to the this GncPlugin data
+ * structure.
+ *
+ * @param window A pointer to the window from which this
+ * plugin is about to be removed.
+ *
+ * @param type An identifier for the type of window
+ * specified. Currently the only type is a "main" content
+ * window. */
+ void (* remove_from_window)
+ (GncPlugin *plugin, GncMainWindow *window, GQuark type);
} GncPluginClass;
/* function prototypes */
@@ -208,8 +210,8 @@
* @param type An identifier for the type of window specified.
*/
void gnc_plugin_add_to_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type);
+ GncMainWindow *window,
+ GQuark type);
/** Remove the specified plugin from the specified window. This
@@ -224,8 +226,8 @@
* @param type An identifier for the type of window specified.
*/
void gnc_plugin_remove_from_window (GncPlugin *plugin,
- GncMainWindow *window,
- GQuark type);
+ GncMainWindow *window,
+ GQuark type);
/** Retrieve the textual name of a plugin.
@@ -243,11 +245,12 @@
* used if an action name is more than one word. This way the menu
* can have the label "Whizzy Feature", while the toolbar button only
* has the label "Whizzy". */
-typedef struct {
- /** The name of the action. */
- const char *action_name;
- /** The alternate toolbar label to use */
- const char *label;
+typedef struct
+{
+ /** The name of the action. */
+ const char *action_name;
+ /** The alternate toolbar label to use */
+ const char *label;
} action_toolbar_labels;
@@ -267,7 +270,7 @@
* action_toolbar_labels items.
*/
void gnc_plugin_init_short_names (GtkActionGroup *action_group,
- action_toolbar_labels *toolbar_labels);
+ action_toolbar_labels *toolbar_labels);
/** Mark certain actions as "important". This means that their labels
@@ -282,7 +285,7 @@
* list must be NULL terminated.
*/
void gnc_plugin_set_important_actions (GtkActionGroup *action_group,
- const gchar **names);
+ const gchar **names);
/** Update a property on a set of existing GtkActions. This function
@@ -304,9 +307,9 @@
* property.
*/
void gnc_plugin_update_actions (GtkActionGroup *action_group,
- const gchar **action_names,
- const gchar *property_name,
- gboolean value);
+ const gchar **action_names,
+ const gchar *property_name,
+ gboolean value);
/** Load a new set of actions into an existing UI. The actions from
@@ -314,7 +317,7 @@
* directed by the specified file.
*
* @param ui_merge A pointer to the UI manager data structure for a
- * window.
+ * window.
*
* @param action_group The set of actions provided by a given plugin.
*
@@ -325,8 +328,8 @@
* occurred, the return value is 0.
*/
gint gnc_plugin_add_actions (GtkUIManager *ui_merge,
- GtkActionGroup *action_group,
- const gchar *filename);
+ GtkActionGroup *action_group,
+ const gchar *filename);
G_END_DECLS
#endif /* __GNC_PLUGIN_H */
Modified: gnucash/trunk/src/gnome-utils/gnc-query-list.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-query-list.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-query-list.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -37,17 +37,17 @@
/* Signal codes */
enum
{
- LINE_TOGGLED,
- DOUBLE_CLICK_ENTRY,
- LAST_SIGNAL
+ LINE_TOGGLED,
+ DOUBLE_CLICK_ENTRY,
+ LAST_SIGNAL
};
typedef struct _GNCQueryListPriv GNCQueryListPriv;
-struct _GNCQueryListPriv
+struct _GNCQueryListPriv
{
- const QofParam * get_guid;
- gint component_id;
+ const QofParam * get_guid;
+ gint component_id;
};
#define GNC_QUERY_LIST_GET_PRIVATE(o) \
@@ -68,44 +68,45 @@
static void gnc_query_list_init_clist (GNCQueryList *list);
static void gnc_query_list_class_init(GNCQueryListClass *klass);
static void gnc_query_list_select_row(GtkCList *clist, gint row,
- gint column, GdkEvent *event);
+ gint column, GdkEvent *event);
static void gnc_query_list_unselect_row(GtkCList *clist, gint row,
- gint column, GdkEvent *event);
+ gint column, GdkEvent *event);
static void gnc_query_list_destroy(GtkObject *object);
static void gnc_query_list_fill(GNCQueryList *list);
static void gnc_query_list_click_column_cb(GtkWidget *w, gint column,
- gpointer data);
+ gpointer data);
static void gnc_query_list_size_allocate_cb(GtkWidget *w,
- GtkAllocation *allocation,
- gpointer data);
+ GtkAllocation *allocation,
+ gpointer data);
static void gnc_query_list_set_query_sort (GNCQueryList *list, gboolean new_column);
GType
gnc_query_list_get_type (void)
{
- static GType gnc_query_list_type = 0;
+ static GType gnc_query_list_type = 0;
- if (!gnc_query_list_type)
- {
- GTypeInfo type_info = {
- sizeof(GNCQueryListClass), /* class_size */
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc)gnc_query_list_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GNCQueryList), /* */
- 0, /* n_preallocs */
- (GInstanceInitFunc)gnc_query_list_init,
- };
+ if (!gnc_query_list_type)
+ {
+ GTypeInfo type_info =
+ {
+ sizeof(GNCQueryListClass), /* class_size */
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc)gnc_query_list_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GNCQueryList), /* */
+ 0, /* n_preallocs */
+ (GInstanceInitFunc)gnc_query_list_init,
+ };
- gnc_query_list_type = g_type_register_static(GTK_TYPE_CLIST,
- "GNCQueryList",
- &type_info, 0);
- }
+ gnc_query_list_type = g_type_register_static(GTK_TYPE_CLIST,
+ "GNCQueryList",
+ &type_info, 0);
+ }
- return gnc_query_list_type;
+ return gnc_query_list_type;
}
@@ -120,420 +121,425 @@
void
gnc_query_list_construct (GNCQueryList *list, GList *param_list, Query *query)
{
- GNCQueryListPriv *priv;
+ GNCQueryListPriv *priv;
- g_return_if_fail(list);
- g_return_if_fail(param_list);
- g_return_if_fail(query);
- g_return_if_fail(IS_GNC_QUERY_LIST(list));
+ g_return_if_fail(list);
+ g_return_if_fail(param_list);
+ g_return_if_fail(query);
+ g_return_if_fail(IS_GNC_QUERY_LIST(list));
- /* more configuration */
- list->query = gncQueryCopy(query);
- list->column_params = param_list;
+ /* more configuration */
+ list->query = gncQueryCopy(query);
+ list->column_params = param_list;
- /* cache the function to get the guid of this query type */
- priv = GNC_QUERY_LIST_GET_PRIVATE(list);
- priv->get_guid =
- qof_class_get_parameter (qof_query_get_search_for(query), QOF_PARAM_GUID);
+ /* cache the function to get the guid of this query type */
+ priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+ priv->get_guid =
+ qof_class_get_parameter (qof_query_get_search_for(query), QOF_PARAM_GUID);
- /* Initialize the CList */
- gnc_query_list_init_clist(list);
+ /* Initialize the CList */
+ gnc_query_list_init_clist(list);
- /* Set initial sort order */
- gnc_query_list_set_query_sort(list, TRUE);
+ /* Set initial sort order */
+ gnc_query_list_set_query_sort(list, TRUE);
}
GtkWidget *
gnc_query_list_new(GList *param_list, Query *query)
{
- GNCQueryList *list;
- gint columns;
+ GNCQueryList *list;
+ gint columns;
- g_return_val_if_fail(param_list, NULL);
- g_return_val_if_fail(query, NULL);
+ g_return_val_if_fail(param_list, NULL);
+ g_return_val_if_fail(query, NULL);
- columns = g_list_length(param_list);
- list = GNC_QUERY_LIST(g_object_new(gnc_query_list_get_type(),
- "n_columns", columns,
- NULL));
+ columns = g_list_length(param_list);
+ list = GNC_QUERY_LIST(g_object_new(gnc_query_list_get_type(),
+ "n_columns", columns,
+ NULL));
- gnc_query_list_construct(list, param_list, query);
+ gnc_query_list_construct(list, param_list, query);
- return GTK_WIDGET(list);
+ return GTK_WIDGET(list);
}
void gnc_query_list_reset_query (GNCQueryList *list, Query *query)
{
- g_return_if_fail(list);
- g_return_if_fail(query);
- g_return_if_fail (IS_GNC_QUERY_LIST(list));
+ g_return_if_fail(list);
+ g_return_if_fail(query);
+ g_return_if_fail (IS_GNC_QUERY_LIST(list));
- gncQueryDestroy(list->query);
- list->query = gncQueryCopy(query);
- gnc_query_list_set_query_sort(list, TRUE);
+ gncQueryDestroy(list->query);
+ list->query = gncQueryCopy(query);
+ gnc_query_list_set_query_sort(list, TRUE);
}
static void
update_booleans (GNCQueryList *list, gint row)
{
- GtkCList *clist = GTK_CLIST(list);
- gpointer entry;
- GList *node;
- gint i;
- gboolean result;
+ GtkCList *clist = GTK_CLIST(list);
+ gpointer entry;
+ GList *node;
+ gint i;
+ gboolean result;
- entry = gtk_clist_get_row_data (clist, row);
- for (i = 0, node = list->column_params; node; node = node->next, i++)
- {
- GNCSearchParam *param = node->data;
- const char *type = gnc_search_param_get_param_type (param);
+ entry = gtk_clist_get_row_data (clist, row);
+ for (i = 0, node = list->column_params; node; node = node->next, i++)
+ {
+ GNCSearchParam *param = node->data;
+ const char *type = gnc_search_param_get_param_type (param);
- /* if this is a boolean, ignore it now -- we'll use a checkmark later */
- if (safe_strcmp (type, QUERYCORE_BOOLEAN))
- continue;
+ /* if this is a boolean, ignore it now -- we'll use a checkmark later */
+ if (safe_strcmp (type, QUERYCORE_BOOLEAN))
+ continue;
- result = (gboolean) GPOINTER_TO_INT(gnc_search_param_compute_value(param, entry));
- gnc_clist_set_check (clist, row, i, result);
- }
+ result = (gboolean) GPOINTER_TO_INT(gnc_search_param_compute_value(param, entry));
+ gnc_clist_set_check (clist, row, i, result);
+ }
}
static void
gnc_query_list_column_title (GNCQueryList *list, gint column, const gchar *title)
{
- GtkWidget *hbox, *label, *arrow;
+ GtkWidget *hbox, *label, *arrow;
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_widget_show(hbox);
- gtk_clist_set_column_widget(GTK_CLIST(list), column, hbox);
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_widget_show(hbox);
+ gtk_clist_set_column_widget(GTK_CLIST(list), column, hbox);
- label = gtk_label_new(title);
- gtk_widget_show(label);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ label = gtk_label_new(title);
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_ETCHED_IN);
- list->title_arrows[column] = arrow;
- if (column == 0)
- gtk_widget_show(arrow);
- gtk_box_pack_end(GTK_BOX(hbox), arrow, FALSE, FALSE, 0);
+ arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_ETCHED_IN);
+ list->title_arrows[column] = arrow;
+ if (column == 0)
+ gtk_widget_show(arrow);
+ gtk_box_pack_end(GTK_BOX(hbox), arrow, FALSE, FALSE, 0);
}
static void
gnc_query_list_refresh_handler (GHashTable *changes, gpointer user_data)
{
- GNCQueryList *list = (GNCQueryList *)user_data;
- g_return_if_fail (list);
- g_return_if_fail (IS_GNC_QUERY_LIST(list));
+ GNCQueryList *list = (GNCQueryList *)user_data;
+ g_return_if_fail (list);
+ g_return_if_fail (IS_GNC_QUERY_LIST(list));
- gnc_query_list_refresh (list);
+ gnc_query_list_refresh (list);
}
static void
gnc_query_list_init (GNCQueryList *list)
{
- GNCQueryListPriv *priv;
+ GNCQueryListPriv *priv;
- list->query = NULL;
- list->no_toggle = FALSE;
- list->always_unselect = FALSE;
+ list->query = NULL;
+ list->no_toggle = FALSE;
+ list->always_unselect = FALSE;
- list->num_columns = 0;
- list->column_params = NULL;
+ list->num_columns = 0;
+ list->column_params = NULL;
- list->sort_column = 0;
- list->increasing = TRUE;
- list->title_arrows = NULL;
+ list->sort_column = 0;
+ list->increasing = TRUE;
+ list->title_arrows = NULL;
- list->prev_allocation = -1;
- list->title_widths = NULL;
+ list->prev_allocation = -1;
+ list->title_widths = NULL;
- list->numeric_abs = FALSE;
- list->numeric_inv_sort = FALSE;
+ list->numeric_abs = FALSE;
+ list->numeric_inv_sort = FALSE;
- priv = GNC_QUERY_LIST_GET_PRIVATE(list);
- priv->component_id =
- gnc_register_gui_component ("gnc-query-list-cm-class",
- gnc_query_list_refresh_handler,
- NULL, list);
+ priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+ priv->component_id =
+ gnc_register_gui_component ("gnc-query-list-cm-class",
+ gnc_query_list_refresh_handler,
+ NULL, list);
}
static void
gnc_query_list_init_clist (GNCQueryList *list)
{
- GtkCList *clist = GTK_CLIST (list);
- GtkStyle *style;
- GList *node;
- gchar **titles;
- gint i;
+ GtkCList *clist = GTK_CLIST (list);
+ GtkStyle *style;
+ GList *node;
+ gchar **titles;
+ gint i;
- /* compute the number of columns and fill in the rest of the list */
- list->num_columns = g_list_length(list->column_params);
- list->title_arrows = g_new0(GtkWidget*, list->num_columns);
- list->title_widths = g_new0(gint, list->num_columns);
+ /* compute the number of columns and fill in the rest of the list */
+ list->num_columns = g_list_length(list->column_params);
+ list->title_arrows = g_new0(GtkWidget*, list->num_columns);
+ list->title_widths = g_new0(gint, list->num_columns);
- /* build an array of titles */
- titles = g_new0(gchar*, list->num_columns);
- for (i = 0, node = list->column_params; node; node = node->next, i++) {
- GNCSearchParam *param = node->data;
- titles[i] = (gchar *)param->title;
- }
+ /* build an array of titles */
+ titles = g_new0(gchar*, list->num_columns);
+ for (i = 0, node = list->column_params; node; node = node->next, i++)
+ {
+ GNCSearchParam *param = node->data;
+ titles[i] = (gchar *)param->title;
+ }
- gtk_clist_column_titles_show (clist);
- gtk_clist_set_shadow_type (clist, GTK_SHADOW_IN);
+ gtk_clist_column_titles_show (clist);
+ gtk_clist_set_shadow_type (clist, GTK_SHADOW_IN);
- /* build all the column titles */
- for (i = 0; i < list->num_columns; i++)
- gnc_query_list_column_title(list, i, titles[i]);
+ /* build all the column titles */
+ for (i = 0; i < list->num_columns; i++)
+ gnc_query_list_column_title(list, i, titles[i]);
- /* set the column justification */
- for (i = 0, node = list->column_params; node; node = node->next, i++) {
- GNCSearchParam *param = node->data;
- gtk_clist_set_column_justification (clist, i, param->justify);
+ /* set the column justification */
+ for (i = 0, node = list->column_params; node; node = node->next, i++)
+ {
+ GNCSearchParam *param = node->data;
+ gtk_clist_set_column_justification (clist, i, param->justify);
- if (param->passive)
- gtk_clist_column_title_passive (clist, i);
+ if (param->passive)
+ gtk_clist_column_title_passive (clist, i);
- if (param->non_resizeable)
- gtk_clist_set_column_resizeable (clist, i, FALSE);
- }
+ if (param->non_resizeable)
+ gtk_clist_set_column_resizeable (clist, i, FALSE);
+ }
- g_signal_connect (clist, "click_column",
- G_CALLBACK(gnc_query_list_click_column_cb),
- NULL);
- g_signal_connect (clist, "size_allocate",
- G_CALLBACK(gnc_query_list_size_allocate_cb),
- NULL);
+ g_signal_connect (clist, "click_column",
+ G_CALLBACK(gnc_query_list_click_column_cb),
+ NULL);
+ g_signal_connect (clist, "size_allocate",
+ G_CALLBACK(gnc_query_list_size_allocate_cb),
+ NULL);
- style = gtk_widget_get_style (GTK_WIDGET(list));
+ style = gtk_widget_get_style (GTK_WIDGET(list));
#if 0
- {
- GdkFont *font = NULL;
- gint width;
+ {
+ GdkFont *font = NULL;
+ gint width;
- font = style->font;
- if (font != NULL)
- {
- for (i = 0, node = list->column_params; node; node = node->next, i++)
- {
- GNCSearchParam *param = node->data;
- width = gdk_string_width (font, titles[i]) + 5;
- if (!param->passive)
- width += ARROW_SIZE;
- gtk_clist_set_column_min_width (clist, i, width);
- list->title_widths[i] = width;
- }
+ font = style->font;
+ if (font != NULL)
+ {
+ for (i = 0, node = list->column_params; node; node = node->next, i++)
+ {
+ GNCSearchParam *param = node->data;
+ width = gdk_string_width (font, titles[i]) + 5;
+ if (!param->passive)
+ width += ARROW_SIZE;
+ gtk_clist_set_column_min_width (clist, i, width);
+ list->title_widths[i] = width;
+ }
+ }
}
- }
#endif
- g_free(titles);
+ g_free(titles);
}
static void
gnc_query_list_class_init (GNCQueryListClass *klass)
{
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
- GtkCListClass *clist_class;
+ GtkObjectClass *object_class;
+ GtkWidgetClass *widget_class;
+ GtkContainerClass *container_class;
+ GtkCListClass *clist_class;
- object_class = (GtkObjectClass*) klass;
- widget_class = (GtkWidgetClass*) klass;
- container_class = (GtkContainerClass*) klass;
- clist_class = (GtkCListClass*) klass;
+ object_class = (GtkObjectClass*) klass;
+ widget_class = (GtkWidgetClass*) klass;
+ container_class = (GtkContainerClass*) klass;
+ clist_class = (GtkCListClass*) klass;
- parent_class = gtk_type_class(GTK_TYPE_CLIST);
+ parent_class = gtk_type_class(GTK_TYPE_CLIST);
- g_type_class_add_private(klass, sizeof(GNCQueryListPriv));
+ g_type_class_add_private(klass, sizeof(GNCQueryListPriv));
- query_list_signals[LINE_TOGGLED] =
- g_signal_new("line_toggled",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(GNCQueryListClass, line_toggled),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE,
- 1,
- G_TYPE_POINTER);
+ query_list_signals[LINE_TOGGLED] =
+ g_signal_new("line_toggled",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(GNCQueryListClass, line_toggled),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_POINTER);
- query_list_signals[DOUBLE_CLICK_ENTRY] =
- g_signal_new("double_click_entry",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(GNCQueryListClass, double_click_entry),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE,
- 1,
- G_TYPE_POINTER);
+ query_list_signals[DOUBLE_CLICK_ENTRY] =
+ g_signal_new("double_click_entry",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(GNCQueryListClass, double_click_entry),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_POINTER);
- object_class->destroy = gnc_query_list_destroy;
+ object_class->destroy = gnc_query_list_destroy;
- clist_class->select_row = gnc_query_list_select_row;
- clist_class->unselect_row = gnc_query_list_unselect_row;
+ clist_class->select_row = gnc_query_list_select_row;
+ clist_class->unselect_row = gnc_query_list_unselect_row;
- klass->line_toggled = NULL;
- klass->double_click_entry = NULL;
+ klass->line_toggled = NULL;
+ klass->double_click_entry = NULL;
}
static void
gnc_query_list_toggle (GNCQueryList *list)
{
- gpointer entry;
- gint row;
+ gpointer entry;
+ gint row;
- g_return_if_fail (IS_GNC_QUERY_LIST(list));
+ g_return_if_fail (IS_GNC_QUERY_LIST(list));
- if (list->no_toggle)
- return;
+ if (list->no_toggle)
+ return;
- row = list->current_row;
- entry = gtk_clist_get_row_data (GTK_CLIST(list), row);
- list->current_entry = entry;
+ row = list->current_row;
+ entry = gtk_clist_get_row_data (GTK_CLIST(list), row);
+ list->current_entry = entry;
- g_signal_emit (list, query_list_signals[LINE_TOGGLED], 0, entry);
+ g_signal_emit (list, query_list_signals[LINE_TOGGLED], 0, entry);
- update_booleans (list, row);
+ update_booleans (list, row);
}
static void
gnc_query_list_select_row (GtkCList *clist, gint row, gint column,
- GdkEvent *event)
+ GdkEvent *event)
{
- GNCQueryList *list = GNC_QUERY_LIST(clist);
+ GNCQueryList *list = GNC_QUERY_LIST(clist);
- list->current_row = row;
+ list->current_row = row;
- gnc_query_list_toggle (list);
- if (event == NULL) {
- /* User pressed the space key */
- parent_class->scroll_vertical(clist, GTK_SCROLL_STEP_FORWARD, 0.0);
- }
+ gnc_query_list_toggle (list);
+ if (event == NULL)
+ {
+ /* User pressed the space key */
+ parent_class->scroll_vertical(clist, GTK_SCROLL_STEP_FORWARD, 0.0);
+ }
- /* This will trigger an unselect event for the currently selected row */
- parent_class->select_row (clist, row, column, event);
+ /* This will trigger an unselect event for the currently selected row */
+ parent_class->select_row (clist, row, column, event);
- if (event && (event->type == GDK_2BUTTON_PRESS))
- {
- gpointer entry;
+ if (event && (event->type == GDK_2BUTTON_PRESS))
+ {
+ gpointer entry;
- entry = gtk_clist_get_row_data (clist, row);
+ entry = gtk_clist_get_row_data (clist, row);
- g_signal_emit(list, query_list_signals[DOUBLE_CLICK_ENTRY], 0, entry);
- }
+ g_signal_emit(list, query_list_signals[DOUBLE_CLICK_ENTRY], 0, entry);
+ }
}
static void
gnc_query_list_unselect_row (GtkCList *clist, gint row, gint column,
- GdkEvent *event)
+ GdkEvent *event)
{
- GNCQueryList *list = GNC_QUERY_LIST(clist);
+ GNCQueryList *list = GNC_QUERY_LIST(clist);
- if (row == list->current_row)
- {
- gnc_query_list_toggle (list);
- if (event == NULL) {
- /* User pressed the space key */
- parent_class->scroll_vertical(clist, GTK_SCROLL_STEP_FORWARD, 0.0);
+ if (row == list->current_row)
+ {
+ gnc_query_list_toggle (list);
+ if (event == NULL)
+ {
+ /* User pressed the space key */
+ parent_class->scroll_vertical(clist, GTK_SCROLL_STEP_FORWARD, 0.0);
+ }
+ if (!list->always_unselect)
+ return;
}
- if (!list->always_unselect)
- return;
- }
- parent_class->unselect_row (clist, row, column, event);
+ parent_class->unselect_row (clist, row, column, event);
- if (event && (event->type == GDK_2BUTTON_PRESS))
- {
- gpointer entry;
+ if (event && (event->type == GDK_2BUTTON_PRESS))
+ {
+ gpointer entry;
- entry = gtk_clist_get_row_data (clist, row);
+ entry = gtk_clist_get_row_data (clist, row);
- g_signal_emit (list, query_list_signals[DOUBLE_CLICK_ENTRY], 0, entry);
- }
+ g_signal_emit (list, query_list_signals[DOUBLE_CLICK_ENTRY], 0, entry);
+ }
}
static void
gnc_query_list_destroy (GtkObject *object)
{
- GNCQueryList *list = GNC_QUERY_LIST(object);
- GNCQueryListPriv *priv;
+ GNCQueryList *list = GNC_QUERY_LIST(object);
+ GNCQueryListPriv *priv;
- priv = GNC_QUERY_LIST_GET_PRIVATE(list);
- if (priv->component_id > 0) {
- gnc_unregister_gui_component (priv->component_id);
- priv->component_id = 0;
- }
- if (list->query)
- {
- xaccFreeQuery(list->query);
- list->query = NULL;
- }
- if (list->column_params)
- {
- /* XXX: free the params list??? */
- }
- if (list->title_arrows)
- {
- g_free(list->title_arrows);
- list->title_arrows = NULL;
- }
- if (list->title_widths)
- {
- g_free(list->title_widths);
- list->title_widths = NULL;
- }
+ priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+ if (priv->component_id > 0)
+ {
+ gnc_unregister_gui_component (priv->component_id);
+ priv->component_id = 0;
+ }
+ if (list->query)
+ {
+ xaccFreeQuery(list->query);
+ list->query = NULL;
+ }
+ if (list->column_params)
+ {
+ /* XXX: free the params list??? */
+ }
+ if (list->title_arrows)
+ {
+ g_free(list->title_arrows);
+ list->title_arrows = NULL;
+ }
+ if (list->title_widths)
+ {
+ g_free(list->title_widths);
+ list->title_widths = NULL;
+ }
- if (GTK_OBJECT_CLASS(parent_class)->destroy)
- GTK_OBJECT_CLASS(parent_class)->destroy (object);
+ if (GTK_OBJECT_CLASS(parent_class)->destroy)
+ GTK_OBJECT_CLASS(parent_class)->destroy (object);
}
gint
gnc_query_list_get_needed_height (GNCQueryList *list, gint num_rows)
{
- GtkCList *clist;
- gint list_height;
- gint title_height;
+ GtkCList *clist;
+ gint list_height;
+ gint title_height;
- g_return_val_if_fail (list != NULL, 0);
- g_return_val_if_fail (IS_GNC_QUERY_LIST(list), 0);
+ g_return_val_if_fail (list != NULL, 0);
+ g_return_val_if_fail (IS_GNC_QUERY_LIST(list), 0);
- if (!GTK_WIDGET_REALIZED (list))
- return 0;
+ if (!GTK_WIDGET_REALIZED (list))
+ return 0;
- clist = GTK_CLIST (list);
+ clist = GTK_CLIST (list);
- /* sync with gtkclist.c */
- title_height = (clist->column_title_area.height +
- (GTK_WIDGET(list)->style->ythickness +
- GTK_CONTAINER(list)->border_width) * 2);
- list_height = (clist->row_height * num_rows) + (num_rows + 1);
+ /* sync with gtkclist.c */
+ title_height = (clist->column_title_area.height +
+ (GTK_WIDGET(list)->style->ythickness +
+ GTK_CONTAINER(list)->border_width) * 2);
+ list_height = (clist->row_height * num_rows) + (num_rows + 1);
- return title_height + list_height;
+ return title_height + list_height;
}
gint
gnc_query_list_get_num_entries (GNCQueryList *list)
{
- g_return_val_if_fail (list != NULL, 0);
- g_return_val_if_fail (IS_GNC_QUERY_LIST(list), 0);
+ g_return_val_if_fail (list != NULL, 0);
+ g_return_val_if_fail (IS_GNC_QUERY_LIST(list), 0);
- return list->num_entries;
+ return list->num_entries;
}
gpointer
gnc_query_list_get_current_entry (GNCQueryList *list)
{
- g_return_val_if_fail (list != NULL, NULL);
- g_return_val_if_fail (IS_GNC_QUERY_LIST(list), NULL);
+ g_return_val_if_fail (list != NULL, NULL);
+ g_return_val_if_fail (IS_GNC_QUERY_LIST(list), NULL);
- return list->current_entry;
+ return list->current_entry;
}
/********************************************************************\
* gnc_query_list_recompute_widths *
* Given a new widget width, recompute the widths of each column. *
- * Give any excess allocation to the description field. This also *
+ * Give any excess allocation to the description field. This also *
* handles the case of allocating column widths when the list is *
* first filled with data. *
* *
@@ -544,45 +550,45 @@
static void
gnc_query_list_recompute_widths (GNCQueryList *list, gint allocated)
{
- GtkCList *clist = GTK_CLIST(list);
- gint total_width, desc_width = 0, excess, i;
+ GtkCList *clist = GTK_CLIST(list);
+ gint total_width, desc_width = 0, excess, i;
- /* Prevent loops when allocation is bigger than total widths */
- if (allocated == list->prev_allocation)
- return;
+ /* Prevent loops when allocation is bigger than total widths */
+ if (allocated == list->prev_allocation)
+ return;
- /* Enforce column minimum widths */
- total_width = 0;
- for (i = 0; i < list->num_columns; i++)
- {
- gint width;
+ /* Enforce column minimum widths */
+ total_width = 0;
+ for (i = 0; i < list->num_columns; i++)
+ {
+ gint width;
- width = gtk_clist_optimal_column_width(clist, i);
- if (width < list->title_widths[i])
- width = list->title_widths[i];
- total_width += width;
- gtk_clist_set_column_width (clist, i, width);
- if (i == 2)
- desc_width = width;
- }
+ width = gtk_clist_optimal_column_width(clist, i);
+ if (width < list->title_widths[i])
+ width = list->title_widths[i];
+ total_width += width;
+ gtk_clist_set_column_width (clist, i, width);
+ if (i == 2)
+ desc_width = width;
+ }
- /* Did the list use its full allocation?
- *
- * Add/subtract any underage/overage to/from the description column
- */
- if (allocated <= 1)
- allocated = list->prev_allocation;
- list->prev_allocation = allocated;
- excess = allocated - total_width - VSCROLLBAR_SLOP;
+ /* Did the list use its full allocation?
+ *
+ * Add/subtract any underage/overage to/from the description column
+ */
+ if (allocated <= 1)
+ allocated = list->prev_allocation;
+ list->prev_allocation = allocated;
+ excess = allocated - total_width - VSCROLLBAR_SLOP;
- /* XXX: Choose a generic column to resize */
- gtk_clist_set_column_width (clist, 2, desc_width + excess);
+ /* XXX: Choose a generic column to resize */
+ gtk_clist_set_column_width (clist, 2, desc_width + excess);
}
/********************************************************************\
* gnc_query_list_size_allocate_cb *
* The allocated size has changed. Need to recompute the *
- * column widths *
+ * column widths *
* *
* Args: w - a GncQueryList widget *
* allocation - a widget allocation desctiption *
@@ -591,13 +597,13 @@
\********************************************************************/
static void
gnc_query_list_size_allocate_cb (GtkWidget *w,
- GtkAllocation *allocation,
- gpointer data)
+ GtkAllocation *allocation,
+ gpointer data)
{
- GNCQueryList *list = GNC_QUERY_LIST(w);
+ GNCQueryList *list = GNC_QUERY_LIST(w);
- g_return_if_fail (list != NULL);
- gnc_query_list_recompute_widths(list, allocation->width);
+ g_return_if_fail (list != NULL);
+ gnc_query_list_recompute_widths(list, allocation->width);
}
/********************************************************************\
@@ -610,66 +616,66 @@
void
gnc_query_list_refresh (GNCQueryList *list)
{
- GtkCList *clist = GTK_CLIST(list);
- GtkAdjustment *adjustment;
- gfloat save_value = 0.0;
- gpointer *old_focus_entry;
- gpointer *old_entry;
- gint old_focus_row;
- gint new_row;
+ GtkCList *clist = GTK_CLIST(list);
+ GtkAdjustment *adjustment;
+ gfloat save_value = 0.0;
+ gpointer *old_focus_entry;
+ gpointer *old_entry;
+ gint old_focus_row;
+ gint new_row;
- g_return_if_fail (list != NULL);
- g_return_if_fail (IS_GNC_QUERY_LIST(list));
+ g_return_if_fail (list != NULL);
+ g_return_if_fail (IS_GNC_QUERY_LIST(list));
- adjustment = gtk_clist_get_vadjustment (GTK_CLIST(list));
- if (adjustment != NULL)
- save_value = adjustment->value;
+ adjustment = gtk_clist_get_vadjustment (GTK_CLIST(list));
+ if (adjustment != NULL)
+ save_value = adjustment->value;
- old_focus_row = clist->focus_row;
- old_focus_entry = gtk_clist_get_row_data (clist, old_focus_row);
+ old_focus_row = clist->focus_row;
+ old_focus_entry = gtk_clist_get_row_data (clist, old_focus_row);
- gtk_clist_freeze (clist);
- gtk_clist_clear (clist);
+ gtk_clist_freeze (clist);
+ gtk_clist_clear (clist);
- old_entry = list->current_entry;
- list->num_entries = 0;
- list->current_row = -1;
- list->current_entry = NULL;
+ old_entry = list->current_entry;
+ list->num_entries = 0;
+ list->current_row = -1;
+ list->current_entry = NULL;
- gnc_query_list_fill (list);
+ gnc_query_list_fill (list);
- gnc_query_list_recompute_widths (list, -1);
+ gnc_query_list_recompute_widths (list, -1);
- if (adjustment)
- {
- save_value = CLAMP (save_value, adjustment->lower, adjustment->upper);
- gtk_adjustment_set_value (adjustment, save_value);
- }
+ if (adjustment)
+ {
+ save_value = CLAMP (save_value, adjustment->lower, adjustment->upper);
+ gtk_adjustment_set_value (adjustment, save_value);
+ }
- if (old_entry)
- {
- new_row = gtk_clist_find_row_from_data (clist, old_entry);
- if (new_row >= 0)
+ if (old_entry)
{
- list->no_toggle = TRUE;
- gtk_clist_select_row (clist, new_row, 0);
- list->no_toggle = FALSE;
- list->current_entry = old_entry;
+ new_row = gtk_clist_find_row_from_data (clist, old_entry);
+ if (new_row >= 0)
+ {
+ list->no_toggle = TRUE;
+ gtk_clist_select_row (clist, new_row, 0);
+ list->no_toggle = FALSE;
+ list->current_entry = old_entry;
+ }
}
- }
- if (old_focus_entry)
- {
- new_row = gtk_clist_find_row_from_data (clist, old_focus_entry);
+ if (old_focus_entry)
+ {
+ new_row = gtk_clist_find_row_from_data (clist, old_focus_entry);
- if (new_row < 0)
- new_row = old_focus_row;
+ if (new_row < 0)
+ new_row = old_focus_row;
- if (new_row >= 0)
- clist->focus_row = new_row;
- }
+ if (new_row >= 0)
+ clist->focus_row = new_row;
+ }
- gtk_clist_thaw (clist);
+ gtk_clist_thaw (clist);
}
/********************************************************************\
@@ -684,45 +690,46 @@
static void
gnc_query_list_set_query_sort (GNCQueryList *list, gboolean new_column)
{
- gboolean sort_order = list->increasing;
- GList *node;
- GNCSearchParam *param;
+ gboolean sort_order = list->increasing;
+ GList *node;
+ GNCSearchParam *param;
- /* Find the column parameter definition */
- node = g_list_nth(list->column_params, list->sort_column);
- param = node->data;
+ /* Find the column parameter definition */
+ node = g_list_nth(list->column_params, list->sort_column);
+ param = node->data;
- /* If we're asked to invert numerics, and if this is a numeric or
- * debred column, then invert the sort order.
- */
- if (list->numeric_inv_sort) {
- const char *type = gnc_search_param_get_param_type (param);
- if (!safe_strcmp(type, QUERYCORE_NUMERIC) ||
- !safe_strcmp(type, QUERYCORE_DEBCRED))
- sort_order = !sort_order;
- }
+ /* If we're asked to invert numerics, and if this is a numeric or
+ * debred column, then invert the sort order.
+ */
+ if (list->numeric_inv_sort)
+ {
+ const char *type = gnc_search_param_get_param_type (param);
+ if (!safe_strcmp(type, QUERYCORE_NUMERIC) ||
+ !safe_strcmp(type, QUERYCORE_DEBCRED))
+ sort_order = !sort_order;
+ }
- /* Set the sort order for the engine, if the key changed */
- if (new_column)
- {
- GSList *p1, *p2;
+ /* Set the sort order for the engine, if the key changed */
+ if (new_column)
+ {
+ GSList *p1, *p2;
- p1 = gnc_search_param_get_param_path(param);
- p2 = g_slist_prepend(NULL, QUERY_DEFAULT_SORT);
- gncQuerySetSortOrder (list->query, p1, p2, NULL);
- }
+ p1 = gnc_search_param_get_param_path(param);
+ p2 = g_slist_prepend(NULL, QUERY_DEFAULT_SORT);
+ gncQuerySetSortOrder (list->query, p1, p2, NULL);
+ }
- xaccQuerySetSortIncreasing (list->query,
- sort_order,
- sort_order,
- sort_order);
+ xaccQuerySetSortIncreasing (list->query,
+ sort_order,
+ sort_order,
+ sort_order);
- /*
- * Recompute the list. Is this really necessary? Why not just sort
- * the rows already in the clist? Answer: it would be an n-squared
- * algorithm to get the clist to match the resulting list.
- */
- gnc_query_list_refresh(list);
+ /*
+ * Recompute the list. Is this really necessary? Why not just sort
+ * the rows already in the clist? Answer: it would be an n-squared
+ * algorithm to get the clist to match the resulting list.
+ */
+ gnc_query_list_refresh(list);
}
/********************************************************************\
@@ -736,123 +743,126 @@
static void
gnc_query_list_set_sort_column (GNCQueryList *list, gint sort_column)
{
- gint column;
- gboolean new_column = FALSE;
+ gint column;
+ gboolean new_column = FALSE;
- g_return_if_fail (list != NULL);
- g_return_if_fail (IS_GNC_QUERY_LIST(list));
- g_return_if_fail (list->query != NULL);
+ g_return_if_fail (list != NULL);
+ g_return_if_fail (IS_GNC_QUERY_LIST(list));
+ g_return_if_fail (list->query != NULL);
- /* Clear all arrows */
- for (column = 0; column < list->num_columns; column++)
- {
- if (list->title_arrows[column])
- gtk_widget_hide(list->title_arrows[column]);
- }
+ /* Clear all arrows */
+ for (column = 0; column < list->num_columns; column++)
+ {
+ if (list->title_arrows[column])
+ gtk_widget_hide(list->title_arrows[column]);
+ }
- /* Is this a new column or a re-click on the existing column? */
- column = sort_column;
- new_column = (list->sort_column != sort_column);
+ /* Is this a new column or a re-click on the existing column? */
+ column = sort_column;
+ new_column = (list->sort_column != sort_column);
- list->increasing = new_column ? TRUE : !list->increasing;
- list->sort_column = sort_column;
+ list->increasing = new_column ? TRUE : !list->increasing;
+ list->sort_column = sort_column;
- /* Set the appropriate arrow */
- gtk_arrow_set(GTK_ARROW(list->title_arrows[column]),
- list->increasing ? GTK_ARROW_DOWN : GTK_ARROW_UP,
- GTK_SHADOW_ETCHED_IN);
- gtk_widget_show(list->title_arrows[column]);
+ /* Set the appropriate arrow */
+ gtk_arrow_set(GTK_ARROW(list->title_arrows[column]),
+ list->increasing ? GTK_ARROW_DOWN : GTK_ARROW_UP,
+ GTK_SHADOW_ETCHED_IN);
+ gtk_widget_show(list->title_arrows[column]);
- gnc_query_list_set_query_sort (list, new_column);
+ gnc_query_list_set_query_sort (list, new_column);
}
static void
gnc_query_list_click_column_cb(GtkWidget *w, gint column, gpointer data)
{
- GNCQueryList *list = GNC_QUERY_LIST(w);
- gnc_query_list_set_sort_column(list, column);
+ GNCQueryList *list = GNC_QUERY_LIST(w);
+ gnc_query_list_set_sort_column(list, column);
}
static void
gnc_query_list_fill(GNCQueryList *list)
{
- GNCQueryListPriv *priv;
- gchar *strings[list->num_columns + 1];
- GList *entries, *item;
- const GUID *guid;
- gint i;
+ GNCQueryListPriv *priv;
+ gchar *strings[list->num_columns + 1];
+ GList *entries, *item;
+ const GUID *guid;
+ gint i;
- /* Clear all watches */
- priv = GNC_QUERY_LIST_GET_PRIVATE(list);
- gnc_gui_component_clear_watches (priv->component_id);
+ /* Clear all watches */
+ priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+ gnc_gui_component_clear_watches (priv->component_id);
- /* Reverse the list now because 'append()' takes too long */
- entries = gncQueryRun(list->query);
-
- for (item = entries; item; item = item->next)
- {
- GList *node;
- gint row;
- const QofParam *gup;
- QofParam *qp= NULL;
+ /* Reverse the list now because 'append()' takes too long */
+ entries = gncQueryRun(list->query);
- for (i = 0, node = list->column_params; node; node = node->next)
+ for (item = entries; item; item = item->next)
{
- GNCSearchParam *param = node->data;
- GSList *converters = gnc_search_param_get_converters (param);
- const char *type = gnc_search_param_get_param_type (param);
- gpointer res = item->data;
+ GList *node;
+ gint row;
+ const QofParam *gup;
+ QofParam *qp = NULL;
- /* if this is a boolean, ignore it now -- we'll use a checkmark later */
- if (!safe_strcmp (type, QUERYCORE_BOOLEAN)) {
- strings[i++] = g_strdup("");
- continue;
- }
+ for (i = 0, node = list->column_params; node; node = node->next)
+ {
+ GNCSearchParam *param = node->data;
+ GSList *converters = gnc_search_param_get_converters (param);
+ const char *type = gnc_search_param_get_param_type (param);
+ gpointer res = item->data;
- /* Do all the object conversions */
- for (; converters; converters = converters->next)
- {
- qp = converters->data;
- if (converters->next)
- {
- res = (qp->param_getfcn)(res, qp);
- }
- }
+ /* if this is a boolean, ignore it now -- we'll use a checkmark later */
+ if (!safe_strcmp (type, QUERYCORE_BOOLEAN))
+ {
+ strings[i++] = g_strdup("");
+ continue;
+ }
- /* Now convert this to a text value for the row */
- if (!safe_strcmp(type, QUERYCORE_DEBCRED) ||
- !safe_strcmp(type, QUERYCORE_NUMERIC))
- {
- gnc_numeric (*nfcn)(gpointer, QofParam *) =
- (gnc_numeric(*)(gpointer, QofParam *))(qp->param_getfcn);
- gnc_numeric value = nfcn(res, qp);
- if (list->numeric_abs)
- value = gnc_numeric_abs (value);
- strings[i++] = g_strdup(xaccPrintAmount(value,gnc_default_print_info(FALSE)));
- } else
- strings[i++] = gncQueryCoreToString (type, res, qp);
- }
+ /* Do all the object conversions */
+ for (; converters; converters = converters->next)
+ {
+ qp = converters->data;
+ if (converters->next)
+ {
+ res = (qp->param_getfcn)(res, qp);
+ }
+ }
- row = gtk_clist_append (GTK_CLIST(list), (gchar **) strings);
- gtk_clist_set_row_data (GTK_CLIST(list), row, item->data);
+ /* Now convert this to a text value for the row */
+ if (!safe_strcmp(type, QUERYCORE_DEBCRED) ||
+ !safe_strcmp(type, QUERYCORE_NUMERIC))
+ {
+ gnc_numeric (*nfcn)(gpointer, QofParam *) =
+ (gnc_numeric(*)(gpointer, QofParam *))(qp->param_getfcn);
+ gnc_numeric value = nfcn(res, qp);
+ if (list->numeric_abs)
+ value = gnc_numeric_abs (value);
+ strings[i++] = g_strdup(xaccPrintAmount(value, gnc_default_print_info(FALSE)));
+ }
+ else
+ strings[i++] = gncQueryCoreToString (type, res, qp);
+ }
- /* Free up our strings */
- for (i = 0; i < list->num_columns; i++) {
- if (strings[i])
- g_free (strings[i]);
- }
+ row = gtk_clist_append (GTK_CLIST(list), (gchar **) strings);
+ gtk_clist_set_row_data (GTK_CLIST(list), row, item->data);
- /* Now update any checkmarks */
- update_booleans (list, row);
+ /* Free up our strings */
+ for (i = 0; i < list->num_columns; i++)
+ {
+ if (strings[i])
+ g_free (strings[i]);
+ }
- /* and set a watcher on this item */
- gup = priv->get_guid;
- guid = (const GUID*)((gup->param_getfcn)(item->data, gup));
- gnc_gui_component_watch_entity (priv->component_id, guid,
- QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
+ /* Now update any checkmarks */
+ update_booleans (list, row);
- list->num_entries++;
- }
+ /* and set a watcher on this item */
+ gup = priv->get_guid;
+ guid = (const GUID*)((gup->param_getfcn)(item->data, gup));
+ gnc_gui_component_watch_entity (priv->component_id, guid,
+ QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
+
+ list->num_entries++;
+ }
}
/********************************************************************\
@@ -865,49 +875,49 @@
void
gnc_query_list_unselect_all(GNCQueryList *list)
{
- g_return_if_fail (list != NULL);
- g_return_if_fail (IS_GNC_QUERY_LIST(list));
+ g_return_if_fail (list != NULL);
+ g_return_if_fail (IS_GNC_QUERY_LIST(list));
- list->no_toggle = TRUE;
- list->always_unselect = TRUE;
+ list->no_toggle = TRUE;
+ list->always_unselect = TRUE;
- gtk_clist_unselect_all (GTK_CLIST(list));
+ gtk_clist_unselect_all (GTK_CLIST(list));
- list->always_unselect = FALSE;
- list->no_toggle = FALSE;
+ list->always_unselect = FALSE;
+ list->no_toggle = FALSE;
- list->current_entry = NULL;
+ list->current_entry = NULL;
}
gboolean gnc_query_list_item_in_list (GNCQueryList *list, gpointer item)
{
- g_return_val_if_fail(list, FALSE);
- g_return_val_if_fail(item, FALSE);
- g_return_val_if_fail(IS_GNC_QUERY_LIST(list), FALSE);
+ g_return_val_if_fail(list, FALSE);
+ g_return_val_if_fail(item, FALSE);
+ g_return_val_if_fail(IS_GNC_QUERY_LIST(list), FALSE);
- return (gtk_clist_find_row_from_data(GTK_CLIST(list), item) != -1);
+ return (gtk_clist_find_row_from_data(GTK_CLIST(list), item) != -1);
}
void gnc_query_list_refresh_item (GNCQueryList *list, gpointer item)
{
- gint row;
+ gint row;
- g_return_if_fail(list);
- g_return_if_fail(item);
- g_return_if_fail(IS_GNC_QUERY_LIST(list));
+ g_return_if_fail(list);
+ g_return_if_fail(item);
+ g_return_if_fail(IS_GNC_QUERY_LIST(list));
- row = gtk_clist_find_row_from_data(GTK_CLIST(list), item);
- if (row != -1)
- update_booleans (list, row);
+ row = gtk_clist_find_row_from_data(GTK_CLIST(list), item);
+ if (row != -1)
+ update_booleans (list, row);
}
void
gnc_query_list_set_numerics (GNCQueryList *list, gboolean abs, gboolean inv_sort)
{
- g_return_if_fail(list);
- g_return_if_fail(IS_GNC_QUERY_LIST(list));
+ g_return_if_fail(list);
+ g_return_if_fail(IS_GNC_QUERY_LIST(list));
- list->numeric_abs = abs;
- list->numeric_inv_sort = inv_sort;
+ list->numeric_abs = abs;
+ list->numeric_inv_sort = inv_sort;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-query-list.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-query-list.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-query-list.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -37,78 +37,78 @@
#define IS_GNC_QUERY_LIST(obj) (GTK_CHECK_TYPE ((obj), GNC_TYPE_QUERY_LIST))
#define IS_GNC_QUERY_LIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNC_TYPE_QUERY_LIST))
-typedef struct _GNCQueryList GNCQueryList;
-typedef struct _GNCQueryListClass GNCQueryListClass;
+ typedef struct _GNCQueryList GNCQueryList;
+ typedef struct _GNCQueryListClass GNCQueryListClass;
-struct _GNCQueryList
-{
- GtkCList clist;
+ struct _GNCQueryList
+ {
+ GtkCList clist;
- /* Query information */
- Query *query;
- gboolean no_toggle;
- gboolean always_unselect;
- gint current_row;
- gint num_entries;
- gpointer current_entry;
+ /* Query information */
+ Query *query;
+ gboolean no_toggle;
+ gboolean always_unselect;
+ gint current_row;
+ gint num_entries;
+ gpointer current_entry;
- /* Column information */
- gint num_columns;
- GList *column_params;
+ /* Column information */
+ gint num_columns;
+ GList *column_params;
- /* numeric information */
- gboolean numeric_abs;
- gboolean numeric_inv_sort;
-
- /* Sorting info */
- gint sort_column;
- gboolean increasing;
- GtkWidget **title_arrows;
+ /* numeric information */
+ gboolean numeric_abs;
+ gboolean numeric_inv_sort;
- /* Column resizing */
- gint prev_allocation;
- gint *title_widths;
-};
+ /* Sorting info */
+ gint sort_column;
+ gboolean increasing;
+ GtkWidget **title_arrows;
-struct _GNCQueryListClass
-{
- GtkCListClass clist_class;
+ /* Column resizing */
+ gint prev_allocation;
+ gint *title_widths;
+ };
- void (*line_toggled) (GNCQueryList *list, gpointer entry);
- void (*double_click_entry) (GNCQueryList *list, gpointer entry);
-};
+ struct _GNCQueryListClass
+ {
+ GtkCListClass clist_class;
-/***********************************************************
- * public functions *
- ***********************************************************/
+ void (*line_toggled) (GNCQueryList *list, gpointer entry);
+ void (*double_click_entry) (GNCQueryList *list, gpointer entry);
+ };
-GType gnc_query_list_get_type (void);
+ /***********************************************************
+ * public functions *
+ ***********************************************************/
-/* The param_list remains owned by the caller but is used by the
- * query-list; do not destroy it until you destroy this query-list.
- * The query will be copied by the query-list so the caller may do
- * whatever they want.
- */
-GtkWidget * gnc_query_list_new (GList *param_list, Query *query);
-void gnc_query_list_construct (GNCQueryList *list, GList *param_list, Query *query);
-void gnc_query_list_reset_query (GNCQueryList *list, Query *query);
+ GType gnc_query_list_get_type (void);
-void gnc_query_list_set_numerics (GNCQueryList *list, gboolean abs, gboolean inv_sort);
+ /* The param_list remains owned by the caller but is used by the
+ * query-list; do not destroy it until you destroy this query-list.
+ * The query will be copied by the query-list so the caller may do
+ * whatever they want.
+ */
+ GtkWidget * gnc_query_list_new (GList *param_list, Query *query);
+ void gnc_query_list_construct (GNCQueryList *list, GList *param_list, Query *query);
+ void gnc_query_list_reset_query (GNCQueryList *list, Query *query);
-gint gnc_query_list_get_needed_height(GNCQueryList *list, gint num_rows);
+ void gnc_query_list_set_numerics (GNCQueryList *list, gboolean abs, gboolean inv_sort);
-gint gnc_query_list_get_num_entries(GNCQueryList *list);
+ gint gnc_query_list_get_needed_height(GNCQueryList *list, gint num_rows);
-gpointer gnc_query_list_get_current_entry(GNCQueryList *list);
+ gint gnc_query_list_get_num_entries(GNCQueryList *list);
-void gnc_query_list_refresh (GNCQueryList *list);
+ gpointer gnc_query_list_get_current_entry(GNCQueryList *list);
-void gnc_query_list_unselect_all(GNCQueryList *list);
+ void gnc_query_list_refresh (GNCQueryList *list);
-gboolean gnc_query_list_item_in_list (GNCQueryList *list, gpointer item);
+ void gnc_query_list_unselect_all(GNCQueryList *list);
-void gnc_query_list_refresh_item (GNCQueryList *list, gpointer item);
+ gboolean gnc_query_list_item_in_list (GNCQueryList *list, gpointer item);
+ void gnc_query_list_refresh_item (GNCQueryList *list, gpointer item);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: gnucash/trunk/src/gnome-utils/gnc-recurrence.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-recurrence.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-recurrence.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -35,7 +35,8 @@
static QofLogModule log_module = GNC_MOD_GUI;
-struct _GncRecurrence {
+struct _GncRecurrence
+{
GtkVBox widget;
GnomeDateEdit *gde_start;
@@ -48,17 +49,20 @@
Recurrence recurrence;
};
-typedef struct {
+typedef struct
+{
GtkVBoxClass parent_class;
void (*changed) (GncRecurrence *gr);
} GncRecurrenceClass;
-typedef enum {
+typedef enum
+{
GNCRECURRENCE_CHANGED,
LAST_SIGNAL
} GNCR_Signals;
-typedef enum {
+typedef enum
+{
GNCR_DAY,
GNCR_WEEK,
GNCR_MONTH,
@@ -75,19 +79,25 @@
static void set_pt_ui(GncRecurrence *gr, PeriodType pt)
{
UIPeriodType idx;
- switch (pt) {
+ switch (pt)
+ {
case PERIOD_DAY:
- idx = 0; break;
+ idx = 0;
+ break;
case PERIOD_WEEK:
- idx = 1; break;
+ idx = 1;
+ break;
case PERIOD_MONTH:
case PERIOD_END_OF_MONTH:
case PERIOD_NTH_WEEKDAY:
case PERIOD_LAST_WEEKDAY:
- idx = 2; break;
+ idx = 2;
+ break;
case PERIOD_YEAR:
- idx = 3; break;
- default: return;
+ idx = 3;
+ break;
+ default:
+ return;
}
gtk_combo_box_set_active(gr->gcb_period, idx);
@@ -108,7 +118,7 @@
d = g_date_get_day(date);
dim = g_date_get_days_in_month(
- g_date_get_month(date), g_date_get_year(date));
+ g_date_get_month(date), g_date_get_year(date));
return ((d - 1) / 7 == 3) && (dim - d < 7);
}
@@ -135,23 +145,27 @@
if (pt == GNCR_MONTH)
g_object_set(G_OBJECT(gr->nth_weekday), "visible", TRUE, NULL);
- else {
+ else
+ {
g_object_set(G_OBJECT(gr->nth_weekday), "visible", FALSE, NULL);
gtk_toggle_button_set_active(
GTK_TOGGLE_BUTTON(gr->nth_weekday), FALSE);
}
use_wd = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(gr->nth_weekday));
+ GTK_TOGGLE_BUTTON(gr->nth_weekday));
//TODO: change label
/* The case under which we show the "end of month" flag is very
narrow, because we can almost always DTRT without it. */
- if (pt == GNCR_MONTH) {
+ if (pt == GNCR_MONTH)
+ {
if (use_wd)
show_last = is_ambiguous_relative(&start);
else
show_last = is_ambiguous_absolute(&start);
- } else {
+ }
+ else
+ {
show_last = FALSE;
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gr->gcb_eom), FALSE);
}
@@ -170,15 +184,15 @@
gr->xml = gnc_glade_xml_new("budget.glade", "RecurrenceEntryVBox");
vb = GTK_VBOX(glade_xml_get_widget(gr->xml, "RecurrenceEntryVBox"));
gr->gde_start = GNOME_DATE_EDIT(glade_xml_get_widget(gr->xml,
- "GDE_StartDate"));
+ "GDE_StartDate"));
gtk_widget_set_no_show_all(GTK_WIDGET(gr->gde_start), TRUE);
gr->gcb_period = GTK_COMBO_BOX(glade_xml_get_widget(gr->xml,
- "GCB_PeriodType"));
+ "GCB_PeriodType"));
gr->gsb_mult = GTK_SPIN_BUTTON(glade_xml_get_widget(gr->xml, "GSB_Mult"));
gr->gcb_eom = GTK_CHECK_BUTTON(glade_xml_get_widget(gr->xml,
- "GCB_EndOfMonth"));
+ "GCB_EndOfMonth"));
gr->nth_weekday = GTK_CHECK_BUTTON(glade_xml_get_widget(gr->xml,
- "GCB_NthWeekday"));
+ "GCB_NthWeekday"));
gtk_widget_set_no_show_all(GTK_WIDGET(gr->gcb_eom), TRUE);
gtk_widget_set_no_show_all(GTK_WIDGET(gr->nth_weekday), TRUE);
@@ -190,15 +204,15 @@
/* respond to changes */
g_signal_connect( G_OBJECT(gr->gde_start), "date_changed",
- G_CALLBACK(something_changed), gr );
+ G_CALLBACK(something_changed), gr );
g_signal_connect( G_OBJECT(gr->gcb_period), "changed",
- G_CALLBACK(something_changed), gr );
+ G_CALLBACK(something_changed), gr );
g_signal_connect( G_OBJECT(gr->gsb_mult), "value-changed",
- G_CALLBACK(something_changed), gr );
+ G_CALLBACK(something_changed), gr );
g_signal_connect( G_OBJECT(gr->gcb_eom), "toggled",
- G_CALLBACK(something_changed), gr );
+ G_CALLBACK(something_changed), gr );
g_signal_connect( G_OBJECT(gr->nth_weekday), "toggled",
- G_CALLBACK(something_changed), gr );
+ G_CALLBACK(something_changed), gr );
gtk_widget_show_all( GTK_WIDGET(&gr->widget) );
}
@@ -242,19 +256,26 @@
g_date_set_time_t(&start, t);
period = get_pt_ui(gr);
- switch (period) {
+ switch (period)
+ {
case GNCR_DAY:
- pt = PERIOD_DAY; break;
+ pt = PERIOD_DAY;
+ break;
case GNCR_WEEK:
- pt = PERIOD_WEEK; break;
+ pt = PERIOD_WEEK;
+ break;
case GNCR_MONTH:
rel = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(gr->nth_weekday));
- if (rel) {
- if (is_ambiguous_relative(&start)) {
+ GTK_TOGGLE_BUTTON(gr->nth_weekday));
+ if (rel)
+ {
+ if (is_ambiguous_relative(&start))
+ {
use_eom = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(gr->gcb_eom));
- } else {
+ GTK_TOGGLE_BUTTON(gr->gcb_eom));
+ }
+ else
+ {
GDateDay d;
d = g_date_get_day(&start);
@@ -263,13 +284,18 @@
if (use_eom)
pt = PERIOD_LAST_WEEKDAY;
else pt = PERIOD_NTH_WEEKDAY;
- } else {
+ }
+ else
+ {
if (g_date_is_last_of_month(&start) &&
- (g_date_get_day(&start) < 31)) {
+ (g_date_get_day(&start) < 31))
+ {
// ambiguous, need to examine the checkbox
use_eom = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(gr->gcb_eom));
- } else {
+ GTK_TOGGLE_BUTTON(gr->gcb_eom));
+ }
+ else
+ {
// if it's the last dom, use eom anyway because it's the 31st.
use_eom = g_date_is_last_of_month(&start);
}
@@ -279,7 +305,8 @@
}
break;
case GNCR_YEAR:
- pt = PERIOD_YEAR; break;
+ pt = PERIOD_YEAR;
+ break;
default:
pt = PERIOD_INVALID;
}
@@ -324,8 +351,10 @@
gnc_recurrence_get_type()
{
static GType type = 0;
- if (type == 0) {
- static GTypeInfo typeinfo = {
+ if (type == 0)
+ {
+ static GTypeInfo typeinfo =
+ {
sizeof(GncRecurrenceClass),
NULL, NULL,
(GClassInitFunc)gnc_recurrence_class_init,
@@ -356,7 +385,8 @@
*
*/
-struct _GncRecurrenceComp {
+struct _GncRecurrenceComp
+{
GtkScrolledWindow widget;
GtkVBox *vbox;
@@ -369,12 +399,14 @@
GList *rlist;
};
-typedef struct {
+typedef struct
+{
GtkScrolledWindowClass parent_class;
void (*changed) (GncRecurrenceComp *gr);
} GncRecurrenceCompClass;
-typedef enum {
+typedef enum
+{
GNCRECURRENCECOMP_CHANGED,
GNCRC_LAST_SIGNAL
} GNCRC_Signals;
@@ -441,7 +473,8 @@
while (grc->num_rec > 0)
removeRecurrence(grc);
- for (iter = rlist; iter; iter = iter->next) {
+ for (iter = rlist; iter; iter = iter->next)
+ {
GncRecurrence *gr = GNC_RECURRENCE(gnc_recurrence_new());
gnc_recurrence_set(gr, (Recurrence *)iter->data);
@@ -457,7 +490,8 @@
children = gtk_container_get_children(GTK_CONTAINER(grc->vbox));
- for (i = 0; i < g_list_length(children); i++) {
+ for (i = 0; i < g_list_length(children); i++)
+ {
GncRecurrence *gr;
const Recurrence *r;
gr = GNC_RECURRENCE(g_list_nth_data(children, i));
@@ -486,9 +520,9 @@
G_CALLBACK(removeClicked), grc);
gtk_box_pack_start(GTK_BOX(grc->hbb), GTK_WIDGET(grc->buttAdd),
- FALSE, FALSE, 3);
+ FALSE, FALSE, 3);
gtk_box_pack_start(GTK_BOX(grc->hbb), GTK_WIDGET(grc->buttRemove),
- FALSE, FALSE, 3);
+ FALSE, FALSE, 3);
vb = gtk_vbox_new(FALSE, 1);
gtk_box_pack_start(GTK_BOX(vb), GTK_WIDGET(grc->hbb),
@@ -532,8 +566,10 @@
gnc_recurrence_comp_get_type()
{
static GType type = 0;
- if (type == 0) {
- static GTypeInfo typeinfo = {
+ if (type == 0)
+ {
+ static GTypeInfo typeinfo =
+ {
sizeof(GncRecurrenceCompClass),
NULL, NULL,
(GClassInitFunc)gnc_recurrence_comp_class_init,
Modified: gnucash/trunk/src/gnome-utils/gnc-splash.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-splash.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-splash.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -39,163 +39,164 @@
static void
splash_destroy_cb (GtkObject *object, gpointer user_data)
{
- splash = NULL;
+ splash = NULL;
}
void
gnc_gui_init_splash (void)
{
- if (!splash_is_initialized) {
- splash_is_initialized = TRUE;
- gnc_show_splash_screen ();
- }
+ if (!splash_is_initialized)
+ {
+ splash_is_initialized = TRUE;
+ gnc_show_splash_screen ();
+ }
}
static gboolean
button_press_cb(GtkWidget *widget, GdkEventButton *event, gpointer unused)
{
- gnc_destroy_splash_screen();
- return TRUE;
+ gnc_destroy_splash_screen();
+ return TRUE;
}
void
gnc_show_splash_screen (void)
{
- GtkWidget *pixmap;
- GtkWidget *frame;
- GtkWidget *vbox;
- GtkWidget *hbox;
- GtkWidget *version;
- GtkWidget *separator;
- gchar *ver_string, *markup;
+ GtkWidget *pixmap;
+ GtkWidget *frame;
+ GtkWidget *vbox;
+ GtkWidget *hbox;
+ GtkWidget *version;
+ GtkWidget *separator;
+ gchar *ver_string, *markup;
- if (splash) return;
+ if (splash) return;
- splash = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_type_hint (GTK_WINDOW (splash), GDK_WINDOW_TYPE_HINT_SPLASHSCREEN);
- gtk_window_set_skip_taskbar_hint (GTK_WINDOW (splash), TRUE);
+ splash = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_type_hint (GTK_WINDOW (splash), GDK_WINDOW_TYPE_HINT_SPLASHSCREEN);
+ gtk_window_set_skip_taskbar_hint (GTK_WINDOW (splash), TRUE);
- g_signal_connect (splash, "destroy",
- G_CALLBACK (splash_destroy_cb), NULL);
+ g_signal_connect (splash, "destroy",
+ G_CALLBACK (splash_destroy_cb), NULL);
- gtk_window_set_title (GTK_WINDOW (splash), "GnuCash");
- gtk_window_set_position (GTK_WINDOW (splash), GTK_WIN_POS_CENTER);
+ gtk_window_set_title (GTK_WINDOW (splash), "GnuCash");
+ gtk_window_set_position (GTK_WINDOW (splash), GTK_WIN_POS_CENTER);
- pixmap = gnc_gnome_get_pixmap ("gnucash_splash.png");
+ pixmap = gnc_gnome_get_pixmap ("gnucash_splash.png");
- if (!pixmap)
- {
- g_warning ("can't find splash pixmap");
- gtk_widget_destroy (splash);
- return;
- }
+ if (!pixmap)
+ {
+ g_warning ("can't find splash pixmap");
+ gtk_widget_destroy (splash);
+ return;
+ }
- frame = gtk_frame_new (NULL);
- vbox = gtk_vbox_new (FALSE, 3);
- hbox = gtk_hbox_new (FALSE, 3);
+ frame = gtk_frame_new (NULL);
+ vbox = gtk_vbox_new (FALSE, 3);
+ hbox = gtk_hbox_new (FALSE, 3);
#ifdef GNUCASH_SVN
- /* Development version */
- ver_string = g_strdup_printf(_("Version: GnuCash-%s svn (r%s built %s)"),
- VERSION, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
+ /* Development version */
+ ver_string = g_strdup_printf(_("Version: GnuCash-%s svn (r%s built %s)"),
+ VERSION, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
#else
- /* Dist Tarball */
- ver_string = g_strdup_printf(_("Version: GnuCash-%s (r%s built %s)"),
- VERSION, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
+ /* Dist Tarball */
+ ver_string = g_strdup_printf(_("Version: GnuCash-%s (r%s built %s)"),
+ VERSION, GNUCASH_SVN_REV, GNUCASH_BUILD_DATE);
#endif
- version = gtk_label_new(NULL);
- markup = g_markup_printf_escaped(MARKUP_STRING, ver_string);
- gtk_label_set_markup(GTK_LABEL(version), markup);
- g_free(markup);
- g_free(ver_string);
- separator = gtk_hseparator_new();
+ version = gtk_label_new(NULL);
+ markup = g_markup_printf_escaped(MARKUP_STRING, ver_string);
+ gtk_label_set_markup(GTK_LABEL(version), markup);
+ g_free(markup);
+ g_free(ver_string);
+ separator = gtk_hseparator_new();
- progress = gtk_label_new(NULL);
- /* the set_max_width avoids "bumping" of the splash screen
- if a long string is given in gnc_update_splash_screen();
- presumably it would be better to inhibit size change of the
- top level container, but I don't know how to do this */
- gtk_label_set_max_width_chars(GTK_LABEL(progress), 34);
- markup = g_markup_printf_escaped(MARKUP_STRING, _("Loading..."));
- gtk_label_set_markup(GTK_LABEL(progress), markup);
- g_free(markup);
+ progress = gtk_label_new(NULL);
+ /* the set_max_width avoids "bumping" of the splash screen
+ if a long string is given in gnc_update_splash_screen();
+ presumably it would be better to inhibit size change of the
+ top level container, but I don't know how to do this */
+ gtk_label_set_max_width_chars(GTK_LABEL(progress), 34);
+ markup = g_markup_printf_escaped(MARKUP_STRING, _("Loading..."));
+ gtk_label_set_markup(GTK_LABEL(progress), markup);
+ g_free(markup);
- progress_bar = gtk_progress_bar_new ();
+ progress_bar = gtk_progress_bar_new ();
- gtk_container_add (GTK_CONTAINER (frame), pixmap);
- gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), version, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), progress, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), progress_bar, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
- gtk_container_add (GTK_CONTAINER (splash), vbox);
+ gtk_container_add (GTK_CONTAINER (frame), pixmap);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), version, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), progress, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), progress_bar, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (splash), vbox);
- gtk_widget_add_events(splash, GDK_BUTTON_PRESS_MASK);
- g_signal_connect(splash, "button_press_event",
- G_CALLBACK(button_press_cb), NULL);
+ gtk_widget_add_events(splash, GDK_BUTTON_PRESS_MASK);
+ g_signal_connect(splash, "button_press_event",
+ G_CALLBACK(button_press_cb), NULL);
- gtk_window_set_auto_startup_notification (FALSE);
- gtk_widget_show_all (splash);
- gtk_window_set_auto_startup_notification (TRUE);
+ gtk_window_set_auto_startup_notification (FALSE);
+ gtk_widget_show_all (splash);
+ gtk_window_set_auto_startup_notification (TRUE);
- /* make sure splash is up */
- while (gtk_events_pending ())
- gtk_main_iteration ();
+ /* make sure splash is up */
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
}
void
gnc_destroy_splash_screen (void)
{
- if (splash)
- {
- gtk_widget_destroy (splash);
- progress = NULL;
- progress_bar = NULL;
- splash = NULL;
- }
+ if (splash)
+ {
+ gtk_widget_destroy (splash);
+ progress = NULL;
+ progress_bar = NULL;
+ splash = NULL;
+ }
}
void
gnc_update_splash_screen (const gchar *string, double percentage)
{
- gchar *markup;
+ gchar *markup;
- if (progress)
- {
- if(string && strcmp(string, ""))
+ if (progress)
{
- markup = g_markup_printf_escaped(MARKUP_STRING, string);
- gtk_label_set_markup (GTK_LABEL(progress), markup);
- g_free (markup);
+ if (string && strcmp(string, ""))
+ {
+ markup = g_markup_printf_escaped(MARKUP_STRING, string);
+ gtk_label_set_markup (GTK_LABEL(progress), markup);
+ g_free (markup);
- /* make sure new text is up */
- while (gtk_events_pending ())
- gtk_main_iteration ();
+ /* make sure new text is up */
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+ }
}
- }
- if (progress_bar)
- {
- if (percentage < 0)
+ if (progress_bar)
{
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar), 0.0);
+ if (percentage < 0)
+ {
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar), 0.0);
+ }
+ else
+ {
+ if (percentage <= 100)
+ {
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar),
+ percentage / 100);
+ }
+ else
+ {
+ gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar));
+ }
+ }
+
+ /* make sure new status bar is up */
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
}
- else
- {
- if (percentage <= 100)
- {
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar),
- percentage/100);
- }
- else
- {
- gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar));
- }
- }
-
- /* make sure new status bar is up */
- while (gtk_events_pending ())
- gtk_main_iteration ();
- }
}
Modified: gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-sx-instance-dense-cal-adapter.c
*
* Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
@@ -54,7 +54,7 @@
GObjectClass parent;
};
-struct _GncSxInstanceDenseCalAdapter
+struct _GncSxInstanceDenseCalAdapter
{
GObject parent;
gboolean disposed;
@@ -95,7 +95,7 @@
{
GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(user_data);
g_debug("instance added\n");
- if (xaccSchedXactionGetEnabled(sx_added))
+ if (xaccSchedXactionGetEnabled(sx_added))
{
g_signal_emit_by_name(adapter, "added", GPOINTER_TO_UINT(sx_added));
}
@@ -107,7 +107,7 @@
GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(user_data);
gnc_sx_instance_model_update_sx_instances(model, sx_updated);
g_debug("instances updated\n");
- if (xaccSchedXactionGetEnabled(sx_updated))
+ if (xaccSchedXactionGetEnabled(sx_updated))
{
g_signal_emit_by_name(adapter, "update", GPOINTER_TO_UINT((gpointer)sx_updated));
}
@@ -145,7 +145,8 @@
static GType type = 0;
if (type == 0)
{
- static const GTypeInfo info = {
+ static const GTypeInfo info =
+ {
sizeof (GncSxInstanceDenseCalAdapterClass),
NULL, /* base init */
NULL, /* base finalize */
@@ -156,7 +157,8 @@
0, /* n_preallocs */
(GInstanceInitFunc)gnc_sx_instance_dense_cal_adapter_init
};
- static const GInterfaceInfo iDenseCalModelInfo = {
+ static const GInterfaceInfo iDenseCalModelInfo =
+ {
(GInterfaceInitFunc)gnc_sx_instance_dense_cal_adapter_interface_init,
NULL, /* interface finalize */
NULL, /* interface data */
@@ -189,7 +191,7 @@
for (sxes = adapter->instances->sx_instance_list; sxes != NULL; sxes = sxes->next)
{
GncSxInstances *sx_instances = (GncSxInstances*)sxes->data;
- if (xaccSchedXactionGetEnabled(sx_instances->sx))
+ if (xaccSchedXactionGetEnabled(sx_instances->sx))
{
list = g_list_append(list, GUINT_TO_POINTER(GPOINTER_TO_UINT(sx_instances->sx)));
}
@@ -202,7 +204,7 @@
{
GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
GncSxInstances *insts
- = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+ = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
if (insts == NULL)
return NULL;
return xaccSchedXactionGetName(insts->sx);
@@ -216,7 +218,7 @@
GList *schedule;
gchar *schedule_str;
GncSxInstances *insts
- = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+ = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
if (insts == NULL)
return NULL;
schedule = gnc_sx_get_schedule(insts->sx);
@@ -230,7 +232,7 @@
GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
// g_list_find(instances->sxes, {sx_to_tag, tag}).length();
GncSxInstances *insts
- = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+ = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
if (insts == NULL)
return 0;
return g_list_length(insts->instance_list);
@@ -242,7 +244,7 @@
GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
GncSxInstance *inst;
GncSxInstances *insts
- = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+ = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
if (insts == NULL)
return;
inst = (GncSxInstance*)g_list_nth_data(insts->instance_list, instance_index);
Modified: gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-sx-instance-dense-cal-adapter.h
*
* Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
Modified: gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-sx-list-tree-model-adapter.c
*
* Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
@@ -69,8 +69,10 @@
gnc_sx_list_tree_model_adapter_get_type(void)
{
static GType type = 0;
- if (type == 0) {
- static const GTypeInfo info = {
+ if (type == 0)
+ {
+ static const GTypeInfo info =
+ {
sizeof (GncSxListTreeModelAdapterClass),
NULL, /* base_init */
NULL, /* base_finalize */
@@ -81,12 +83,14 @@
0, /* n_preallocs */
(GInstanceInitFunc)gnc_sx_list_tree_model_adapter_init /* instance_init */
};
- static const GInterfaceInfo itree_model_info = {
+ static const GInterfaceInfo itree_model_info =
+ {
(GInterfaceInitFunc) gsltma_tree_model_interface_init, /* interface_init */
NULL, /* interface_finalize */
NULL /* interface_data */
};
- static const GInterfaceInfo itree_sortable_info = {
+ static const GInterfaceInfo itree_sortable_info =
+ {
(GInterfaceInitFunc) gsltma_tree_sortable_interface_init, /* interface_init */
NULL, /* interface_finalize */
NULL /* interface_data */
@@ -245,8 +249,8 @@
GtkSortType *order)
{
return gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real),
- sort_column_id,
- order);
+ sort_column_id,
+ order);
}
static void
@@ -266,7 +270,7 @@
gpointer data,
GtkDestroyNotify destroy)
{
- gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real),
+ gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real),
sort_column_id,
func,
data,
@@ -388,7 +392,7 @@
a_inst = gsltma_get_sx_instances_from_orig_iter(adapter, a);
b_inst = gsltma_get_sx_instances_from_orig_iter(adapter, b);
-
+
if (a_inst == NULL && b_inst == NULL) return 0;
if (a_inst == NULL) return 1;
if (b_inst == NULL) return -1;
@@ -483,7 +487,7 @@
{
if (date == NULL || !g_date_valid(date))
{
- g_stpcpy(date_buf, _("never"));
+ g_stpcpy(date_buf, _("never"));
}
else
{
@@ -592,8 +596,8 @@
{
GtkTreeIter translated_iter;
gtk_tree_model_sort_convert_iter_to_child_iter(model->real,
- &translated_iter,
- sort_iter);
+ &translated_iter,
+ sort_iter);
return gsltma_get_sx_instances_from_orig_iter(model, &translated_iter);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-sx-list-tree-model-adapter.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-sx-list-tree-model-adapter.h
*
* Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
@@ -42,7 +42,8 @@
typedef struct _GncSxListTreeModelAdapterClass GncSxListTreeModelAdapterClass;
// model columns
-enum {
+enum
+{
SXLTMA_COL_NAME = 0,
SXLTMA_COL_ENABLED,
SXLTMA_COL_FREQUENCY,
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-account-types.c -- GtkTreeModel implementation
* to display account types in a GtkTreeView.
*
@@ -66,8 +66,10 @@
{
static GType gnc_tree_model_account_types_type = 0;
- if (gnc_tree_model_account_types_type == 0) {
- static const GTypeInfo our_info = {
+ if (gnc_tree_model_account_types_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
sizeof (GncTreeModelAccountTypesClass),
NULL,
NULL,
@@ -79,7 +81,8 @@
(GInstanceInitFunc) gnc_tree_model_account_types_init
};
- static const GInterfaceInfo tree_model_info = {
+ static const GInterfaceInfo tree_model_info =
+ {
(GInterfaceInitFunc) gnc_tree_model_account_types_tree_model_init,
NULL,
NULL
@@ -112,7 +115,8 @@
static void
gnc_tree_model_account_types_init (GncTreeModelAccountTypes * model)
{
- while (model->stamp == 0) {
+ while (model->stamp == 0)
+ {
model->stamp = g_random_int ();
}
}
@@ -161,7 +165,7 @@
GNCAccountType type;
GObject *f_model = G_OBJECT (data);
guint32 valid_types = GPOINTER_TO_UINT (g_object_get_data (
- f_model, TYPE_MASK));
+ f_model, TYPE_MASK));
gtk_tree_model_get (model, iter,
GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE, &type, -1);
@@ -172,7 +176,7 @@
gnc_tree_model_account_types_valid (void)
{
return gnc_tree_model_account_types_filter_using_mask(
- xaccAccountTypesValid());
+ xaccAccountTypesValid());
}
GtkTreeModel *
@@ -181,7 +185,7 @@
GtkTreeModel *f_model;
f_model = gtk_tree_model_filter_new (gnc_tree_model_account_types_master (),
- NULL);
+ NULL);
g_object_set_data (G_OBJECT (f_model), TYPE_MASK, GUINT_TO_POINTER (types));
gtk_tree_model_filter_set_visible_func (
GTK_TREE_MODEL_FILTER (f_model), gnc_tree_model_account_types_is_valid,
@@ -211,24 +215,24 @@
guint32
gnc_tree_model_account_types_get_selected (GncTreeModelAccountTypes * model)
{
- GncTreeModelAccountTypesPrivate *priv;
+ GncTreeModelAccountTypesPrivate *priv;
- g_return_val_if_fail (model != NULL, 0);
+ g_return_val_if_fail (model != NULL, 0);
- priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
- return priv->selected;
+ priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
+ return priv->selected;
}
void
gnc_tree_model_account_types_set_selected (GncTreeModelAccountTypes * model,
- guint32 selected)
+ guint32 selected)
{
- GncTreeModelAccountTypesPrivate *priv;
+ GncTreeModelAccountTypesPrivate *priv;
- g_return_if_fail (model != NULL);
+ g_return_if_fail (model != NULL);
- priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
- priv->selected = selected;
+ priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
+ priv->selected = selected;
}
guint32
@@ -248,16 +252,19 @@
f_model = NULL;
list = gtk_tree_selection_get_selected_rows(sel, &f_model);
if (!f_model)
- f_model = gtk_tree_view_get_model(view);
+ f_model = gtk_tree_view_get_model(view);
model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
if (model != account_types_tree_model)
- PERR("TreeSelection's TreeModel is not the account-types Model");
- else {
- for (node = list; node; node = node->next) {
+ PERR("TreeSelection's TreeModel is not the account-types Model");
+ else
+ {
+ for (node = list; node; node = node->next)
+ {
path = gtk_tree_model_filter_convert_path_to_child_path(
- GTK_TREE_MODEL_FILTER(f_model), (GtkTreePath*)node->data);
- if (!path || gtk_tree_path_get_depth(path) != 1) {
+ GTK_TREE_MODEL_FILTER(f_model), (GtkTreePath*)node->data);
+ if (!path || gtk_tree_path_get_depth(path) != 1)
+ {
PERR("Invalid Account-types TreePath.");
continue;
}
@@ -276,7 +283,7 @@
{
gint i;
guint32 selected = gnc_tree_model_account_types_get_selection(sel);
-
+
for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
if (selected & (1 << i))
return i;
@@ -285,7 +292,7 @@
void
gnc_tree_model_account_types_set_selection (GtkTreeSelection *sel,
- guint32 selected)
+ guint32 selected)
{
GtkTreePath *path, *f_path;
GtkTreeModelFilter *f_model;
@@ -296,15 +303,17 @@
view = gtk_tree_selection_get_tree_view(sel);
g_return_if_fail (view);
f_model = GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(view));
- g_return_if_fail(gtk_tree_model_filter_get_model(f_model) ==
+ g_return_if_fail(gtk_tree_model_filter_get_model(f_model) ==
account_types_tree_model);
gtk_tree_selection_unselect_all(sel);
path = gtk_tree_path_new_first();
- for (i = 0; i < NUM_ACCOUNT_TYPES; i++) {
- if (selected & (1 << i)) {
+ for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
+ {
+ if (selected & (1 << i))
+ {
f_path = gtk_tree_model_filter_convert_child_path_to_path(
- f_model, path);
+ f_model, path);
gtk_tree_selection_select_path(sel, f_path);
gtk_tree_view_scroll_to_cell(view, f_path, NULL, FALSE, 0.0, 0.0);
}
@@ -330,14 +339,15 @@
static GType
gnc_tree_model_account_types_get_column_type (GtkTreeModel * tree_model,
- int index)
+ int index)
{
g_return_val_if_fail(GNC_IS_TREE_MODEL_ACCOUNT_TYPES (tree_model),
G_TYPE_INVALID);
g_return_val_if_fail((index < GNC_TREE_MODEL_ACCOUNT_TYPES_NUM_COLUMNS)
&& (index >= 0), G_TYPE_INVALID);
- switch (index) {
+ switch (index)
+ {
case GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE:
return G_TYPE_INT;
case GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME:
@@ -362,7 +372,8 @@
i = gtk_tree_path_get_indices (path)[0];
- if (i > ACCT_TYPE_NONE && i < NUM_ACCOUNT_TYPES) {
+ if (i > ACCT_TYPE_NONE && i < NUM_ACCOUNT_TYPES)
+ {
iter->stamp = model->stamp;
iter->user_data = GINT_TO_POINTER (i);
return TRUE;
@@ -403,7 +414,8 @@
g_return_if_fail (iter->stamp == model->stamp);
priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
- switch (column) {
+ switch (column)
+ {
case GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE:
g_value_init (value, G_TYPE_INT);
g_value_set_int (value, GPOINTER_TO_INT (iter->user_data));
@@ -433,9 +445,10 @@
g_return_val_if_fail (iter != NULL, FALSE);
g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- if (GPOINTER_TO_INT (iter->user_data) < NUM_ACCOUNT_TYPES - 1) {
+ if (GPOINTER_TO_INT (iter->user_data) < NUM_ACCOUNT_TYPES - 1)
+ {
iter->user_data = GINT_TO_POINTER(
- GPOINTER_TO_INT(iter->user_data) + 1);
+ GPOINTER_TO_INT(iter->user_data) + 1);
return TRUE;
}
@@ -445,8 +458,8 @@
static gboolean
gnc_tree_model_account_types_iter_children (GtkTreeModel * tree_model,
- GtkTreeIter * iter,
- GtkTreeIter * parent)
+ GtkTreeIter * iter,
+ GtkTreeIter * parent)
{
g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT_TYPES(tree_model), FALSE);
@@ -462,14 +475,14 @@
static gboolean
gnc_tree_model_account_types_iter_has_child (GtkTreeModel * tree_model,
- GtkTreeIter * iter)
+ GtkTreeIter * iter)
{
return FALSE;
}
static int
gnc_tree_model_account_types_iter_n_children (GtkTreeModel * tree_model,
- GtkTreeIter * iter)
+ GtkTreeIter * iter)
{
g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT_TYPES (tree_model), -1);
@@ -484,8 +497,8 @@
static gboolean
gnc_tree_model_account_types_iter_nth_child (GtkTreeModel * tree_model,
- GtkTreeIter * iter,
- GtkTreeIter * parent, int n)
+ GtkTreeIter * iter,
+ GtkTreeIter * parent, int n)
{
GncTreeModelAccountTypes *model;
@@ -496,10 +509,11 @@
model = GNC_TREE_MODEL_ACCOUNT_TYPES (tree_model);
- if (n > ACCT_TYPE_NONE && n < NUM_ACCOUNT_TYPES) {
- iter->stamp = model->stamp;
- iter->user_data = GINT_TO_POINTER (n);
- return TRUE;
+ if (n > ACCT_TYPE_NONE && n < NUM_ACCOUNT_TYPES)
+ {
+ iter->stamp = model->stamp;
+ iter->user_data = GINT_TO_POINTER (n);
+ return TRUE;
}
iter->stamp = 0;
@@ -508,8 +522,8 @@
static gboolean
gnc_tree_model_account_types_iter_parent (GtkTreeModel * tree_model,
- GtkTreeIter * iter,
- GtkTreeIter * child)
+ GtkTreeIter * iter,
+ GtkTreeIter * child)
{
return FALSE;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-account-types.h -- GtkTreeModel implementation
* to display account types in a GtkTreeView.
*
@@ -28,7 +28,7 @@
/** @addtogroup GuiTreeModel
* @{ */
/** @file gnc-tree-model-account-types.h
- * @brief GtkTreeModel implementation to display account types in a
+ * @brief GtkTreeModel implementation to display account types in a
* GtkTreeView.
* @author Copyright (C) 2003 Jan Arne Petersen
* @author: Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -50,21 +50,24 @@
#define GNC_IS_TREE_MODEL_ACCOUNT_TYPES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_TREE_MODEL_ACCOUNT_TYPES))
#define GNC_TREE_MODEL_ACCOUNT_TYPES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_TREE_MODEL_ACCOUNT_TYPES, GncTreeModelAccountTypesClass))
-typedef enum {
- GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE,
- GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME,
- GNC_TREE_MODEL_ACCOUNT_TYPES_COL_SELECTED,
- GNC_TREE_MODEL_ACCOUNT_TYPES_NUM_COLUMNS
+typedef enum
+{
+ GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE,
+ GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME,
+ GNC_TREE_MODEL_ACCOUNT_TYPES_COL_SELECTED,
+ GNC_TREE_MODEL_ACCOUNT_TYPES_NUM_COLUMNS
} GncTreeModelAccountTypesColumn;
/* typedefs & structures */
-typedef struct {
- GObject gobject;
- int stamp;
+typedef struct
+{
+ GObject gobject;
+ int stamp;
} GncTreeModelAccountTypes;
-typedef struct {
- GObjectClass gobject;
+typedef struct
+{
+ GObjectClass gobject;
} GncTreeModelAccountTypesClass;
/* function prototypes */
@@ -102,12 +105,12 @@
/* Returns a GtkTreeModelFilter that wraps the model. Only account
types specified by the 'types' bitmask are visible. To force the
visibility of deprecated account types, pass
- (xaccAccountTypesValid() | (1 << xaccAccountGetType(acct))).
+ (xaccAccountTypesValid() | (1 << xaccAccountGetType(acct))).
To get the GtkTreeModel that shows all account types, including
deprecated account types, pass (-1).
- To get the GtkTreeModel that only shows non-deprecated account types,
+ To get the GtkTreeModel that only shows non-deprecated account types,
use gnc_tree_model_account_types_valid().
Caller is responsible for ref/unref. */
@@ -115,7 +118,7 @@
/* Update the set of the visibible account types in 'f_model' to 'types'. */
void gnc_tree_model_account_types_set_mask (GtkTreeModel *f_model,
- guint32 types);
+ guint32 types);
/* Return the current set of the visibible account types. */
guint32 gnc_tree_model_account_types_get_mask (GtkTreeModel *f_model);
@@ -137,7 +140,7 @@
of account-type enums in 'selected'. This will also scroll to a
selected row in the TreeView.*/
void gnc_tree_model_account_types_set_selection(GtkTreeSelection *sel,
- guint32 selected);
+ guint32 selected);
/**************** Method 2 functions **************/
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-account.c -- GtkTreeModel implementation to
* display accounts in a GtkTreeView.
*
@@ -56,46 +56,46 @@
static GtkTreeModelFlags gnc_tree_model_account_get_flags (GtkTreeModel *tree_model);
static int gnc_tree_model_account_get_n_columns (GtkTreeModel *tree_model);
static GType gnc_tree_model_account_get_column_type (GtkTreeModel *tree_model,
- int index);
+ int index);
static gboolean gnc_tree_model_account_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path);
+ GtkTreeIter *iter,
+ GtkTreePath *path);
static GtkTreePath *gnc_tree_model_account_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static void gnc_tree_model_account_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value);
+ GtkTreeIter *iter,
+ int column,
+ GValue *value);
static gboolean gnc_tree_model_account_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_account_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
static gboolean gnc_tree_model_account_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static int gnc_tree_model_account_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_account_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n);
static gboolean gnc_tree_model_account_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child);
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
/** Component Manager Callback ******************************************/
static void gnc_tree_model_account_event_handler (QofInstance *entity,
- QofEventId event_type,
- GncTreeModelAccount *model,
- GncEventData *ed);
+ QofEventId event_type,
+ GncTreeModelAccount *model,
+ GncEventData *ed);
/** The instance private data for a account tree model. */
typedef struct GncTreeModelAccountPrivate
{
- QofBook *book;
- Account *root;
- gint event_handler_id;
- const gchar *negative_color;
+ QofBook *book;
+ Account *root;
+ gint event_handler_id;
+ const gchar *negative_color;
} GncTreeModelAccountPrivate;
#define GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(o) \
@@ -115,17 +115,17 @@
static void
gnc_tree_model_account_update_color (GConfEntry *entry, gpointer user_data)
{
- GncTreeModelAccountPrivate *priv;
- GncTreeModelAccount *model;
- GConfValue *value;
- gboolean use_red;
+ GncTreeModelAccountPrivate *priv;
+ GncTreeModelAccount *model;
+ GConfValue *value;
+ gboolean use_red;
- g_return_if_fail(GNC_IS_TREE_MODEL_ACCOUNT(user_data));
- model = user_data;
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- value = gconf_entry_get_value(entry);
- use_red = gconf_value_get_bool(value);
- priv->negative_color = use_red ? "red" : "black";
+ g_return_if_fail(GNC_IS_TREE_MODEL_ACCOUNT(user_data));
+ model = user_data;
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ value = gconf_entry_get_value(entry);
+ use_red = gconf_value_get_bool(value);
+ priv->negative_color = use_red ? "red" : "black";
}
/************************************************************/
/* g_object required functions */
@@ -137,131 +137,136 @@
GType
gnc_tree_model_account_get_type (void)
{
- static GType gnc_tree_model_account_type = 0;
+ static GType gnc_tree_model_account_type = 0;
- if (gnc_tree_model_account_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeModelAccountClass), /* class_size */
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_tree_model_account_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncTreeModelAccount), /* */
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_tree_model_account_init
- };
-
- static const GInterfaceInfo tree_model_info = {
- (GInterfaceInitFunc) gnc_tree_model_account_tree_model_init,
- NULL,
- NULL
- };
+ if (gnc_tree_model_account_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeModelAccountClass), /* class_size */
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_tree_model_account_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncTreeModelAccount), /* */
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_tree_model_account_init
+ };
- gnc_tree_model_account_type = g_type_register_static (GNC_TYPE_TREE_MODEL,
- GNC_TREE_MODEL_ACCOUNT_NAME,
- &our_info, 0);
-
- g_type_add_interface_static (gnc_tree_model_account_type,
- GTK_TYPE_TREE_MODEL,
- &tree_model_info);
- }
+ static const GInterfaceInfo tree_model_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_account_tree_model_init,
+ NULL,
+ NULL
+ };
- return gnc_tree_model_account_type;
+ gnc_tree_model_account_type = g_type_register_static (GNC_TYPE_TREE_MODEL,
+ GNC_TREE_MODEL_ACCOUNT_NAME,
+ &our_info, 0);
+
+ g_type_add_interface_static (gnc_tree_model_account_type,
+ GTK_TYPE_TREE_MODEL,
+ &tree_model_info);
+ }
+
+ return gnc_tree_model_account_type;
}
static void
gnc_tree_model_account_class_init (GncTreeModelAccountClass *klass)
{
- GObjectClass *o_class;
+ GObjectClass *o_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class = G_OBJECT_CLASS (klass);
+ o_class = G_OBJECT_CLASS (klass);
- /* GObject signals */
- o_class->finalize = gnc_tree_model_account_finalize;
- o_class->dispose = gnc_tree_model_account_dispose;
+ /* GObject signals */
+ o_class->finalize = gnc_tree_model_account_finalize;
+ o_class->dispose = gnc_tree_model_account_dispose;
- g_type_class_add_private(klass, sizeof(GncTreeModelAccountPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeModelAccountPrivate));
}
static void
gnc_tree_model_account_init (GncTreeModelAccount *model)
{
- GncTreeModelAccountPrivate *priv;
- gboolean red;
+ GncTreeModelAccountPrivate *priv;
+ gboolean red;
- ENTER("model %p", model);
- while (model->stamp == 0) {
- model->stamp = g_random_int ();
- }
+ ENTER("model %p", model);
+ while (model->stamp == 0)
+ {
+ model->stamp = g_random_int ();
+ }
- red = gnc_gconf_get_bool(GCONF_GENERAL, KEY_NEGATIVE_IN_RED, NULL);
+ red = gnc_gconf_get_bool(GCONF_GENERAL, KEY_NEGATIVE_IN_RED, NULL);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- priv->book = NULL;
- priv->root = NULL;
- priv->negative_color = red ? "red" : "black";
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ priv->book = NULL;
+ priv->root = NULL;
+ priv->negative_color = red ? "red" : "black";
- gnc_gconf_general_register_cb(KEY_NEGATIVE_IN_RED,
- gnc_tree_model_account_update_color,
- model);
-
- LEAVE(" ");
+ gnc_gconf_general_register_cb(KEY_NEGATIVE_IN_RED,
+ gnc_tree_model_account_update_color,
+ model);
+
+ LEAVE(" ");
}
static void
gnc_tree_model_account_finalize (GObject *object)
{
- GncTreeModelAccountPrivate *priv;
- GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ GncTreeModelAccount *model;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
- ENTER("model %p", object);
+ ENTER("model %p", object);
- model = GNC_TREE_MODEL_ACCOUNT (object);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (object);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- gnc_gconf_general_remove_cb(KEY_NEGATIVE_IN_RED,
- gnc_tree_model_account_update_color,
- model);
+ gnc_gconf_general_remove_cb(KEY_NEGATIVE_IN_RED,
+ gnc_tree_model_account_update_color,
+ model);
- priv->book = NULL;
+ priv->book = NULL;
- if (G_OBJECT_CLASS (parent_class)->finalize)
- G_OBJECT_CLASS(parent_class)->finalize (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ G_OBJECT_CLASS(parent_class)->finalize (object);
+ LEAVE(" ");
}
static void
gnc_tree_model_account_dispose (GObject *object)
{
- GncTreeModelAccountPrivate *priv;
- GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ GncTreeModelAccount *model;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
- ENTER("model %p", object);
+ ENTER("model %p", object);
- model = GNC_TREE_MODEL_ACCOUNT (object);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (object);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (priv->event_handler_id) {
- qof_event_unregister_handler (priv->event_handler_id);
- priv->event_handler_id = 0;
- }
+ if (priv->event_handler_id)
+ {
+ qof_event_unregister_handler (priv->event_handler_id);
+ priv->event_handler_id = 0;
+ }
- gnc_gconf_general_remove_cb(KEY_NEGATIVE_IN_RED,
- gnc_tree_model_account_update_color,
- model);
+ gnc_gconf_general_remove_cb(KEY_NEGATIVE_IN_RED,
+ gnc_tree_model_account_update_color,
+ model);
- if (G_OBJECT_CLASS (parent_class)->dispose)
- G_OBJECT_CLASS (parent_class)->dispose (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+ LEAVE(" ");
}
@@ -272,34 +277,36 @@
GtkTreeModel *
gnc_tree_model_account_new (Account *root)
{
- GncTreeModelAccount *model;
- GncTreeModelAccountPrivate *priv;
- const GList *item;
-
- ENTER("root %p", root);
- item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_ACCOUNT_NAME);
- for ( ; item; item = g_list_next(item)) {
- model = (GncTreeModelAccount *)item->data;
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (priv->root == root) {
- g_object_ref(G_OBJECT(model));
- LEAVE("returning existing model %p", model);
- return GTK_TREE_MODEL(model);
- }
- }
+ GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ const GList *item;
- model = g_object_new (GNC_TYPE_TREE_MODEL_ACCOUNT,
- NULL);
+ ENTER("root %p", root);
+ item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_ACCOUNT_NAME);
+ for ( ; item; item = g_list_next(item))
+ {
+ model = (GncTreeModelAccount *)item->data;
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ if (priv->root == root)
+ {
+ g_object_ref(G_OBJECT(model));
+ LEAVE("returning existing model %p", model);
+ return GTK_TREE_MODEL(model);
+ }
+ }
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- priv->book = gnc_get_current_book();
- priv->root = root;
+ model = g_object_new (GNC_TYPE_TREE_MODEL_ACCOUNT,
+ NULL);
- priv->event_handler_id = qof_event_register_handler
- ((QofEventHandler)gnc_tree_model_account_event_handler, model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ priv->book = gnc_get_current_book();
+ priv->root = root;
- LEAVE("model %p", model);
- return GTK_TREE_MODEL (model);
+ priv->event_handler_id = qof_event_register_handler
+ ((QofEventHandler)gnc_tree_model_account_event_handler, model);
+
+ LEAVE("model %p", model);
+ return GTK_TREE_MODEL (model);
}
@@ -313,27 +320,28 @@
iter_to_string (GtkTreeIter *iter)
{
#ifdef G_THREADS_ENABLED
- static GStaticPrivate gtmits_buffer_key = G_STATIC_PRIVATE_INIT;
- gchar *string;
+ static GStaticPrivate gtmits_buffer_key = G_STATIC_PRIVATE_INIT;
+ gchar *string;
- string = g_static_private_get (>mits_buffer_key);
- if (string == NULL) {
- string = g_malloc(ITER_STRING_LEN + 1);
- g_static_private_set (>mits_buffer_key, string, g_free);
- }
+ string = g_static_private_get (>mits_buffer_key);
+ if (string == NULL)
+ {
+ string = g_malloc(ITER_STRING_LEN + 1);
+ g_static_private_set (>mits_buffer_key, string, g_free);
+ }
#else
- static char string[ITER_STRING_LEN + 1];
+ static char string[ITER_STRING_LEN + 1];
#endif
- if (iter)
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%p (%s), %p, %d]",
- iter->stamp, iter->user_data,
- xaccAccountGetName ((Account *) iter->user_data),
- iter->user_data2, GPOINTER_TO_INT(iter->user_data3));
- else
- strcpy(string, "(null)");
- return string;
+ if (iter)
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%p (%s), %p, %d]",
+ iter->stamp, iter->user_data,
+ xaccAccountGetName ((Account *) iter->user_data),
+ iter->user_data2, GPOINTER_TO_INT(iter->user_data3));
+ else
+ strcpy(string, "(null)");
+ return string;
}
@@ -344,728 +352,758 @@
static void
gnc_tree_model_account_tree_model_init (GtkTreeModelIface *iface)
{
- iface->get_flags = gnc_tree_model_account_get_flags;
- iface->get_n_columns = gnc_tree_model_account_get_n_columns;
- iface->get_column_type = gnc_tree_model_account_get_column_type;
- iface->get_iter = gnc_tree_model_account_get_iter;
- iface->get_path = gnc_tree_model_account_get_path;
- iface->get_value = gnc_tree_model_account_get_value;
- iface->iter_next = gnc_tree_model_account_iter_next;
- iface->iter_children = gnc_tree_model_account_iter_children;
- iface->iter_has_child = gnc_tree_model_account_iter_has_child;
- iface->iter_n_children = gnc_tree_model_account_iter_n_children;
- iface->iter_nth_child = gnc_tree_model_account_iter_nth_child;
- iface->iter_parent = gnc_tree_model_account_iter_parent;
+ iface->get_flags = gnc_tree_model_account_get_flags;
+ iface->get_n_columns = gnc_tree_model_account_get_n_columns;
+ iface->get_column_type = gnc_tree_model_account_get_column_type;
+ iface->get_iter = gnc_tree_model_account_get_iter;
+ iface->get_path = gnc_tree_model_account_get_path;
+ iface->get_value = gnc_tree_model_account_get_value;
+ iface->iter_next = gnc_tree_model_account_iter_next;
+ iface->iter_children = gnc_tree_model_account_iter_children;
+ iface->iter_has_child = gnc_tree_model_account_iter_has_child;
+ iface->iter_n_children = gnc_tree_model_account_iter_n_children;
+ iface->iter_nth_child = gnc_tree_model_account_iter_nth_child;
+ iface->iter_parent = gnc_tree_model_account_iter_parent;
}
static GtkTreeModelFlags
gnc_tree_model_account_get_flags (GtkTreeModel *tree_model)
{
- return 0;
+ return 0;
}
static int
gnc_tree_model_account_get_n_columns (GtkTreeModel *tree_model)
{
- g_return_val_if_fail(GNC_IS_TREE_MODEL_ACCOUNT(tree_model), -1);
-
- return GNC_TREE_MODEL_ACCOUNT_NUM_COLUMNS;
+ g_return_val_if_fail(GNC_IS_TREE_MODEL_ACCOUNT(tree_model), -1);
+
+ return GNC_TREE_MODEL_ACCOUNT_NUM_COLUMNS;
}
static GType
gnc_tree_model_account_get_column_type (GtkTreeModel *tree_model,
- int index)
+ int index)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), G_TYPE_INVALID);
- g_return_val_if_fail ((index < GNC_TREE_MODEL_ACCOUNT_NUM_COLUMNS) && (index >= 0), G_TYPE_INVALID);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), G_TYPE_INVALID);
+ g_return_val_if_fail ((index < GNC_TREE_MODEL_ACCOUNT_NUM_COLUMNS) && (index >= 0), G_TYPE_INVALID);
- switch (index) {
- case GNC_TREE_MODEL_ACCOUNT_COL_NAME:
- case GNC_TREE_MODEL_ACCOUNT_COL_TYPE:
- case GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY:
- case GNC_TREE_MODEL_ACCOUNT_COL_CODE:
- case GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION:
- case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT:
- case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT:
- case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE:
- case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT:
- case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD:
- case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED:
- case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT:
- case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED:
- case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT:
- case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE:
- case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN:
- case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT:
- case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL:
- case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT:
- case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD:
- case GNC_TREE_MODEL_ACCOUNT_COL_NOTES:
- case GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO:
- case GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM:
+ switch (index)
+ {
+ case GNC_TREE_MODEL_ACCOUNT_COL_NAME:
+ case GNC_TREE_MODEL_ACCOUNT_COL_TYPE:
+ case GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY:
+ case GNC_TREE_MODEL_ACCOUNT_COL_CODE:
+ case GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION:
+ case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE:
+ case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD:
+ case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED:
+ case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED:
+ case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE:
+ case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN:
+ case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL:
+ case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT:
+ case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD:
+ case GNC_TREE_MODEL_ACCOUNT_COL_NOTES:
+ case GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO:
+ case GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM:
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT:
- 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:
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED:
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN:
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL:
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD:
- return G_TYPE_STRING;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT:
+ 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:
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED:
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN:
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL:
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD:
+ return G_TYPE_STRING;
- case GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER:
- return G_TYPE_BOOLEAN;
+ case GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER:
+ return G_TYPE_BOOLEAN;
- default:
- g_assert_not_reached ();
- return G_TYPE_INVALID;
- }
+ default:
+ g_assert_not_reached ();
+ return G_TYPE_INVALID;
+ }
}
static gboolean
gnc_tree_model_account_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path)
+ GtkTreeIter *iter,
+ GtkTreePath *path)
{
- GncTreeModelAccountPrivate *priv;
- GncTreeModelAccount *model;
- Account *account, *parent;
- gint i, *indices;
+ GncTreeModelAccountPrivate *priv;
+ GncTreeModelAccount *model;
+ Account *account, *parent;
+ gint i, *indices;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
- {
- gchar *path_string = gtk_tree_path_to_string(path);
- ENTER("model %p, iter %p, path %s", tree_model, iter, path_string);
- g_free(path_string);
- }
+ {
+ gchar *path_string = gtk_tree_path_to_string(path);
+ ENTER("model %p, iter %p, path %s", tree_model, iter, path_string);
+ g_free(path_string);
+ }
- model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (gtk_tree_path_get_depth (path) <= 0) {
- LEAVE("bad depth");
- return FALSE;
- }
+ if (gtk_tree_path_get_depth (path) <= 0)
+ {
+ LEAVE("bad depth");
+ return FALSE;
+ }
- indices = gtk_tree_path_get_indices (path);
- if (indices[0] != 0) {
- LEAVE("bad root index");
- return FALSE;
- }
+ indices = gtk_tree_path_get_indices (path);
+ if (indices[0] != 0)
+ {
+ LEAVE("bad root index");
+ return FALSE;
+ }
- parent = NULL;
- account = priv->root;
- for (i = 1; i < gtk_tree_path_get_depth (path); i++) {
- parent = account;
- account = gnc_account_nth_child(parent, indices[i]);
- if (account == NULL) {
- iter->stamp = 0;
- LEAVE("bad index");
- return FALSE;
- }
- }
+ parent = NULL;
+ account = priv->root;
+ for (i = 1; i < gtk_tree_path_get_depth (path); i++)
+ {
+ parent = account;
+ account = gnc_account_nth_child(parent, indices[i]);
+ if (account == NULL)
+ {
+ iter->stamp = 0;
+ LEAVE("bad index");
+ return FALSE;
+ }
+ }
- iter->stamp = model->stamp;
- iter->user_data = account;
- iter->user_data2 = parent;
- iter->user_data3 = GINT_TO_POINTER (indices[i - 1]);
+ iter->stamp = model->stamp;
+ iter->user_data = account;
+ iter->user_data2 = parent;
+ iter->user_data3 = GINT_TO_POINTER (indices[i - 1]);
- LEAVE("iter %s", iter_to_string(iter));
- return TRUE;
+ LEAVE("iter %s", iter_to_string(iter));
+ return TRUE;
}
static GtkTreePath *
gnc_tree_model_account_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- GncTreeModelAccountPrivate *priv;
- Account *account, *parent;
- GtkTreePath *path;
- gint i;
+ GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ GncTreeModelAccountPrivate *priv;
+ Account *account, *parent;
+ GtkTreePath *path;
+ gint i;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
-
- ENTER("model %p, iter %s", model, iter_to_string(iter));
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (priv->root == NULL) {
- LEAVE("failed (1)");
- return NULL;
- }
+ ENTER("model %p, iter %s", model, iter_to_string(iter));
- account = (Account *) iter->user_data;
- parent = (Account *) iter->user_data2;
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ if (priv->root == NULL)
+ {
+ LEAVE("failed (1)");
+ return NULL;
+ }
- path = gtk_tree_path_new ();
- while (parent) {
- i = gnc_account_child_index(parent, account);
- if (i == -1) {
- gtk_tree_path_free (path);
- LEAVE("failed (3)");
- return NULL;
- }
- gtk_tree_path_prepend_index (path, i);
- account = parent;
- parent = gnc_account_get_parent(account);
- };
+ account = (Account *) iter->user_data;
+ parent = (Account *) iter->user_data2;
- /* Add the root node. */
- gtk_tree_path_prepend_index (path, 0);
+ path = gtk_tree_path_new ();
+ while (parent)
+ {
+ i = gnc_account_child_index(parent, account);
+ if (i == -1)
+ {
+ gtk_tree_path_free (path);
+ LEAVE("failed (3)");
+ return NULL;
+ }
+ gtk_tree_path_prepend_index (path, i);
+ account = parent;
+ parent = gnc_account_get_parent(account);
+ };
- {
- gchar *path_string = gtk_tree_path_to_string(path);
- LEAVE("path (4) %s", path_string);
- g_free(path_string);
- }
- return path;
+ /* Add the root node. */
+ gtk_tree_path_prepend_index (path, 0);
+
+ {
+ gchar *path_string = gtk_tree_path_to_string(path);
+ LEAVE("path (4) %s", path_string);
+ g_free(path_string);
+ }
+ return path;
}
static void
gnc_tree_model_account_set_color(GncTreeModelAccount *model,
- gboolean negative,
- GValue *value)
+ gboolean negative,
+ GValue *value)
{
- GncTreeModelAccountPrivate *priv;
+ GncTreeModelAccountPrivate *priv;
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (negative)
- g_value_set_static_string (value, priv->negative_color);
- else
- g_value_set_static_string (value, "black");
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ if (negative)
+ g_value_set_static_string (value, priv->negative_color);
+ else
+ g_value_set_static_string (value, "black");
}
static gchar *
gnc_tree_model_account_compute_period_balance(GncTreeModelAccount *model,
- Account *acct,
- gboolean recurse,
- gboolean *negative)
+ Account *acct,
+ gboolean recurse,
+ gboolean *negative)
{
- GncTreeModelAccountPrivate *priv;
- time_t t1, t2;
- gnc_numeric b3;
+ GncTreeModelAccountPrivate *priv;
+ time_t t1, t2;
+ gnc_numeric b3;
- if( negative )
- *negative = FALSE;
+ if ( negative )
+ *negative = FALSE;
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (acct == priv->root)
- return g_strdup("");
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ if (acct == priv->root)
+ return g_strdup("");
- t1 = gnc_accounting_period_fiscal_start();
- t2 = gnc_accounting_period_fiscal_end();
-
- if (t1 > t2)
- return g_strdup("");
+ t1 = gnc_accounting_period_fiscal_start();
+ t2 = gnc_accounting_period_fiscal_end();
- b3 = xaccAccountGetBalanceChangeForPeriod(acct, t1, t2, recurse);
- if (gnc_reverse_balance (acct))
- b3 = gnc_numeric_neg (b3);
+ if (t1 > t2)
+ return g_strdup("");
- if (negative)
- *negative = gnc_numeric_negative_p(b3);
+ b3 = xaccAccountGetBalanceChangeForPeriod(acct, t1, t2, recurse);
+ if (gnc_reverse_balance (acct))
+ b3 = gnc_numeric_neg (b3);
- return g_strdup(xaccPrintAmount(b3, gnc_account_print_info(acct, TRUE)));
+ if (negative)
+ *negative = gnc_numeric_negative_p(b3);
+
+ return g_strdup(xaccPrintAmount(b3, gnc_account_print_info(acct, TRUE)));
}
static void
gnc_tree_model_account_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value)
+ GtkTreeIter *iter,
+ int column,
+ GValue *value)
{
- GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- GncTreeModelAccountPrivate *priv;
- Account *account;
- gboolean negative; /* used to set "deficit style" aka red numbers */
- gchar *string;
- time_t last_date;
+ GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ GncTreeModelAccountPrivate *priv;
+ Account *account;
+ gboolean negative; /* used to set "deficit style" aka red numbers */
+ gchar *string;
+ time_t last_date;
- g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model));
- g_return_if_fail (iter != NULL);
- g_return_if_fail (iter->user_data != NULL);
- g_return_if_fail (iter->stamp == model->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model));
+ g_return_if_fail (iter != NULL);
+ g_return_if_fail (iter->user_data != NULL);
+ g_return_if_fail (iter->stamp == model->stamp);
- ENTER("model %p, iter %s, col %d", tree_model,
- iter_to_string(iter), column);
+ ENTER("model %p, iter %s, col %d", tree_model,
+ iter_to_string(iter), column);
- account = (Account *) iter->user_data;
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ account = (Account *) iter->user_data;
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- switch (column) {
- case GNC_TREE_MODEL_ACCOUNT_COL_NAME:
- g_value_init (value, G_TYPE_STRING);
- if (account == priv->root)
- g_value_set_string (value, _("New top level account"));
- else
- g_value_set_string (value, xaccAccountGetName (account));
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_TYPE:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value,
- xaccAccountGetTypeStr (xaccAccountGetType (account)));
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_CODE:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, xaccAccountGetCode (account));
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value,
- gnc_commodity_get_fullname(xaccAccountGetCommodity (account)));
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, xaccAccountGetDescription (account));
- break;
+ switch (column)
+ {
+ case GNC_TREE_MODEL_ACCOUNT_COL_NAME:
+ g_value_init (value, G_TYPE_STRING);
+ if (account == priv->root)
+ g_value_set_string (value, _("New top level account"));
+ else
+ g_value_set_string (value, xaccAccountGetName (account));
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_TYPE:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value,
+ xaccAccountGetTypeStr (xaccAccountGetType (account)));
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_CODE:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, xaccAccountGetCode (account));
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value,
+ gnc_commodity_get_fullname(xaccAccountGetCommodity (account)));
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, xaccAccountGetDescription (account));
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetPresentBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_report_balance(xaccAccountGetPresentBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetPresentBalanceInCurrency,
- account, FALSE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free(string);
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetPresentBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_report_balance(xaccAccountGetPresentBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetPresentBalanceInCurrency,
+ account, FALSE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free(string);
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_report_balance(xaccAccountGetBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
- account, FALSE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free(string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_tree_model_account_compute_period_balance(model, account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_tree_model_account_compute_period_balance(model, account, FALSE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free (string);
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_report_balance(xaccAccountGetBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
+ account, FALSE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free(string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_tree_model_account_compute_period_balance(model, account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_tree_model_account_compute_period_balance(model, account, FALSE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free (string);
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetClearedBalanceInCurrency,
- account, TRUE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_report_balance(xaccAccountGetClearedBalanceInCurrency,
- account, TRUE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetClearedBalanceInCurrency,
- account, TRUE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free(string);
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetClearedBalanceInCurrency,
+ account, TRUE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_report_balance(xaccAccountGetClearedBalanceInCurrency,
+ account, TRUE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetClearedBalanceInCurrency,
+ account, TRUE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free(string);
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetReconciledBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_report_balance(xaccAccountGetReconciledBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE:
- g_value_init (value, G_TYPE_STRING);
- if (xaccAccountGetReconcileLastDate(account, &last_date)) {
- g_value_take_string(value, qof_print_date(last_date));
- }
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetReconciledBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_report_balance(xaccAccountGetReconciledBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE:
+ g_value_init (value, G_TYPE_STRING);
+ if (xaccAccountGetReconcileLastDate(account, &last_date))
+ {
+ g_value_take_string(value, qof_print_date(last_date));
+ }
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetReconciledBalanceInCurrency,
- account, FALSE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free (string);
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetReconciledBalanceInCurrency,
+ account, FALSE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free (string);
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetProjectedMinimumBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_report_balance(xaccAccountGetProjectedMinimumBalanceInCurrency,
- account, FALSE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetProjectedMinimumBalanceInCurrency,
- account, FALSE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free (string);
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetProjectedMinimumBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_report_balance(xaccAccountGetProjectedMinimumBalanceInCurrency,
+ account, FALSE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetProjectedMinimumBalanceInCurrency,
+ account, FALSE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free (string);
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
- account, TRUE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_report_balance(xaccAccountGetBalanceInCurrency,
- account, TRUE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
- account, TRUE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free (string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_tree_model_account_compute_period_balance(model, account, TRUE, &negative);
- g_value_take_string (value, string);
- break;
- case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD:
- g_value_init (value, G_TYPE_STRING);
- string = gnc_tree_model_account_compute_period_balance(model, account, TRUE, &negative);
- gnc_tree_model_account_set_color(model, negative, value);
- g_free (string);
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
+ account, TRUE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_report_balance(xaccAccountGetBalanceInCurrency,
+ account, TRUE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_ui_account_get_print_balance(xaccAccountGetBalanceInCurrency,
+ account, TRUE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free (string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_tree_model_account_compute_period_balance(model, account, TRUE, &negative);
+ g_value_take_string (value, string);
+ break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD:
+ g_value_init (value, G_TYPE_STRING);
+ string = gnc_tree_model_account_compute_period_balance(model, account, TRUE, &negative);
+ gnc_tree_model_account_set_color(model, negative, value);
+ g_free (string);
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_NOTES:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, xaccAccountGetNotes (account));
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_NOTES:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, xaccAccountGetNotes (account));
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO:
- g_value_init (value, G_TYPE_STRING);
- g_value_take_string (value, gnc_ui_account_get_tax_info_string (account));
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_take_string (value, gnc_ui_account_get_tax_info_string (account));
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, xaccAccountGetLastNum (account));
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, xaccAccountGetLastNum (account));
+ break;
- case GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, xaccAccountGetPlaceholder (account));
- break;
+ case GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, xaccAccountGetPlaceholder (account));
+ break;
- default:
- g_assert_not_reached ();
- }
- LEAVE(" ");
+ default:
+ g_assert_not_reached ();
+ }
+ LEAVE(" ");
}
static gboolean
gnc_tree_model_account_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- GncTreeModelAccountPrivate *priv;
- Account *account, *parent;
- gint i;
+ GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ GncTreeModelAccountPrivate *priv;
+ Account *account, *parent;
+ gint i;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
+ ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- parent = (Account *) iter->user_data2;
- if (parent == NULL) {
- /* This is the root. There is no next. */
- LEAVE("at root");
- return FALSE;
- }
+ parent = (Account *) iter->user_data2;
+ if (parent == NULL)
+ {
+ /* This is the root. There is no next. */
+ LEAVE("at root");
+ return FALSE;
+ }
- /* Get the *next* sibling account. */
- i = GPOINTER_TO_INT (iter->user_data3);
- account = gnc_account_nth_child (parent, i + 1);
- if (account == NULL) {
- iter->stamp = 0;
- LEAVE("failed (3)");
- return FALSE;
- }
+ /* Get the *next* sibling account. */
+ i = GPOINTER_TO_INT (iter->user_data3);
+ account = gnc_account_nth_child (parent, i + 1);
+ if (account == NULL)
+ {
+ iter->stamp = 0;
+ LEAVE("failed (3)");
+ return FALSE;
+ }
- iter->user_data = account;
- iter->user_data2 = parent;
- iter->user_data3 = GINT_TO_POINTER (i + 1);
+ iter->user_data = account;
+ iter->user_data2 = parent;
+ iter->user_data3 = GINT_TO_POINTER (i + 1);
- LEAVE("iter %s", iter_to_string(iter));
- return TRUE;
+ LEAVE("iter %s", iter_to_string(iter));
+ return TRUE;
}
static gboolean
gnc_tree_model_account_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent_iter)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent_iter)
{
- GncTreeModelAccountPrivate *priv;
- GncTreeModelAccount *model;
- Account *account, *parent;
+ GncTreeModelAccountPrivate *priv;
+ GncTreeModelAccount *model;
+ Account *account, *parent;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
ENTER("model %p, iter %p (to be filed in), parent %s",
tree_model, iter, (parent_iter ? iter_to_string(parent_iter) : "(null)"));
- model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (priv->root == NULL) {
- iter->stamp = 0;
- LEAVE("failed (no root)");
- return FALSE;
- }
+ if (priv->root == NULL)
+ {
+ iter->stamp = 0;
+ LEAVE("failed (no root)");
+ return FALSE;
+ }
- /* Special case when no parent supplied. */
- if (!parent_iter) {
- iter->user_data = priv->root;
- iter->user_data2 = NULL;
- iter->user_data3 = GINT_TO_POINTER (0);
- iter->stamp = model->stamp;
- LEAVE("iter (2) %s", iter_to_string(iter));
- return TRUE;
- }
+ /* Special case when no parent supplied. */
+ if (!parent_iter)
+ {
+ iter->user_data = priv->root;
+ iter->user_data2 = NULL;
+ iter->user_data3 = GINT_TO_POINTER (0);
+ iter->stamp = model->stamp;
+ LEAVE("iter (2) %s", iter_to_string(iter));
+ return TRUE;
+ }
- gnc_leave_return_val_if_fail (parent_iter != NULL, FALSE);
- gnc_leave_return_val_if_fail (parent_iter->user_data != NULL, FALSE);
- gnc_leave_return_val_if_fail (parent_iter->stamp == model->stamp, FALSE);
+ gnc_leave_return_val_if_fail (parent_iter != NULL, FALSE);
+ gnc_leave_return_val_if_fail (parent_iter->user_data != NULL, FALSE);
+ gnc_leave_return_val_if_fail (parent_iter->stamp == model->stamp, FALSE);
- parent = (Account *)parent_iter->user_data;
- account = gnc_account_nth_child (parent, 0);
+ parent = (Account *)parent_iter->user_data;
+ account = gnc_account_nth_child (parent, 0);
- if (account == NULL) {
- iter->stamp = 0;
- LEAVE("failed (child account is null)");
- return FALSE;
- }
+ if (account == NULL)
+ {
+ iter->stamp = 0;
+ LEAVE("failed (child account is null)");
+ return FALSE;
+ }
- iter->user_data = account;
- iter->user_data2 = parent;
- iter->user_data3 = GINT_TO_POINTER (0);
- iter->stamp = model->stamp;
- LEAVE("iter (3) %s", iter_to_string(iter));
- return TRUE;
+ iter->user_data = account;
+ iter->user_data2 = parent;
+ iter->user_data3 = GINT_TO_POINTER (0);
+ iter->stamp = model->stamp;
+ LEAVE("iter (3) %s", iter_to_string(iter));
+ return TRUE;
}
static gboolean
gnc_tree_model_account_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelAccount *model;
- GncTreeModelAccountPrivate *priv;
- Account *account;
+ GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ Account *account;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
- ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
+ ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
- model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- gnc_leave_return_val_if_fail (iter != NULL, FALSE);
- gnc_leave_return_val_if_fail (iter->user_data != NULL, FALSE);
- gnc_leave_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ gnc_leave_return_val_if_fail (iter != NULL, FALSE);
+ gnc_leave_return_val_if_fail (iter->user_data != NULL, FALSE);
+ gnc_leave_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- account = (Account *) iter->user_data;
- if (gnc_account_n_children(account) > 0) {
- LEAVE("yes");
- return TRUE;
- }
+ account = (Account *) iter->user_data;
+ if (gnc_account_n_children(account) > 0)
+ {
+ LEAVE("yes");
+ return TRUE;
+ }
- LEAVE("no");
- return FALSE;
+ LEAVE("no");
+ return FALSE;
}
static int
gnc_tree_model_account_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelAccount *model;
- GncTreeModelAccountPrivate *priv;
- gint num;
+ GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ gint num;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
- ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+ ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
- model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (iter == NULL) {
- /* How many children does the invisible root node
- * have. One! Its the real root account node. */
- LEAVE("count is 1");
- return 1;
- }
+ if (iter == NULL)
+ {
+ /* How many children does the invisible root node
+ * have. One! Its the real root account node. */
+ LEAVE("count is 1");
+ return 1;
+ }
- gnc_leave_return_val_if_fail (iter != NULL, FALSE);
- gnc_leave_return_val_if_fail (iter->user_data != NULL, FALSE);
- gnc_leave_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ gnc_leave_return_val_if_fail (iter != NULL, FALSE);
+ gnc_leave_return_val_if_fail (iter->user_data != NULL, FALSE);
+ gnc_leave_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- num = gnc_account_n_children(iter->user_data);
- LEAVE("count is %d", num);
- return num;
+ num = gnc_account_n_children(iter->user_data);
+ LEAVE("count is %d", num);
+ return num;
}
static gboolean
gnc_tree_model_account_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent_iter,
- int n)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent_iter,
+ int n)
{
- GncTreeModelAccount *model;
- GncTreeModelAccountPrivate *priv;
- Account *account, *parent;
+ GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ Account *account, *parent;
- if (parent_iter) {
- gchar *parent_string;
- parent_string = strdup(iter_to_string(parent_iter));
- ENTER("model %p, iter %s, parent_iter %s, n %d",
- tree_model, iter_to_string(iter),
- parent_string, n);
- g_free(parent_string);
- } else {
- ENTER("model %p, iter %s, parent_iter (null), n %d",
- tree_model, iter_to_string(iter), n);
- }
- gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+ if (parent_iter)
+ {
+ gchar *parent_string;
+ parent_string = strdup(iter_to_string(parent_iter));
+ ENTER("model %p, iter %s, parent_iter %s, n %d",
+ tree_model, iter_to_string(iter),
+ parent_string, n);
+ g_free(parent_string);
+ }
+ else
+ {
+ ENTER("model %p, iter %s, parent_iter (null), n %d",
+ tree_model, iter_to_string(iter), n);
+ }
+ gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
- model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- /* Special case when no parent supplied. */
- if (!parent_iter) {
- if (n != 0) {
- LEAVE("bad root index");
- return FALSE;
- }
+ /* Special case when no parent supplied. */
+ if (!parent_iter)
+ {
+ if (n != 0)
+ {
+ LEAVE("bad root index");
+ return FALSE;
+ }
- iter->user_data = priv->root;
- iter->user_data2 = NULL;
- iter->user_data3 = GINT_TO_POINTER (0);
- iter->stamp = model->stamp;
- LEAVE("root %s", iter_to_string(iter));
- return TRUE;
- }
+ iter->user_data = priv->root;
+ iter->user_data2 = NULL;
+ iter->user_data3 = GINT_TO_POINTER (0);
+ iter->stamp = model->stamp;
+ LEAVE("root %s", iter_to_string(iter));
+ return TRUE;
+ }
- gnc_leave_return_val_if_fail (parent_iter->user_data != NULL, FALSE);
- gnc_leave_return_val_if_fail (parent_iter->stamp == model->stamp, FALSE);
+ gnc_leave_return_val_if_fail (parent_iter->user_data != NULL, FALSE);
+ gnc_leave_return_val_if_fail (parent_iter->stamp == model->stamp, FALSE);
- parent = (Account *)parent_iter->user_data;
- account = gnc_account_nth_child(parent, n);
- if (account == NULL) {
- iter->stamp = 0;
- LEAVE("failed (2)");
- return FALSE;
- }
+ parent = (Account *)parent_iter->user_data;
+ account = gnc_account_nth_child(parent, n);
+ if (account == NULL)
+ {
+ iter->stamp = 0;
+ LEAVE("failed (2)");
+ return FALSE;
+ }
- iter->user_data = account;
- iter->user_data2 = parent;
- iter->user_data3 = GINT_TO_POINTER (n);
- iter->stamp = model->stamp;
- LEAVE("iter (2) %s", iter_to_string(iter));
- return TRUE;
+ iter->user_data = account;
+ iter->user_data2 = parent;
+ iter->user_data3 = GINT_TO_POINTER (n);
+ iter->stamp = model->stamp;
+ LEAVE("iter (2) %s", iter_to_string(iter));
+ return TRUE;
}
static gboolean
gnc_tree_model_account_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child)
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
{
- GncTreeModelAccount *model;
- GncTreeModelAccountPrivate *priv;
- Account *account, *parent;
- gint i;
+ GncTreeModelAccount *model;
+ GncTreeModelAccountPrivate *priv;
+ Account *account, *parent;
+ gint i;
- if (child) {
- gchar *child_string;
+ if (child)
+ {
+ gchar *child_string;
- child_string = strdup(iter_to_string(child));
- ENTER("model %p, iter %s, child %s",
- tree_model, iter_to_string(iter),
- child_string);
- g_free(child_string);
- } else {
- ENTER("model %p, iter %s, child (null)",
- tree_model, iter_to_string(iter));
- }
- gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+ child_string = strdup(iter_to_string(child));
+ ENTER("model %p, iter %s, child %s",
+ tree_model, iter_to_string(iter),
+ child_string);
+ g_free(child_string);
+ }
+ else
+ {
+ ENTER("model %p, iter %s, child (null)",
+ tree_model, iter_to_string(iter));
+ }
+ gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
- model = GNC_TREE_MODEL_ACCOUNT (tree_model);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- gnc_leave_return_val_if_fail (child != NULL, FALSE);
- gnc_leave_return_val_if_fail (child->user_data != NULL, FALSE);
- gnc_leave_return_val_if_fail (child->stamp == model->stamp, FALSE);
+ gnc_leave_return_val_if_fail (child != NULL, FALSE);
+ gnc_leave_return_val_if_fail (child->user_data != NULL, FALSE);
+ gnc_leave_return_val_if_fail (child->stamp == model->stamp, FALSE);
- account = (Account *) child->user_data;
- account = gnc_account_get_parent(account);
- if (account == NULL) {
- /* Can't go up from the root node */
- iter->stamp = 0;
- LEAVE("failed (1)");
- return FALSE;
- }
+ account = (Account *) child->user_data;
+ account = gnc_account_get_parent(account);
+ if (account == NULL)
+ {
+ /* Can't go up from the root node */
+ iter->stamp = 0;
+ LEAVE("failed (1)");
+ return FALSE;
+ }
- parent = gnc_account_get_parent(account);
- if (parent == NULL) {
- /* Now at the root. */
- i = 0;
- } else {
- i = gnc_account_child_index(parent, account);
- }
- iter->user_data = account;
- iter->user_data2 = parent;
- iter->user_data3 = GINT_TO_POINTER (i);
- iter->stamp = model->stamp;
- LEAVE("iter (2) %s", iter_to_string(iter));
- return TRUE;
+ parent = gnc_account_get_parent(account);
+ if (parent == NULL)
+ {
+ /* Now at the root. */
+ i = 0;
+ }
+ else
+ {
+ i = gnc_account_child_index(parent, account);
+ }
+ iter->user_data = account;
+ iter->user_data2 = parent;
+ iter->user_data3 = GINT_TO_POINTER (i);
+ iter->stamp = model->stamp;
+ LEAVE("iter (2) %s", iter_to_string(iter));
+ return TRUE;
}
@@ -1079,14 +1117,14 @@
*/
Account *
gnc_tree_model_account_get_account (GncTreeModelAccount *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- return (Account *) iter->user_data;
+ return (Account *) iter->user_data;
}
/*
@@ -1096,40 +1134,42 @@
*/
gboolean
gnc_tree_model_account_get_iter_from_account (GncTreeModelAccount *model,
- Account *account,
- GtkTreeIter *iter)
+ Account *account,
+ GtkTreeIter *iter)
{
- GncTreeModelAccountPrivate *priv;
- Account *parent;
- gint i;
-
- ENTER("model %p, account %p, iter %p", model, account, iter);
- gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
- gnc_leave_return_val_if_fail ((account != NULL), FALSE);
- gnc_leave_return_val_if_fail ((iter != NULL), FALSE);
-
- iter->user_data = account;
- iter->stamp = model->stamp;
+ GncTreeModelAccountPrivate *priv;
+ Account *parent;
+ gint i;
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- if (account == priv->root) {
- iter->user_data2 = NULL;
- iter->user_data3 = GINT_TO_POINTER (0);
- LEAVE("Matched root");
- return TRUE;
- }
+ ENTER("model %p, account %p, iter %p", model, account, iter);
+ gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
+ gnc_leave_return_val_if_fail ((account != NULL), FALSE);
+ gnc_leave_return_val_if_fail ((iter != NULL), FALSE);
- if (priv->root != gnc_account_get_root (account)) {
- LEAVE("Root doesn't match");
- return FALSE;
- }
+ iter->user_data = account;
+ iter->stamp = model->stamp;
- parent = gnc_account_get_parent(account);
- i = gnc_account_child_index(parent, account);
- iter->user_data2 = parent;
- iter->user_data3 = GINT_TO_POINTER (i);
- LEAVE("iter %s", iter_to_string(iter));
- return (i != -1);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ if (account == priv->root)
+ {
+ iter->user_data2 = NULL;
+ iter->user_data3 = GINT_TO_POINTER (0);
+ LEAVE("Matched root");
+ return TRUE;
+ }
+
+ if (priv->root != gnc_account_get_root (account))
+ {
+ LEAVE("Root doesn't match");
+ return FALSE;
+ }
+
+ parent = gnc_account_get_parent(account);
+ i = gnc_account_child_index(parent, account);
+ iter->user_data2 = parent;
+ iter->user_data3 = GINT_TO_POINTER (i);
+ LEAVE("iter %s", iter_to_string(iter));
+ return (i != -1);
}
/*
@@ -1139,30 +1179,34 @@
*/
GtkTreePath *
gnc_tree_model_account_get_path_from_account (GncTreeModelAccount *model,
- Account *account)
+ Account *account)
{
- GtkTreeIter tree_iter;
- GtkTreePath *tree_path;
+ GtkTreeIter tree_iter;
+ GtkTreePath *tree_path;
- ENTER("model %p, account %p", model, account);
- gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
- gnc_leave_return_val_if_fail (account != NULL, NULL);
+ ENTER("model %p, account %p", model, account);
+ gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
+ gnc_leave_return_val_if_fail (account != NULL, NULL);
- if (!gnc_tree_model_account_get_iter_from_account (model, account,
- &tree_iter)) {
- LEAVE("no iter");
- return NULL;
- }
+ if (!gnc_tree_model_account_get_iter_from_account (model, account,
+ &tree_iter))
+ {
+ LEAVE("no iter");
+ return NULL;
+ }
- tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
- if (tree_path) {
- gchar *path_string = gtk_tree_path_to_string(tree_path);
- LEAVE("path (2) %s", path_string);
- g_free(path_string);
- } else {
- LEAVE("no path");
- }
- return tree_path;
+ tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
+ if (tree_path)
+ {
+ gchar *path_string = gtk_tree_path_to_string(tree_path);
+ LEAVE("path (2) %s", path_string);
+ g_free(path_string);
+ }
+ else
+ {
+ LEAVE("no path");
+ }
+ return tree_path;
}
/************************************************************/
@@ -1172,7 +1216,7 @@
static void
increment_stamp(GncTreeModelAccount *model)
{
- do model->stamp++;
+ do model->stamp++;
while (!model->stamp);
}
@@ -1183,14 +1227,15 @@
/* Already at the invisible root node? */
if (!gtk_tree_path_up(path))
- return;
+ return;
/* Did we just move up to the invisible root node? */
if (gtk_tree_path_get_depth(path) == 0)
- return;
+ return;
/* Handle the immediate parent */
- if (gtk_tree_model_get_iter(model, &iter, path)) {
+ if (gtk_tree_model_get_iter(model, &iter, path))
+ {
gtk_tree_model_row_changed(model, path, &iter);
if (gtk_tree_model_iter_n_children(model, &iter) == toggle_if_num)
gtk_tree_model_row_has_child_toggled(model, path, &iter);
@@ -1198,7 +1243,8 @@
/* All other ancestors */
while (gtk_tree_path_up(path) && gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(model, &iter, path)) {
+ gtk_tree_model_get_iter(model, &iter, path))
+ {
gtk_tree_model_row_changed(model, path, &iter);
}
}
@@ -1233,91 +1279,99 @@
*/
static void
gnc_tree_model_account_event_handler (QofInstance *entity,
- QofEventId event_type,
- GncTreeModelAccount *model,
- GncEventData *ed)
+ QofEventId event_type,
+ GncTreeModelAccount *model,
+ GncEventData *ed)
{
- GncTreeModelAccountPrivate *priv;
- const gchar *parent_name;
- GtkTreePath *path = NULL;
- GtkTreeIter iter;
- Account *account, *parent;
+ GncTreeModelAccountPrivate *priv;
+ const gchar *parent_name;
+ GtkTreePath *path = NULL;
+ GtkTreeIter iter;
+ Account *account, *parent;
- g_return_if_fail(model); /* Required */
- if (!GNC_IS_ACCOUNT(entity))
- return;
+ g_return_if_fail(model); /* Required */
+ if (!GNC_IS_ACCOUNT(entity))
+ return;
- ENTER("entity %p of type %d, model %p, event_data %p",
- entity, event_type, model, ed);
- priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+ ENTER("entity %p of type %d, model %p, event_data %p",
+ entity, event_type, model, ed);
+ priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
- account = GNC_ACCOUNT(entity);
- if (gnc_account_get_book(account) != priv->book) {
- LEAVE("not in this book");
- return;
- }
- if (gnc_account_get_root(account) != priv->root) {
- LEAVE("not in this model");
- return;
- }
- /* What to do, that to do. */
- switch (event_type) {
+ account = GNC_ACCOUNT(entity);
+ if (gnc_account_get_book(account) != priv->book)
+ {
+ LEAVE("not in this book");
+ return;
+ }
+ if (gnc_account_get_root(account) != priv->root)
+ {
+ LEAVE("not in this model");
+ return;
+ }
+ /* What to do, that to do. */
+ switch (event_type)
+ {
case QOF_EVENT_ADD:
- /* Tell the filters/views where the new account was added. */
- DEBUG("add account %p (%s)", account, xaccAccountGetName(account));
- path = gnc_tree_model_account_get_path_from_account(model, account);
- if (!path) {
- DEBUG("can't generate path");
- break;
- }
- increment_stamp(model);
- if (!gnc_tree_model_account_get_iter(GTK_TREE_MODEL(model), &iter, path)) {
- DEBUG("can't generate iter");
- break;
- }
- gtk_tree_model_row_inserted (GTK_TREE_MODEL(model), path, &iter);
- propagate_change(GTK_TREE_MODEL(model), path, 1);
- break;
+ /* Tell the filters/views where the new account was added. */
+ DEBUG("add account %p (%s)", account, xaccAccountGetName(account));
+ path = gnc_tree_model_account_get_path_from_account(model, account);
+ if (!path)
+ {
+ DEBUG("can't generate path");
+ break;
+ }
+ increment_stamp(model);
+ if (!gnc_tree_model_account_get_iter(GTK_TREE_MODEL(model), &iter, path))
+ {
+ DEBUG("can't generate iter");
+ break;
+ }
+ gtk_tree_model_row_inserted (GTK_TREE_MODEL(model), path, &iter);
+ propagate_change(GTK_TREE_MODEL(model), path, 1);
+ break;
case QOF_EVENT_REMOVE:
- if (!ed) /* Required for a remove. */
- break;
- parent = ed->node ? GNC_ACCOUNT(ed->node) : priv->root;
- parent_name = ed->node ? xaccAccountGetName(parent) : "Root";
- DEBUG("remove child %d of account %p (%s)", ed->idx, parent, parent_name);
- path = gnc_tree_model_account_get_path_from_account(model, parent);
- if (!path) {
- DEBUG("can't generate path");
- break;
- }
- increment_stamp(model);
- gtk_tree_path_append_index (path, ed->idx);
- gtk_tree_model_row_deleted (GTK_TREE_MODEL(model), path);
- propagate_change(GTK_TREE_MODEL(model), path, 0);
- break;
+ if (!ed) /* Required for a remove. */
+ break;
+ parent = ed->node ? GNC_ACCOUNT(ed->node) : priv->root;
+ parent_name = ed->node ? xaccAccountGetName(parent) : "Root";
+ DEBUG("remove child %d of account %p (%s)", ed->idx, parent, parent_name);
+ path = gnc_tree_model_account_get_path_from_account(model, parent);
+ if (!path)
+ {
+ DEBUG("can't generate path");
+ break;
+ }
+ increment_stamp(model);
+ gtk_tree_path_append_index (path, ed->idx);
+ gtk_tree_model_row_deleted (GTK_TREE_MODEL(model), path);
+ propagate_change(GTK_TREE_MODEL(model), path, 0);
+ break;
case QOF_EVENT_MODIFY:
- DEBUG("modify account %p (%s)", account, xaccAccountGetName(account));
- path = gnc_tree_model_account_get_path_from_account(model, account);
- if (!path) {
- DEBUG("can't generate path");
- break;
- }
- if (!gnc_tree_model_account_get_iter(GTK_TREE_MODEL(model), &iter, path)) {
- DEBUG("can't generate iter");
- break;
- }
- gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
- propagate_change(GTK_TREE_MODEL(model), path, -1);
- break;
+ DEBUG("modify account %p (%s)", account, xaccAccountGetName(account));
+ path = gnc_tree_model_account_get_path_from_account(model, account);
+ if (!path)
+ {
+ DEBUG("can't generate path");
+ break;
+ }
+ if (!gnc_tree_model_account_get_iter(GTK_TREE_MODEL(model), &iter, path))
+ {
+ DEBUG("can't generate iter");
+ break;
+ }
+ gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
+ propagate_change(GTK_TREE_MODEL(model), path, -1);
+ break;
default:
- LEAVE("unknown event type");
- return;
- }
+ LEAVE("unknown event type");
+ return;
+ }
- if (path)
- gtk_tree_path_free(path);
- LEAVE(" ");
- return;
+ if (path)
+ gtk_tree_path_free(path);
+ LEAVE(" ");
+ return;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-account.h -- GtkTreeModel implementation to
* display accounts in a GtkTreeView.
*
@@ -53,60 +53,63 @@
#define GNC_TREE_MODEL_ACCOUNT_NAME "GncTreeModelAccount"
-typedef enum {
- GNC_TREE_MODEL_ACCOUNT_COL_NAME,
- GNC_TREE_MODEL_ACCOUNT_COL_TYPE,
- GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY,
- GNC_TREE_MODEL_ACCOUNT_COL_CODE,
- GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION,
- GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM,
- GNC_TREE_MODEL_ACCOUNT_COL_PRESENT,
- GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT,
- GNC_TREE_MODEL_ACCOUNT_COL_BALANCE,
- GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT,
- GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD,
- GNC_TREE_MODEL_ACCOUNT_COL_CLEARED,
- GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT,
- GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED,
- GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT,
- GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE,
- GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN,
- GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT,
- GNC_TREE_MODEL_ACCOUNT_COL_TOTAL,
- GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT,
- GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD,
- GNC_TREE_MODEL_ACCOUNT_COL_NOTES,
- GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
- GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
+typedef enum
+{
+ GNC_TREE_MODEL_ACCOUNT_COL_NAME,
+ GNC_TREE_MODEL_ACCOUNT_COL_TYPE,
+ GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY,
+ GNC_TREE_MODEL_ACCOUNT_COL_CODE,
+ GNC_TREE_MODEL_ACCOUNT_COL_DESCRIPTION,
+ GNC_TREE_MODEL_ACCOUNT_COL_LASTNUM,
+ GNC_TREE_MODEL_ACCOUNT_COL_PRESENT,
+ GNC_TREE_MODEL_ACCOUNT_COL_PRESENT_REPORT,
+ GNC_TREE_MODEL_ACCOUNT_COL_BALANCE,
+ GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_REPORT,
+ GNC_TREE_MODEL_ACCOUNT_COL_BALANCE_PERIOD,
+ GNC_TREE_MODEL_ACCOUNT_COL_CLEARED,
+ GNC_TREE_MODEL_ACCOUNT_COL_CLEARED_REPORT,
+ GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED,
+ GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_REPORT,
+ GNC_TREE_MODEL_ACCOUNT_COL_RECONCILED_DATE,
+ GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN,
+ GNC_TREE_MODEL_ACCOUNT_COL_FUTURE_MIN_REPORT,
+ GNC_TREE_MODEL_ACCOUNT_COL_TOTAL,
+ GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_REPORT,
+ GNC_TREE_MODEL_ACCOUNT_COL_TOTAL_PERIOD,
+ GNC_TREE_MODEL_ACCOUNT_COL_NOTES,
+ GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
+ GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
- GNC_TREE_MODEL_ACCOUNT_COL_LAST_VISIBLE = GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
+ GNC_TREE_MODEL_ACCOUNT_COL_LAST_VISIBLE = GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
- /* internal hidden columns */
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD,
+ /* internal hidden columns */
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE_PERIOD,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_CLEARED,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_RECONCILED,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL,
+ GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL_PERIOD,
- GNC_TREE_MODEL_ACCOUNT_NUM_COLUMNS
+ GNC_TREE_MODEL_ACCOUNT_NUM_COLUMNS
} GncTreeModelAccountColumn;
/* typedefs & structures */
/** The instance data structure for an account tree model. */
-typedef struct {
- GncTreeModel gnc_tree_model; /**< The parent object data. */
- int stamp; /**< The state of the model. Any state
+typedef struct
+{
+ GncTreeModel gnc_tree_model; /**< The parent object data. */
+ int stamp; /**< The state of the model. Any state
* change increments this number. */
} GncTreeModelAccount;
/** The class data structure for an account tree model. */
-typedef struct {
- GncTreeModelClass gnc_tree_model;/**< The parent object data. */
+typedef struct
+{
+ GncTreeModelClass gnc_tree_model;/**< The parent object data. */
} GncTreeModelAccountClass;
@@ -118,7 +121,7 @@
GType gnc_tree_model_account_get_type (void);
-/** @name Account Tree Model Constructors
+/** @name Account Tree Model Constructors
@{ */
/** Create a new GtkTreeModel for manipulating gnucash accounts.
@@ -129,7 +132,7 @@
/** @} */
-/** @name Account Tree Model Get/Set Functions
+/** @name Account Tree Model Get/Set Functions
@{ */
/** Convert a model/iter pair to a gnucash account. This routine should
@@ -145,7 +148,7 @@
* @return A pointer to the corresponding account.
*/
Account *gnc_tree_model_account_get_account (GncTreeModelAccount *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Convert a model/account pair into a gtk_tree_model_iter. This
@@ -165,8 +168,8 @@
* in. FALSE otherwise.
*/
gboolean gnc_tree_model_account_get_iter_from_account (GncTreeModelAccount *model,
- Account *account,
- GtkTreeIter *iter);
+ Account *account,
+ GtkTreeIter *iter);
/** Convert a model/account pair into a gtk_tree_model_path. This
@@ -183,7 +186,7 @@
* responsibility of the caller to free this path when done.
*/
GtkTreePath *gnc_tree_model_account_get_path_from_account (GncTreeModelAccount *model,
- Account *account);
+ Account *account);
/** @} */
G_END_DECLS
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -75,8 +75,8 @@
G_TYPE_POINTER,
G_TYPE_STRING,
G_TYPE_STRING);
-
- qof_collection_foreach(qof_book_get_collection(book, GNC_ID_BUDGET),
+
+ qof_collection_foreach(qof_book_get_collection(book, GNC_ID_BUDGET),
add_budget_to_model, GTK_TREE_MODEL(store));
return GTK_TREE_MODEL(store);
@@ -93,13 +93,13 @@
/* column for name */
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (
- _("Name"), renderer, "text", BUDGET_NAME_COLUMN, NULL);
+ _("Name"), renderer, "text", BUDGET_NAME_COLUMN, NULL);
gtk_tree_view_append_column (tv, column);
/* column for description */
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (
- _("Description"), renderer, "text", BUDGET_DESCRIPTION_COLUMN, NULL);
+ _("Description"), renderer, "text", BUDGET_DESCRIPTION_COLUMN, NULL);
gtk_tree_view_append_column (tv, column);
}
@@ -121,7 +121,7 @@
gboolean
gnc_tree_model_budget_get_iter_for_budget(GtkTreeModel *tm, GtkTreeIter *iter,
- GncBudget *bgt)
+ GncBudget *bgt)
{
GValue gv = { 0 };
const GUID *guid1;
@@ -131,8 +131,9 @@
guid1 = gnc_budget_get_guid(bgt);
if (!gtk_tree_model_get_iter_first(tm, iter))
- return FALSE;
- while (gtk_list_store_iter_is_valid(GTK_LIST_STORE(tm), iter)) {
+ return FALSE;
+ while (gtk_list_store_iter_is_valid(GTK_LIST_STORE(tm), iter))
+ {
gtk_tree_model_get_value(tm, iter, BUDGET_GUID_COLUMN, &gv);
guid2 = (GUID *) g_value_get_pointer(&gv);
g_value_unset(&gv);
@@ -140,8 +141,8 @@
if (guid_equal(guid1, guid2))
return TRUE;
- if (!gtk_tree_model_iter_next(tm, iter))
- return FALSE;
+ if (!gtk_tree_model_iter_next(tm, iter))
+ return FALSE;
}
return FALSE;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-budget.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -35,7 +35,8 @@
#include "gnc-budget.h"
/* The budget list columns. */
-enum {
+enum
+{
BUDGET_GUID_COLUMN,
BUDGET_NAME_COLUMN,
BUDGET_DESCRIPTION_COLUMN,
@@ -47,10 +48,10 @@
void gnc_tree_view_budget_set_model(GtkTreeView *tv, GtkTreeModel *tm);
GncBudget *gnc_tree_model_budget_get_budget(GtkTreeModel *tm,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
gboolean gnc_tree_model_budget_get_iter_for_budget(GtkTreeModel *tm,
- GtkTreeIter *iter,
- GncBudget *bgt);
+ GtkTreeIter *iter,
+ GncBudget *bgt);
/** @} */
#endif // __GNC_TREE_MODEL_BUDGET_H__
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -61,43 +61,43 @@
static GtkTreeModelFlags gnc_tree_model_commodity_get_flags (GtkTreeModel *tree_model);
static int gnc_tree_model_commodity_get_n_columns (GtkTreeModel *tree_model);
static GType gnc_tree_model_commodity_get_column_type (GtkTreeModel *tree_model,
- int index);
+ int index);
static gboolean gnc_tree_model_commodity_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path);
+ GtkTreeIter *iter,
+ GtkTreePath *path);
static GtkTreePath *gnc_tree_model_commodity_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static void gnc_tree_model_commodity_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value);
+ GtkTreeIter *iter,
+ int column,
+ GValue *value);
static gboolean gnc_tree_model_commodity_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_commodity_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
static gboolean gnc_tree_model_commodity_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static int gnc_tree_model_commodity_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_commodity_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n);
static gboolean gnc_tree_model_commodity_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child);
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
static void gnc_tree_model_commodity_event_handler (QofInstance *entity,
- QofEventId event_type,
- gpointer user_data,
- gpointer event_data);
+ QofEventId event_type,
+ gpointer user_data,
+ gpointer event_data);
/** The instance private data for a commodity database tree model. */
typedef struct GncTreeModelCommodityPrivate
{
- QofBook *book;
- gnc_commodity_table *commodity_table;
- gint event_handler_id;
+ QofBook *book;
+ gnc_commodity_table *commodity_table;
+ gint event_handler_id;
} GncTreeModelCommodityPrivate;
#define GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(o) \
@@ -109,185 +109,192 @@
GType
gnc_tree_model_commodity_get_type (void)
{
- static GType gnc_tree_model_commodity_type = 0;
+ static GType gnc_tree_model_commodity_type = 0;
- if (gnc_tree_model_commodity_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeModelCommodityClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_model_commodity_class_init,
- NULL,
- NULL,
- sizeof (GncTreeModelCommodity),
- 0,
- (GInstanceInitFunc) gnc_tree_model_commodity_init
- };
-
- static const GInterfaceInfo tree_model_info = {
- (GInterfaceInitFunc) gnc_tree_model_commodity_tree_model_init,
- NULL,
- NULL
- };
+ if (gnc_tree_model_commodity_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeModelCommodityClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_model_commodity_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeModelCommodity),
+ 0,
+ (GInstanceInitFunc) gnc_tree_model_commodity_init
+ };
- gnc_tree_model_commodity_type = g_type_register_static (GNC_TYPE_TREE_MODEL,
- GNC_TREE_MODEL_COMMODITY_NAME,
- &our_info, 0);
-
- g_type_add_interface_static (gnc_tree_model_commodity_type,
- GTK_TYPE_TREE_MODEL,
- &tree_model_info);
- }
+ static const GInterfaceInfo tree_model_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_commodity_tree_model_init,
+ NULL,
+ NULL
+ };
- return gnc_tree_model_commodity_type;
+ gnc_tree_model_commodity_type = g_type_register_static (GNC_TYPE_TREE_MODEL,
+ GNC_TREE_MODEL_COMMODITY_NAME,
+ &our_info, 0);
+
+ g_type_add_interface_static (gnc_tree_model_commodity_type,
+ GTK_TYPE_TREE_MODEL,
+ &tree_model_info);
+ }
+
+ return gnc_tree_model_commodity_type;
}
static void
gnc_tree_model_commodity_class_init (GncTreeModelCommodityClass *klass)
{
- GObjectClass *o_class = G_OBJECT_CLASS (klass);
+ GObjectClass *o_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class->finalize = gnc_tree_model_commodity_finalize;
- o_class->dispose = gnc_tree_model_commodity_dispose;
+ o_class->finalize = gnc_tree_model_commodity_finalize;
+ o_class->dispose = gnc_tree_model_commodity_dispose;
- g_type_class_add_private(klass, sizeof(GncTreeModelCommodityPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeModelCommodityPrivate));
}
static void
gnc_tree_model_commodity_init (GncTreeModelCommodity *model)
{
- while (model->stamp == 0) {
- model->stamp = g_random_int ();
- }
+ while (model->stamp == 0)
+ {
+ model->stamp = g_random_int ();
+ }
}
static void
gnc_tree_model_commodity_finalize (GObject *object)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
- ENTER("model %p", object);
+ ENTER("model %p", object);
- model = GNC_TREE_MODEL_COMMODITY (object);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- priv->book = NULL;
- priv->commodity_table = NULL;
+ model = GNC_TREE_MODEL_COMMODITY (object);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ priv->book = NULL;
+ priv->commodity_table = NULL;
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE(" ");
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE(" ");
}
static void
gnc_tree_model_commodity_dispose (GObject *object)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
- ENTER("model %p", object);
- model = GNC_TREE_MODEL_COMMODITY (object);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ ENTER("model %p", object);
+ model = GNC_TREE_MODEL_COMMODITY (object);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- if (priv->event_handler_id) {
- qof_event_unregister_handler (priv->event_handler_id);
- priv->event_handler_id = 0;
- }
+ if (priv->event_handler_id)
+ {
+ qof_event_unregister_handler (priv->event_handler_id);
+ priv->event_handler_id = 0;
+ }
- if (G_OBJECT_CLASS (parent_class)->dispose)
- G_OBJECT_CLASS (parent_class)->dispose (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+ LEAVE(" ");
}
GtkTreeModel *
gnc_tree_model_commodity_new (QofBook *book, gnc_commodity_table *ct)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- const GList *item;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ const GList *item;
ENTER("");
- item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_COMMODITY_NAME);
- for ( ; item; item = g_list_next(item)) {
- model = (GncTreeModelCommodity *)item->data;
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- if (priv->commodity_table == ct) {
- g_object_ref(G_OBJECT(model));
- LEAVE("returning existing model %p", model);
- return GTK_TREE_MODEL(model);
- }
- }
+ item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_COMMODITY_NAME);
+ for ( ; item; item = g_list_next(item))
+ {
+ model = (GncTreeModelCommodity *)item->data;
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ if (priv->commodity_table == ct)
+ {
+ g_object_ref(G_OBJECT(model));
+ LEAVE("returning existing model %p", model);
+ return GTK_TREE_MODEL(model);
+ }
+ }
- model = g_object_new (GNC_TYPE_TREE_MODEL_COMMODITY, NULL);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- priv->book = book;
- priv->commodity_table = ct;
+ model = g_object_new (GNC_TYPE_TREE_MODEL_COMMODITY, NULL);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ priv->book = book;
+ priv->commodity_table = ct;
- priv->event_handler_id =
- qof_event_register_handler (gnc_tree_model_commodity_event_handler, model);
+ priv->event_handler_id =
+ qof_event_register_handler (gnc_tree_model_commodity_event_handler, model);
LEAVE("");
- return GTK_TREE_MODEL (model);
+ return GTK_TREE_MODEL (model);
}
gboolean
gnc_tree_model_commodity_iter_is_namespace (GncTreeModelCommodity *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- return (iter->user_data == ITER_IS_NAMESPACE);
+ return (iter->user_data == ITER_IS_NAMESPACE);
}
gboolean
gnc_tree_model_commodity_iter_is_commodity (GncTreeModelCommodity *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- return (iter->user_data == ITER_IS_COMMODITY);
+ return (iter->user_data == ITER_IS_COMMODITY);
}
gnc_commodity_namespace *
gnc_tree_model_commodity_get_namespace (GncTreeModelCommodity *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- if (iter->user_data != ITER_IS_NAMESPACE)
- return NULL;
- return (gnc_commodity_namespace *)iter->user_data2;
+ if (iter->user_data != ITER_IS_NAMESPACE)
+ return NULL;
+ return (gnc_commodity_namespace *)iter->user_data2;
}
gnc_commodity *
gnc_tree_model_commodity_get_commodity (GncTreeModelCommodity *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- if (iter->user_data != ITER_IS_COMMODITY)
- return NULL;
- return (gnc_commodity *)iter->user_data2;
+ if (iter->user_data != ITER_IS_COMMODITY)
+ return NULL;
+ return (gnc_commodity *)iter->user_data2;
}
/************************************************************/
@@ -305,51 +312,54 @@
static const gchar *
iter_to_string (GtkTreeIter *iter)
{
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity = NULL;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity = NULL;
#ifdef G_THREADS_ENABLED
- static GStaticPrivate gtmits_buffer_key = G_STATIC_PRIVATE_INIT;
- gchar *string;
+ static GStaticPrivate gtmits_buffer_key = G_STATIC_PRIVATE_INIT;
+ gchar *string;
- string = g_static_private_get (>mits_buffer_key);
- if (string == NULL) {
- string = g_malloc(ITER_STRING_LEN + 1);
- g_static_private_set (>mits_buffer_key, string, g_free);
- }
+ string = g_static_private_get (>mits_buffer_key);
+ if (string == NULL)
+ {
+ string = g_malloc(ITER_STRING_LEN + 1);
+ g_static_private_set (>mits_buffer_key, string, g_free);
+ }
#else
- static char string[ITER_STRING_LEN + 1];
+ static char string[ITER_STRING_LEN + 1];
#endif
- if (iter) {
- switch (GPOINTER_TO_INT(iter->user_data)) {
- case GPOINTER_TO_INT(ITER_IS_NAMESPACE):
- namespace = (gnc_commodity_namespace *) iter->user_data2;
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (NAMESPACE), %p (%s), %d]",
- iter->stamp, GPOINTER_TO_INT(iter->user_data),
- iter->user_data2, gnc_commodity_namespace_get_name (namespace),
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ if (iter)
+ {
+ switch (GPOINTER_TO_INT(iter->user_data))
+ {
+ case GPOINTER_TO_INT(ITER_IS_NAMESPACE):
+ namespace = (gnc_commodity_namespace *) iter->user_data2;
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (NAMESPACE), %p (%s), %d]",
+ iter->stamp, GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2, gnc_commodity_namespace_get_name (namespace),
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
- case GPOINTER_TO_INT(ITER_IS_COMMODITY):
- commodity = (gnc_commodity *) iter->user_data2;
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (COMMODITY), %p (%s), %d]",
- iter->stamp, GPOINTER_TO_INT(iter->user_data),
- iter->user_data2, gnc_commodity_get_mnemonic (commodity),
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ case GPOINTER_TO_INT(ITER_IS_COMMODITY):
+ commodity = (gnc_commodity *) iter->user_data2;
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (COMMODITY), %p (%s), %d]",
+ iter->stamp, GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2, gnc_commodity_get_mnemonic (commodity),
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
- default:
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (UNKNOWN), %p, %d]",
- iter->stamp,
- GPOINTER_TO_INT(iter->user_data),
- iter->user_data2,
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ default:
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (UNKNOWN), %p, %d]",
+ iter->stamp,
+ GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2,
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
+ }
}
- }
- return string;
+ return string;
}
@@ -360,538 +370,572 @@
static void
gnc_tree_model_commodity_tree_model_init (GtkTreeModelIface *iface)
{
- iface->get_flags = gnc_tree_model_commodity_get_flags;
- iface->get_n_columns = gnc_tree_model_commodity_get_n_columns;
- iface->get_column_type = gnc_tree_model_commodity_get_column_type;
- iface->get_iter = gnc_tree_model_commodity_get_iter;
- iface->get_path = gnc_tree_model_commodity_get_path;
- iface->get_value = gnc_tree_model_commodity_get_value;
- iface->iter_next = gnc_tree_model_commodity_iter_next;
- iface->iter_children = gnc_tree_model_commodity_iter_children;
- iface->iter_has_child = gnc_tree_model_commodity_iter_has_child;
- iface->iter_n_children = gnc_tree_model_commodity_iter_n_children;
- iface->iter_nth_child = gnc_tree_model_commodity_iter_nth_child;
- iface->iter_parent = gnc_tree_model_commodity_iter_parent;
+ iface->get_flags = gnc_tree_model_commodity_get_flags;
+ iface->get_n_columns = gnc_tree_model_commodity_get_n_columns;
+ iface->get_column_type = gnc_tree_model_commodity_get_column_type;
+ iface->get_iter = gnc_tree_model_commodity_get_iter;
+ iface->get_path = gnc_tree_model_commodity_get_path;
+ iface->get_value = gnc_tree_model_commodity_get_value;
+ iface->iter_next = gnc_tree_model_commodity_iter_next;
+ iface->iter_children = gnc_tree_model_commodity_iter_children;
+ iface->iter_has_child = gnc_tree_model_commodity_iter_has_child;
+ iface->iter_n_children = gnc_tree_model_commodity_iter_n_children;
+ iface->iter_nth_child = gnc_tree_model_commodity_iter_nth_child;
+ iface->iter_parent = gnc_tree_model_commodity_iter_parent;
}
static GtkTreeModelFlags
gnc_tree_model_commodity_get_flags (GtkTreeModel *tree_model)
{
- return 0;
+ return 0;
}
static int
gnc_tree_model_commodity_get_n_columns (GtkTreeModel *tree_model)
{
- return GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS;
+ return GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS;
}
static GType
gnc_tree_model_commodity_get_column_type (GtkTreeModel *tree_model,
- int index)
+ int index)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), G_TYPE_INVALID);
- g_return_val_if_fail ((index < GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS) && (index >= 0), G_TYPE_INVALID);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), G_TYPE_INVALID);
+ g_return_val_if_fail ((index < GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS) && (index >= 0), G_TYPE_INVALID);
- switch (index) {
- case GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC:
- case GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE:
- case GNC_TREE_MODEL_COMMODITY_COL_FULLNAME:
- case GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME:
- case GNC_TREE_MODEL_COMMODITY_COL_CUSIP:
- case GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME:
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE:
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ:
- return G_TYPE_STRING;
- case GNC_TREE_MODEL_COMMODITY_COL_FRACTION:
- return G_TYPE_INT;
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG:
- case GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY:
- return G_TYPE_BOOLEAN;
- default:
- g_assert_not_reached ();
- return G_TYPE_INVALID;
- }
+ switch (index)
+ {
+ case GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC:
+ case GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE:
+ case GNC_TREE_MODEL_COMMODITY_COL_FULLNAME:
+ case GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME:
+ case GNC_TREE_MODEL_COMMODITY_COL_CUSIP:
+ case GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME:
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE:
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ:
+ return G_TYPE_STRING;
+ case GNC_TREE_MODEL_COMMODITY_COL_FRACTION:
+ return G_TYPE_INT;
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG:
+ case GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY:
+ return G_TYPE_BOOLEAN;
+ default:
+ g_assert_not_reached ();
+ return G_TYPE_INVALID;
+ }
}
static gboolean
gnc_tree_model_commodity_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path)
+ GtkTreeIter *iter,
+ GtkTreePath *path)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity = NULL;
- GList *list;
- guint i, depth;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity = NULL;
+ GList *list;
+ guint i, depth;
- iter->stamp = 0;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (path != NULL, FALSE);
+ iter->stamp = 0;
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
- depth = gtk_tree_path_get_depth (path);
- ENTER("model %p, iter %p, path %p (depth %d)", tree_model, iter, path, depth);
- debug_path(DEBUG, path);
+ depth = gtk_tree_path_get_depth (path);
+ ENTER("model %p, iter %p, path %p (depth %d)", tree_model, iter, path, depth);
+ debug_path(DEBUG, path);
- /* Check the path depth. */
- if (depth == 0) {
- LEAVE("depth too small");
- return FALSE;
- }
- if (depth > 2) {
- LEAVE("depth too big");
- return FALSE;
- }
+ /* Check the path depth. */
+ if (depth == 0)
+ {
+ LEAVE("depth too small");
+ return FALSE;
+ }
+ if (depth > 2)
+ {
+ LEAVE("depth too big");
+ return FALSE;
+ }
- /* Make sure the model has a commodity db. */
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- ct = priv->commodity_table;
- if (ct == NULL) {
- LEAVE("no commodity table");
- return FALSE;
- }
+ /* Make sure the model has a commodity db. */
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ ct = priv->commodity_table;
+ if (ct == NULL)
+ {
+ LEAVE("no commodity table");
+ return FALSE;
+ }
- /* Verify the first part of the path: the namespace. */
- list = gnc_commodity_table_get_namespaces_list(ct);
- i = gtk_tree_path_get_indices (path)[0];
- namespace = g_list_nth_data (list, i);
- if (!namespace) {
- LEAVE("invalid path at namespace");
- return FALSE;
- }
+ /* Verify the first part of the path: the namespace. */
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ i = gtk_tree_path_get_indices (path)[0];
+ namespace = g_list_nth_data (list, i);
+ if (!namespace)
+ {
+ LEAVE("invalid path at namespace");
+ return FALSE;
+ }
- if (depth == 1) {
- /* Return an iterator for the namespace. */
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = namespace;
- iter->user_data3 = GINT_TO_POINTER(i);
- LEAVE("iter (ns) %s", iter_to_string(iter));
- return TRUE;
- }
+ if (depth == 1)
+ {
+ /* Return an iterator for the namespace. */
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = namespace;
+ iter->user_data3 = GINT_TO_POINTER(i);
+ LEAVE("iter (ns) %s", iter_to_string(iter));
+ return TRUE;
+ }
- /* Verify the second part of the path: the commodity. */
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- i = gtk_tree_path_get_indices (path)[1];
- commodity = g_list_nth_data (list, i);
- if (!commodity) {
- LEAVE("invalid path at commodity");
- return FALSE;
- }
+ /* Verify the second part of the path: the commodity. */
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ i = gtk_tree_path_get_indices (path)[1];
+ commodity = g_list_nth_data (list, i);
+ if (!commodity)
+ {
+ LEAVE("invalid path at commodity");
+ return FALSE;
+ }
- /* Return an iterator for the commodity. */
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = commodity;
- iter->user_data3 = GINT_TO_POINTER(i);
- LEAVE("iter (cm) %s", iter_to_string(iter));
- return TRUE;
+ /* Return an iterator for the commodity. */
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = commodity;
+ iter->user_data3 = GINT_TO_POINTER(i);
+ LEAVE("iter (cm) %s", iter_to_string(iter));
+ return TRUE;
}
static GtkTreePath *
gnc_tree_model_commodity_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- GtkTreePath *path;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- GList *ns_list;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ GtkTreePath *path;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ GList *ns_list;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), NULL);
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->user_data2 != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
-
- /* Make sure this model has a commodity db. */
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- ct = priv->commodity_table;
- if (ct == NULL) {
- LEAVE("no commodity table");
- return FALSE;
- }
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), NULL);
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->user_data2 != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
- if (iter->user_data == ITER_IS_NAMESPACE) {
- /* Create a path to the namespace. This is just the index into
- * the namespace list, which we already stored in user_data3. */
- path = gtk_tree_path_new ();
- gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
- debug_path(LEAVE, path);
- return path;
- }
+ /* Make sure this model has a commodity db. */
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ ct = priv->commodity_table;
+ if (ct == NULL)
+ {
+ LEAVE("no commodity table");
+ return FALSE;
+ }
- /* Get the namespaces list. */
- ns_list = gnc_commodity_table_get_namespaces_list(ct);
- namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)iter->user_data2);
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ /* Create a path to the namespace. This is just the index into
+ * the namespace list, which we already stored in user_data3. */
+ path = gtk_tree_path_new ();
+ gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
+ debug_path(LEAVE, path);
+ return path;
+ }
- /* Create a path to the commodity. */
- path = gtk_tree_path_new ();
- gtk_tree_path_append_index (path, g_list_index (ns_list, namespace));
- gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
- debug_path(LEAVE, path);
- return path;
+ /* Get the namespaces list. */
+ ns_list = gnc_commodity_table_get_namespaces_list(ct);
+ namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)iter->user_data2);
+
+ /* Create a path to the commodity. */
+ path = gtk_tree_path_new ();
+ gtk_tree_path_append_index (path, g_list_index (ns_list, namespace));
+ gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
+ debug_path(LEAVE, path);
+ return path;
}
static void
gnc_tree_model_commodity_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value)
+ GtkTreeIter *iter,
+ int column,
+ GValue *value)
{
- GncTreeModelCommodity *model = GNC_TREE_MODEL_COMMODITY (tree_model);
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- gnc_quote_source *source;
+ GncTreeModelCommodity *model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ gnc_quote_source *source;
- g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model));
- g_return_if_fail (iter != NULL);
- g_return_if_fail (iter->user_data != NULL);
- g_return_if_fail (iter->user_data2 != NULL);
- g_return_if_fail (iter->stamp == model->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model));
+ g_return_if_fail (iter != NULL);
+ g_return_if_fail (iter->user_data != NULL);
+ g_return_if_fail (iter->user_data2 != NULL);
+ g_return_if_fail (iter->stamp == model->stamp);
- if (iter->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)iter->user_data2;
- switch (column) {
- case GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_namespace_get_name (namespace));
- break;
- default:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, "");
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_FRACTION:
- g_value_init (value, G_TYPE_INT);
- g_value_set_int (value, 0);
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, FALSE);
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, FALSE);
- break;
- }
- return;
- }
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)iter->user_data2;
+ switch (column)
+ {
+ case GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_namespace_get_name (namespace));
+ break;
+ default:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, "");
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_FRACTION:
+ g_value_init (value, G_TYPE_INT);
+ g_value_set_int (value, 0);
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, FALSE);
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, FALSE);
+ break;
+ }
+ return;
+ }
- commodity = (gnc_commodity *)iter->user_data2;
- switch (column) {
- case GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC:
- g_value_init (value, G_TYPE_STRING);
+ commodity = (gnc_commodity *)iter->user_data2;
+ switch (column)
+ {
+ case GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC:
+ g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_get_mnemonic (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE:
- g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_get_mnemonic (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE:
+ g_value_init (value, G_TYPE_STRING);
// g_value_set_string (value, gnc_commodity_get_namespace (commodity));
- g_value_set_string (value, NULL);
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_FULLNAME:
- g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, NULL);
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_FULLNAME:
+ g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_get_fullname (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME:
- g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_get_fullname (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME:
+ g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_get_printname (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_CUSIP:
- g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_get_printname (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_CUSIP:
+ g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_get_cusip (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME:
- g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_get_cusip (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME:
+ g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_get_unique_name (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_FRACTION:
- g_value_init (value, G_TYPE_INT);
+ g_value_set_string (value, gnc_commodity_get_unique_name (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_FRACTION:
+ g_value_init (value, G_TYPE_INT);
- g_value_set_int (value, gnc_commodity_get_fraction (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG:
- g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_int (value, gnc_commodity_get_fraction (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG:
+ g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, gnc_commodity_get_quote_flag (commodity));
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE:
- g_value_init (value, G_TYPE_STRING);
+ g_value_set_boolean (value, gnc_commodity_get_quote_flag (commodity));
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE:
+ g_value_init (value, G_TYPE_STRING);
- if (gnc_commodity_get_quote_flag (commodity)) {
- source = gnc_commodity_get_quote_source (commodity);
- g_value_set_string (value, gnc_quote_source_get_internal_name(source));
- } else {
- g_value_set_static_string (value, "");
- }
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ:
- g_value_init (value, G_TYPE_STRING);
+ if (gnc_commodity_get_quote_flag (commodity))
+ {
+ source = gnc_commodity_get_quote_source (commodity);
+ g_value_set_string (value, gnc_quote_source_get_internal_name(source));
+ }
+ else
+ {
+ g_value_set_static_string (value, "");
+ }
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ:
+ g_value_init (value, G_TYPE_STRING);
- if (gnc_commodity_get_quote_flag (commodity)) {
- g_value_set_string (value, gnc_commodity_get_quote_tz (commodity));
- } else {
- g_value_set_static_string (value, "");
- }
- break;
- case GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, TRUE);
- break;
- default:
- g_assert_not_reached ();
- }
+ if (gnc_commodity_get_quote_flag (commodity))
+ {
+ g_value_set_string (value, gnc_commodity_get_quote_tz (commodity));
+ }
+ else
+ {
+ g_value_set_static_string (value, "");
+ }
+ break;
+ case GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, TRUE);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
}
static gboolean
gnc_tree_model_commodity_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- GList *list;
- int n;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ GList *list;
+ int n;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->user_data2 != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data2 != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- ENTER("model %p, iter %p(%s)", tree_model, iter, iter_to_string(iter));
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- if (iter->user_data == ITER_IS_NAMESPACE) {
- ct = priv->commodity_table;
- list = gnc_commodity_table_get_namespaces_list(ct);
- } else if (iter->user_data == ITER_IS_COMMODITY) {
- namespace = gnc_commodity_get_namespace_ds((gnc_commodity *)iter->user_data2);
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- } else {
- LEAVE("unknown iter type");
- return FALSE;
- }
+ ENTER("model %p, iter %p(%s)", tree_model, iter, iter_to_string(iter));
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ ct = priv->commodity_table;
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ }
+ else if (iter->user_data == ITER_IS_COMMODITY)
+ {
+ namespace = gnc_commodity_get_namespace_ds((gnc_commodity *)iter->user_data2);
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ }
+ else
+ {
+ LEAVE("unknown iter type");
+ return FALSE;
+ }
- n = GPOINTER_TO_INT(iter->user_data3) + 1;
- iter->user_data2 = g_list_nth_data(list, n);
- if (iter->user_data2 == NULL) {
- LEAVE("no next iter");
- return FALSE;
- }
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %p(%s)", iter, iter_to_string(iter));
- return TRUE;
+ n = GPOINTER_TO_INT(iter->user_data3) + 1;
+ iter->user_data2 = g_list_nth_data(list, n);
+ if (iter->user_data2 == NULL)
+ {
+ LEAVE("no next iter");
+ return FALSE;
+ }
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %p(%s)", iter, iter_to_string(iter));
+ return TRUE;
}
static gboolean
gnc_tree_model_commodity_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- GList *list;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ GList *list;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
- ENTER("model %p, iter %p, parent %p (%s)",
- tree_model, iter, parent, iter_to_string(parent));
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ ENTER("model %p, iter %p, parent %p (%s)",
+ tree_model, iter, parent, iter_to_string(parent));
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- if (parent == NULL) {
- ct = priv->commodity_table;
- list = gnc_commodity_table_get_namespaces_list(ct);
- if (list == NULL) {
- LEAVE("no namespaces");
- return FALSE;
- }
+ if (parent == NULL)
+ {
+ ct = priv->commodity_table;
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ if (list == NULL)
+ {
+ LEAVE("no namespaces");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = g_list_nth_data(list, 0);
- iter->user_data3 = GINT_TO_POINTER(0);
- LEAVE("ns iter %p (%s)", iter, iter_to_string(iter));
- return TRUE;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = g_list_nth_data(list, 0);
+ iter->user_data3 = GINT_TO_POINTER(0);
+ LEAVE("ns iter %p (%s)", iter, iter_to_string(iter));
+ return TRUE;
+ }
- if (parent->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)parent->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- if (list == NULL) {
- LEAVE("no commodities");
- return FALSE;
- }
+ if (parent->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)parent->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ if (list == NULL)
+ {
+ LEAVE("no commodities");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = g_list_nth_data(list, 0);
- iter->user_data3 = GINT_TO_POINTER(0);
- LEAVE("cm iter %p (%s)", iter, iter_to_string(iter));
- return TRUE;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = g_list_nth_data(list, 0);
+ iter->user_data3 = GINT_TO_POINTER(0);
+ LEAVE("cm iter %p (%s)", iter, iter_to_string(iter));
+ return TRUE;
+ }
- LEAVE("FALSE");
- return FALSE;
+ LEAVE("FALSE");
+ return FALSE;
}
static gboolean
gnc_tree_model_commodity_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- gnc_commodity_namespace *namespace;
- GList *list;
+ gnc_commodity_namespace *namespace;
+ GList *list;
- g_return_val_if_fail (iter != NULL, FALSE);
- ENTER("model %p, iter %p (%s)", tree_model,
- iter, iter_to_string(iter));
+ g_return_val_if_fail (iter != NULL, FALSE);
+ ENTER("model %p, iter %p (%s)", tree_model,
+ iter, iter_to_string(iter));
- if (iter->user_data != ITER_IS_NAMESPACE) {
- LEAVE("no children (not ns)");
- return FALSE;
- }
+ if (iter->user_data != ITER_IS_NAMESPACE)
+ {
+ LEAVE("no children (not ns)");
+ return FALSE;
+ }
- namespace = (gnc_commodity_namespace *)iter->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- LEAVE("%s children", list ? "has" : "no");
- return list != NULL;
+ namespace = (gnc_commodity_namespace *)iter->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ LEAVE("%s children", list ? "has" : "no");
+ return list != NULL;
}
static int
gnc_tree_model_commodity_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- GList *list;
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ GList *list;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), -1);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), -1);
- ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- if (iter == NULL) {
- ct = priv->commodity_table;
- list = gnc_commodity_table_get_namespaces_list(ct);
- LEAVE("ns list length %d", g_list_length(list));
- return g_list_length (list);
- }
+ if (iter == NULL)
+ {
+ ct = priv->commodity_table;
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ LEAVE("ns list length %d", g_list_length(list));
+ return g_list_length (list);
+ }
- if (iter->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)iter->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- LEAVE("cm list length %d", g_list_length(list));
- return g_list_length (list);
- }
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)iter->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ LEAVE("cm list length %d", g_list_length(list));
+ return g_list_length (list);
+ }
- LEAVE("0");
- return 0;
+ LEAVE("0");
+ return 0;
}
static gboolean
gnc_tree_model_commodity_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- GList *list;
-
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ GList *list;
- ENTER("model %p, iter %p, parent %p (%s)",
- tree_model, iter, parent, iter_to_string(parent));
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- if (parent == NULL) {
- ct = priv->commodity_table;
- list = gnc_commodity_table_get_namespaces_list(ct);
+ ENTER("model %p, iter %p, parent %p (%s)",
+ tree_model, iter, parent, iter_to_string(parent));
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = g_list_nth_data(list, n);
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("ns iter %p (%s)", iter, iter_to_string(iter));
- return iter->user_data2 != NULL;
- }
+ if (parent == NULL)
+ {
+ ct = priv->commodity_table;
+ list = gnc_commodity_table_get_namespaces_list(ct);
- if (parent->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)parent->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = g_list_nth_data(list, n);
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("ns iter %p (%s)", iter, iter_to_string(iter));
+ return iter->user_data2 != NULL;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = g_list_nth_data(list, n);
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("cm iter %p (%s)", iter, iter_to_string(iter));
- return iter->user_data2 != NULL;
- }
+ if (parent->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)parent->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
- iter->stamp = 0;
- LEAVE("FALSE");
- return FALSE;
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = g_list_nth_data(list, n);
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("cm iter %p (%s)", iter, iter_to_string(iter));
+ return iter->user_data2 != NULL;
+ }
+
+ iter->stamp = 0;
+ LEAVE("FALSE");
+ return FALSE;
}
static gboolean
gnc_tree_model_commodity_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child)
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
{
- GncTreeModelCommodity *model;
- GncTreeModelCommodityPrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- GList *list;
-
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (child != NULL, FALSE);
+ GncTreeModelCommodity *model;
+ GncTreeModelCommodityPrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ GList *list;
- ENTER("model %p, iter %p, child %p (%s)",
- tree_model, iter, child, iter_to_string(child));
- model = GNC_TREE_MODEL_COMMODITY (tree_model);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (child != NULL, FALSE);
- if (child->user_data == ITER_IS_NAMESPACE) {
- LEAVE("ns has no parent");
- return FALSE;
- }
+ ENTER("model %p, iter %p, child %p (%s)",
+ tree_model, iter, child, iter_to_string(child));
+ model = GNC_TREE_MODEL_COMMODITY (tree_model);
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- ct = priv->commodity_table;
- list = gnc_commodity_table_get_namespaces_list(ct);
- namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)child->user_data2);
+ if (child->user_data == ITER_IS_NAMESPACE)
+ {
+ LEAVE("ns has no parent");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = namespace;
- iter->user_data3 = GINT_TO_POINTER(g_list_index(list, namespace));
- LEAVE("ns iter %p (%s)", iter, iter_to_string(iter));
- return TRUE;
+ ct = priv->commodity_table;
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)child->user_data2);
+
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = namespace;
+ iter->user_data3 = GINT_TO_POINTER(g_list_index(list, namespace));
+ LEAVE("ns iter %p (%s)", iter, iter_to_string(iter));
+ return TRUE;
}
/************************************************************/
@@ -905,43 +949,46 @@
*/
gboolean
gnc_tree_model_commodity_get_iter_from_commodity (GncTreeModelCommodity *model,
- gnc_commodity *commodity,
- GtkTreeIter *iter)
+ gnc_commodity *commodity,
+ GtkTreeIter *iter)
{
- gnc_commodity_namespace *namespace;
- GList *list;
- gint n;
-
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
- g_return_val_if_fail ((commodity != NULL), FALSE);
- g_return_val_if_fail ((iter != NULL), FALSE);
+ gnc_commodity_namespace *namespace;
+ GList *list;
+ gint n;
- ENTER("model %p, commodity %p, iter %p", model, commodity, iter);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
+ g_return_val_if_fail ((commodity != NULL), FALSE);
+ g_return_val_if_fail ((iter != NULL), FALSE);
- namespace = gnc_commodity_get_namespace_ds(commodity);
- if (namespace == NULL) {
- LEAVE("no namespace");
- return FALSE;
- }
+ ENTER("model %p, commodity %p, iter %p", model, commodity, iter);
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- if (list == NULL) {
- LEAVE("empty list");
- return FALSE;
- }
+ namespace = gnc_commodity_get_namespace_ds(commodity);
+ if (namespace == NULL)
+ {
+ LEAVE("no namespace");
+ return FALSE;
+ }
- n = g_list_index(list, commodity);
- if (n == -1) {
- LEAVE("not in list");
- return FALSE;
- }
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ if (list == NULL)
+ {
+ LEAVE("empty list");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = commodity;
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %s", iter_to_string(iter));
- return TRUE;
+ n = g_list_index(list, commodity);
+ if (n == -1)
+ {
+ LEAVE("not in list");
+ return FALSE;
+ }
+
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = commodity;
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %s", iter_to_string(iter));
+ return TRUE;
}
/*
@@ -951,29 +998,33 @@
*/
GtkTreePath *
gnc_tree_model_commodity_get_path_from_commodity (GncTreeModelCommodity *model,
- gnc_commodity *commodity)
+ gnc_commodity *commodity)
{
- GtkTreeIter tree_iter;
- GtkTreePath *tree_path;
+ GtkTreeIter tree_iter;
+ GtkTreePath *tree_path;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
- g_return_val_if_fail (commodity != NULL, NULL);
- ENTER("model %p, commodity %p", model, commodity);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
+ g_return_val_if_fail (commodity != NULL, NULL);
+ ENTER("model %p, commodity %p", model, commodity);
- if (!gnc_tree_model_commodity_get_iter_from_commodity (model, commodity, &tree_iter)) {
- LEAVE("no iter");
- return NULL;
- }
+ if (!gnc_tree_model_commodity_get_iter_from_commodity (model, commodity, &tree_iter))
+ {
+ LEAVE("no iter");
+ return NULL;
+ }
- tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
- if (tree_path) {
- gchar *path_string = gtk_tree_path_to_string(tree_path);
- LEAVE("path (2) %s", path_string);
- g_free(path_string);
- } else {
- LEAVE("no path");
- }
- return tree_path;
+ tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
+ if (tree_path)
+ {
+ gchar *path_string = gtk_tree_path_to_string(tree_path);
+ LEAVE("path (2) %s", path_string);
+ g_free(path_string);
+ }
+ else
+ {
+ LEAVE("no path");
+ }
+ return tree_path;
}
/*
@@ -983,40 +1034,40 @@
*/
gboolean
gnc_tree_model_commodity_get_iter_from_namespace (GncTreeModelCommodity *model,
- gnc_commodity_namespace *namespace,
- GtkTreeIter *iter)
+ gnc_commodity_namespace *namespace,
+ GtkTreeIter *iter)
{
- GncTreeModelCommodityPrivate *priv;
- GList *list;
- gint n;
-
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
- g_return_val_if_fail ((namespace != NULL), FALSE);
- g_return_val_if_fail ((iter != NULL), FALSE);
+ GncTreeModelCommodityPrivate *priv;
+ GList *list;
+ gint n;
- ENTER("model %p, namespace %p, iter %p", model, namespace, iter);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
+ g_return_val_if_fail ((namespace != NULL), FALSE);
+ g_return_val_if_fail ((iter != NULL), FALSE);
- priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
- list = gnc_commodity_table_get_namespaces_list(priv->commodity_table);
- if (list == NULL)
+ ENTER("model %p, namespace %p, iter %p", model, namespace, iter);
+
+ priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+ list = gnc_commodity_table_get_namespaces_list(priv->commodity_table);
+ if (list == NULL)
{
- LEAVE("");
- return FALSE;
+ LEAVE("");
+ return FALSE;
}
- n = g_list_index(list, namespace);
- if (n == -1)
+ n = g_list_index(list, namespace);
+ if (n == -1)
{
- LEAVE("");
- return FALSE;
+ LEAVE("");
+ return FALSE;
}
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = namespace;
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %s", iter_to_string(iter));
- return TRUE;
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = namespace;
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %s", iter_to_string(iter));
+ return TRUE;
}
/*
@@ -1026,38 +1077,43 @@
*/
GtkTreePath *
gnc_tree_model_commodity_get_path_from_namespace (GncTreeModelCommodity *model,
- gnc_commodity_namespace *namespace)
+ gnc_commodity_namespace *namespace)
{
- GtkTreeIter tree_iter;
- GtkTreePath *tree_path;
+ GtkTreeIter tree_iter;
+ GtkTreePath *tree_path;
- ENTER("model %p, namespace %p", model, namespace);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
- g_return_val_if_fail (namespace != NULL, NULL);
+ ENTER("model %p, namespace %p", model, namespace);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
+ g_return_val_if_fail (namespace != NULL, NULL);
- if (!gnc_tree_model_commodity_get_iter_from_namespace (model, namespace, &tree_iter)) {
- LEAVE("no iter");
- return NULL;
- }
+ if (!gnc_tree_model_commodity_get_iter_from_namespace (model, namespace, &tree_iter))
+ {
+ LEAVE("no iter");
+ return NULL;
+ }
- tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
- if (tree_path) {
- gchar *path_string = gtk_tree_path_to_string(tree_path);
- LEAVE("path (2) %s", path_string);
- g_free(path_string);
- } else {
- LEAVE("no path");
- }
- return tree_path;
+ tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
+ if (tree_path)
+ {
+ gchar *path_string = gtk_tree_path_to_string(tree_path);
+ LEAVE("path (2) %s", path_string);
+ g_free(path_string);
+ }
+ else
+ {
+ LEAVE("no path");
+ }
+ return tree_path;
}
/************************************************************/
/* Commodity Tree Model - Engine Event Handling Functions */
/************************************************************/
-typedef struct _remove_data {
- GncTreeModelCommodity *model;
- GtkTreePath *path;
+typedef struct _remove_data
+{
+ GncTreeModelCommodity *model;
+ GtkTreePath *path;
} remove_data;
static GSList *pending_removals = NULL;
@@ -1075,64 +1131,68 @@
*/
static void
gnc_tree_model_commodity_row_add (GncTreeModelCommodity *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GtkTreePath *path;
- GtkTreeModel *tree_model;
- GtkTreeIter tmp_iter;
+ GtkTreePath *path;
+ GtkTreeModel *tree_model;
+ GtkTreeIter tmp_iter;
- ENTER("model %p, iter (%p)%s", model, iter, iter_to_string(iter));
+ ENTER("model %p, iter (%p)%s", model, iter, iter_to_string(iter));
- /* We're adding a row, so the lists on which this model is based have
- * changed. Since existing iterators (except the one just passed in)
- * are all based on old indexes into those lists, we need to invalidate
- * them, which we can do by changing the model's stamp. */
- do {
- model->stamp++;
- } while (model->stamp == 0);
- iter->stamp = model->stamp;
+ /* We're adding a row, so the lists on which this model is based have
+ * changed. Since existing iterators (except the one just passed in)
+ * are all based on old indexes into those lists, we need to invalidate
+ * them, which we can do by changing the model's stamp. */
+ do
+ {
+ model->stamp++;
+ }
+ while (model->stamp == 0);
+ iter->stamp = model->stamp;
- /* Tag the new row as inserted. */
- tree_model = GTK_TREE_MODEL(model);
- path = gnc_tree_model_commodity_get_path(tree_model, iter);
- gtk_tree_model_row_inserted(tree_model, path, iter);
+ /* Tag the new row as inserted. */
+ tree_model = GTK_TREE_MODEL(model);
+ path = gnc_tree_model_commodity_get_path(tree_model, iter);
+ gtk_tree_model_row_inserted(tree_model, path, iter);
- /* Inform all ancestors. */
- /*
- * Charles Day: I don't think calls to gtk_tree_model_row_changed() should
- * be necessary. It is just a workaround for bug #540201.
- */
- if (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &tmp_iter, path)) {
- /* Signal the change to the parent. */
- gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+ /* Inform all ancestors. */
+ /*
+ * Charles Day: I don't think calls to gtk_tree_model_row_changed() should
+ * be necessary. It is just a workaround for bug #540201.
+ */
+ if (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &tmp_iter, path))
+ {
+ /* Signal the change to the parent. */
+ gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
- /* Is this the parent's first child? */
- if (gtk_tree_model_iter_n_children(tree_model, &tmp_iter) == 1)
- gtk_tree_model_row_has_child_toggled(tree_model, path, &tmp_iter);
+ /* Is this the parent's first child? */
+ if (gtk_tree_model_iter_n_children(tree_model, &tmp_iter) == 1)
+ gtk_tree_model_row_has_child_toggled(tree_model, path, &tmp_iter);
- /* Signal any other ancestors. */
- while (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &tmp_iter, path)) {
- gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+ /* Signal any other ancestors. */
+ while (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &tmp_iter, path))
+ {
+ gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+ }
}
- }
- gtk_tree_path_free(path);
-
- /* If the new row already has children, signal that so the expander
- * can be shown. This can happen, for example, if a namespace is
- * changed in another place and gets removed and then re-added to
- * the commodity db. */
- if (gnc_tree_model_commodity_iter_has_child(tree_model, iter))
- {
- path = gnc_tree_model_commodity_get_path(tree_model, iter);
- gtk_tree_model_row_has_child_toggled(tree_model, path, iter);
gtk_tree_path_free(path);
- }
- LEAVE(" ");
+ /* If the new row already has children, signal that so the expander
+ * can be shown. This can happen, for example, if a namespace is
+ * changed in another place and gets removed and then re-added to
+ * the commodity db. */
+ if (gnc_tree_model_commodity_iter_has_child(tree_model, iter))
+ {
+ path = gnc_tree_model_commodity_get_path(tree_model, iter);
+ gtk_tree_model_row_has_child_toggled(tree_model, path, iter);
+ gtk_tree_path_free(path);
+ }
+
+ LEAVE(" ");
}
/** This function updates the model when a row is being deleted.
@@ -1148,39 +1208,42 @@
*/
static void
gnc_tree_model_commodity_row_delete (GncTreeModelCommodity *model,
- GtkTreePath *path)
+ GtkTreePath *path)
{
- GtkTreeModel *tree_model;
- GtkTreeIter iter;
+ GtkTreeModel *tree_model;
+ GtkTreeIter iter;
- g_return_if_fail(GNC_IS_TREE_MODEL_COMMODITY(model));
- g_return_if_fail(path);
+ g_return_if_fail(GNC_IS_TREE_MODEL_COMMODITY(model));
+ g_return_if_fail(path);
- debug_path(ENTER, path);
+ debug_path(ENTER, path);
- tree_model = GTK_TREE_MODEL(model);
+ tree_model = GTK_TREE_MODEL(model);
- /* We're removing a row, so the lists on which this model is based have
- * changed. Since existing iterators are all based on old indexes into
- * those lists, we need to invalidate them, which we can do by changing
- * the model's stamp. */
- do {
- model->stamp++;
- } while (model->stamp == 0);
+ /* We're removing a row, so the lists on which this model is based have
+ * changed. Since existing iterators are all based on old indexes into
+ * those lists, we need to invalidate them, which we can do by changing
+ * the model's stamp. */
+ do
+ {
+ model->stamp++;
+ }
+ while (model->stamp == 0);
- /* Signal that the path has been deleted. */
- gtk_tree_model_row_deleted(tree_model, path);
+ /* Signal that the path has been deleted. */
+ gtk_tree_model_row_deleted(tree_model, path);
- /* Issue any appropriate signals to ancestors. */
- if (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &iter, path) &&
- !gtk_tree_model_iter_has_child(tree_model, &iter)) {
- DEBUG("parent toggled, iter %s", iter_to_string(&iter));
- gtk_tree_model_row_has_child_toggled(tree_model, path, &iter);
- }
+ /* Issue any appropriate signals to ancestors. */
+ if (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &iter, path) &&
+ !gtk_tree_model_iter_has_child(tree_model, &iter))
+ {
+ DEBUG("parent toggled, iter %s", iter_to_string(&iter));
+ gtk_tree_model_row_has_child_toggled(tree_model, path, &iter);
+ }
- LEAVE(" ");
+ LEAVE(" ");
}
@@ -1203,29 +1266,29 @@
static gboolean
gnc_tree_model_commodity_do_deletions (gpointer unused)
{
- ENTER(" ");
+ ENTER(" ");
- /* Go through the list of paths needing removal. */
- while (pending_removals)
- {
- remove_data *data = pending_removals->data;
- pending_removals = g_slist_delete_link(pending_removals, pending_removals);
-
- if (data)
+ /* Go through the list of paths needing removal. */
+ while (pending_removals)
{
- debug_path(DEBUG, data->path);
+ remove_data *data = pending_removals->data;
+ pending_removals = g_slist_delete_link(pending_removals, pending_removals);
- /* Remove the path. */
- gnc_tree_model_commodity_row_delete(data->model, data->path);
+ if (data)
+ {
+ debug_path(DEBUG, data->path);
- gtk_tree_path_free(data->path);
- g_free(data);
+ /* Remove the path. */
+ gnc_tree_model_commodity_row_delete(data->model, data->path);
+
+ gtk_tree_path_free(data->path);
+ g_free(data);
+ }
}
- }
- LEAVE(" ");
- /* Don't call me again. */
- return FALSE;
+ LEAVE(" ");
+ /* Don't call me again. */
+ return FALSE;
}
@@ -1262,97 +1325,109 @@
*/
static void
gnc_tree_model_commodity_event_handler (QofInstance *entity,
- QofEventId event_type,
- gpointer user_data,
- gpointer event_data)
+ QofEventId event_type,
+ gpointer user_data,
+ gpointer event_data)
{
- GncTreeModelCommodity *model;
- GtkTreePath *path;
- GtkTreeIter iter;
- remove_data *data;
- const gchar *name;
+ GncTreeModelCommodity *model;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ remove_data *data;
+ const gchar *name;
- model = (GncTreeModelCommodity *)user_data;
+ model = (GncTreeModelCommodity *)user_data;
- /* hard failures */
- g_return_if_fail(GNC_IS_TREE_MODEL_COMMODITY(model));
+ /* hard failures */
+ g_return_if_fail(GNC_IS_TREE_MODEL_COMMODITY(model));
- ENTER("entity %p, event %d, model %p, event data %p",
- entity, event_type, user_data, event_data);
+ ENTER("entity %p, event %d, model %p, event data %p",
+ entity, event_type, user_data, event_data);
- /* Do deletions if any are pending. */
- if (pending_removals)
- gnc_tree_model_commodity_do_deletions(NULL);
+ /* Do deletions if any are pending. */
+ if (pending_removals)
+ gnc_tree_model_commodity_do_deletions(NULL);
- /* get type specific data */
- if (GNC_IS_COMMODITY(entity)) {
- gnc_commodity *commodity;
+ /* get type specific data */
+ if (GNC_IS_COMMODITY(entity))
+ {
+ gnc_commodity *commodity;
- commodity = GNC_COMMODITY(entity);
- name = gnc_commodity_get_mnemonic(commodity);
- if (event_type != QOF_EVENT_DESTROY) {
- if (!gnc_tree_model_commodity_get_iter_from_commodity (model, commodity, &iter)) {
- LEAVE("no iter");
- return;
- }
- }
- } else if (GNC_IS_COMMODITY_NAMESPACE(entity)) {
- gnc_commodity_namespace *namespace;
+ commodity = GNC_COMMODITY(entity);
+ name = gnc_commodity_get_mnemonic(commodity);
+ if (event_type != QOF_EVENT_DESTROY)
+ {
+ if (!gnc_tree_model_commodity_get_iter_from_commodity (model, commodity, &iter))
+ {
+ LEAVE("no iter");
+ return;
+ }
+ }
+ }
+ else if (GNC_IS_COMMODITY_NAMESPACE(entity))
+ {
+ gnc_commodity_namespace *namespace;
- namespace = GNC_COMMODITY_NAMESPACE(entity);
- name = gnc_commodity_namespace_get_name(namespace);
- if (event_type != QOF_EVENT_DESTROY) {
- if (!gnc_tree_model_commodity_get_iter_from_namespace (model, namespace, &iter)) {
- LEAVE("no iter");
- return;
- }
- }
- } else {
- LEAVE("");
- return;
- }
+ namespace = GNC_COMMODITY_NAMESPACE(entity);
+ name = gnc_commodity_namespace_get_name(namespace);
+ if (event_type != QOF_EVENT_DESTROY)
+ {
+ if (!gnc_tree_model_commodity_get_iter_from_namespace (model, namespace, &iter))
+ {
+ LEAVE("no iter");
+ return;
+ }
+ }
+ }
+ else
+ {
+ LEAVE("");
+ return;
+ }
- switch (event_type) {
- case QOF_EVENT_ADD:
- /* Tell the filters/views where the new account was added. */
- DEBUG("add %s", name);
- gnc_tree_model_commodity_row_add (model, &iter);
- break;
+ switch (event_type)
+ {
+ case QOF_EVENT_ADD:
+ /* Tell the filters/views where the new account was added. */
+ DEBUG("add %s", name);
+ gnc_tree_model_commodity_row_add (model, &iter);
+ break;
- case QOF_EVENT_REMOVE:
- /* Record the path of this account for later use in destruction */
- DEBUG("remove %s", name);
- path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
- if (path == NULL) {
- LEAVE("not in model");
- return;
- }
+ case QOF_EVENT_REMOVE:
+ /* Record the path of this account for later use in destruction */
+ DEBUG("remove %s", name);
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
+ if (path == NULL)
+ {
+ LEAVE("not in model");
+ return;
+ }
- data = g_new0 (remove_data, 1);
- data->model = model;
- data->path = path;
- pending_removals = g_slist_append (pending_removals, data);
- g_idle_add_full(G_PRIORITY_HIGH_IDLE,
- gnc_tree_model_commodity_do_deletions, NULL, NULL);
+ data = g_new0 (remove_data, 1);
+ data->model = model;
+ data->path = path;
+ pending_removals = g_slist_append (pending_removals, data);
+ g_idle_add_full(G_PRIORITY_HIGH_IDLE,
+ gnc_tree_model_commodity_do_deletions, NULL, NULL);
- LEAVE(" ");
- return;
+ LEAVE(" ");
+ return;
- case QOF_EVENT_MODIFY:
- DEBUG("change %s", name);
- path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
- if (path == NULL) {
- LEAVE("not in model");
- return;
- }
- gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
- gtk_tree_path_free(path);
- LEAVE(" ");
- return;
+ case QOF_EVENT_MODIFY:
+ DEBUG("change %s", name);
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
+ if (path == NULL)
+ {
+ LEAVE("not in model");
+ return;
+ }
+ gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
+ gtk_tree_path_free(path);
+ LEAVE(" ");
+ return;
- default:
- LEAVE("ignored event for %s", name);
- return;
- }
- LEAVE(" new stamp %u", model->stamp);
+ default:
+ LEAVE("ignored event for %s", name);
+ return;
+ }
+ LEAVE(" new stamp %u", model->stamp);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
-/*
- * gnc-tree-model-commodity.h -- GtkTreeModel implementation to
+/*
+ * gnc-tree-model-commodity.h -- GtkTreeModel implementation to
* display commodities in a GtkTreeView.
*
* Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -54,39 +54,42 @@
#define GNC_TREE_MODEL_COMMODITY_NAME "GncTreeModelCommodity"
-typedef enum {
- GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE,
- GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC,
- GNC_TREE_MODEL_COMMODITY_COL_FULLNAME,
- GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME,
- GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME,
- GNC_TREE_MODEL_COMMODITY_COL_CUSIP,
- GNC_TREE_MODEL_COMMODITY_COL_FRACTION,
- GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG,
- GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE,
- GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ,
+typedef enum
+{
+ GNC_TREE_MODEL_COMMODITY_COL_NAMESPACE,
+ GNC_TREE_MODEL_COMMODITY_COL_MNEMONIC,
+ GNC_TREE_MODEL_COMMODITY_COL_FULLNAME,
+ GNC_TREE_MODEL_COMMODITY_COL_PRINTNAME,
+ GNC_TREE_MODEL_COMMODITY_COL_UNIQUE_NAME,
+ GNC_TREE_MODEL_COMMODITY_COL_CUSIP,
+ GNC_TREE_MODEL_COMMODITY_COL_FRACTION,
+ GNC_TREE_MODEL_COMMODITY_COL_QUOTE_FLAG,
+ GNC_TREE_MODEL_COMMODITY_COL_QUOTE_SOURCE,
+ GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ,
- GNC_TREE_MODEL_COMMODITY_COL_LAST_VISIBLE = GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ,
+ GNC_TREE_MODEL_COMMODITY_COL_LAST_VISIBLE = GNC_TREE_MODEL_COMMODITY_COL_QUOTE_TZ,
- /* internal hidden columns */
- GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
+ /* internal hidden columns */
+ GNC_TREE_MODEL_COMMODITY_COL_VISIBILITY,
- GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS
+ GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS
} GncTreeModelCommodityColumn;
/* typedefs & structures */
/** The instance data structure for a commodity tree model. */
-typedef struct {
- GncTreeModel gnc_tree_model; /**< The parent object data. */
- int stamp; /**< The state of the model. Any state
+typedef struct
+{
+ GncTreeModel gnc_tree_model; /**< The parent object data. */
+ int stamp; /**< The state of the model. Any state
* change increments this number. */
} GncTreeModelCommodity;
/** The class data structure for a commodity tree model. */
-typedef struct {
- GncTreeModelClass gnc_tree_model;/**< The parent object data. */
+typedef struct
+{
+ GncTreeModelClass gnc_tree_model;/**< The parent object data. */
} GncTreeModelCommodityClass;
@@ -97,7 +100,7 @@
GType gnc_tree_model_commodity_get_type (void);
-/** @name Account Tree Model Constructors
+/** @name Account Tree Model Constructors
@{ */
/** Create a new GtkTreeModel for manipulating gnucash commodities.
@@ -110,7 +113,7 @@
/** @} */
-/** @name Commodity Tree Model Filter Helper Functions
+/** @name Commodity Tree Model Filter Helper Functions
@{ */
/** Determine whether or not the specified GtkTreeIter points to a
@@ -126,7 +129,7 @@
* @return TRUE if the iter points to a commodity namespace, FALSE
* otherwise. */
gboolean gnc_tree_model_commodity_iter_is_namespace (GncTreeModelCommodity *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Determine whether or not the specified GtkTreeIter points to a
@@ -142,7 +145,7 @@
* @return TRUE if the iter points to a commodity, FALSE
* otherwise. */
gboolean gnc_tree_model_commodity_iter_is_commodity (GncTreeModelCommodity *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Convert a model/iter pair to a gnucash commodity namespace. This
@@ -157,7 +160,7 @@
*
* @return A pointer to the corresponding namespace. */
gnc_commodity_namespace *gnc_tree_model_commodity_get_namespace (GncTreeModelCommodity *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Convert a model/iter pair to a gnucash commodity. This routine
* should only be called from a commodity tree view filter function.
@@ -171,12 +174,12 @@
*
* @return A pointer to the corresponding commodity. */
gnc_commodity *gnc_tree_model_commodity_get_commodity (GncTreeModelCommodity *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** @} */
-/** @name Commodity Tree Model Lookup Functions
+/** @name Commodity Tree Model Lookup Functions
@{ */
/** Convert a commodity namespace pointer into a GtkTreeIter.
@@ -190,8 +193,8 @@
*
* @return TRUE if the returned iter is valid, FALSE otherwise. */
gboolean gnc_tree_model_commodity_get_iter_from_namespace (GncTreeModelCommodity *model,
- gnc_commodity_namespace *namespace,
- GtkTreeIter *iter);
+ gnc_commodity_namespace *namespace,
+ GtkTreeIter *iter);
/** Convert a commodity pointer into a GtkTreeIter.
*
@@ -204,8 +207,8 @@
*
* @return TRUE if the returned iter is valid, FALSE otherwise. */
gboolean gnc_tree_model_commodity_get_iter_from_commodity (GncTreeModelCommodity *model,
- gnc_commodity *commodity,
- GtkTreeIter *iter);
+ gnc_commodity *commodity,
+ GtkTreeIter *iter);
/** Convert a commodity namespace pointer into a GtkTreePath.
*
@@ -218,7 +221,7 @@
* longer needed. This routine will return NULL if the namespace
* does not exist in the tree. */
GtkTreePath *gnc_tree_model_commodity_get_path_from_namespace (GncTreeModelCommodity *model,
- gnc_commodity_namespace *namespace);
+ gnc_commodity_namespace *namespace);
/** Convert a commodity pointer into a GtkTreePath.
*
@@ -231,7 +234,7 @@
* longer needed. This routine will return NULL if the commodity
* does not exist in the tree. */
GtkTreePath *gnc_tree_model_commodity_get_path_from_commodity (GncTreeModelCommodity *model,
- gnc_commodity *commodity);
+ gnc_commodity *commodity);
/** @} */
G_END_DECLS
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -91,44 +91,44 @@
static guint gnc_tree_model_price_get_flags (GtkTreeModel *tree_model);
static int gnc_tree_model_price_get_n_columns (GtkTreeModel *tree_model);
static GType gnc_tree_model_price_get_column_type (GtkTreeModel *tree_model,
- int index);
+ int index);
static gboolean gnc_tree_model_price_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path);
+ GtkTreeIter *iter,
+ GtkTreePath *path);
static GtkTreePath *gnc_tree_model_price_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static void gnc_tree_model_price_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value);
+ GtkTreeIter *iter,
+ int column,
+ GValue *value);
static gboolean gnc_tree_model_price_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_price_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
static gboolean gnc_tree_model_price_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static int gnc_tree_model_price_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_price_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n);
static gboolean gnc_tree_model_price_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child);
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
static void gnc_tree_model_price_event_handler (QofInstance *entity,
- QofEventId event_type,
- gpointer user_data,
- gpointer event_data);
+ QofEventId event_type,
+ gpointer user_data,
+ gpointer event_data);
/** The instance private data for a price database tree model. */
typedef struct GncTreeModelPricePrivate
{
- QofBook *book;
- GNCPriceDB *price_db;
- gint event_handler_id;
- GNCPrintAmountInfo print_info;
+ QofBook *book;
+ GNCPriceDB *price_db;
+ gint event_handler_id;
+ GNCPrintAmountInfo print_info;
} GncTreeModelPricePrivate;
#define GNC_TREE_MODEL_PRICE_GET_PRIVATE(o) \
@@ -140,216 +140,223 @@
GType
gnc_tree_model_price_get_type (void)
{
- static GType gnc_tree_model_price_type = 0;
+ static GType gnc_tree_model_price_type = 0;
- if (gnc_tree_model_price_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeModelPriceClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_model_price_class_init,
- NULL,
- NULL,
- sizeof (GncTreeModelPrice),
- 0,
- (GInstanceInitFunc) gnc_tree_model_price_init
- };
+ if (gnc_tree_model_price_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeModelPriceClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_model_price_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeModelPrice),
+ 0,
+ (GInstanceInitFunc) gnc_tree_model_price_init
+ };
- static const GInterfaceInfo tree_model_info = {
- (GInterfaceInitFunc) gnc_tree_model_price_tree_model_init,
- NULL,
- NULL
- };
+ static const GInterfaceInfo tree_model_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_price_tree_model_init,
+ NULL,
+ NULL
+ };
- gnc_tree_model_price_type = g_type_register_static (GNC_TYPE_TREE_MODEL,
- GNC_TREE_MODEL_PRICE_NAME,
- &our_info, 0);
+ gnc_tree_model_price_type = g_type_register_static (GNC_TYPE_TREE_MODEL,
+ GNC_TREE_MODEL_PRICE_NAME,
+ &our_info, 0);
- g_type_add_interface_static (gnc_tree_model_price_type,
- GTK_TYPE_TREE_MODEL,
- &tree_model_info);
- }
+ g_type_add_interface_static (gnc_tree_model_price_type,
+ GTK_TYPE_TREE_MODEL,
+ &tree_model_info);
+ }
- return gnc_tree_model_price_type;
+ return gnc_tree_model_price_type;
}
static void
gnc_tree_model_price_class_init (GncTreeModelPriceClass *klass)
{
- GObjectClass *o_class = G_OBJECT_CLASS (klass);
+ GObjectClass *o_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class->finalize = gnc_tree_model_price_finalize;
- o_class->dispose = gnc_tree_model_price_dispose;
+ o_class->finalize = gnc_tree_model_price_finalize;
+ o_class->dispose = gnc_tree_model_price_dispose;
- g_type_class_add_private(klass, sizeof(GncTreeModelPricePrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeModelPricePrivate));
}
static void
gnc_tree_model_price_init (GncTreeModelPrice *model)
{
- GncTreeModelPricePrivate *priv;
+ GncTreeModelPricePrivate *priv;
- while (model->stamp == 0) {
- model->stamp = g_random_int ();
- }
+ while (model->stamp == 0)
+ {
+ model->stamp = g_random_int ();
+ }
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- priv->print_info = gnc_share_print_info_places(6);
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ priv->print_info = gnc_share_print_info_places(6);
}
static void
gnc_tree_model_price_finalize (GObject *object)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
- ENTER("model %p", object);
+ ENTER("model %p", object);
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (object));
- model = GNC_TREE_MODEL_PRICE (object);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_PRICE (object);
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- priv->book = NULL;
- priv->price_db = NULL;
+ priv->book = NULL;
+ priv->price_db = NULL;
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE(" ");
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE(" ");
}
static void
gnc_tree_model_price_dispose (GObject *object)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
- ENTER("model %p", object);
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (object));
+ ENTER("model %p", object);
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (object));
- model = GNC_TREE_MODEL_PRICE (object);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_PRICE (object);
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (priv->event_handler_id) {
- qof_event_unregister_handler (priv->event_handler_id);
- priv->event_handler_id = 0;
- }
+ if (priv->event_handler_id)
+ {
+ qof_event_unregister_handler (priv->event_handler_id);
+ priv->event_handler_id = 0;
+ }
- if (G_OBJECT_CLASS (parent_class)->dispose)
- G_OBJECT_CLASS (parent_class)->dispose (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+ LEAVE(" ");
}
GtkTreeModel *
gnc_tree_model_price_new (QofBook *book, GNCPriceDB *price_db)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- const GList *item;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ const GList *item;
- item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_PRICE_NAME);
- for ( ; item; item = g_list_next(item)) {
- model = (GncTreeModelPrice *)item->data;
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (priv->price_db == price_db) {
- g_object_ref(G_OBJECT(model));
- LEAVE("returning existing model %p", model);
- return GTK_TREE_MODEL(model);
- }
- }
+ item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_PRICE_NAME);
+ for ( ; item; item = g_list_next(item))
+ {
+ model = (GncTreeModelPrice *)item->data;
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (priv->price_db == price_db)
+ {
+ g_object_ref(G_OBJECT(model));
+ LEAVE("returning existing model %p", model);
+ return GTK_TREE_MODEL(model);
+ }
+ }
- model = g_object_new (GNC_TYPE_TREE_MODEL_PRICE,
- NULL);
+ model = g_object_new (GNC_TYPE_TREE_MODEL_PRICE,
+ NULL);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- priv->book = book;
- priv->price_db = price_db;
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ priv->book = book;
+ priv->price_db = price_db;
- priv->event_handler_id =
- qof_event_register_handler (gnc_tree_model_price_event_handler, model);
+ priv->event_handler_id =
+ qof_event_register_handler (gnc_tree_model_price_event_handler, model);
- return GTK_TREE_MODEL (model);
+ return GTK_TREE_MODEL (model);
}
gboolean
gnc_tree_model_price_iter_is_namespace (GncTreeModelPrice *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- return (iter->user_data == ITER_IS_NAMESPACE);
+ return (iter->user_data == ITER_IS_NAMESPACE);
}
gboolean
gnc_tree_model_price_iter_is_commodity (GncTreeModelPrice *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- return (iter->user_data == ITER_IS_COMMODITY);
+ return (iter->user_data == ITER_IS_COMMODITY);
}
gboolean
gnc_tree_model_price_iter_is_price (GncTreeModelPrice *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- return (iter->user_data == ITER_IS_PRICE);
+ return (iter->user_data == ITER_IS_PRICE);
}
gnc_commodity_namespace *
gnc_tree_model_price_get_namespace (GncTreeModelPrice *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- if (iter->user_data != ITER_IS_NAMESPACE)
- return NULL;
- return (gnc_commodity_namespace *)iter->user_data2;
+ if (iter->user_data != ITER_IS_NAMESPACE)
+ return NULL;
+ return (gnc_commodity_namespace *)iter->user_data2;
}
gnc_commodity *
gnc_tree_model_price_get_commodity (GncTreeModelPrice *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- if (iter->user_data != ITER_IS_COMMODITY)
- return NULL;
- return (gnc_commodity *)iter->user_data2;
+ if (iter->user_data != ITER_IS_COMMODITY)
+ return NULL;
+ return (gnc_commodity *)iter->user_data2;
}
GNCPrice *
gnc_tree_model_price_get_price (GncTreeModelPrice *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- if (iter->user_data != ITER_IS_PRICE)
- return NULL;
- return (GNCPrice *)iter->user_data2;
+ if (iter->user_data != ITER_IS_PRICE)
+ return NULL;
+ return (GNCPrice *)iter->user_data2;
}
/************************************************************/
@@ -367,66 +374,69 @@
static const gchar *
iter_to_string (GncTreeModelPrice *model, GtkTreeIter *iter)
{
- GncTreeModelPricePrivate *priv;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GNCPrice *price;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GNCPrice *price;
#ifdef G_THREADS_ENABLED
- static GStaticPrivate gtmits_buffer_key = G_STATIC_PRIVATE_INIT;
- gchar *string;
+ static GStaticPrivate gtmits_buffer_key = G_STATIC_PRIVATE_INIT;
+ gchar *string;
- string = g_static_private_get (>mits_buffer_key);
- if (string == NULL) {
- string = g_malloc(ITER_STRING_LEN + 1);
- g_static_private_set (>mits_buffer_key, string, g_free);
- }
+ string = g_static_private_get (>mits_buffer_key);
+ if (string == NULL)
+ {
+ string = g_malloc(ITER_STRING_LEN + 1);
+ g_static_private_set (>mits_buffer_key, string, g_free);
+ }
#else
- static char string[ITER_STRING_LEN + 1];
+ static char string[ITER_STRING_LEN + 1];
#endif
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (iter) {
- switch (GPOINTER_TO_INT(iter->user_data)) {
- case GPOINTER_TO_INT(ITER_IS_NAMESPACE):
- namespace = (gnc_commodity_namespace *) iter->user_data2;
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (NAMESPACE), %p (%s), %d]",
- iter->stamp, GPOINTER_TO_INT(iter->user_data),
- iter->user_data2, gnc_commodity_namespace_get_name (namespace),
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (iter)
+ {
+ switch (GPOINTER_TO_INT(iter->user_data))
+ {
+ case GPOINTER_TO_INT(ITER_IS_NAMESPACE):
+ namespace = (gnc_commodity_namespace *) iter->user_data2;
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (NAMESPACE), %p (%s), %d]",
+ iter->stamp, GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2, gnc_commodity_namespace_get_name (namespace),
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
- case GPOINTER_TO_INT(ITER_IS_COMMODITY):
- commodity = (gnc_commodity *) iter->user_data2;
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (COMMODITY), %p (%s), %d]",
- iter->stamp, GPOINTER_TO_INT(iter->user_data),
- iter->user_data2, gnc_commodity_get_mnemonic (commodity),
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ case GPOINTER_TO_INT(ITER_IS_COMMODITY):
+ commodity = (gnc_commodity *) iter->user_data2;
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (COMMODITY), %p (%s), %d]",
+ iter->stamp, GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2, gnc_commodity_get_mnemonic (commodity),
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
- case GPOINTER_TO_INT(ITER_IS_PRICE):
- price= (GNCPrice *) iter->user_data2;
- commodity = gnc_price_get_commodity(price);
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (PRICE), %p (%s:%s), %d]",
- iter->stamp, GPOINTER_TO_INT(iter->user_data),
- iter->user_data2, gnc_commodity_get_mnemonic (commodity),
- xaccPrintAmount (gnc_price_get_value (price), priv->print_info),
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ case GPOINTER_TO_INT(ITER_IS_PRICE):
+ price = (GNCPrice *) iter->user_data2;
+ commodity = gnc_price_get_commodity(price);
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (PRICE), %p (%s:%s), %d]",
+ iter->stamp, GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2, gnc_commodity_get_mnemonic (commodity),
+ xaccPrintAmount (gnc_price_get_value (price), priv->print_info),
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
- default:
- snprintf(string, ITER_STRING_LEN,
- "[stamp:%x data:%d (UNKNOWN), %p, %d]",
- iter->stamp,
- GPOINTER_TO_INT(iter->user_data),
- iter->user_data2,
- GPOINTER_TO_INT(iter->user_data3));
- break;
+ default:
+ snprintf(string, ITER_STRING_LEN,
+ "[stamp:%x data:%d (UNKNOWN), %p, %d]",
+ iter->stamp,
+ GPOINTER_TO_INT(iter->user_data),
+ iter->user_data2,
+ GPOINTER_TO_INT(iter->user_data3));
+ break;
+ }
}
- }
- return string;
+ return string;
}
@@ -437,667 +447,713 @@
static void
gnc_tree_model_price_tree_model_init (GtkTreeModelIface *iface)
{
- iface->get_flags = gnc_tree_model_price_get_flags;
- iface->get_n_columns = gnc_tree_model_price_get_n_columns;
- iface->get_column_type = gnc_tree_model_price_get_column_type;
- iface->get_iter = gnc_tree_model_price_get_iter;
- iface->get_path = gnc_tree_model_price_get_path;
- iface->get_value = gnc_tree_model_price_get_value;
- iface->iter_next = gnc_tree_model_price_iter_next;
- iface->iter_children = gnc_tree_model_price_iter_children;
- iface->iter_has_child = gnc_tree_model_price_iter_has_child;
- iface->iter_n_children = gnc_tree_model_price_iter_n_children;
- iface->iter_nth_child = gnc_tree_model_price_iter_nth_child;
- iface->iter_parent = gnc_tree_model_price_iter_parent;
+ iface->get_flags = gnc_tree_model_price_get_flags;
+ iface->get_n_columns = gnc_tree_model_price_get_n_columns;
+ iface->get_column_type = gnc_tree_model_price_get_column_type;
+ iface->get_iter = gnc_tree_model_price_get_iter;
+ iface->get_path = gnc_tree_model_price_get_path;
+ iface->get_value = gnc_tree_model_price_get_value;
+ iface->iter_next = gnc_tree_model_price_iter_next;
+ iface->iter_children = gnc_tree_model_price_iter_children;
+ iface->iter_has_child = gnc_tree_model_price_iter_has_child;
+ iface->iter_n_children = gnc_tree_model_price_iter_n_children;
+ iface->iter_nth_child = gnc_tree_model_price_iter_nth_child;
+ iface->iter_parent = gnc_tree_model_price_iter_parent;
}
static guint
gnc_tree_model_price_get_flags (GtkTreeModel *tree_model)
{
- return 0;
+ return 0;
}
static int
gnc_tree_model_price_get_n_columns (GtkTreeModel *tree_model)
{
- return GNC_TREE_MODEL_PRICE_NUM_COLUMNS;
+ return GNC_TREE_MODEL_PRICE_NUM_COLUMNS;
}
static GType
gnc_tree_model_price_get_column_type (GtkTreeModel *tree_model,
- int index)
+ int index)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), G_TYPE_INVALID);
- g_return_val_if_fail ((index < GNC_TREE_MODEL_PRICE_NUM_COLUMNS) && (index >= 0), G_TYPE_INVALID);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), G_TYPE_INVALID);
+ g_return_val_if_fail ((index < GNC_TREE_MODEL_PRICE_NUM_COLUMNS) && (index >= 0), G_TYPE_INVALID);
- switch (index) {
- case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
- case GNC_TREE_MODEL_PRICE_COL_CURRENCY:
- case GNC_TREE_MODEL_PRICE_COL_DATE:
- case GNC_TREE_MODEL_PRICE_COL_SOURCE:
- case GNC_TREE_MODEL_PRICE_COL_TYPE:
- case GNC_TREE_MODEL_PRICE_COL_VALUE:
- return G_TYPE_STRING;
- case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
- return G_TYPE_BOOLEAN;
- default:
- g_assert_not_reached ();
- return G_TYPE_INVALID;
- }
+ switch (index)
+ {
+ case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
+ case GNC_TREE_MODEL_PRICE_COL_CURRENCY:
+ case GNC_TREE_MODEL_PRICE_COL_DATE:
+ case GNC_TREE_MODEL_PRICE_COL_SOURCE:
+ case GNC_TREE_MODEL_PRICE_COL_TYPE:
+ case GNC_TREE_MODEL_PRICE_COL_VALUE:
+ return G_TYPE_STRING;
+ case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
+ return G_TYPE_BOOLEAN;
+ default:
+ g_assert_not_reached ();
+ return G_TYPE_INVALID;
+ }
}
static gboolean
gnc_tree_model_price_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path)
+ GtkTreeIter *iter,
+ GtkTreePath *path)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity = NULL;
- GNCPrice *price;
- GList *ns_list, *cm_list, *price_list;
- guint i, depth;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity = NULL;
+ GNCPrice *price;
+ GList *ns_list, *cm_list, *price_list;
+ guint i, depth;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
- depth = gtk_tree_path_get_depth (path);
- ENTER("model %p, iter %p, path %p (depth %d)", tree_model, iter, path, depth);
- debug_path(DEBUG, path);
+ depth = gtk_tree_path_get_depth (path);
+ ENTER("model %p, iter %p, path %p (depth %d)", tree_model, iter, path, depth);
+ debug_path(DEBUG, path);
- /* Check the path depth. */
- if (depth == 0) {
- LEAVE("depth too small");
- return FALSE;
- }
- if (depth > 3) {
- LEAVE("depth too big");
- return FALSE;
- }
+ /* Check the path depth. */
+ if (depth == 0)
+ {
+ LEAVE("depth too small");
+ return FALSE;
+ }
+ if (depth > 3)
+ {
+ LEAVE("depth too big");
+ return FALSE;
+ }
- /* Make sure the model has a price db. */
- model = GNC_TREE_MODEL_PRICE (tree_model);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (priv->price_db == NULL) {
- LEAVE("no price db");
- return FALSE;
- }
+ /* Make sure the model has a price db. */
+ model = GNC_TREE_MODEL_PRICE (tree_model);
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (priv->price_db == NULL)
+ {
+ LEAVE("no price db");
+ return FALSE;
+ }
- /* Verify the first part of the path: the namespace. */
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- ns_list = gnc_commodity_table_get_namespaces_list(ct);
- i = gtk_tree_path_get_indices (path)[0];
- namespace = g_list_nth_data (ns_list, i);
- if (!namespace) {
- LEAVE("invalid path at namespace");
- return FALSE;
- }
+ /* Verify the first part of the path: the namespace. */
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ ns_list = gnc_commodity_table_get_namespaces_list(ct);
+ i = gtk_tree_path_get_indices (path)[0];
+ namespace = g_list_nth_data (ns_list, i);
+ if (!namespace)
+ {
+ LEAVE("invalid path at namespace");
+ return FALSE;
+ }
- if (depth == 1) {
- /* Return an iterator for the namespace. */
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = namespace;
- iter->user_data3 = GINT_TO_POINTER(i);
- LEAVE("iter (ns) %s", iter_to_string(model, iter));
- return TRUE;
- }
+ if (depth == 1)
+ {
+ /* Return an iterator for the namespace. */
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = namespace;
+ iter->user_data3 = GINT_TO_POINTER(i);
+ LEAVE("iter (ns) %s", iter_to_string(model, iter));
+ return TRUE;
+ }
- /* Verify the second part of the path: the commodity. */
- cm_list = gnc_commodity_namespace_get_commodity_list(namespace);
- i = gtk_tree_path_get_indices (path)[1];
- commodity = g_list_nth_data (cm_list, i);
- if (!commodity) {
- LEAVE("invalid path at commodity");
- return FALSE;
- }
+ /* Verify the second part of the path: the commodity. */
+ cm_list = gnc_commodity_namespace_get_commodity_list(namespace);
+ i = gtk_tree_path_get_indices (path)[1];
+ commodity = g_list_nth_data (cm_list, i);
+ if (!commodity)
+ {
+ LEAVE("invalid path at commodity");
+ return FALSE;
+ }
- if (depth == 2) {
- /* Return an iterator for the commodity. */
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = commodity;
- iter->user_data3 = GINT_TO_POINTER(i);
- LEAVE("iter (cm) %s", iter_to_string(model, iter));
- return TRUE;
- }
+ if (depth == 2)
+ {
+ /* Return an iterator for the commodity. */
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = commodity;
+ iter->user_data3 = GINT_TO_POINTER(i);
+ LEAVE("iter (cm) %s", iter_to_string(model, iter));
+ return TRUE;
+ }
- /* Verify the third part of the path: the price. */
- price_list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
- i = gtk_tree_path_get_indices (path)[2];
- price = g_list_nth_data (price_list, i);
- gnc_price_list_destroy(price_list);
- /* There's a race condition here that I can't resolve.
- * Comment this check out for now, and we'll handle the
- * resulting problem elsewhere. */
+ /* Verify the third part of the path: the price. */
+ price_list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
+ i = gtk_tree_path_get_indices (path)[2];
+ price = g_list_nth_data (price_list, i);
+ gnc_price_list_destroy(price_list);
+ /* There's a race condition here that I can't resolve.
+ * Comment this check out for now, and we'll handle the
+ * resulting problem elsewhere. */
#ifdef RACE_CONDITION_SOLVED
- if (!price) {
- LEAVE("invalid path at price");
- return FALSE;
- }
+ if (!price)
+ {
+ LEAVE("invalid path at price");
+ return FALSE;
+ }
#endif
- /* Return an iterator for the price. */
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_PRICE;
- iter->user_data2 = price;
- iter->user_data3 = GINT_TO_POINTER(i);
- LEAVE("iter (pc) %s", iter_to_string(model, iter));
- return TRUE;
+ /* Return an iterator for the price. */
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_PRICE;
+ iter->user_data2 = price;
+ iter->user_data3 = GINT_TO_POINTER(i);
+ LEAVE("iter (pc) %s", iter_to_string(model, iter));
+ return TRUE;
}
static GtkTreePath *
gnc_tree_model_price_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GList *ns_list, *cm_list;
- GtkTreePath *path;
+ GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GList *ns_list, *cm_list;
+ GtkTreePath *path;
- ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(model, iter));
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->user_data != NULL, NULL);
- g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+ ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(model, iter));
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->stamp, NULL);
- /* Make sure this model has a price db. */
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (priv->price_db == NULL) {
- LEAVE("no price db");
- return FALSE;
- }
+ /* Make sure this model has a price db. */
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (priv->price_db == NULL)
+ {
+ LEAVE("no price db");
+ return FALSE;
+ }
- if (iter->user_data == ITER_IS_NAMESPACE) {
- /* Create a path to the namespace. This is just the index into
- * the namespace list, which we already stored in user_data3. */
- path = gtk_tree_path_new ();
- gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
- debug_path(LEAVE, path);
- return path;
- }
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ /* Create a path to the namespace. This is just the index into
+ * the namespace list, which we already stored in user_data3. */
+ path = gtk_tree_path_new ();
+ gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
+ debug_path(LEAVE, path);
+ return path;
+ }
- /* Get the namespaces list. */
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- ns_list = gnc_commodity_table_get_namespaces_list(ct);
+ /* Get the namespaces list. */
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ ns_list = gnc_commodity_table_get_namespaces_list(ct);
- if (iter->user_data == ITER_IS_COMMODITY) {
- /* Create a path to the commodity. */
- commodity = (gnc_commodity*)iter->user_data2;
- namespace = gnc_commodity_get_namespace_ds(commodity);
- path = gtk_tree_path_new ();
- gtk_tree_path_append_index (path, g_list_index (ns_list, namespace));
- gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
- debug_path(LEAVE, path);
- return path;
- }
+ if (iter->user_data == ITER_IS_COMMODITY)
+ {
+ /* Create a path to the commodity. */
+ commodity = (gnc_commodity*)iter->user_data2;
+ namespace = gnc_commodity_get_namespace_ds(commodity);
+ path = gtk_tree_path_new ();
+ gtk_tree_path_append_index (path, g_list_index (ns_list, namespace));
+ gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
+ debug_path(LEAVE, path);
+ return path;
+ }
- /* Create a path to the price. */
- commodity = gnc_price_get_commodity((GNCPrice*)iter->user_data2);
- namespace = gnc_commodity_get_namespace_ds(commodity);
- cm_list = gnc_commodity_namespace_get_commodity_list(namespace);
- path = gtk_tree_path_new ();
- gtk_tree_path_append_index (path, g_list_index (ns_list, namespace));
- gtk_tree_path_append_index (path, g_list_index (cm_list, commodity));
- gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
- debug_path(LEAVE, path);
- return path;
+ /* Create a path to the price. */
+ commodity = gnc_price_get_commodity((GNCPrice*)iter->user_data2);
+ namespace = gnc_commodity_get_namespace_ds(commodity);
+ cm_list = gnc_commodity_namespace_get_commodity_list(namespace);
+ path = gtk_tree_path_new ();
+ gtk_tree_path_append_index (path, g_list_index (ns_list, namespace));
+ gtk_tree_path_append_index (path, g_list_index (cm_list, commodity));
+ gtk_tree_path_append_index (path, GPOINTER_TO_INT(iter->user_data3));
+ debug_path(LEAVE, path);
+ return path;
}
static void
gnc_tree_model_price_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value)
+ GtkTreeIter *iter,
+ int column,
+ GValue *value)
{
- GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
- GncTreeModelPricePrivate *priv;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GNCPrice *price;
+ GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GNCPrice *price;
- g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (model));
- g_return_if_fail (iter != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (model));
+ g_return_if_fail (iter != NULL);
#ifdef RACE_CONDITION_SOLVED
- g_return_if_fail (iter->user_data != NULL);
+ g_return_if_fail (iter->user_data != NULL);
#endif
- g_return_if_fail (iter->stamp == model->stamp);
+ g_return_if_fail (iter->stamp == model->stamp);
- if (iter->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)iter->user_data2;
- switch (column) {
- case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_namespace_get_name (namespace));
- break;
- case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, FALSE);
- break;
- default:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, "");
- break;
- }
- return;
- }
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)iter->user_data2;
+ switch (column)
+ {
+ case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_namespace_get_name (namespace));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, FALSE);
+ break;
+ default:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, "");
+ break;
+ }
+ return;
+ }
- if (iter->user_data == ITER_IS_COMMODITY) {
- commodity = (gnc_commodity *)iter->user_data2;
- switch (column) {
- case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_commodity_get_printname (commodity));
- break;
- case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, FALSE);
- break;
- default:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, "");
- break;
- }
- return;
- }
+ if (iter->user_data == ITER_IS_COMMODITY)
+ {
+ commodity = (gnc_commodity *)iter->user_data2;
+ switch (column)
+ {
+ case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_commodity_get_printname (commodity));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, FALSE);
+ break;
+ default:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, "");
+ break;
+ }
+ return;
+ }
- price = (GNCPrice *)iter->user_data2;
+ price = (GNCPrice *)iter->user_data2;
#ifdef RACE_CONDITION_SOLVED
- g_return_if_fail (price != NULL);
+ g_return_if_fail (price != NULL);
#else
- if (price == NULL) {
- switch (column) {
- case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, "");
- break;
- case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, FALSE);
- break;
- default:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, "");
- break;
- }
- return;
- }
+ if (price == NULL)
+ {
+ switch (column)
+ {
+ case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, "");
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, FALSE);
+ break;
+ default:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, "");
+ break;
+ }
+ return;
+ }
#endif
- switch (column) {
- case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
- g_value_init (value, G_TYPE_STRING);
- commodity = gnc_price_get_commodity (price);
- g_value_set_string (value, gnc_commodity_get_printname (commodity));
- break;
- case GNC_TREE_MODEL_PRICE_COL_CURRENCY:
- g_value_init (value, G_TYPE_STRING);
- commodity = gnc_price_get_currency (price);
- g_value_set_string (value, gnc_commodity_get_printname (commodity));
- break;
- case GNC_TREE_MODEL_PRICE_COL_DATE:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_print_date (gnc_price_get_time (price)));
- break;
- case GNC_TREE_MODEL_PRICE_COL_SOURCE:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gettext (gnc_price_get_source (price)));
- break;
- case GNC_TREE_MODEL_PRICE_COL_TYPE:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, gnc_price_get_typestr (price));
- break;
- case GNC_TREE_MODEL_PRICE_COL_VALUE:
- g_value_init (value, G_TYPE_STRING);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- g_value_set_string (value, xaccPrintAmount (gnc_price_get_value (price),
- priv->print_info));
- break;
- case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, TRUE);
- break;
- default:
- g_assert_not_reached ();
- }
+ switch (column)
+ {
+ case GNC_TREE_MODEL_PRICE_COL_COMMODITY:
+ g_value_init (value, G_TYPE_STRING);
+ commodity = gnc_price_get_commodity (price);
+ g_value_set_string (value, gnc_commodity_get_printname (commodity));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_CURRENCY:
+ g_value_init (value, G_TYPE_STRING);
+ commodity = gnc_price_get_currency (price);
+ g_value_set_string (value, gnc_commodity_get_printname (commodity));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_DATE:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_print_date (gnc_price_get_time (price)));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_SOURCE:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gettext (gnc_price_get_source (price)));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_TYPE:
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, gnc_price_get_typestr (price));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_VALUE:
+ g_value_init (value, G_TYPE_STRING);
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ g_value_set_string (value, xaccPrintAmount (gnc_price_get_value (price),
+ priv->print_info));
+ break;
+ case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, TRUE);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
}
static gboolean
gnc_tree_model_price_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity *commodity;
- gnc_commodity_namespace *namespace;
- GList *list;
- gint n;
+ GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity *commodity;
+ gnc_commodity_namespace *namespace;
+ GList *list;
+ gint n;
- ENTER("model %p, iter %p(%s)", tree_model, iter, iter_to_string(model, iter));
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->user_data != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ ENTER("model %p, iter %p(%s)", tree_model, iter, iter_to_string(model, iter));
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (iter->user_data == ITER_IS_NAMESPACE) {
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- list = gnc_commodity_table_get_namespaces_list(ct);
- n = GPOINTER_TO_INT(iter->user_data3) + 1;
- iter->user_data2 = g_list_nth_data(list, n);
- if (iter->user_data2 == NULL) {
- LEAVE("no next iter");
- return FALSE;
- }
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %p(%s)", iter, iter_to_string(model, iter));
- return TRUE;
- } else if (iter->user_data == ITER_IS_COMMODITY) {
- namespace = gnc_commodity_get_namespace_ds((gnc_commodity *)iter->user_data2);
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- n = GPOINTER_TO_INT(iter->user_data3) + 1;
- iter->user_data2 = g_list_nth_data(list, n);
- if (iter->user_data2 == NULL) {
- LEAVE("no next iter");
- return FALSE;
- }
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %p(%s)", iter, iter_to_string(model, iter));
- return TRUE;
- } else if (iter->user_data == ITER_IS_PRICE) {
- commodity = gnc_price_get_commodity((GNCPrice*)iter->user_data2);
- n = GPOINTER_TO_INT(iter->user_data3) + 1;
- list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
- iter->user_data2 = g_list_nth_data(list, n);
- gnc_price_list_destroy(list);
- if (iter->user_data2 == NULL) {
- LEAVE("no next iter");
- return FALSE;
- }
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %p(%s)", iter, iter_to_string(model, iter));
- return TRUE;
- } else {
- LEAVE("unknown iter type");
- return FALSE;
- }
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ n = GPOINTER_TO_INT(iter->user_data3) + 1;
+ iter->user_data2 = g_list_nth_data(list, n);
+ if (iter->user_data2 == NULL)
+ {
+ LEAVE("no next iter");
+ return FALSE;
+ }
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %p(%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
+ else if (iter->user_data == ITER_IS_COMMODITY)
+ {
+ namespace = gnc_commodity_get_namespace_ds((gnc_commodity *)iter->user_data2);
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ n = GPOINTER_TO_INT(iter->user_data3) + 1;
+ iter->user_data2 = g_list_nth_data(list, n);
+ if (iter->user_data2 == NULL)
+ {
+ LEAVE("no next iter");
+ return FALSE;
+ }
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %p(%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
+ else if (iter->user_data == ITER_IS_PRICE)
+ {
+ commodity = gnc_price_get_commodity((GNCPrice*)iter->user_data2);
+ n = GPOINTER_TO_INT(iter->user_data3) + 1;
+ list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
+ iter->user_data2 = g_list_nth_data(list, n);
+ gnc_price_list_destroy(list);
+ if (iter->user_data2 == NULL)
+ {
+ LEAVE("no next iter");
+ return FALSE;
+ }
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %p(%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
+ else
+ {
+ LEAVE("unknown iter type");
+ return FALSE;
+ }
}
static gboolean
gnc_tree_model_price_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GList *list;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GList *list;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
- model = GNC_TREE_MODEL_PRICE (tree_model);
- ENTER("model %p, iter %p, parent %p (%s)",
- tree_model, iter, parent, iter_to_string(model, parent));
+ model = GNC_TREE_MODEL_PRICE (tree_model);
+ ENTER("model %p, iter %p, parent %p (%s)",
+ tree_model, iter, parent, iter_to_string(model, parent));
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (parent == NULL) {
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- list = gnc_commodity_table_get_namespaces_list(ct);
- if (list == NULL) {
- LEAVE("no namespaces");
- return FALSE;
- }
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (parent == NULL)
+ {
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ if (list == NULL)
+ {
+ LEAVE("no namespaces");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = g_list_nth_data(list, 0);
- iter->user_data3 = GINT_TO_POINTER(0);
- LEAVE("ns iter %p (%s)", iter, iter_to_string(model, iter));
- return TRUE;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = g_list_nth_data(list, 0);
+ iter->user_data3 = GINT_TO_POINTER(0);
+ LEAVE("ns iter %p (%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
- if (parent->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)parent->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- if (list == NULL) {
- LEAVE("no commodities");
- return FALSE;
- }
+ if (parent->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)parent->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ if (list == NULL)
+ {
+ LEAVE("no commodities");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = g_list_nth_data(list, 0);
- iter->user_data3 = GINT_TO_POINTER(0);
- LEAVE("cm iter %p (%s)", iter, iter_to_string(model, iter));
- return TRUE;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = g_list_nth_data(list, 0);
+ iter->user_data3 = GINT_TO_POINTER(0);
+ LEAVE("cm iter %p (%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
- if (parent->user_data == ITER_IS_COMMODITY) {
- commodity = (gnc_commodity *)parent->user_data2;
- list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
- if (list == NULL) {
- LEAVE("no prices");
- return FALSE;
- }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_PRICE;
- iter->user_data2 = g_list_nth_data(list, 0);
- iter->user_data3 = GINT_TO_POINTER(0);
- gnc_price_list_destroy(list);
- LEAVE("price iter %p (%s)", iter, iter_to_string(model, iter));
- return TRUE;
- }
+ if (parent->user_data == ITER_IS_COMMODITY)
+ {
+ commodity = (gnc_commodity *)parent->user_data2;
+ list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
+ if (list == NULL)
+ {
+ LEAVE("no prices");
+ return FALSE;
+ }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_PRICE;
+ iter->user_data2 = g_list_nth_data(list, 0);
+ iter->user_data3 = GINT_TO_POINTER(0);
+ gnc_price_list_destroy(list);
+ LEAVE("price iter %p (%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
- LEAVE("FALSE");
- return FALSE;
+ LEAVE("FALSE");
+ return FALSE;
}
static gboolean
gnc_tree_model_price_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- gboolean result;
- GList *list;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ gboolean result;
+ GList *list;
- model = GNC_TREE_MODEL_PRICE (tree_model);
- ENTER("model %p, iter %p (%s)", tree_model,
- iter, iter_to_string(model, iter));
- g_return_val_if_fail (tree_model != NULL, FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
+ model = GNC_TREE_MODEL_PRICE (tree_model);
+ ENTER("model %p, iter %p (%s)", tree_model,
+ iter, iter_to_string(model, iter));
+ g_return_val_if_fail (tree_model != NULL, FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (iter->user_data == ITER_IS_PRICE) {
- LEAVE("price has no children");
- return FALSE;
- }
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (iter->user_data == ITER_IS_PRICE)
+ {
+ LEAVE("price has no children");
+ return FALSE;
+ }
- if (iter->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)iter->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- LEAVE("%s children", list ? "has" : "no");
- return list != NULL;
- }
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)iter->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ LEAVE("%s children", list ? "has" : "no");
+ return list != NULL;
+ }
- if (iter->user_data == ITER_IS_COMMODITY) {
- commodity = (gnc_commodity *)iter->user_data2;
- result = gnc_pricedb_has_prices(priv->price_db, commodity, NULL);
- LEAVE("%s children", result ? "has" : "no");
- return result;
- }
+ if (iter->user_data == ITER_IS_COMMODITY)
+ {
+ commodity = (gnc_commodity *)iter->user_data2;
+ result = gnc_pricedb_has_prices(priv->price_db, commodity, NULL);
+ LEAVE("%s children", result ? "has" : "no");
+ return result;
+ }
- LEAVE("no children (unknown type)");
- return FALSE;
+ LEAVE("no children (unknown type)");
+ return FALSE;
}
static int
gnc_tree_model_price_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GList *list;
- gint n;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GList *list;
+ gint n;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), -1);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), -1);
- model = GNC_TREE_MODEL_PRICE (tree_model);
- ENTER("model %p, iter %p (%s)", tree_model, iter,
- iter_to_string(model, iter));
+ model = GNC_TREE_MODEL_PRICE (tree_model);
+ ENTER("model %p, iter %p (%s)", tree_model, iter,
+ iter_to_string(model, iter));
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (iter == NULL) {
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- list = gnc_commodity_table_get_namespaces_list(ct);
- LEAVE("ns list length %d", g_list_length(list));
- return g_list_length (list);
- }
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (iter == NULL)
+ {
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ LEAVE("ns list length %d", g_list_length(list));
+ return g_list_length (list);
+ }
- if (iter->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)iter->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- LEAVE("cm list length %d", g_list_length(list));
- return g_list_length (list);
- }
+ if (iter->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)iter->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ LEAVE("cm list length %d", g_list_length(list));
+ return g_list_length (list);
+ }
- if (iter->user_data == ITER_IS_COMMODITY) {
- commodity = (gnc_commodity *)iter->user_data2;
- list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
- n = g_list_length(list);
- gnc_price_list_destroy(list);
- LEAVE("price list length %d", n);
- return n;
- }
+ if (iter->user_data == ITER_IS_COMMODITY)
+ {
+ commodity = (gnc_commodity *)iter->user_data2;
+ list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
+ n = g_list_length(list);
+ gnc_price_list_destroy(list);
+ LEAVE("price list length %d", n);
+ return n;
+ }
- LEAVE("0");
- return 0;
+ LEAVE("0");
+ return 0;
}
static gboolean
gnc_tree_model_price_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GList *list;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GList *list;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- model = GNC_TREE_MODEL_PRICE (tree_model);
- ENTER("model %p, iter %p, parent %p (%s), n %d",
- tree_model, iter, parent, iter_to_string(model, parent), n);
+ model = GNC_TREE_MODEL_PRICE (tree_model);
+ ENTER("model %p, iter %p, parent %p (%s), n %d",
+ tree_model, iter, parent, iter_to_string(model, parent), n);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (parent == NULL) {
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- list = gnc_commodity_table_get_namespaces_list(ct);
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (parent == NULL)
+ {
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ list = gnc_commodity_table_get_namespaces_list(ct);
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = g_list_nth_data(list, n);
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("ns iter %p (%s)", iter, iter_to_string(model, iter));
- return iter->user_data2 != NULL;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = g_list_nth_data(list, n);
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("ns iter %p (%s)", iter, iter_to_string(model, iter));
+ return iter->user_data2 != NULL;
+ }
- if (parent->user_data == ITER_IS_NAMESPACE) {
- namespace = (gnc_commodity_namespace *)parent->user_data2;
- list = gnc_commodity_namespace_get_commodity_list(namespace);
+ if (parent->user_data == ITER_IS_NAMESPACE)
+ {
+ namespace = (gnc_commodity_namespace *)parent->user_data2;
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = g_list_nth_data(list, n);
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("cm iter %p (%s)", iter, iter_to_string(model, iter));
- return iter->user_data2 != NULL;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = g_list_nth_data(list, n);
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("cm iter %p (%s)", iter, iter_to_string(model, iter));
+ return iter->user_data2 != NULL;
+ }
- if (parent->user_data == ITER_IS_COMMODITY) {
- commodity = (gnc_commodity *)parent->user_data2;
- list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
+ if (parent->user_data == ITER_IS_COMMODITY)
+ {
+ commodity = (gnc_commodity *)parent->user_data2;
+ list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_PRICE;
- iter->user_data2 = g_list_nth_data(list, n);
- iter->user_data3 = GINT_TO_POINTER(n);
- gnc_price_list_destroy(list);
- LEAVE("price iter %p (%s)", iter, iter_to_string(model, iter));
- return iter->user_data2 != NULL;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_PRICE;
+ iter->user_data2 = g_list_nth_data(list, n);
+ iter->user_data3 = GINT_TO_POINTER(n);
+ gnc_price_list_destroy(list);
+ LEAVE("price iter %p (%s)", iter, iter_to_string(model, iter));
+ return iter->user_data2 != NULL;
+ }
- iter->stamp = 0;
- LEAVE("FALSE");
- return FALSE;
+ iter->stamp = 0;
+ LEAVE("FALSE");
+ return FALSE;
}
static gboolean
gnc_tree_model_price_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child)
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
{
- GncTreeModelPrice *model;
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- gnc_commodity * commodity;
- gnc_commodity_namespace *namespace;
- GList *list;
+ GncTreeModelPrice *model;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ gnc_commodity * commodity;
+ gnc_commodity_namespace *namespace;
+ GList *list;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (child != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (child != NULL, FALSE);
- model = GNC_TREE_MODEL_PRICE (tree_model);
- ENTER("model %p, iter %p, child %p (%s)",
- tree_model, iter, child, iter_to_string(model, child));
+ model = GNC_TREE_MODEL_PRICE (tree_model);
+ ENTER("model %p, iter %p, child %p (%s)",
+ tree_model, iter, child, iter_to_string(model, child));
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- if (child->user_data == ITER_IS_NAMESPACE) {
- LEAVE("ns has no parent");
- return FALSE;
- }
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ if (child->user_data == ITER_IS_NAMESPACE)
+ {
+ LEAVE("ns has no parent");
+ return FALSE;
+ }
- if (child->user_data == ITER_IS_COMMODITY) {
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- list = gnc_commodity_table_get_namespaces_list(ct);
- namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)child->user_data2);
+ if (child->user_data == ITER_IS_COMMODITY)
+ {
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)child->user_data2);
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = namespace;
- iter->user_data3 = GINT_TO_POINTER(g_list_index(list, namespace));
- LEAVE("ns iter %p (%s)", iter, iter_to_string(model, iter));
- return TRUE;
- }
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = namespace;
+ iter->user_data3 = GINT_TO_POINTER(g_list_index(list, namespace));
+ LEAVE("ns iter %p (%s)", iter, iter_to_string(model, iter));
+ return TRUE;
+ }
- commodity = gnc_price_get_commodity ((GNCPrice*)child->user_data2);
- namespace = gnc_commodity_get_namespace_ds(commodity);
- list = gnc_commodity_namespace_get_commodity_list(namespace);
+ commodity = gnc_price_get_commodity ((GNCPrice*)child->user_data2);
+ namespace = gnc_commodity_get_namespace_ds(commodity);
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = commodity;
- iter->user_data3 = GINT_TO_POINTER(g_list_index(list, commodity));
- LEAVE("cm iter %p (%s)", iter, iter_to_string(model, iter));
- return TRUE;
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = commodity;
+ iter->user_data3 = GINT_TO_POINTER(g_list_index(list, commodity));
+ LEAVE("cm iter %p (%s)", iter, iter_to_string(model, iter));
+ return TRUE;
}
/************************************************************/
@@ -1111,46 +1167,49 @@
*/
gboolean
gnc_tree_model_price_get_iter_from_price (GncTreeModelPrice *model,
- GNCPrice *price,
- GtkTreeIter *iter)
+ GNCPrice *price,
+ GtkTreeIter *iter)
{
- GncTreeModelPricePrivate *priv;
- gnc_commodity *commodity;
- GList *list;
- gint n;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity *commodity;
+ GList *list;
+ gint n;
- ENTER("model %p, price %p, iter %p", model, price, iter);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail ((price != NULL), FALSE);
- g_return_val_if_fail ((iter != NULL), FALSE);
+ ENTER("model %p, price %p, iter %p", model, price, iter);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail ((price != NULL), FALSE);
+ g_return_val_if_fail ((iter != NULL), FALSE);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- commodity = gnc_price_get_commodity(price);
- if (commodity == NULL) {
- LEAVE("no commodity");
- return FALSE;
- }
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ commodity = gnc_price_get_commodity(price);
+ if (commodity == NULL)
+ {
+ LEAVE("no commodity");
+ return FALSE;
+ }
- list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
- if (list == NULL) {
- LEAVE("empty list");
- return FALSE;
- }
+ list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
+ if (list == NULL)
+ {
+ LEAVE("empty list");
+ return FALSE;
+ }
- n = g_list_index(list, price);
- if (n == -1) {
- gnc_price_list_destroy(list);
- LEAVE("not in list");
- return FALSE;
- }
+ n = g_list_index(list, price);
+ if (n == -1)
+ {
+ gnc_price_list_destroy(list);
+ LEAVE("not in list");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_PRICE;
- iter->user_data2 = price;
- iter->user_data3 = GINT_TO_POINTER(n);
- gnc_price_list_destroy(list);
- LEAVE("iter %s", iter_to_string(model, iter));
- return TRUE;
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_PRICE;
+ iter->user_data2 = price;
+ iter->user_data3 = GINT_TO_POINTER(n);
+ gnc_price_list_destroy(list);
+ LEAVE("iter %s", iter_to_string(model, iter));
+ return TRUE;
}
/*
@@ -1160,29 +1219,33 @@
*/
GtkTreePath *
gnc_tree_model_price_get_path_from_price (GncTreeModelPrice *model,
- GNCPrice *price)
+ GNCPrice *price)
{
- GtkTreeIter tree_iter;
- GtkTreePath *tree_path;
+ GtkTreeIter tree_iter;
+ GtkTreePath *tree_path;
- ENTER("model %p, price %p", model, price);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (price != NULL, NULL);
+ ENTER("model %p, price %p", model, price);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (price != NULL, NULL);
- if (!gnc_tree_model_price_get_iter_from_price (model, price, &tree_iter)) {
- LEAVE("no iter");
- return NULL;
- }
+ if (!gnc_tree_model_price_get_iter_from_price (model, price, &tree_iter))
+ {
+ LEAVE("no iter");
+ return NULL;
+ }
- tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
- if (tree_path) {
- gchar *path_string = gtk_tree_path_to_string(tree_path);
- LEAVE("path (2) %s", path_string);
- g_free(path_string);
- } else {
- LEAVE("no path");
- }
- return tree_path;
+ tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
+ if (tree_path)
+ {
+ gchar *path_string = gtk_tree_path_to_string(tree_path);
+ LEAVE("path (2) %s", path_string);
+ g_free(path_string);
+ }
+ else
+ {
+ LEAVE("no path");
+ }
+ return tree_path;
}
/*
@@ -1192,42 +1255,45 @@
*/
gboolean
gnc_tree_model_price_get_iter_from_commodity (GncTreeModelPrice *model,
- gnc_commodity *commodity,
- GtkTreeIter *iter)
+ gnc_commodity *commodity,
+ GtkTreeIter *iter)
{
- gnc_commodity_namespace *namespace;
- GList *list;
- gint n;
+ gnc_commodity_namespace *namespace;
+ GList *list;
+ gint n;
- ENTER("model %p, commodity %p, iter %p", model, commodity, iter);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail ((commodity != NULL), FALSE);
- g_return_val_if_fail ((iter != NULL), FALSE);
+ ENTER("model %p, commodity %p, iter %p", model, commodity, iter);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail ((commodity != NULL), FALSE);
+ g_return_val_if_fail ((iter != NULL), FALSE);
- namespace = gnc_commodity_get_namespace_ds(commodity);
- if (namespace == NULL) {
- LEAVE("no namespace");
- return FALSE;
- }
+ namespace = gnc_commodity_get_namespace_ds(commodity);
+ if (namespace == NULL)
+ {
+ LEAVE("no namespace");
+ return FALSE;
+ }
- list = gnc_commodity_namespace_get_commodity_list(namespace);
- if (list == NULL) {
- LEAVE("empty list");
- return FALSE;
- }
+ list = gnc_commodity_namespace_get_commodity_list(namespace);
+ if (list == NULL)
+ {
+ LEAVE("empty list");
+ return FALSE;
+ }
- n = g_list_index(list, commodity);
- if (n == -1) {
- LEAVE("not in list");
- return FALSE;
- }
+ n = g_list_index(list, commodity);
+ if (n == -1)
+ {
+ LEAVE("not in list");
+ return FALSE;
+ }
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_COMMODITY;
- iter->user_data2 = commodity;
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %s", iter_to_string(model, iter));
- return TRUE;
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_COMMODITY;
+ iter->user_data2 = commodity;
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %s", iter_to_string(model, iter));
+ return TRUE;
}
/*
@@ -1237,29 +1303,33 @@
*/
GtkTreePath *
gnc_tree_model_price_get_path_from_commodity (GncTreeModelPrice *model,
- gnc_commodity *commodity)
+ gnc_commodity *commodity)
{
- GtkTreeIter tree_iter;
- GtkTreePath *tree_path;
+ GtkTreeIter tree_iter;
+ GtkTreePath *tree_path;
- ENTER("model %p, commodity %p", model, commodity);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (commodity != NULL, NULL);
+ ENTER("model %p, commodity %p", model, commodity);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (commodity != NULL, NULL);
- if (!gnc_tree_model_price_get_iter_from_commodity (model, commodity, &tree_iter)) {
- LEAVE("no iter");
- return NULL;
- }
+ if (!gnc_tree_model_price_get_iter_from_commodity (model, commodity, &tree_iter))
+ {
+ LEAVE("no iter");
+ return NULL;
+ }
- tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
- if (tree_path) {
- gchar *path_string = gtk_tree_path_to_string(tree_path);
- LEAVE("path (2) %s", path_string);
- g_free(path_string);
- } else {
- LEAVE("no path");
- }
- return tree_path;
+ tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
+ if (tree_path)
+ {
+ gchar *path_string = gtk_tree_path_to_string(tree_path);
+ LEAVE("path (2) %s", path_string);
+ g_free(path_string);
+ }
+ else
+ {
+ LEAVE("no path");
+ }
+ return tree_path;
}
/*
@@ -1269,35 +1339,35 @@
*/
gboolean
gnc_tree_model_price_get_iter_from_namespace (GncTreeModelPrice *model,
- gnc_commodity_namespace *namespace,
- GtkTreeIter *iter)
+ gnc_commodity_namespace *namespace,
+ GtkTreeIter *iter)
{
- GncTreeModelPricePrivate *priv;
- gnc_commodity_table *ct;
- GList *list;
- gint n;
+ GncTreeModelPricePrivate *priv;
+ gnc_commodity_table *ct;
+ GList *list;
+ gint n;
- ENTER("model %p, namespace %p, iter %p", model, namespace, iter);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail ((namespace != NULL), FALSE);
- g_return_val_if_fail ((iter != NULL), FALSE);
+ ENTER("model %p, namespace %p, iter %p", model, namespace, iter);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail ((namespace != NULL), FALSE);
+ g_return_val_if_fail ((iter != NULL), FALSE);
- priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
- ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
- list = gnc_commodity_table_get_namespaces_list(ct);
- if (list == NULL)
- return FALSE;
+ priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+ ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
+ list = gnc_commodity_table_get_namespaces_list(ct);
+ if (list == NULL)
+ return FALSE;
- n = g_list_index(list, namespace);
- if (n == -1)
- return FALSE;
+ n = g_list_index(list, namespace);
+ if (n == -1)
+ return FALSE;
- iter->stamp = model->stamp;
- iter->user_data = ITER_IS_NAMESPACE;
- iter->user_data2 = namespace;
- iter->user_data3 = GINT_TO_POINTER(n);
- LEAVE("iter %s", iter_to_string(model, iter));
- return TRUE;
+ iter->stamp = model->stamp;
+ iter->user_data = ITER_IS_NAMESPACE;
+ iter->user_data2 = namespace;
+ iter->user_data3 = GINT_TO_POINTER(n);
+ LEAVE("iter %s", iter_to_string(model, iter));
+ return TRUE;
}
/*
@@ -1307,38 +1377,43 @@
*/
GtkTreePath *
gnc_tree_model_price_get_path_from_namespace (GncTreeModelPrice *model,
- gnc_commodity_namespace *namespace)
+ gnc_commodity_namespace *namespace)
{
- GtkTreeIter tree_iter;
- GtkTreePath *tree_path;
+ GtkTreeIter tree_iter;
+ GtkTreePath *tree_path;
- ENTER("model %p, namespace %p", model, namespace);
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
- g_return_val_if_fail (namespace != NULL, NULL);
+ ENTER("model %p, namespace %p", model, namespace);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), NULL);
+ g_return_val_if_fail (namespace != NULL, NULL);
- if (!gnc_tree_model_price_get_iter_from_namespace (model, namespace, &tree_iter)) {
- LEAVE("no iter");
- return NULL;
- }
+ if (!gnc_tree_model_price_get_iter_from_namespace (model, namespace, &tree_iter))
+ {
+ LEAVE("no iter");
+ return NULL;
+ }
- tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
- if (tree_path) {
- gchar *path_string = gtk_tree_path_to_string(tree_path);
- LEAVE("path (2) %s", path_string);
- g_free(path_string);
- } else {
- LEAVE("no path");
- }
- return tree_path;
+ tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &tree_iter);
+ if (tree_path)
+ {
+ gchar *path_string = gtk_tree_path_to_string(tree_path);
+ LEAVE("path (2) %s", path_string);
+ g_free(path_string);
+ }
+ else
+ {
+ LEAVE("no path");
+ }
+ return tree_path;
}
/************************************************************/
/* Price Tree Model - Engine Event Handling Functions */
/************************************************************/
-typedef struct _remove_data {
- GncTreeModelPrice *model;
- GtkTreePath *path;
+typedef struct _remove_data
+{
+ GncTreeModelPrice *model;
+ GtkTreePath *path;
} remove_data;
static GSList *pending_removals = NULL;
@@ -1358,63 +1433,67 @@
gnc_tree_model_price_row_add (GncTreeModelPrice *model,
GtkTreeIter *iter)
{
- GtkTreePath *path;
- GtkTreeModel *tree_model;
- GtkTreeIter tmp_iter;
- gint i;
+ GtkTreePath *path;
+ GtkTreeModel *tree_model;
+ GtkTreeIter tmp_iter;
+ gint i;
- ENTER("model %p, iter (%p)%s", model, iter, iter_to_string(model, iter));
+ ENTER("model %p, iter (%p)%s", model, iter, iter_to_string(model, iter));
- /* We're adding a row, so the lists on which this model is based have
- * changed. Since existing iterators (except the one just passed in)
- * are all based on old indexes into those lists, we need to invalidate
- * them, which we can do by changing the model's stamp. */
- do {
- model->stamp++;
- } while (model->stamp == 0);
- iter->stamp = model->stamp;
+ /* We're adding a row, so the lists on which this model is based have
+ * changed. Since existing iterators (except the one just passed in)
+ * are all based on old indexes into those lists, we need to invalidate
+ * them, which we can do by changing the model's stamp. */
+ do
+ {
+ model->stamp++;
+ }
+ while (model->stamp == 0);
+ iter->stamp = model->stamp;
- /* Tag the new row as inserted. */
- tree_model = GTK_TREE_MODEL(model);
- path = gnc_tree_model_price_get_path (tree_model, iter);
- gtk_tree_model_row_inserted (tree_model, path, iter);
+ /* Tag the new row as inserted. */
+ tree_model = GTK_TREE_MODEL(model);
+ path = gnc_tree_model_price_get_path (tree_model, iter);
+ gtk_tree_model_row_inserted (tree_model, path, iter);
- /* Inform all ancestors. */
- /*
- * Charles Day: I don't think calls to gtk_tree_model_row_changed() should
- * be necessary. It is just a workaround for bug #540201.
- */
- if (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &tmp_iter, path)) {
- /* Signal the change to the parent. */
- gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+ /* Inform all ancestors. */
+ /*
+ * Charles Day: I don't think calls to gtk_tree_model_row_changed() should
+ * be necessary. It is just a workaround for bug #540201.
+ */
+ if (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &tmp_iter, path))
+ {
+ /* Signal the change to the parent. */
+ gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
- /* Is this the parent's first child? */
- if (gtk_tree_model_iter_n_children(tree_model, &tmp_iter) == 1)
- gtk_tree_model_row_has_child_toggled(tree_model, path, &tmp_iter);
+ /* Is this the parent's first child? */
+ if (gtk_tree_model_iter_n_children(tree_model, &tmp_iter) == 1)
+ gtk_tree_model_row_has_child_toggled(tree_model, path, &tmp_iter);
- /* Signal any other ancestors. */
- while (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &tmp_iter, path)) {
- gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+ /* Signal any other ancestors. */
+ while (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &tmp_iter, path))
+ {
+ gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+ }
}
- }
- gtk_tree_path_free(path);
+ gtk_tree_path_free(path);
- /* If the new row already has children, signal that so the expander
- * can be shown. This can happen, for example, if a namespace or
- * commodity is changed in another place (like the Security Editor)
- * and gets removed and then re-added to the commodity db. */
- if (gnc_tree_model_price_iter_has_child(tree_model, iter))
- {
- path = gnc_tree_model_price_get_path(tree_model, iter);
- gtk_tree_model_row_has_child_toggled(tree_model, path, iter);
- gtk_tree_path_free(path);
- }
-
- LEAVE(" ");
+ /* If the new row already has children, signal that so the expander
+ * can be shown. This can happen, for example, if a namespace or
+ * commodity is changed in another place (like the Security Editor)
+ * and gets removed and then re-added to the commodity db. */
+ if (gnc_tree_model_price_iter_has_child(tree_model, iter))
+ {
+ path = gnc_tree_model_price_get_path(tree_model, iter);
+ gtk_tree_model_row_has_child_toggled(tree_model, path, iter);
+ gtk_tree_path_free(path);
+ }
+
+ LEAVE(" ");
}
/** This function updates the model when a row is being deleted.
@@ -1432,50 +1511,54 @@
gnc_tree_model_price_row_delete (GncTreeModelPrice *model,
GtkTreePath *path)
{
- GtkTreeModel *tree_model;
- GtkTreeIter iter;
+ GtkTreeModel *tree_model;
+ GtkTreeIter iter;
- g_return_if_fail(GNC_IS_TREE_MODEL_PRICE(model));
- g_return_if_fail(path);
+ g_return_if_fail(GNC_IS_TREE_MODEL_PRICE(model));
+ g_return_if_fail(path);
- debug_path(ENTER, path);
+ debug_path(ENTER, path);
- tree_model = GTK_TREE_MODEL(model);
+ tree_model = GTK_TREE_MODEL(model);
- /* We're removing a row, so the lists on which this model is based have
- * changed. Since existing iterators are all based on old indexes into
- * those lists, we need to invalidate them, which we can do by changing
- * the model's stamp. */
- do {
- model->stamp++;
- } while (model->stamp == 0);
+ /* We're removing a row, so the lists on which this model is based have
+ * changed. Since existing iterators are all based on old indexes into
+ * those lists, we need to invalidate them, which we can do by changing
+ * the model's stamp. */
+ do
+ {
+ model->stamp++;
+ }
+ while (model->stamp == 0);
- /* Signal that the path has been deleted. */
- gtk_tree_model_row_deleted(tree_model, path);
+ /* Signal that the path has been deleted. */
+ gtk_tree_model_row_deleted(tree_model, path);
- /* Issue any appropriate signals to ancestors. */
- if (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &iter, path)) {
- DEBUG("iter %s", iter_to_string(model, &iter));
+ /* Issue any appropriate signals to ancestors. */
+ if (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &iter, path))
+ {
+ DEBUG("iter %s", iter_to_string(model, &iter));
- /* Signal the change to the parent. */
- gtk_tree_model_row_changed(tree_model, path, &iter);
+ /* Signal the change to the parent. */
+ gtk_tree_model_row_changed(tree_model, path, &iter);
- /* Was this the parent's only child? */
- if (!gtk_tree_model_iter_has_child(tree_model, &iter))
- gtk_tree_model_row_has_child_toggled(tree_model, path, &iter);
+ /* Was this the parent's only child? */
+ if (!gtk_tree_model_iter_has_child(tree_model, &iter))
+ gtk_tree_model_row_has_child_toggled(tree_model, path, &iter);
- /* Signal any other ancestors. */
- while (gtk_tree_path_up(path) &&
- gtk_tree_path_get_depth(path) > 0 &&
- gtk_tree_model_get_iter(tree_model, &iter, path)) {
- DEBUG("iter %s", iter_to_string(model, &iter));
- gtk_tree_model_row_changed(tree_model, path, &iter);
+ /* Signal any other ancestors. */
+ while (gtk_tree_path_up(path) &&
+ gtk_tree_path_get_depth(path) > 0 &&
+ gtk_tree_model_get_iter(tree_model, &iter, path))
+ {
+ DEBUG("iter %s", iter_to_string(model, &iter));
+ gtk_tree_model_row_changed(tree_model, path, &iter);
+ }
}
- }
- LEAVE(" ");
+ LEAVE(" ");
}
@@ -1498,29 +1581,29 @@
static gboolean
gnc_tree_model_price_do_deletions (gpointer unused)
{
- ENTER(" ");
+ ENTER(" ");
- /* Go through the list of paths needing removal. */
- while (pending_removals)
- {
- remove_data *data = pending_removals->data;
- pending_removals = g_slist_delete_link(pending_removals, pending_removals);
-
- if (data)
+ /* Go through the list of paths needing removal. */
+ while (pending_removals)
{
- debug_path(DEBUG, data->path);
+ remove_data *data = pending_removals->data;
+ pending_removals = g_slist_delete_link(pending_removals, pending_removals);
- /* Remove the path. */
- gnc_tree_model_price_row_delete(data->model, data->path);
+ if (data)
+ {
+ debug_path(DEBUG, data->path);
- gtk_tree_path_free(data->path);
- g_free(data);
+ /* Remove the path. */
+ gnc_tree_model_price_row_delete(data->model, data->path);
+
+ gtk_tree_path_free(data->path);
+ g_free(data);
+ }
}
- }
- LEAVE(" ");
- /* Don't call me again. */
- return FALSE;
+ LEAVE(" ");
+ /* Don't call me again. */
+ return FALSE;
}
@@ -1557,111 +1640,128 @@
*/
static void
gnc_tree_model_price_event_handler (QofInstance *entity,
- QofEventId event_type,
- gpointer user_data,
- gpointer event_data)
+ QofEventId event_type,
+ gpointer user_data,
+ gpointer event_data)
{
- GncTreeModelPrice *model;
- GtkTreePath *path;
- GtkTreeIter iter;
- remove_data *data;
- const gchar *name;
+ GncTreeModelPrice *model;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ remove_data *data;
+ const gchar *name;
- ENTER("entity %p, event %d, model %p, event data %p",
- entity, event_type, user_data, event_data);
- model = (GncTreeModelPrice *)user_data;
+ ENTER("entity %p, event %d, model %p, event data %p",
+ entity, event_type, user_data, event_data);
+ model = (GncTreeModelPrice *)user_data;
- /* Do deletions if any are pending. */
- if (pending_removals)
- gnc_tree_model_price_do_deletions(NULL);
+ /* Do deletions if any are pending. */
+ if (pending_removals)
+ gnc_tree_model_price_do_deletions(NULL);
- /* hard failures */
- g_return_if_fail(GNC_IS_TREE_MODEL_PRICE(model));
+ /* hard failures */
+ g_return_if_fail(GNC_IS_TREE_MODEL_PRICE(model));
- /* get type specific data */
- if (GNC_IS_COMMODITY(entity)) {
- gnc_commodity *commodity;
+ /* get type specific data */
+ if (GNC_IS_COMMODITY(entity))
+ {
+ gnc_commodity *commodity;
- commodity = GNC_COMMODITY(entity);
- name = gnc_commodity_get_mnemonic(commodity);
- if (event_type != QOF_EVENT_DESTROY) {
- if (!gnc_tree_model_price_get_iter_from_commodity (model, commodity, &iter)) {
- LEAVE("no iter");
- return;
- }
- }
- } else if (GNC_IS_COMMODITY_NAMESPACE(entity)) {
- gnc_commodity_namespace *namespace;
+ commodity = GNC_COMMODITY(entity);
+ name = gnc_commodity_get_mnemonic(commodity);
+ if (event_type != QOF_EVENT_DESTROY)
+ {
+ if (!gnc_tree_model_price_get_iter_from_commodity (model, commodity, &iter))
+ {
+ LEAVE("no iter");
+ return;
+ }
+ }
+ }
+ else if (GNC_IS_COMMODITY_NAMESPACE(entity))
+ {
+ gnc_commodity_namespace *namespace;
- namespace = GNC_COMMODITY_NAMESPACE(entity);
- name = gnc_commodity_namespace_get_name(namespace);
- if (event_type != QOF_EVENT_DESTROY) {
- if (!gnc_tree_model_price_get_iter_from_namespace (model, namespace, &iter)) {
- LEAVE("no iter");
- return;
- }
- }
- } else if (GNC_IS_PRICE(entity)) {
- GNCPrice *price;
+ namespace = GNC_COMMODITY_NAMESPACE(entity);
+ name = gnc_commodity_namespace_get_name(namespace);
+ if (event_type != QOF_EVENT_DESTROY)
+ {
+ if (!gnc_tree_model_price_get_iter_from_namespace (model, namespace, &iter))
+ {
+ LEAVE("no iter");
+ return;
+ }
+ }
+ }
+ else if (GNC_IS_PRICE(entity))
+ {
+ GNCPrice *price;
- price = GNC_PRICE(entity);
- name = "price";
- if (event_type != QOF_EVENT_DESTROY) {
- if (!gnc_tree_model_price_get_iter_from_price (model, price, &iter)) {
- LEAVE("no iter");
- return;
- }
- }
- } else {
- return;
- }
+ price = GNC_PRICE(entity);
+ name = "price";
+ if (event_type != QOF_EVENT_DESTROY)
+ {
+ if (!gnc_tree_model_price_get_iter_from_price (model, price, &iter))
+ {
+ LEAVE("no iter");
+ return;
+ }
+ }
+ }
+ else
+ {
+ return;
+ }
- switch (event_type) {
- case QOF_EVENT_ADD:
- /* Tell the filters/views where the new account was added. */
- DEBUG("add %s", name);
- gnc_tree_model_price_row_add (model, &iter);
- break;
+ switch (event_type)
+ {
+ case QOF_EVENT_ADD:
+ /* Tell the filters/views where the new account was added. */
+ DEBUG("add %s", name);
+ gnc_tree_model_price_row_add (model, &iter);
+ break;
- case QOF_EVENT_REMOVE:
- /* Record the path of this account for later use in destruction */
- DEBUG("remove %s", name);
- path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
- if (path == NULL) {
- LEAVE("not in model");
- return;
- }
+ case QOF_EVENT_REMOVE:
+ /* Record the path of this account for later use in destruction */
+ DEBUG("remove %s", name);
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
+ if (path == NULL)
+ {
+ LEAVE("not in model");
+ return;
+ }
- data = g_new0 (remove_data, 1);
- data->model = model;
- data->path = path;
- pending_removals = g_slist_append (pending_removals, data);
- g_idle_add_full(G_PRIORITY_HIGH_IDLE,
- gnc_tree_model_price_do_deletions, NULL, NULL);
+ data = g_new0 (remove_data, 1);
+ data->model = model;
+ data->path = path;
+ pending_removals = g_slist_append (pending_removals, data);
+ g_idle_add_full(G_PRIORITY_HIGH_IDLE,
+ gnc_tree_model_price_do_deletions, NULL, NULL);
- LEAVE(" ");
- return;
+ LEAVE(" ");
+ return;
- case QOF_EVENT_MODIFY:
- DEBUG("change %s", name);
- path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
- if (path == NULL) {
- LEAVE("not in model");
- return;
- }
- if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(model), &iter, path)) {
- gtk_tree_path_free(path);
- LEAVE("can't find iter for path");
- return;
- }
- gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
- gtk_tree_path_free(path);
- LEAVE(" ");
- return;
+ case QOF_EVENT_MODIFY:
+ DEBUG("change %s", name);
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL(model), &iter);
+ if (path == NULL)
+ {
+ LEAVE("not in model");
+ return;
+ }
+ if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(model), &iter, path))
+ {
+ gtk_tree_path_free(path);
+ LEAVE("can't find iter for path");
+ return;
+ }
+ gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
+ gtk_tree_path_free(path);
+ LEAVE(" ");
+ return;
- default:
- LEAVE("ignored event for %s", name);
- return;
- }
- LEAVE(" new stamp %u", model->stamp);
+ default:
+ LEAVE("ignored event for %s", name);
+ return;
+ }
+ LEAVE(" new stamp %u", model->stamp);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-price.h -- GtkTreeModel implementation to display
* prices in a GtkTreeView.
*
@@ -53,34 +53,37 @@
#define GNC_TREE_MODEL_PRICE_NAME "GncTreeModelPrice"
-typedef enum {
- GNC_TREE_MODEL_PRICE_COL_COMMODITY,
- GNC_TREE_MODEL_PRICE_COL_CURRENCY,
- GNC_TREE_MODEL_PRICE_COL_DATE,
- GNC_TREE_MODEL_PRICE_COL_SOURCE,
- GNC_TREE_MODEL_PRICE_COL_TYPE,
- GNC_TREE_MODEL_PRICE_COL_VALUE,
+typedef enum
+{
+ GNC_TREE_MODEL_PRICE_COL_COMMODITY,
+ GNC_TREE_MODEL_PRICE_COL_CURRENCY,
+ GNC_TREE_MODEL_PRICE_COL_DATE,
+ GNC_TREE_MODEL_PRICE_COL_SOURCE,
+ GNC_TREE_MODEL_PRICE_COL_TYPE,
+ GNC_TREE_MODEL_PRICE_COL_VALUE,
- GNC_TREE_MODEL_PRICE_COL_LAST_VISIBLE = GNC_TREE_MODEL_PRICE_COL_VALUE,
+ GNC_TREE_MODEL_PRICE_COL_LAST_VISIBLE = GNC_TREE_MODEL_PRICE_COL_VALUE,
- /* internal hidden columns */
- GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
- GNC_TREE_MODEL_PRICE_NUM_COLUMNS
+ /* internal hidden columns */
+ GNC_TREE_MODEL_PRICE_COL_VISIBILITY,
+ GNC_TREE_MODEL_PRICE_NUM_COLUMNS
} GncTreeModelPriceColumn;
/* typedefs & structures */
/** The instance data structure for a price tree model. */
-typedef struct {
- GncTreeModel gnc_tree_model; /**< The parent object data. */
- int stamp; /**< The state of the model. Any state
+typedef struct
+{
+ GncTreeModel gnc_tree_model; /**< The parent object data. */
+ int stamp; /**< The state of the model. Any state
* change increments this number. */
} GncTreeModelPrice;
/** The class data structure for a price tree model. */
-typedef struct {
- GncTreeModelClass gnc_tree_model;/**< The parent object data. */
+typedef struct
+{
+ GncTreeModelClass gnc_tree_model;/**< The parent object data. */
} GncTreeModelPriceClass;
@@ -91,7 +94,7 @@
GType gnc_tree_model_price_get_type (void);
-/** @name Account Tree Model Constructors
+/** @name Account Tree Model Constructors
@{ */
/** Create a new GtkTreeModel for manipulating gnucash commodity prices.
@@ -105,7 +108,7 @@
/** @} */
-/** @name Price Tree Model Filter Helper Functions
+/** @name Price Tree Model Filter Helper Functions
@{ */
/** Determine whether or not the specified GtkTreeIter points to a
@@ -121,7 +124,7 @@
* @return TRUE if the iter points to a commodity namespace, FALSE
* otherwise. */
gboolean gnc_tree_model_price_iter_is_namespace (GncTreeModelPrice *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Determine whether or not the specified GtkTreeIter points to a
@@ -137,7 +140,7 @@
* @return TRUE if the iter points to a commodity, FALSE
* otherwise. */
gboolean gnc_tree_model_price_iter_is_commodity (GncTreeModelPrice *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Determine whether or not the specified GtkTreeIter points to a
@@ -153,7 +156,7 @@
* @return TRUE if the iter points to a price, FALSE
* otherwise. */
gboolean gnc_tree_model_price_iter_is_price (GncTreeModelPrice *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Convert a model/iter pair to a gnucash commodity namespace. This
@@ -168,7 +171,7 @@
*
* @return A pointer to the corresponding namespace. */
gnc_commodity_namespace *gnc_tree_model_price_get_namespace (GncTreeModelPrice *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Convert a model/iter pair to a gnucash commodity. This routine
@@ -183,7 +186,7 @@
*
* @return A pointer to the corresponding commodity. */
gnc_commodity *gnc_tree_model_price_get_commodity (GncTreeModelPrice *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** Convert a model/iter pair to a gnucash price. This routine should
@@ -198,12 +201,12 @@
*
* @return A pointer to the corresponding price. */
GNCPrice *gnc_tree_model_price_get_price (GncTreeModelPrice *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** @} */
-/** @name Commodity Tree Model Lookup Functions
+/** @name Commodity Tree Model Lookup Functions
@{ */
/** Convert a commodity namespace pointer into a GtkTreeIter.
@@ -217,8 +220,8 @@
*
* @return TRUE if the returned iter is valid, FALSE otherwise. */
gboolean gnc_tree_model_price_get_iter_from_namespace (GncTreeModelPrice *model,
- gnc_commodity_namespace *namespace,
- GtkTreeIter *iter);
+ gnc_commodity_namespace *namespace,
+ GtkTreeIter *iter);
/** Convert a commodity pointer into a GtkTreeIter.
*
@@ -231,8 +234,8 @@
*
* @return TRUE if the returned iter is valid, FALSE otherwise. */
gboolean gnc_tree_model_price_get_iter_from_commodity (GncTreeModelPrice *model,
- gnc_commodity *commodity,
- GtkTreeIter *iter);
+ gnc_commodity *commodity,
+ GtkTreeIter *iter);
/** Convert a price pointer into a GtkTreeIter.
*
@@ -245,8 +248,8 @@
*
* @return TRUE if the returned iter is valid, FALSE otherwise. */
gboolean gnc_tree_model_price_get_iter_from_price (GncTreeModelPrice *model,
- GNCPrice *price,
- GtkTreeIter *iter);
+ GNCPrice *price,
+ GtkTreeIter *iter);
/** Convert a commodity namespace pointer into a GtkTreePath.
*
@@ -259,7 +262,7 @@
* longer needed. This routine will return NULL if the namespace
* does not exist in the tree. */
GtkTreePath *gnc_tree_model_price_get_path_from_namespace (GncTreeModelPrice *model,
- gnc_commodity_namespace *namespace);
+ gnc_commodity_namespace *namespace);
/** Convert a commodity pointer into a GtkTreePath.
*
@@ -272,7 +275,7 @@
* longer needed. This routine will return NULL if the commodity
* does not exist in the tree. */
GtkTreePath *gnc_tree_model_price_get_path_from_commodity (GncTreeModelPrice *model,
- gnc_commodity *commodity);
+ gnc_commodity *commodity);
/** Convert a price pointer into a GtkTreePath.
*
@@ -285,7 +288,7 @@
* needed. This routine will return NULL if the price does not exist
* in the tree. */
GtkTreePath *gnc_tree_model_price_get_path_from_price (GncTreeModelPrice *model,
- GNCPrice *price);
+ GNCPrice *price);
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-selection.c -- GtkTreeModel which supports a
* selectable column.
*
@@ -37,63 +37,63 @@
static GtkTreeModelFlags gnc_tree_model_selection_get_flags (GtkTreeModel *tree_model);
static int gnc_tree_model_selection_get_n_columns (GtkTreeModel *tree_model);
static GType gnc_tree_model_selection_get_column_type (GtkTreeModel *tree_model,
- int index);
+ int index);
static gboolean gnc_tree_model_selection_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path);
+ GtkTreeIter *iter,
+ GtkTreePath *path);
static GtkTreePath *gnc_tree_model_selection_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static void gnc_tree_model_selection_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value);
+ GtkTreeIter *iter,
+ int column,
+ GValue *value);
static gboolean gnc_tree_model_selection_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_selection_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
static gboolean gnc_tree_model_selection_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static int gnc_tree_model_selection_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_selection_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n);
static gboolean gnc_tree_model_selection_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child);
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
static void gnc_tree_model_selection_row_changed (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GncTreeModelSelection *selection_model);
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ GncTreeModelSelection *selection_model);
static void gnc_tree_model_selection_row_inserted (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GncTreeModelSelection *selection_model);
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ GncTreeModelSelection *selection_model);
static void gnc_tree_model_selection_row_has_child_toggled (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GncTreeModelSelection *selection_model);
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ GncTreeModelSelection *selection_model);
static void gnc_tree_model_selection_row_deleted (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GncTreeModelSelection *selection_model);
+ GtkTreePath *path,
+ GncTreeModelSelection *selection_model);
static void gnc_tree_model_selection_rows_reordered (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gint *new_order,
- GncTreeModelSelection *selection_model);
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gint *new_order,
+ GncTreeModelSelection *selection_model);
static void gnc_tree_model_selection_toggled (GtkCellRendererToggle *toggle,
- gchar *path,
- GncTreeModelSelection *model);
+ gchar *path,
+ GncTreeModelSelection *model);
typedef struct GncTreeModelSelectionPrivate
{
- GtkTreeModel *child_model;
+ GtkTreeModel *child_model;
- GHashTable *selections;
+ GHashTable *selections;
} GncTreeModelSelectionPrivate;
#define GNC_TREE_MODEL_SELECTION_GET_PRIVATE(o) \
@@ -104,604 +104,635 @@
GType
gnc_tree_model_selection_get_type (void)
{
- static GType gnc_tree_model_selection_type = 0;
+ static GType gnc_tree_model_selection_type = 0;
- if (gnc_tree_model_selection_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeModelSelectionClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_model_selection_class_init,
- NULL,
- NULL,
- sizeof (GncTreeModelSelection),
- 0,
- (GInstanceInitFunc) gnc_tree_model_selection_init
- };
-
- static const GInterfaceInfo tree_model_info = {
- (GInterfaceInitFunc) gnc_tree_model_selection_tree_model_init,
- NULL,
- NULL
- };
+ if (gnc_tree_model_selection_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeModelSelectionClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_model_selection_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeModelSelection),
+ 0,
+ (GInstanceInitFunc) gnc_tree_model_selection_init
+ };
- gnc_tree_model_selection_type = g_type_register_static (G_TYPE_OBJECT,
- "GncTreeModelSelection",
- &our_info, 0);
-
- g_type_add_interface_static (gnc_tree_model_selection_type,
- GTK_TYPE_TREE_MODEL,
- &tree_model_info);
- }
+ static const GInterfaceInfo tree_model_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_selection_tree_model_init,
+ NULL,
+ NULL
+ };
- return gnc_tree_model_selection_type;
+ gnc_tree_model_selection_type = g_type_register_static (G_TYPE_OBJECT,
+ "GncTreeModelSelection",
+ &our_info, 0);
+
+ g_type_add_interface_static (gnc_tree_model_selection_type,
+ GTK_TYPE_TREE_MODEL,
+ &tree_model_info);
+ }
+
+ return gnc_tree_model_selection_type;
}
static void
gnc_tree_model_selection_class_init (GncTreeModelSelectionClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = gnc_tree_model_selection_finalize;
+ object_class->finalize = gnc_tree_model_selection_finalize;
- g_type_class_add_private(klass, sizeof(GncTreeModelSelectionPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeModelSelectionPrivate));
}
static void
gnc_tree_model_selection_init (GncTreeModelSelection *model)
{
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelectionPrivate *priv;
- while (model->stamp == 0) {
- model->stamp = g_random_int ();
- }
+ while (model->stamp == 0)
+ {
+ model->stamp = g_random_int ();
+ }
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- priv->selections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ priv->selections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
}
static void
gnc_tree_model_selection_finalize (GObject *object)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (object));
- model = GNC_TREE_MODEL_SELECTION (object);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (object);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- g_object_unref (priv->child_model);
- g_hash_table_destroy (priv->selections);
+ g_object_unref (priv->child_model);
+ g_hash_table_destroy (priv->selections);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
GtkTreeModel *
gnc_tree_model_selection_new (GtkTreeModel *child_model)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
- model = g_object_new (GNC_TYPE_TREE_MODEL_SELECTION, NULL);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = g_object_new (GNC_TYPE_TREE_MODEL_SELECTION, NULL);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- priv->child_model = child_model;
- g_object_ref (child_model);
- g_signal_connect (G_OBJECT (child_model), "row_changed",
- G_CALLBACK (gnc_tree_model_selection_row_changed), model);
- g_signal_connect (G_OBJECT (child_model), "row_inserted",
- G_CALLBACK (gnc_tree_model_selection_row_inserted), model);
- g_signal_connect (G_OBJECT (child_model), "row_has_child_toggled",
- G_CALLBACK (gnc_tree_model_selection_row_has_child_toggled), model);
- g_signal_connect (G_OBJECT (child_model), "row_deleted",
- G_CALLBACK (gnc_tree_model_selection_row_deleted), model);
- g_signal_connect (G_OBJECT (child_model), "rows_reordered",
- G_CALLBACK (gnc_tree_model_selection_rows_reordered), model);
+ priv->child_model = child_model;
+ g_object_ref (child_model);
+ g_signal_connect (G_OBJECT (child_model), "row_changed",
+ G_CALLBACK (gnc_tree_model_selection_row_changed), model);
+ g_signal_connect (G_OBJECT (child_model), "row_inserted",
+ G_CALLBACK (gnc_tree_model_selection_row_inserted), model);
+ g_signal_connect (G_OBJECT (child_model), "row_has_child_toggled",
+ G_CALLBACK (gnc_tree_model_selection_row_has_child_toggled), model);
+ g_signal_connect (G_OBJECT (child_model), "row_deleted",
+ G_CALLBACK (gnc_tree_model_selection_row_deleted), model);
+ g_signal_connect (G_OBJECT (child_model), "rows_reordered",
+ G_CALLBACK (gnc_tree_model_selection_rows_reordered), model);
- return GTK_TREE_MODEL (model);
+ return GTK_TREE_MODEL (model);
}
GtkTreeModel *
gnc_tree_model_selection_get_model (GncTreeModelSelection *model)
{
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelectionPrivate *priv;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (model), NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (model), NULL);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- return priv->child_model;
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ return priv->child_model;
}
void
gnc_tree_model_selection_convert_child_iter_to_iter (GncTreeModelSelection *model,
- GtkTreeIter *selection_iter,
- GtkTreeIter *child_iter)
+ GtkTreeIter *selection_iter,
+ GtkTreeIter *child_iter)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (model));
- g_return_if_fail (child_iter != NULL);
- g_return_if_fail (selection_iter != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (model));
+ g_return_if_fail (child_iter != NULL);
+ g_return_if_fail (selection_iter != NULL);
- selection_iter->stamp = model->stamp;
+ selection_iter->stamp = model->stamp;
- selection_iter->user_data = gtk_tree_iter_copy (child_iter);
+ selection_iter->user_data = gtk_tree_iter_copy (child_iter);
}
void
gnc_tree_model_selection_convert_iter_to_child_iter (GncTreeModelSelection *model,
- GtkTreeIter *child_iter,
- GtkTreeIter *selection_iter)
+ GtkTreeIter *child_iter,
+ GtkTreeIter *selection_iter)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (model));
- g_return_if_fail (selection_iter != NULL);
- g_return_if_fail (GNC_TREE_MODEL_SELECTION (model)->stamp == selection_iter->stamp);
- g_return_if_fail (selection_iter->user_data != NULL);
- g_return_if_fail (child_iter != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (model));
+ g_return_if_fail (selection_iter != NULL);
+ g_return_if_fail (GNC_TREE_MODEL_SELECTION (model)->stamp == selection_iter->stamp);
+ g_return_if_fail (selection_iter->user_data != NULL);
+ g_return_if_fail (child_iter != NULL);
- child_iter->stamp = ((GtkTreeIter *) selection_iter->user_data)->stamp;
- child_iter->user_data = ((GtkTreeIter *) selection_iter->user_data)->user_data;
- child_iter->user_data2 = ((GtkTreeIter *) selection_iter->user_data)->user_data2;
- child_iter->user_data3 = ((GtkTreeIter *) selection_iter->user_data)->user_data3;
+ child_iter->stamp = ((GtkTreeIter *) selection_iter->user_data)->stamp;
+ child_iter->user_data = ((GtkTreeIter *) selection_iter->user_data)->user_data;
+ child_iter->user_data2 = ((GtkTreeIter *) selection_iter->user_data)->user_data2;
+ child_iter->user_data3 = ((GtkTreeIter *) selection_iter->user_data)->user_data3;
}
gint
gnc_tree_model_selection_get_selection_column (GncTreeModelSelection *model)
{
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelectionPrivate *priv;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (model), 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (model), 0);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- return gtk_tree_model_get_n_columns (priv->child_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ return gtk_tree_model_get_n_columns (priv->child_model);
}
GtkTreeViewColumn *
gnc_tree_model_selection_create_tree_view_column (GncTreeModelSelection *model,
- const gchar *title)
+ const gchar *title)
{
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
- renderer = gtk_cell_renderer_toggle_new ();
- g_object_set (G_OBJECT (renderer), "activatable", TRUE, NULL);
- g_signal_connect (G_OBJECT (renderer), "toggled",
- G_CALLBACK (gnc_tree_model_selection_toggled), model);
+ renderer = gtk_cell_renderer_toggle_new ();
+ g_object_set (G_OBJECT (renderer), "activatable", TRUE, NULL);
+ g_signal_connect (G_OBJECT (renderer), "toggled",
+ G_CALLBACK (gnc_tree_model_selection_toggled), model);
- column = gtk_tree_view_column_new_with_attributes (title,
- renderer,
- "active",
- gnc_tree_model_selection_get_selection_row (model),
- NULL);
+ column = gtk_tree_view_column_new_with_attributes (title,
+ renderer,
+ "active",
+ gnc_tree_model_selection_get_selection_row (model),
+ NULL);
- return column;
+ return column;
}
gboolean
gnc_tree_model_selection_is_selected (GncTreeModelSelection *model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelSelectionPrivate *priv;
- gchar *path;
- gboolean selected;
-
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- path = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL (model), iter);
- selected = g_hash_table_lookup (priv->selections, path) != NULL;
- g_free (path);
+ GncTreeModelSelectionPrivate *priv;
+ gchar *path;
+ gboolean selected;
- return selected;
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ path = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL (model), iter);
+ selected = g_hash_table_lookup (priv->selections, path) != NULL;
+ g_free (path);
+
+ return selected;
}
void
gnc_tree_model_selection_set_selected (GncTreeModelSelection *model,
- GtkTreeIter *iter,
- gboolean selected)
+ GtkTreeIter *iter,
+ gboolean selected)
{
- GncTreeModelSelectionPrivate *priv;
- gchar *path_string;
- GtkTreePath *path;
-
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- path_string = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL (model), iter);
+ GncTreeModelSelectionPrivate *priv;
+ gchar *path_string;
+ GtkTreePath *path;
- if (selected == (g_hash_table_lookup (priv->selections, path_string) != NULL)) {
- g_free (path_string);
- return;
- }
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ path_string = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL (model), iter);
- if (selected) {
- g_hash_table_insert (priv->selections, g_strdup (path_string), GINT_TO_POINTER (1));
- } else {
- g_hash_table_remove (priv->selections, path_string);
- }
+ if (selected == (g_hash_table_lookup (priv->selections, path_string) != NULL))
+ {
+ g_free (path_string);
+ return;
+ }
- path = gtk_tree_path_new_from_string (path_string);
- gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, iter);
- gtk_tree_path_free (path);
+ if (selected)
+ {
+ g_hash_table_insert (priv->selections, g_strdup (path_string), GINT_TO_POINTER (1));
+ }
+ else
+ {
+ g_hash_table_remove (priv->selections, path_string);
+ }
- g_free (path_string);
+ path = gtk_tree_path_new_from_string (path_string);
+ gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, iter);
+ gtk_tree_path_free (path);
+
+ g_free (path_string);
}
static void
gnc_tree_model_selection_tree_model_init (GtkTreeModelIface *iface)
{
- iface->get_flags = gnc_tree_model_selection_get_flags;
- iface->get_n_columns = gnc_tree_model_selection_get_n_columns;
- iface->get_column_type = gnc_tree_model_selection_get_column_type;
- iface->get_iter = gnc_tree_model_selection_get_iter;
- iface->get_path = gnc_tree_model_selection_get_path;
- iface->get_value = gnc_tree_model_selection_get_value;
- iface->iter_next = gnc_tree_model_selection_iter_next;
- iface->iter_children = gnc_tree_model_selection_iter_children;
- iface->iter_has_child = gnc_tree_model_selection_iter_has_child;
- iface->iter_n_children = gnc_tree_model_selection_iter_n_children;
- iface->iter_nth_child = gnc_tree_model_selection_iter_nth_child;
- iface->iter_parent = gnc_tree_model_selection_iter_parent;
+ iface->get_flags = gnc_tree_model_selection_get_flags;
+ iface->get_n_columns = gnc_tree_model_selection_get_n_columns;
+ iface->get_column_type = gnc_tree_model_selection_get_column_type;
+ iface->get_iter = gnc_tree_model_selection_get_iter;
+ iface->get_path = gnc_tree_model_selection_get_path;
+ iface->get_value = gnc_tree_model_selection_get_value;
+ iface->iter_next = gnc_tree_model_selection_iter_next;
+ iface->iter_children = gnc_tree_model_selection_iter_children;
+ iface->iter_has_child = gnc_tree_model_selection_iter_has_child;
+ iface->iter_n_children = gnc_tree_model_selection_iter_n_children;
+ iface->iter_nth_child = gnc_tree_model_selection_iter_nth_child;
+ iface->iter_parent = gnc_tree_model_selection_iter_parent;
}
static GtkTreeModelFlags
gnc_tree_model_selection_get_flags (GtkTreeModel *tree_model)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- return gtk_tree_model_get_flags (priv->child_model);
+ return gtk_tree_model_get_flags (priv->child_model);
}
static int
gnc_tree_model_selection_get_n_columns (GtkTreeModel *tree_model)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- return gtk_tree_model_get_n_columns (priv->child_model) + 1;
+ return gtk_tree_model_get_n_columns (priv->child_model) + 1;
}
static GType
gnc_tree_model_selection_get_column_type (GtkTreeModel *tree_model,
- int index)
+ int index)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- gint columns = gnc_tree_model_selection_get_n_columns (tree_model);
-
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), G_TYPE_INVALID);
- g_return_val_if_fail ((index >= 0) && (index < columns), G_TYPE_INVALID);
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ gint columns = gnc_tree_model_selection_get_n_columns (tree_model);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), G_TYPE_INVALID);
+ g_return_val_if_fail ((index >= 0) && (index < columns), G_TYPE_INVALID);
- if (index < columns - 1) {
- return gtk_tree_model_get_column_type (priv->child_model, index);
- } else {
- return G_TYPE_BOOLEAN;
- }
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+
+ if (index < columns - 1)
+ {
+ return gtk_tree_model_get_column_type (priv->child_model, index);
+ }
+ else
+ {
+ return G_TYPE_BOOLEAN;
+ }
}
static gboolean
gnc_tree_model_selection_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path)
+ GtkTreeIter *iter,
+ GtkTreePath *path)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- if (!gtk_tree_model_get_iter (priv->child_model, &child_iter, path)) {
- return FALSE;
- }
+ if (!gtk_tree_model_get_iter (priv->child_model, &child_iter, path))
+ {
+ return FALSE;
+ }
- gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
- return TRUE;
+ return TRUE;
}
static GtkTreePath *
gnc_tree_model_selection_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, NULL);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
- return gtk_tree_model_get_path (priv->child_model, &child_iter);
+ return gtk_tree_model_get_path (priv->child_model, &child_iter);
}
static void
gnc_tree_model_selection_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- int column,
- GValue *value)
+ GtkTreeIter *iter,
+ int column,
+ GValue *value)
{
- gint columns = gnc_tree_model_selection_get_n_columns (tree_model);
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
- gchar *path;
+ gint columns = gnc_tree_model_selection_get_n_columns (tree_model);
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
+ gchar *path;
- g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model));
- g_return_if_fail ((column >= 0) && (column < columns));
- g_return_if_fail (iter != NULL);
- g_return_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model));
+ g_return_if_fail ((column >= 0) && (column < columns));
+ g_return_if_fail (iter != NULL);
+ g_return_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
- if (column < columns - 1) {
- gtk_tree_model_get_value (priv->child_model, &child_iter, column, value);
- } else {
- g_value_init (value, G_TYPE_BOOLEAN);
+ if (column < columns - 1)
+ {
+ gtk_tree_model_get_value (priv->child_model, &child_iter, column, value);
+ }
+ else
+ {
+ g_value_init (value, G_TYPE_BOOLEAN);
- path = gtk_tree_model_get_string_from_iter (priv->child_model, &child_iter);
- g_value_set_boolean (value, g_hash_table_lookup (priv->selections, path) != NULL);
- g_free (path);
- }
+ path = gtk_tree_model_get_string_from_iter (priv->child_model, &child_iter);
+ g_value_set_boolean (value, g_hash_table_lookup (priv->selections, path) != NULL);
+ g_free (path);
+ }
}
static gboolean
gnc_tree_model_selection_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
- if (!gtk_tree_model_iter_next (priv->child_model, &child_iter)) {
- return FALSE;
- } else {
- gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
+ if (!gtk_tree_model_iter_next (priv->child_model, &child_iter))
+ {
+ return FALSE;
+ }
+ else
+ {
+ gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
- return TRUE;
- }
+ return TRUE;
+ }
}
static gboolean
gnc_tree_model_selection_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
- GtkTreeIter child_parent;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
+ GtkTreeIter child_parent;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- if (parent == NULL) {
- if (!gtk_tree_model_iter_children (priv->child_model, &child_iter, NULL))
- return FALSE;
- } else {
- g_return_val_if_fail (parent != NULL, FALSE);
- g_return_val_if_fail (parent->stamp == model->stamp, FALSE);
+ if (parent == NULL)
+ {
+ if (!gtk_tree_model_iter_children (priv->child_model, &child_iter, NULL))
+ return FALSE;
+ }
+ else
+ {
+ g_return_val_if_fail (parent != NULL, FALSE);
+ g_return_val_if_fail (parent->stamp == model->stamp, FALSE);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_parent, parent);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_parent, parent);
- if (!gtk_tree_model_iter_children (priv->child_model, &child_iter, &child_parent))
- return FALSE;
- }
+ if (!gtk_tree_model_iter_children (priv->child_model, &child_iter, &child_parent))
+ return FALSE;
+ }
- gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_tree_model_selection_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
- return gtk_tree_model_iter_has_child (priv->child_model, &child_iter);
+ return gtk_tree_model_iter_has_child (priv->child_model, &child_iter);
}
static int
gnc_tree_model_selection_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- if (iter == NULL) {
- return gtk_tree_model_iter_n_children (priv->child_model, NULL);
- } else {
- g_return_val_if_fail (iter != NULL, 0);
- g_return_val_if_fail (iter->stamp == model->stamp, 0);
+ if (iter == NULL)
+ {
+ return gtk_tree_model_iter_n_children (priv->child_model, NULL);
+ }
+ else
+ {
+ g_return_val_if_fail (iter != NULL, 0);
+ g_return_val_if_fail (iter->stamp == model->stamp, 0);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
- return gtk_tree_model_iter_n_children (priv->child_model, &child_iter);
- }
+ return gtk_tree_model_iter_n_children (priv->child_model, &child_iter);
+ }
}
static gboolean
gnc_tree_model_selection_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- int n)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ int n)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_iter;
- GtkTreeIter child_parent;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_iter;
+ GtkTreeIter child_parent;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- if (parent == NULL) {
- if (!gtk_tree_model_iter_nth_child (priv->child_model, &child_iter, NULL, n))
- return FALSE;
- } else {
- g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+ if (parent == NULL)
+ {
+ if (!gtk_tree_model_iter_nth_child (priv->child_model, &child_iter, NULL, n))
+ return FALSE;
+ }
+ else
+ {
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_parent, parent);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_parent, parent);
- if (!gtk_tree_model_iter_nth_child (priv->child_model, &child_iter, &child_parent, n))
- return FALSE;
- }
+ if (!gtk_tree_model_iter_nth_child (priv->child_model, &child_iter, &child_parent, n))
+ return FALSE;
+ }
- gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_tree_model_selection_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child)
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
{
- GncTreeModelSelection *model;
- GncTreeModelSelectionPrivate *priv;
- GtkTreeIter child_child;
- GtkTreeIter child_iter;
+ GncTreeModelSelection *model;
+ GncTreeModelSelectionPrivate *priv;
+ GtkTreeIter child_child;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
- g_return_val_if_fail (child != NULL, FALSE);
- g_return_val_if_fail (child->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
+ g_return_val_if_fail (child != NULL, FALSE);
+ g_return_val_if_fail (child->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
- model = GNC_TREE_MODEL_SELECTION (tree_model);
- priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL_SELECTION (tree_model);
+ priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
- gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_child, child);
+ gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_child, child);
- if (!gtk_tree_model_iter_parent (priv->child_model, &child_iter, &child_child)) {
- return FALSE;
- } else {
- gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
+ if (!gtk_tree_model_iter_parent (priv->child_model, &child_iter, &child_child))
+ {
+ return FALSE;
+ }
+ else
+ {
+ gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
- return TRUE;
- }
+ return TRUE;
+ }
}
static void
gnc_tree_model_selection_row_changed (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GncTreeModelSelection *selection_model)
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ GncTreeModelSelection *selection_model)
{
- GtkTreeIter selection_iter;
+ GtkTreeIter selection_iter;
- gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
- gtk_tree_model_row_changed (GTK_TREE_MODEL (selection_model), path, &selection_iter);
+ gtk_tree_model_row_changed (GTK_TREE_MODEL (selection_model), path, &selection_iter);
}
static void
gnc_tree_model_selection_row_inserted (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GncTreeModelSelection *selection_model)
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ GncTreeModelSelection *selection_model)
{
- GtkTreeIter selection_iter;
+ GtkTreeIter selection_iter;
- gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
- gtk_tree_model_row_inserted (GTK_TREE_MODEL (selection_model), path, &selection_iter);
+ gtk_tree_model_row_inserted (GTK_TREE_MODEL (selection_model), path, &selection_iter);
}
static void
gnc_tree_model_selection_row_has_child_toggled (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GncTreeModelSelection *selection_model)
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ GncTreeModelSelection *selection_model)
{
- GtkTreeIter selection_iter;
+ GtkTreeIter selection_iter;
- gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
- gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (selection_model), path, &selection_iter);
+ gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (selection_model), path, &selection_iter);
}
static void
gnc_tree_model_selection_row_deleted (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GncTreeModelSelection *selection_model)
+ GtkTreePath *path,
+ GncTreeModelSelection *selection_model)
{
- gtk_tree_model_row_deleted (GTK_TREE_MODEL (selection_model), path);
+ gtk_tree_model_row_deleted (GTK_TREE_MODEL (selection_model), path);
}
static void
gnc_tree_model_selection_rows_reordered (GtkTreeModel *tree_model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gint *new_order,
- GncTreeModelSelection *selection_model)
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gint *new_order,
+ GncTreeModelSelection *selection_model)
{
- GtkTreeIter selection_iter;
+ GtkTreeIter selection_iter;
- gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
+ gnc_tree_model_selection_convert_child_iter_to_iter (selection_model, &selection_iter, iter);
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (selection_model), path, &selection_iter, new_order);
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (selection_model), path, &selection_iter, new_order);
}
static void
gnc_tree_model_selection_toggled (GtkCellRendererToggle *toggle,
- gchar *path,
- GncTreeModelSelection *model)
+ gchar *path,
+ GncTreeModelSelection *model)
{
- GtkTreeIter iter;
+ GtkTreeIter iter;
- if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (model), &iter, path)) {
- gnc_tree_model_selection_set_selected (model, &iter, !gtk_cell_renderer_toggle_get_active (toggle));
- }
+ if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (model), &iter, path))
+ {
+ gnc_tree_model_selection_set_selected (model, &iter, !gtk_cell_renderer_toggle_get_active (toggle));
+ }
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model-selection.h -- GtkTreeModel which supports a
* selectable column.
*
@@ -51,13 +51,15 @@
#define GNC_TREE_MODEL_SELECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_MODEL_SELECTION, GncTreeModelSelectionClass))
/* typedefs & structures */
-typedef struct {
- GObject gobject;
- int stamp;
+typedef struct
+{
+ GObject gobject;
+ int stamp;
} GncTreeModelSelection;
-typedef struct {
- GObjectClass gobject;
+typedef struct
+{
+ GObjectClass gobject;
} GncTreeModelSelectionClass;
/* function prototypes */
@@ -67,21 +69,21 @@
GtkTreeModel *gnc_tree_model_selection_get_model (GncTreeModelSelection *model);
void gnc_tree_model_selection_convert_child_iter_to_iter (GncTreeModelSelection *model,
- GtkTreeIter *selection_iter,
- GtkTreeIter *child_iter);
+ GtkTreeIter *selection_iter,
+ GtkTreeIter *child_iter);
void gnc_tree_model_selection_convert_iter_to_child_iter (GncTreeModelSelection *model,
- GtkTreeIter *child_iter,
- GtkTreeIter *selection_iter);
+ GtkTreeIter *child_iter,
+ GtkTreeIter *selection_iter);
gint gnc_tree_model_selection_get_selection_column (GncTreeModelSelection *model);
GtkTreeViewColumn *gnc_tree_model_selection_create_tree_view_column (GncTreeModelSelection *model,
- const gchar *title);
+ const gchar *title);
gboolean gnc_tree_model_selection_is_selected (GncTreeModelSelection *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
void gnc_tree_model_selection_set_selected (GncTreeModelSelection *model,
- GtkTreeIter *iter,
- gboolean selected);
+ GtkTreeIter *iter,
+ gboolean selected);
G_END_DECLS
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model.c -- base implementation for a tree model in
* Gnucash. This only implements the object, not
* the model interface.
@@ -43,7 +43,7 @@
/** The instance private data for a generic tree model. */
typedef struct GncTreeModelPrivate
{
- gpointer dummy;
+ gpointer dummy;
} GncTreeModelPrivate;
#define GNC_TREE_MODEL_GET_PRIVATE(o) \
@@ -60,79 +60,81 @@
GType
gnc_tree_model_get_type (void)
{
- static GType gnc_tree_model_type = 0;
+ static GType gnc_tree_model_type = 0;
- if (gnc_tree_model_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeModelClass), /* class_size */
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_tree_model_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncTreeModel), /* */
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_tree_model_init
- };
+ if (gnc_tree_model_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeModelClass), /* class_size */
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_tree_model_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncTreeModel), /* */
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_tree_model_init
+ };
- //static const GInterfaceInfo tree_model_info = {
- // (GInterfaceInitFunc) gnc_tree_model_tree_model_init,
- // NULL,
- // NULL
- //};
+ //static const GInterfaceInfo tree_model_info = {
+ // (GInterfaceInitFunc) gnc_tree_model_tree_model_init,
+ // NULL,
+ // NULL
+ //};
- gnc_tree_model_type = g_type_register_static (G_TYPE_OBJECT,
- GNC_TREE_MODEL_NAME,
- &our_info, 0);
+ gnc_tree_model_type = g_type_register_static (G_TYPE_OBJECT,
+ GNC_TREE_MODEL_NAME,
+ &our_info, 0);
- //g_type_add_interface_static (gnc_tree_model_type,
- // GTK_TYPE_TREE_MODEL,
- // &tree_model_info);
- }
+ //g_type_add_interface_static (gnc_tree_model_type,
+ // GTK_TYPE_TREE_MODEL,
+ // &tree_model_info);
+ }
- return gnc_tree_model_type;
+ return gnc_tree_model_type;
}
static void
gnc_tree_model_class_init (GncTreeModelClass *klass)
{
- GObjectClass *o_class;
+ GObjectClass *o_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class = G_OBJECT_CLASS (klass);
+ o_class = G_OBJECT_CLASS (klass);
- /* GObject signals */
- o_class->finalize = gnc_tree_model_finalize;
+ /* GObject signals */
+ o_class->finalize = gnc_tree_model_finalize;
- g_type_class_add_private(klass, sizeof(GncTreeModelPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeModelPrivate));
}
static void
gnc_tree_model_init (GncTreeModel *model, GncTreeModelClass *klass)
{
- ENTER("model %p", model);
- gnc_gobject_tracking_remember(G_OBJECT(model), G_OBJECT_CLASS(klass));
+ ENTER("model %p", model);
+ gnc_gobject_tracking_remember(G_OBJECT(model), G_OBJECT_CLASS(klass));
- LEAVE(" ");
+ LEAVE(" ");
}
static void
gnc_tree_model_finalize (GObject *object)
{
- GncTreeModel *model;
- GncTreeModelPrivate *priv;
+ GncTreeModel *model;
+ GncTreeModelPrivate *priv;
- ENTER("model %p", object);
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_MODEL (object));
+ ENTER("model %p", object);
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL (object));
- model = GNC_TREE_MODEL(object);
- priv = GNC_TREE_MODEL_GET_PRIVATE(model);
+ model = GNC_TREE_MODEL(object);
+ priv = GNC_TREE_MODEL_GET_PRIVATE(model);
- gnc_gobject_tracking_forget(object);
+ gnc_gobject_tracking_forget(object);
- if (G_OBJECT_CLASS (parent_class)->finalize)
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE(" ");
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-tree-model.h -- base implementation for a tree model in
* Gnucash. This only implements the object, not
* the model interface.
@@ -51,14 +51,16 @@
/* typedefs & structures */
/** The instance data structure for a generic tree model. */
-typedef struct {
- GObject g_object; /**< The parent object data. */
+typedef struct
+{
+ GObject g_object; /**< The parent object data. */
} GncTreeModel;
/** The class data structure for a generic tree model. */
-typedef struct {
- GObjectClass g_object; /**< The parent object data. */
+typedef struct
+{
+ GObjectClass g_object; /**< The parent object data. */
} GncTreeModelClass;
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -63,13 +63,13 @@
static void gtva_currency_changed_cb (void);
static gboolean gnc_tree_view_account_filter_helper (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data);
+ GtkTreeIter *iter,
+ gpointer data);
static void gtva_setup_column_renderer_edited_cb(GncTreeViewAccount *account_view,
- GtkTreeViewColumn *column,
- GtkCellRenderer *renderer,
- GncTreeViewAccountColumnTextEdited col_edited_cb);
+ GtkTreeViewColumn *column,
+ GtkCellRenderer *renderer,
+ GncTreeViewAccountColumnTextEdited col_edited_cb);
typedef struct GncTreeViewAccountPrivate
{
@@ -79,16 +79,16 @@
gpointer filter_data;
GtkFunction filter_destroy;
- GtkTreeViewColumn *name_column;
- GtkTreeViewColumn *code_column;
- GtkTreeViewColumn *desc_column;
- GtkTreeViewColumn *present_report_column;
- GtkTreeViewColumn *balance_report_column;
- GtkTreeViewColumn *cleared_report_column;
- GtkTreeViewColumn *reconciled_report_column;
- GtkTreeViewColumn *future_min_report_column;
- GtkTreeViewColumn *total_report_column;
- GtkTreeViewColumn *notes_column;
+ GtkTreeViewColumn *name_column;
+ GtkTreeViewColumn *code_column;
+ GtkTreeViewColumn *desc_column;
+ GtkTreeViewColumn *present_report_column;
+ GtkTreeViewColumn *balance_report_column;
+ GtkTreeViewColumn *cleared_report_column;
+ GtkTreeViewColumn *reconciled_report_column;
+ GtkTreeViewColumn *future_min_report_column;
+ GtkTreeViewColumn *total_report_column;
+ GtkTreeViewColumn *notes_column;
} GncTreeViewAccountPrivate;
#define GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(o) \
@@ -104,44 +104,46 @@
GType
gnc_tree_view_account_get_type (void)
{
- static GType gnc_tree_view_account_type = 0;
+ static GType gnc_tree_view_account_type = 0;
- if (gnc_tree_view_account_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeViewAccountClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_view_account_class_init,
- NULL,
- NULL,
- sizeof (GncTreeViewAccount),
- 0,
- (GInstanceInitFunc) gnc_tree_view_account_init
- };
-
- gnc_tree_view_account_type = g_type_register_static (
- GNC_TYPE_TREE_VIEW, GNC_TREE_VIEW_ACCOUNT_NAME,
- &our_info, 0);
- }
+ if (gnc_tree_view_account_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeViewAccountClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_view_account_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeViewAccount),
+ 0,
+ (GInstanceInitFunc) gnc_tree_view_account_init
+ };
- return gnc_tree_view_account_type;
+ gnc_tree_view_account_type = g_type_register_static (
+ GNC_TYPE_TREE_VIEW, GNC_TREE_VIEW_ACCOUNT_NAME,
+ &our_info, 0);
+ }
+
+ return gnc_tree_view_account_type;
}
static void
gnc_tree_view_account_class_init (GncTreeViewAccountClass *klass)
{
- GObjectClass *o_class;
+ GObjectClass *o_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- /* GObject signals */
- o_class = G_OBJECT_CLASS (klass);
- o_class->finalize = gnc_tree_view_account_finalize;
+ /* GObject signals */
+ o_class = G_OBJECT_CLASS (klass);
+ o_class->finalize = gnc_tree_view_account_finalize;
- g_type_class_add_private(klass, sizeof(GncTreeViewAccountPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeViewAccountPrivate));
- gnc_hook_add_dangler(HOOK_CURRENCY_CHANGED,
- (GFunc)gtva_currency_changed_cb, NULL);
+ gnc_hook_add_dangler(HOOK_CURRENCY_CHANGED,
+ (GFunc)gtva_currency_changed_cb, NULL);
}
/********************************************************************\
@@ -154,44 +156,45 @@
static void
gnc_init_account_view_info(AccountViewInfo *avi)
{
- int i;
+ int i;
- for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
- avi->include_type[i] = TRUE;
- avi->show_hidden = FALSE;
+ for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
+ avi->include_type[i] = TRUE;
+ avi->show_hidden = FALSE;
}
static void
gnc_tree_view_account_init (GncTreeViewAccount *view)
{
- GncTreeViewAccountPrivate *priv;
+ GncTreeViewAccountPrivate *priv;
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
- gnc_init_account_view_info(&priv->avi);
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+ gnc_init_account_view_info(&priv->avi);
}
static void
gnc_tree_view_account_finalize (GObject *object)
{
- GncTreeViewAccount *account_view;
- GncTreeViewAccountPrivate *priv;
+ 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));
+ 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);
+ account_view = GNC_TREE_VIEW_ACCOUNT (object);
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
- if (priv->filter_destroy) {
- priv->filter_destroy(priv->filter_data);
- priv->filter_destroy = NULL;
- }
- priv->filter_fn = NULL;
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
+ if (priv->filter_destroy)
+ {
+ priv->filter_destroy(priv->filter_data);
+ priv->filter_destroy = NULL;
+ }
+ priv->filter_fn = NULL;
- if (G_OBJECT_CLASS (parent_class)->finalize)
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+ LEAVE(" ");
}
@@ -200,25 +203,26 @@
************************************************************/
static void
gnc_tree_view_account_placeholder_toggled (GtkCellRendererToggle *cell,
- const gchar *s_path_str,
- gpointer user_data)
+ const gchar *s_path_str,
+ gpointer user_data)
{
- GncTreeViewAccount *tree_view;
- GtkTreePath *s_path;
- Account *account;
- gboolean placeholder;
+ GncTreeViewAccount *tree_view;
+ GtkTreePath *s_path;
+ Account *account;
+ gboolean placeholder;
- /* Change the requested account */
- tree_view = user_data;
- s_path = gtk_tree_path_new_from_string (s_path_str);
- account = gnc_tree_view_account_get_account_from_path (tree_view, s_path);
- if (account) {
- placeholder = !gtk_cell_renderer_toggle_get_active (cell); // hasn't changed yet.
- xaccAccountSetPlaceholder (account, placeholder);
- }
+ /* Change the requested account */
+ tree_view = user_data;
+ s_path = gtk_tree_path_new_from_string (s_path_str);
+ account = gnc_tree_view_account_get_account_from_path (tree_view, s_path);
+ if (account)
+ {
+ placeholder = !gtk_cell_renderer_toggle_get_active (cell); // hasn't changed yet.
+ xaccAccountSetPlaceholder (account, placeholder);
+ }
- /* Clean up */
- gtk_tree_path_free (s_path);
+ /* Clean up */
+ gtk_tree_path_free (s_path);
}
@@ -228,231 +232,231 @@
static GtkTreeModel *
sort_cb_setup_w_iters (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- GtkTreeIter *iter_a,
- GtkTreeIter *iter_b,
- const Account **account_a,
- const Account **account_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ GtkTreeIter *iter_a,
+ GtkTreeIter *iter_b,
+ const Account **account_a,
+ const Account **account_b)
{
- GtkTreeModel *model;
+ GtkTreeModel *model;
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- iter_a,
- f_iter_a);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- iter_b,
- f_iter_b);
- *account_a = gnc_tree_model_account_get_account (GNC_TREE_MODEL_ACCOUNT(model), iter_a);
- *account_b = gnc_tree_model_account_get_account (GNC_TREE_MODEL_ACCOUNT(model), iter_b);
- return model;
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ iter_a,
+ f_iter_a);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ iter_b,
+ f_iter_b);
+ *account_a = gnc_tree_model_account_get_account (GNC_TREE_MODEL_ACCOUNT(model), iter_a);
+ *account_b = gnc_tree_model_account_get_account (GNC_TREE_MODEL_ACCOUNT(model), iter_b);
+ return model;
}
static void
sort_cb_setup (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- const Account **account_a,
- const Account **account_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ const Account **account_a,
+ const Account **account_b)
{
- GtkTreeIter iter_a, iter_b;
+ GtkTreeIter iter_a, iter_b;
- sort_cb_setup_w_iters (f_model, f_iter_a, f_iter_b,
- &iter_a, &iter_b, account_a, account_b);
+ sort_cb_setup_w_iters (f_model, f_iter_a, f_iter_b,
+ &iter_a, &iter_b, account_a, account_b);
}
static gint
sort_by_string (GtkTreeModel *f_model,
- GtkTreeIter *f_iter1,
- GtkTreeIter *f_iter2,
- gpointer user_data)
+ GtkTreeIter *f_iter1,
+ GtkTreeIter *f_iter2,
+ gpointer user_data)
{
- GtkTreeModel *model;
- GtkTreeIter iter1, iter2;
- const Account *account1, *account2;
- gchar *str1, *str2;
- gint column = GPOINTER_TO_INT(user_data);
- gint result;
+ GtkTreeModel *model;
+ GtkTreeIter iter1, iter2;
+ const Account *account1, *account2;
+ gchar *str1, *str2;
+ gint column = GPOINTER_TO_INT(user_data);
+ gint result;
- model = sort_cb_setup_w_iters(f_model, f_iter1, f_iter2, &iter1, &iter2, &account1, &account2);
+ model = sort_cb_setup_w_iters(f_model, f_iter1, f_iter2, &iter1, &iter2, &account1, &account2);
- /* Get the strings. */
- gtk_tree_model_get(GTK_TREE_MODEL(model), &iter1, column, &str1, -1);
- gtk_tree_model_get(GTK_TREE_MODEL(model), &iter2, column, &str2, -1);
+ /* Get the strings. */
+ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter1, column, &str1, -1);
+ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter2, column, &str2, -1);
- result = safe_utf8_collate(str1, str2);
- g_free(str1);
- g_free(str2);
- if (result != 0)
- return result;
- return xaccAccountOrder(account1, account2);
+ result = safe_utf8_collate(str1, str2);
+ g_free(str1);
+ g_free(str2);
+ if (result != 0)
+ return result;
+ return xaccAccountOrder(account1, account2);
}
static gint
sort_by_code (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- const Account *account_a, *account_b;
+ const Account *account_a, *account_b;
- sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
+ sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
- /* Default ordering uses this column first. */
- return xaccAccountOrder(account_a, account_b);
+ /* Default ordering uses this column first. */
+ return xaccAccountOrder(account_a, account_b);
}
static gint
sort_by_xxx_value (xaccGetBalanceInCurrencyFn fn,
- gboolean recurse,
- GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ gboolean recurse,
+ GtkTreeModel *f_model,
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- const Account *account_a, *account_b;
- gnc_numeric balance_a, balance_b;
- gint result;
+ const Account *account_a, *account_b;
+ gnc_numeric balance_a, balance_b;
+ gint result;
- /* Find the accounts */
- sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
+ /* Find the accounts */
+ sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
- /* Get balances */
- balance_a = gnc_ui_account_get_balance_full(fn, account_a, recurse, NULL, NULL);
- balance_b = gnc_ui_account_get_balance_full(fn, account_b, recurse, NULL, NULL);
+ /* Get balances */
+ balance_a = gnc_ui_account_get_balance_full(fn, account_a, recurse, NULL, NULL);
+ balance_b = gnc_ui_account_get_balance_full(fn, account_b, recurse, NULL, NULL);
- result = gnc_numeric_compare(balance_a, balance_b);
- if (result != 0)
- return result;
- return xaccAccountOrder(account_a, account_b);
+ result = gnc_numeric_compare(balance_a, balance_b);
+ if (result != 0)
+ return result;
+ return xaccAccountOrder(account_a, account_b);
}
static gint
sort_by_present_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_value (xaccAccountGetPresentBalanceInCurrency, FALSE,
- f_model, f_iter_a, f_iter_b, user_data);
+ return sort_by_xxx_value (xaccAccountGetPresentBalanceInCurrency, FALSE,
+ f_model, f_iter_a, f_iter_b, user_data);
}
static gint
sort_by_balance_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_value (xaccAccountGetBalanceInCurrency, FALSE,
- f_model, f_iter_a, f_iter_b, user_data);
+ return sort_by_xxx_value (xaccAccountGetBalanceInCurrency, FALSE,
+ f_model, f_iter_a, f_iter_b, user_data);
}
static gint
sort_by_cleared_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_value (xaccAccountGetClearedBalanceInCurrency, FALSE,
- f_model, f_iter_a, f_iter_b, user_data);
+ return sort_by_xxx_value (xaccAccountGetClearedBalanceInCurrency, FALSE,
+ f_model, f_iter_a, f_iter_b, user_data);
}
static gint
sort_by_reconciled_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_value (xaccAccountGetReconciledBalanceInCurrency, FALSE,
- f_model, f_iter_a, f_iter_b, user_data);
+ return sort_by_xxx_value (xaccAccountGetReconciledBalanceInCurrency, FALSE,
+ f_model, f_iter_a, f_iter_b, user_data);
}
static gint
sort_by_future_min_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_value (xaccAccountGetProjectedMinimumBalanceInCurrency, FALSE,
- f_model, f_iter_a, f_iter_b, user_data);
+ return sort_by_xxx_value (xaccAccountGetProjectedMinimumBalanceInCurrency, FALSE,
+ f_model, f_iter_a, f_iter_b, user_data);
}
static gint
sort_by_total_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_value (xaccAccountGetBalanceInCurrency, TRUE,
- f_model, f_iter_a, f_iter_b, user_data);
+ return sort_by_xxx_value (xaccAccountGetBalanceInCurrency, TRUE,
+ f_model, f_iter_a, f_iter_b, user_data);
}
static gint
sort_by_placeholder (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- const Account *account_a, *account_b;
- gboolean flag_a, flag_b;
+ const Account *account_a, *account_b;
+ gboolean flag_a, flag_b;
- /* Find the accounts */
- sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
+ /* Find the accounts */
+ sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
- /* Get the placeholder flags. */
- flag_a = xaccAccountGetPlaceholder(account_a);
- flag_b = xaccAccountGetPlaceholder(account_b);
+ /* Get the placeholder flags. */
+ flag_a = xaccAccountGetPlaceholder(account_a);
+ flag_b = xaccAccountGetPlaceholder(account_b);
- if (flag_a > flag_b)
- return -1;
- else if (flag_a < flag_b)
- return 1;
- return xaccAccountOrder(account_a, account_b);
+ if (flag_a > flag_b)
+ return -1;
+ else if (flag_a < flag_b)
+ return 1;
+ return xaccAccountOrder(account_a, account_b);
}
static gint
sort_by_xxx_period_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gboolean recurse)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gboolean recurse)
{
- Account *acct1, *acct2;
- time_t t1, t2;
- gnc_numeric b1, b2;
- gint result;
+ Account *acct1, *acct2;
+ time_t t1, t2;
+ gnc_numeric b1, b2;
+ gint result;
- sort_cb_setup (f_model, f_iter_a, f_iter_b,
- (const Account **)&acct1, (const Account **)&acct2);
+ sort_cb_setup (f_model, f_iter_a, f_iter_b,
+ (const Account **)&acct1, (const Account **)&acct2);
- t1 = gnc_accounting_period_fiscal_start();
- t2 = gnc_accounting_period_fiscal_end();
+ t1 = gnc_accounting_period_fiscal_start();
+ t2 = gnc_accounting_period_fiscal_end();
- b1 = xaccAccountGetBalanceChangeForPeriod(acct1, t1, t2, recurse);
- b2 = xaccAccountGetBalanceChangeForPeriod(acct2, t1, t2, recurse);
+ b1 = xaccAccountGetBalanceChangeForPeriod(acct1, t1, t2, recurse);
+ b2 = xaccAccountGetBalanceChangeForPeriod(acct2, t1, t2, recurse);
- result = gnc_numeric_compare(b1, b2);
- if (result != 0)
- return result;
- return xaccAccountOrder(acct1, acct2);
+ result = gnc_numeric_compare(b1, b2);
+ if (result != 0)
+ return result;
+ return xaccAccountOrder(acct1, acct2);
}
static gint
sort_by_balance_period_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_period_value (f_model, f_iter_a, f_iter_b, FALSE);
+ return sort_by_xxx_period_value (f_model, f_iter_a, f_iter_b, FALSE);
}
static gint
sort_by_total_period_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- return sort_by_xxx_period_value (f_model, f_iter_a, f_iter_b, TRUE);
+ return sort_by_xxx_period_value (f_model, f_iter_a, f_iter_b, TRUE);
}
/************************************************************/
@@ -468,211 +472,211 @@
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;
+ GncTreeView *view;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *virtual_root_path = NULL;
+ const gchar *sample_type, *sample_commodity;
+ GncTreeViewAccountPrivate *priv;
- ENTER(" ");
- /* Create our view */
- view = g_object_new (GNC_TYPE_TREE_VIEW_ACCOUNT,
- "name", "account_tree", NULL);
+ ENTER(" ");
+ /* Create our view */
+ view = g_object_new (GNC_TYPE_TREE_VIEW_ACCOUNT,
+ "name", "account_tree", NULL);
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(GNC_TREE_VIEW_ACCOUNT (view));
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(GNC_TREE_VIEW_ACCOUNT (view));
- /* Create/get a pointer to the existing model for this set of books. */
- model = gnc_tree_model_account_new (root);
+ /* Create/get a pointer to the existing model for this set of books. */
+ model = gnc_tree_model_account_new (root);
- /* Set up the view private filter layer on the common model. */
- if (!show_root)
- virtual_root_path = gtk_tree_path_new_first ();
- f_model = gtk_tree_model_filter_new (model, virtual_root_path);
- /* A GncTreeModelAccount is based on a GncTreeModel, which is a
- * GObject that provides a GtkTreeModel interface. */
- g_object_unref(G_OBJECT(model));
- if (virtual_root_path)
- gtk_tree_path_free(virtual_root_path);
+ /* Set up the view private filter layer on the common model. */
+ if (!show_root)
+ virtual_root_path = gtk_tree_path_new_first ();
+ f_model = gtk_tree_model_filter_new (model, virtual_root_path);
+ /* A GncTreeModelAccount is based on a GncTreeModel, which is a
+ * GObject that provides a GtkTreeModel interface. */
+ g_object_unref(G_OBJECT(model));
+ if (virtual_root_path)
+ gtk_tree_path_free(virtual_root_path);
- /* Set up the view private sort layer on the common model. */
- s_model = gtk_tree_model_sort_new_with_model(f_model);
- g_object_unref(G_OBJECT(f_model));
- gnc_tree_view_set_model (view, s_model);
- g_object_unref(G_OBJECT(s_model));
+ /* Set up the view private sort layer on the common model. */
+ s_model = gtk_tree_model_sort_new_with_model(f_model);
+ g_object_unref(G_OBJECT(f_model));
+ gnc_tree_view_set_model (view, s_model);
+ g_object_unref(G_OBJECT(s_model));
- /* Set default visibilities */
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(view), FALSE);
+ /* Set default visibilities */
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(view), FALSE);
- sample_type = xaccAccountGetTypeStr(ACCT_TYPE_CREDIT);
- sample_commodity = gnc_commodity_get_fullname(gnc_default_currency());
+ sample_type = xaccAccountGetTypeStr(ACCT_TYPE_CREDIT);
+ sample_commodity = gnc_commodity_get_fullname(gnc_default_currency());
- priv->name_column
+ priv->name_column
= gnc_tree_view_add_text_column(view, _("Account Name"), "name",
GNC_STOCK_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_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,
- GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
- sort_by_string);
- priv->code_column
+ 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,
+ GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
+ sort_by_string);
+ priv->code_column
= gnc_tree_view_add_text_column(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
+ priv->desc_column
= gnc_tree_view_add_text_column(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_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,
- 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, _("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,
+ 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",
- 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",
- 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
+ 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",
+ 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",
- 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);
+ 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",
- 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",
- 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, _("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",
+ 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",
- 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",
- 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
+ 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",
+ 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",
- 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,
- "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,
- GNC_TREE_MODEL_ACCOUNT_COL_COLOR_FUTURE_MIN,
- GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
- sort_by_future_min_value);
- priv->future_min_report_column
+ 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,
+ "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,
+ 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",
- 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",
- 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
+ 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",
+ 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",
- 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",
- 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);
- priv->notes_column
+ 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",
+ 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);
+ priv->notes_column
= gnc_tree_view_add_text_column(view, _("Notes"), "notes", NULL,
"Sample account notes.",
GNC_TREE_MODEL_ACCOUNT_COL_NOTES,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_string);
- gnc_tree_view_add_text_column(view, _("Tax Info"), "tax-info", NULL,
- "Sample tax info.",
- GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
- GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
- sort_by_string);
- 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"),
- "placeholder",
- GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
- GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
- sort_by_placeholder,
- gnc_tree_view_account_placeholder_toggled);
+ gnc_tree_view_add_text_column(view, _("Tax Info"), "tax-info", NULL,
+ "Sample tax info.",
+ GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO,
+ GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
+ sort_by_string);
+ 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"),
+ "placeholder",
+ GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
+ GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
+ sort_by_placeholder,
+ gnc_tree_view_account_placeholder_toggled);
- /* Update column titles to use the curreny name. */
- gtva_update_column_names(view);
+ /* Update column titles to use the curreny name. */
+ gtva_update_column_names(view);
- /* By default only the first column is visible. */
- 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,
- NULL);
+ /* By default only the first column is visible. */
+ 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,
+ NULL);
- /* Default the sorting to account name */
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
- GNC_TREE_MODEL_ACCOUNT_COL_NAME,
- GTK_SORT_ASCENDING);
+ /* Default the sorting to account name */
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ GNC_TREE_MODEL_ACCOUNT_COL_NAME,
+ GTK_SORT_ASCENDING);
- gtk_widget_show(GTK_WIDGET(view));
- LEAVE("%p", view);
- return GTK_TREE_VIEW(view);
+ gtk_widget_show(GTK_WIDGET(view));
+ LEAVE("%p", view);
+ return GTK_TREE_VIEW(view);
}
/*
@@ -684,10 +688,10 @@
GtkTreeView *
gnc_tree_view_account_new (gboolean show_root)
{
- Account *root;
+ Account *root;
- root = gnc_book_get_root_account (gnc_get_current_book ());
- return gnc_tree_view_account_new_with_root (root, show_root);
+ root = gnc_book_get_root_account (gnc_get_current_book ());
+ return gnc_tree_view_account_new_with_root (root, show_root);
}
/************************************************************/
@@ -702,101 +706,107 @@
static GtkTreePath *
gnc_tree_view_account_get_path_from_account (GncTreeViewAccount *view,
- Account *account)
+ Account *account)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path;
- ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
+ ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
- if (account == NULL) {
- LEAVE("no account");
- return NULL;
- }
+ if (account == NULL)
+ {
+ LEAVE("no account");
+ return NULL;
+ }
- /* Reach down to the real model and get a path for this account */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- path = gnc_tree_model_account_get_path_from_account (GNC_TREE_MODEL_ACCOUNT(model), account);
- if (path == NULL) {
- LEAVE("no path");
- return NULL;
- }
+ /* Reach down to the real model and get a path for this account */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ path = gnc_tree_model_account_get_path_from_account (GNC_TREE_MODEL_ACCOUNT(model), account);
+ if (path == NULL)
+ {
+ LEAVE("no path");
+ return NULL;
+ }
- /* convert back to a filtered path */
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model), path);
- gtk_tree_path_free(path);
- if (!f_path) {
- LEAVE("no filter path");
- return NULL;
- }
+ /* convert back to a filtered path */
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model), path);
+ gtk_tree_path_free(path);
+ if (!f_path)
+ {
+ LEAVE("no filter path");
+ return NULL;
+ }
- /* convert back to a sorted path */
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model), f_path);
- gtk_tree_path_free(f_path);
- debug_path(LEAVE, s_path);
- return s_path;
+ /* convert back to a sorted path */
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model), f_path);
+ gtk_tree_path_free(f_path);
+ debug_path(LEAVE, s_path);
+ return s_path;
}
static gboolean
gnc_tree_view_account_get_iter_from_account (GncTreeViewAccount *view,
- Account *account,
- GtkTreeIter *s_iter)
+ Account *account,
+ GtkTreeIter *s_iter)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreeIter iter, f_iter;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreeIter iter, f_iter;
- g_return_val_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view), FALSE);
- g_return_val_if_fail(account != NULL, FALSE);
- g_return_val_if_fail(s_iter != NULL, FALSE);
-
- ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
+ g_return_val_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view), FALSE);
+ g_return_val_if_fail(account != NULL, FALSE);
+ g_return_val_if_fail(s_iter != NULL, FALSE);
- /* Reach down to the real model and get an iter for this account */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- if (!gnc_tree_model_account_get_iter_from_account (
- GNC_TREE_MODEL_ACCOUNT(model), account, &iter)) {
- LEAVE("model_get_iter_from_account failed");
- return FALSE;
- }
+ ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
- /* convert back to a sort iter */
- gtk_tree_model_filter_convert_child_iter_to_iter (
- GTK_TREE_MODEL_FILTER(f_model), &f_iter, &iter);
- gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT(s_model),
- s_iter, &f_iter);
- LEAVE(" ");
- return TRUE;
+ /* Reach down to the real model and get an iter for this account */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ if (!gnc_tree_model_account_get_iter_from_account (
+ GNC_TREE_MODEL_ACCOUNT(model), account, &iter))
+ {
+ LEAVE("model_get_iter_from_account failed");
+ return FALSE;
+ }
+
+ /* convert back to a sort iter */
+ gtk_tree_model_filter_convert_child_iter_to_iter (
+ GTK_TREE_MODEL_FILTER(f_model), &f_iter, &iter);
+ gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT(s_model),
+ s_iter, &f_iter);
+ LEAVE(" ");
+ return TRUE;
}
gint
gnc_tree_view_account_count_children (GncTreeViewAccount *view,
- Account *account)
+ Account *account)
{
- GtkTreeModel *s_model;
- GtkTreeIter s_iter;
- gint num_children;
+ GtkTreeModel *s_model;
+ GtkTreeIter s_iter;
+ gint num_children;
- ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
+ ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
- if (account == NULL) {
- LEAVE("no account");
- return 0;
- }
+ if (account == NULL)
+ {
+ LEAVE("no account");
+ return 0;
+ }
- if (!gnc_tree_view_account_get_iter_from_account (view, account, &s_iter)) {
- LEAVE("view_get_iter_from_account failed");
- return 0;
- }
+ if (!gnc_tree_view_account_get_iter_from_account (view, account, &s_iter))
+ {
+ LEAVE("view_get_iter_from_account failed");
+ return 0;
+ }
- /* Any children? */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- num_children = gtk_tree_model_iter_n_children(s_model, &s_iter);
- LEAVE("%d children", num_children);
- return num_children;
+ /* Any children? */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ num_children = gtk_tree_model_iter_n_children(s_model, &s_iter);
+ LEAVE("%d children", num_children);
+ return num_children;
}
@@ -810,16 +820,16 @@
*/
void
gnc_tree_view_account_get_view_info (GncTreeViewAccount *account_view,
- AccountViewInfo *avi)
+ AccountViewInfo *avi)
{
- GncTreeViewAccountPrivate *priv;
+ GncTreeViewAccountPrivate *priv;
- g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
- g_return_if_fail(avi != NULL);
+ g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
+ g_return_if_fail(avi != NULL);
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
- *avi = priv->avi;
+ *avi = priv->avi;
}
/*
@@ -838,49 +848,50 @@
*/
void
gnc_tree_view_account_set_view_info (GncTreeViewAccount *account_view,
- AccountViewInfo *avi)
+ AccountViewInfo *avi)
{
- GncTreeViewAccountPrivate *priv;
- gint i;
- guint sel_bits = 0;
+ GncTreeViewAccountPrivate *priv;
+ gint i;
+ guint sel_bits = 0;
- ENTER("%p", account_view);
- g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
- g_return_if_fail(avi != NULL);
+ ENTER("%p", account_view);
+ g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
+ g_return_if_fail(avi != NULL);
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
- priv->avi = *avi;
-
- for (i = 0; i < NUM_ACCOUNT_TYPES; i++) {
- sel_bits |= avi->include_type[i] ? (1 << i): 0;
- }
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
+ priv->avi = *avi;
- gnc_tree_view_account_set_filter(
- account_view, gnc_tree_view_account_filter_by_view_info,
- &priv->avi, NULL);
+ for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
+ {
+ sel_bits |= avi->include_type[i] ? (1 << i) : 0;
+ }
- LEAVE(" ");
+ gnc_tree_view_account_set_filter(
+ account_view, gnc_tree_view_account_filter_by_view_info,
+ &priv->avi, NULL);
+
+ LEAVE(" ");
}
static gboolean
gnc_tree_view_account_filter_helper (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data)
+ GtkTreeIter *iter,
+ gpointer data)
{
- Account *account;
- GncTreeViewAccount *view = data;
- GncTreeViewAccountPrivate *priv;
+ 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);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- 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);
- else return TRUE;
+ 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);
+ else return TRUE;
}
/*
@@ -888,31 +899,32 @@
* called for each account that the tree is about to show, and the
* account will be passed to the callback function.
*
- * Use NULL as func to remove filter.
+ * Use NULL as func to remove filter.
*/
void
gnc_tree_view_account_set_filter (GncTreeViewAccount *view,
- gnc_tree_view_account_filter_func func,
- gpointer data,
- GtkFunction destroy)
+ gnc_tree_view_account_filter_func func,
+ gpointer data,
+ GtkFunction destroy)
{
- GncTreeViewAccountPrivate *priv;
+ GncTreeViewAccountPrivate *priv;
- ENTER("view %p, filter func %p, data %p, destroy %p",
- view, func, data, destroy);
+ ENTER("view %p, filter func %p, data %p, destroy %p",
+ view, func, data, destroy);
- g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
- if (priv->filter_destroy) {
- priv->filter_destroy(priv->filter_data);
- }
- priv->filter_destroy = destroy;
- priv->filter_data = data;
- priv->filter_fn = func;
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+ if (priv->filter_destroy)
+ {
+ priv->filter_destroy(priv->filter_data);
+ }
+ priv->filter_destroy = destroy;
+ priv->filter_data = data;
+ priv->filter_fn = func;
- gnc_tree_view_account_refilter(view);
- LEAVE(" ");
+ gnc_tree_view_account_refilter(view);
+ LEAVE(" ");
}
/*
@@ -921,16 +933,16 @@
void
gnc_tree_view_account_refilter (GncTreeViewAccount *view)
{
- GtkTreeModel *f_model, *s_model;
+ GtkTreeModel *f_model, *s_model;
- g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
}
-gboolean
+gboolean
gnc_tree_view_account_filter_by_type_selection(Account* acct, gpointer data)
{
GNCAccountType acct_type;
@@ -944,18 +956,18 @@
return (sel_bits & (1 << acct_type)) ? TRUE : FALSE;
}
-gboolean
+gboolean
gnc_tree_view_account_filter_by_view_info(Account* acct, gpointer data)
{
GNCAccountType acct_type;
- AccountViewInfo* avi = (AccountViewInfo*)data;
+ AccountViewInfo* avi = (AccountViewInfo*)data;
g_return_val_if_fail(GNC_IS_ACCOUNT(acct), FALSE);
acct_type = xaccAccountGetType(acct);
- if(!avi->include_type[acct_type]) return FALSE;
- if(!avi->show_hidden && xaccAccountIsHidden(acct)) return FALSE;
- return TRUE;
+ if (!avi->include_type[acct_type]) return FALSE;
+ if (!avi->show_hidden && xaccAccountIsHidden(acct)) return FALSE;
+ return TRUE;
}
/************************************************************/
@@ -968,7 +980,7 @@
*/
Account *
gnc_tree_view_account_get_account_from_path (GncTreeViewAccount *view,
- GtkTreePath *s_path)
+ GtkTreePath *s_path)
{
GtkTreeModel *model, *f_model, *s_model;
GtkTreePath *path, *f_path;
@@ -978,28 +990,31 @@
ENTER("view %p", view);
g_return_val_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view), NULL);
g_return_val_if_fail (s_path != NULL, NULL);
-
+
s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
f_path = gtk_tree_model_sort_convert_path_to_child_path (
- GTK_TREE_MODEL_SORT (s_model), s_path);
- if (!f_path) {
- LEAVE("no filter path");
- return NULL;
+ GTK_TREE_MODEL_SORT (s_model), s_path);
+ if (!f_path)
+ {
+ LEAVE("no filter path");
+ return NULL;
}
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
path = gtk_tree_model_filter_convert_path_to_child_path (
- GTK_TREE_MODEL_FILTER (f_model), f_path);
+ GTK_TREE_MODEL_FILTER (f_model), f_path);
gtk_tree_path_free(f_path);
- if (!path) {
- LEAVE("no path");
- return NULL;
+ if (!path)
+ {
+ LEAVE("no path");
+ return NULL;
}
model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- if (!gtk_tree_model_get_iter (model, &iter, path)) {
- LEAVE("no iter");
- return NULL;
+ if (!gtk_tree_model_get_iter (model, &iter, path))
+ {
+ LEAVE("no iter");
+ return NULL;
}
account = iter.user_data;
@@ -1011,28 +1026,28 @@
Account *
gnc_tree_view_account_get_account_from_iter (GtkTreeModel *s_model,
- GtkTreeIter *s_iter)
+ GtkTreeIter *s_iter)
{
- GtkTreeModel *model, *f_model;
- GtkTreeIter iter, f_iter;
- Account *account;
+ GtkTreeModel *model, *f_model;
+ GtkTreeIter iter, f_iter;
+ Account *account;
- g_return_val_if_fail (GTK_IS_TREE_MODEL_SORT(s_model), NULL);
- g_return_val_if_fail (s_iter != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_TREE_MODEL_SORT(s_model), NULL);
+ g_return_val_if_fail (s_iter != NULL, NULL);
- ENTER("model %p, iter %p", s_model, s_iter);
+ ENTER("model %p, iter %p", s_model, s_iter);
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT(s_model),
- &f_iter,
- s_iter);
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (
- GTK_TREE_MODEL_FILTER(f_model), &iter, &f_iter);
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- account = gnc_tree_model_account_get_account (
- GNC_TREE_MODEL_ACCOUNT(model), &iter);
- LEAVE("account %p (%s)", account, xaccAccountGetName (account));
- return account;
+ gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT(s_model),
+ &f_iter,
+ s_iter);
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (
+ GTK_TREE_MODEL_FILTER(f_model), &iter, &f_iter);
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ account = gnc_tree_model_account_get_account (
+ GNC_TREE_MODEL_ACCOUNT(model), &iter);
+ LEAVE("account %p (%s)", account, xaccAccountGetName (account));
+ return account;
}
@@ -1054,16 +1069,18 @@
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
mode = gtk_tree_selection_get_mode(selection);
- if ((mode != GTK_SELECTION_SINGLE) && (mode != GTK_SELECTION_BROWSE)) {
- return NULL;
+ if ((mode != GTK_SELECTION_SINGLE) && (mode != GTK_SELECTION_BROWSE))
+ {
+ return NULL;
}
- if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter)) {
- LEAVE("no account, get_selected failed");
- return FALSE;
+ if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter))
+ {
+ LEAVE("no account, get_selected failed");
+ return FALSE;
}
gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
- &f_iter, &s_iter);
+ &f_iter, &s_iter);
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
gtk_tree_model_filter_convert_iter_to_child_iter (
@@ -1080,77 +1097,82 @@
*/
void
gnc_tree_view_account_set_selected_account (GncTreeViewAccount *view,
- Account *account)
+ Account *account)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path, *parent_path;
- GtkTreeSelection *selection;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path, *parent_path;
+ GtkTreeSelection *selection;
- ENTER("view %p, account %p (%s)", view,
- account, xaccAccountGetName (account));
- g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view));
+ ENTER("view %p, account %p (%s)", view,
+ account, xaccAccountGetName (account));
+ g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view));
- /* Clear any existing selection. */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_unselect_all (selection);
+ /* Clear any existing selection. */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_unselect_all (selection);
- if (account == NULL)
- return;
+ if (account == NULL)
+ return;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- path = gnc_tree_model_account_get_path_from_account (
- GNC_TREE_MODEL_ACCOUNT(model), account);
- if (path == NULL) {
- LEAVE("no path");
- return;
- }
- debug_path(DEBUG, path);
+ path = gnc_tree_model_account_get_path_from_account (
+ GNC_TREE_MODEL_ACCOUNT(model), account);
+ if (path == NULL)
+ {
+ LEAVE("no path");
+ return;
+ }
+ debug_path(DEBUG, path);
- f_path = gtk_tree_model_filter_convert_child_path_to_path (
- GTK_TREE_MODEL_FILTER (f_model), path);
- gtk_tree_path_free(path);
- if (f_path == NULL) {
- LEAVE("no filter path");
- return;
- }
- debug_path(DEBUG, f_path);
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (
+ GTK_TREE_MODEL_FILTER (f_model), path);
+ gtk_tree_path_free(path);
+ if (f_path == NULL)
+ {
+ LEAVE("no filter path");
+ return;
+ }
+ debug_path(DEBUG, f_path);
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
- f_path);
- gtk_tree_path_free(f_path);
- if (s_path == NULL) {
- LEAVE("no sort path");
- return;
- }
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
+ f_path);
+ gtk_tree_path_free(f_path);
+ if (s_path == NULL)
+ {
+ LEAVE("no sort path");
+ return;
+ }
- /* gtk_tree_view requires that a row be visible before it can be selected */
- parent_path = gtk_tree_path_copy (s_path);
- if (gtk_tree_path_up (parent_path)) {
- /* This function is misnamed. It expands the actual item
- * specified, not the path to the item specified. I.E. It expands
- * one level too many, thus the get of the parent. */
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
- }
- gtk_tree_path_free(parent_path);
+ /* gtk_tree_view requires that a row be visible before it can be selected */
+ parent_path = gtk_tree_path_copy (s_path);
+ if (gtk_tree_path_up (parent_path))
+ {
+ /* This function is misnamed. It expands the actual item
+ * specified, not the path to the item specified. I.E. It expands
+ * one level too many, thus the get of the parent. */
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ }
+ gtk_tree_path_free(parent_path);
- gtk_tree_selection_select_path (selection, s_path);
+ gtk_tree_selection_select_path (selection, s_path);
- /* give gtk+ a chance to resize the tree view first by handling pending
- * configure events */
- while (gtk_events_pending ())
- gtk_main_iteration ();
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
- debug_path(LEAVE, s_path);
- gtk_tree_path_free(s_path);
+ /* give gtk+ a chance to resize the tree view first by handling pending
+ * configure events */
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
+ debug_path(LEAVE, s_path);
+ gtk_tree_path_free(s_path);
}
/* Information re selection process */
-typedef struct {
- GList* return_list;
- GncTreeViewAccountPrivate* priv;
+typedef struct
+{
+ GList* return_list;
+ GncTreeViewAccountPrivate* priv;
} GncTreeViewSelectionInfo;
/*
@@ -1160,28 +1182,28 @@
*/
static void
get_selected_accounts_helper (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gpointer data)
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gpointer data)
{
- GncTreeViewSelectionInfo *gtvsi = data;
- GtkTreeModel *f_model;
- GtkTreeIter iter, f_iter;
- Account *account;
+ GncTreeViewSelectionInfo *gtvsi = data;
+ GtkTreeModel *f_model;
+ GtkTreeIter iter, f_iter;
+ Account *account;
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
- &f_iter, s_iter);
+ gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
+ &f_iter, s_iter);
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
- &iter, &f_iter);
- account = iter.user_data;
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
+ &iter, &f_iter);
+ 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))
- {
- gtvsi->return_list = g_list_append(gtvsi->return_list, account);
- }
+ /* Only selected if it passes the filter */
+ if (gtvsi->priv->filter_fn == NULL || gtvsi->priv->filter_fn(account, gtvsi->priv->filter_data))
+ {
+ gtvsi->return_list = g_list_append(gtvsi->return_list, account);
+ }
}
/*
@@ -1194,16 +1216,16 @@
GList *
gnc_tree_view_account_get_selected_accounts (GncTreeViewAccount *view)
{
- GtkTreeSelection *selection;
- GncTreeViewSelectionInfo info;
+ GtkTreeSelection *selection;
+ GncTreeViewSelectionInfo info;
- g_return_val_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view), NULL);
+ 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);
- return info.return_list;
+ 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);
+ return info.return_list;
}
/*
@@ -1212,67 +1234,70 @@
*/
void
gnc_tree_view_account_set_selected_accounts (GncTreeViewAccount *view,
- GList *account_list,
- gboolean show_last)
+ GList *account_list,
+ gboolean show_last)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path, *parent_path;
- GtkTreeSelection *selection;
- GList *element;
- Account *account;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path, *parent_path;
+ GtkTreeSelection *selection;
+ GList *element;
+ Account *account;
- g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view));
+ g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view));
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- /* Clear any existing selection. */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_unselect_all (selection);
- gtk_tree_view_collapse_all (GTK_TREE_VIEW(view));
+ /* Clear any existing selection. */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_unselect_all (selection);
+ gtk_tree_view_collapse_all (GTK_TREE_VIEW(view));
- /* Now go select what the user requested. */
- for (element = account_list; element; ) {
- account = element->data;
- element = g_list_next(element);
+ /* Now go select what the user requested. */
+ for (element = account_list; element; )
+ {
+ account = element->data;
+ element = g_list_next(element);
- path = gnc_tree_model_account_get_path_from_account (GNC_TREE_MODEL_ACCOUNT(model), account);
- if (path == NULL) {
- /*
- * Oops. Someone must have deleted this account and not cleaned
- * up all references to it.
- */
- continue;
- }
+ path = gnc_tree_model_account_get_path_from_account (GNC_TREE_MODEL_ACCOUNT(model), account);
+ if (path == NULL)
+ {
+ /*
+ * Oops. Someone must have deleted this account and not cleaned
+ * up all references to it.
+ */
+ continue;
+ }
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
- path);
- gtk_tree_path_free(path);
- if (f_path == NULL)
- continue;
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
+ path);
+ gtk_tree_path_free(path);
+ if (f_path == NULL)
+ continue;
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
- f_path);
- gtk_tree_path_free(f_path);
- if (s_path == NULL)
- continue;
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
+ f_path);
+ gtk_tree_path_free(f_path);
+ if (s_path == NULL)
+ continue;
- /* gtk_tree_view requires that a row be visible before it can be selected */
- parent_path = gtk_tree_path_copy (s_path);
- if (gtk_tree_path_up (parent_path)) {
- /* This function is misnamed. It expands the actual item
- * specified, not the path to the item specified. I.E. It
- * expands one level too many, thus the get of the parent. */
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ /* gtk_tree_view requires that a row be visible before it can be selected */
+ parent_path = gtk_tree_path_copy (s_path);
+ if (gtk_tree_path_up (parent_path))
+ {
+ /* This function is misnamed. It expands the actual item
+ * specified, not the path to the item specified. I.E. It
+ * expands one level too many, thus the get of the parent. */
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ }
+ gtk_tree_path_free(parent_path);
+
+ gtk_tree_selection_select_path (selection, s_path);
+ if (show_last && (element == NULL))
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
+ gtk_tree_path_free(s_path);
}
- gtk_tree_path_free(parent_path);
-
- gtk_tree_selection_select_path (selection, s_path);
- if (show_last && (element == NULL))
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
- gtk_tree_path_free(s_path);
- }
}
/*
@@ -1280,87 +1305,93 @@
*/
void
gnc_tree_view_account_select_subaccounts (GncTreeViewAccount *view,
- Account *account)
+ Account *account)
{
- GtkTreeModel *s_model;
- GtkTreeSelection *selection;
- GtkTreePath *sp_account, *sp_start, *sp_end;
- GtkTreeIter si_account, si_start, si_end;
- gboolean have_start, have_end;
- gint num_children;
+ GtkTreeModel *s_model;
+ GtkTreeSelection *selection;
+ GtkTreePath *sp_account, *sp_start, *sp_end;
+ GtkTreeIter si_account, si_start, si_end;
+ gboolean have_start, have_end;
+ gint num_children;
- ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
+ ENTER("view %p, account %p (%s)", view, account, xaccAccountGetName(account));
- g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view));
+ g_return_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view));
- if (account == NULL) {
- LEAVE("no account");
- return;
- }
+ if (account == NULL)
+ {
+ LEAVE("no account");
+ return;
+ }
- if (!gnc_tree_view_account_get_iter_from_account (view, account, &si_account)) {
- LEAVE("view_get_iter_from_account failed");
- return;
- }
+ if (!gnc_tree_view_account_get_iter_from_account (view, account, &si_account))
+ {
+ LEAVE("view_get_iter_from_account failed");
+ return;
+ }
- /* Any children? */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- num_children = gtk_tree_model_iter_n_children(s_model, &si_account);
- if (num_children == 0) {
- LEAVE("no children");
- return;
- }
+ /* Any children? */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ num_children = gtk_tree_model_iter_n_children(s_model, &si_account);
+ if (num_children == 0)
+ {
+ LEAVE("no children");
+ return;
+ }
- /* Expand the tree. Required for selection to work */
- sp_account = gtk_tree_model_get_path (s_model, &si_account);
- gtk_tree_view_expand_row (GTK_TREE_VIEW(view), sp_account, TRUE);
+ /* Expand the tree. Required for selection to work */
+ sp_account = gtk_tree_model_get_path (s_model, &si_account);
+ gtk_tree_view_expand_row (GTK_TREE_VIEW(view), sp_account, TRUE);
- /* compute start/end paths */
- have_start = gtk_tree_model_iter_nth_child(s_model, &si_start, &si_account, 0);
- si_end = si_account;
- while (num_children) {
- GtkTreeIter tmp_iter = si_end;
- have_end = gtk_tree_model_iter_nth_child(s_model, &si_end, &tmp_iter,
- num_children - 1);
- if (have_end)
- num_children = gtk_tree_model_iter_n_children(s_model, &si_end);
- else
- num_children = 0;
- }
+ /* compute start/end paths */
+ have_start = gtk_tree_model_iter_nth_child(s_model, &si_start, &si_account, 0);
+ si_end = si_account;
+ while (num_children)
+ {
+ GtkTreeIter tmp_iter = si_end;
+ have_end = gtk_tree_model_iter_nth_child(s_model, &si_end, &tmp_iter,
+ num_children - 1);
+ if (have_end)
+ num_children = gtk_tree_model_iter_n_children(s_model, &si_end);
+ else
+ num_children = 0;
+ }
- if (have_start && have_end) {
- sp_start = gtk_tree_model_get_path (s_model, &si_start);
- sp_end = gtk_tree_model_get_path (s_model, &si_end);
+ if (have_start && have_end)
+ {
+ sp_start = gtk_tree_model_get_path (s_model, &si_start);
+ sp_end = gtk_tree_model_get_path (s_model, &si_end);
- /* select everything between */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_select_range (selection, sp_start, sp_end);
+ /* select everything between */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_select_range (selection, sp_start, sp_end);
- /* clean up */
- gtk_tree_path_free(sp_start);
- gtk_tree_path_free(sp_end);
- }
- gtk_tree_path_free(sp_account);
- LEAVE(" ");
- return;
+ /* clean up */
+ gtk_tree_path_free(sp_start);
+ gtk_tree_path_free(sp_end);
+ }
+ gtk_tree_path_free(sp_account);
+ LEAVE(" ");
+ return;
}
void
gnc_tree_view_account_expand_to_account (GncTreeViewAccount *view,
- Account *account)
+ Account *account)
{
- GtkTreePath *path;
+ GtkTreePath *path;
- g_return_if_fail(view != NULL);
- g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
- ENTER("view %p, account %p", view, account);
+ g_return_if_fail(view != NULL);
+ g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
+ ENTER("view %p, account %p", view, account);
- path = gnc_tree_view_account_get_path_from_account(view, account);
- if (path) {
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), path);
- gtk_tree_path_free(path);
- }
- LEAVE(" ");
+ path = gnc_tree_view_account_get_path_from_account(view, account);
+ if (path)
+ {
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), path);
+ gtk_tree_path_free(path);
+ }
+ LEAVE(" ");
}
@@ -1379,9 +1410,10 @@
s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
gtk_tree_view_get_cursor (GTK_TREE_VIEW(view), &s_path, NULL);
- if (!s_path) {
- LEAVE("no account");
- return NULL;
+ if (!s_path)
+ {
+ LEAVE("no account");
+ return NULL;
}
account = gnc_tree_view_account_get_account_from_path (view, s_path);
@@ -1397,89 +1429,90 @@
static void
gtva_update_column_name (GtkTreeViewColumn *column,
- const gchar *fmt,
- const gchar *mnemonic)
+ const gchar *fmt,
+ const gchar *mnemonic)
{
- gchar *name;
+ gchar *name;
- g_return_if_fail(column);
+ g_return_if_fail(column);
- name = g_strdup_printf(fmt, mnemonic);
- gtk_tree_view_column_set_title(column, name);
- g_free(name);
+ name = g_strdup_printf(fmt, mnemonic);
+ gtk_tree_view_column_set_title(column, name);
+ g_free(name);
}
static void
gtva_update_column_names (GncTreeView *view)
{
- GncTreeViewAccountPrivate *priv;
- const gchar *mnemonic;
+ GncTreeViewAccountPrivate *priv;
+ const gchar *mnemonic;
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
- 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,
- /* Translators: %s is a currency mnemonic.*/
- _("Present (%s)"), mnemonic);
- gtva_update_column_name(priv->balance_report_column,
- /* Translators: %s is a currency mnemonic.*/
- _("Balance (%s)"), mnemonic);
- gtva_update_column_name(priv->cleared_report_column,
- /* Translators: %s is a currency mnemonic.*/
- _("Cleared (%s)"), mnemonic);
- gtva_update_column_name(priv->reconciled_report_column,
- /* Translators: %s is a currency mnemonic.*/
- _("Reconciled (%s)"), mnemonic);
- gtva_update_column_name(priv->future_min_report_column,
- /* Translators: %s is a currency mnemonic.*/
- _("Future Minimum (%s)"), mnemonic);
- gtva_update_column_name(priv->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);
+ gtva_update_column_name(priv->present_report_column,
+ /* Translators: %s is a currency mnemonic.*/
+ _("Present (%s)"), mnemonic);
+ gtva_update_column_name(priv->balance_report_column,
+ /* Translators: %s is a currency mnemonic.*/
+ _("Balance (%s)"), mnemonic);
+ gtva_update_column_name(priv->cleared_report_column,
+ /* Translators: %s is a currency mnemonic.*/
+ _("Cleared (%s)"), mnemonic);
+ gtva_update_column_name(priv->reconciled_report_column,
+ /* Translators: %s is a currency mnemonic.*/
+ _("Reconciled (%s)"), mnemonic);
+ gtva_update_column_name(priv->future_min_report_column,
+ /* Translators: %s is a currency mnemonic.*/
+ _("Future Minimum (%s)"), mnemonic);
+ gtva_update_column_name(priv->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);
}
static void
gtva_currency_changed_cb (void)
{
- const GList *views, *ptr;
+ const GList *views, *ptr;
- views = gnc_gobject_tracking_get_list (GNC_TREE_VIEW_ACCOUNT_NAME);
- for (ptr = views; ptr; ptr = g_list_next(ptr)) {
- gtva_update_column_names (ptr->data);
- }
+ views = gnc_gobject_tracking_get_list (GNC_TREE_VIEW_ACCOUNT_NAME);
+ for (ptr = views; ptr; ptr = g_list_next(ptr))
+ {
+ gtva_update_column_names (ptr->data);
+ }
}
/* This function implements a custom mapping between an account's KVP
* and the cell renderer's 'text' property. */
static void
account_cell_kvp_data_func (GtkTreeViewColumn *tree_column,
- GtkCellRenderer *cell,
- GtkTreeModel *s_model,
- GtkTreeIter *s_iter,
- gpointer key)
+ GtkCellRenderer *cell,
+ GtkTreeModel *s_model,
+ GtkTreeIter *s_iter,
+ gpointer key)
{
Account *account;
kvp_frame * frame;
-
+
g_return_if_fail (GTK_IS_TREE_MODEL_SORT (s_model));
account = gnc_tree_view_account_get_account_from_iter(s_model, s_iter);
frame = xaccAccountGetSlots(account);
-
+
g_object_set (G_OBJECT (cell),
"text", kvp_frame_get_string(frame, (gchar *)key),
"xalign", 0.0,
NULL);
-
+
}
GtkTreeViewColumn *
gnc_tree_view_account_add_kvp_column (GncTreeViewAccount *view,
- const gchar *column_title,
- const gchar *kvp_key)
+ const gchar *column_title,
+ const gchar *kvp_key)
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
@@ -1488,21 +1521,21 @@
g_return_val_if_fail (kvp_key != NULL, NULL);
column = gnc_tree_view_add_text_column(GNC_TREE_VIEW(view), column_title,
- kvp_key, NULL, "Sample text",
- -1, -1, NULL);
+ kvp_key, NULL, "Sample text",
+ -1, -1, NULL);
/* This new kvp column has only had one renderer added to it so
* far. Find that renderer. */
renderer = gnc_tree_view_column_get_renderer(column);
g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
- gtk_tree_view_column_set_cell_data_func (column, renderer,
- account_cell_kvp_data_func,
- g_strdup(kvp_key), g_free);
+ gtk_tree_view_column_set_cell_data_func (column, renderer,
+ account_cell_kvp_data_func,
+ g_strdup(kvp_key), g_free);
return column;
}
-static void col_edited_helper(GtkCellRendererText *cell, gchar *path_string,
+static void col_edited_helper(GtkCellRendererText *cell, gchar *path_string,
gchar *new_text, gpointer _s_model)
{
Account *account;
@@ -1511,15 +1544,15 @@
GncTreeViewAccountColumnTextEdited col_edited_cb;
GtkTreeViewColumn *col;
- col_edited_cb = g_object_get_data(G_OBJECT(cell),
+ col_edited_cb = g_object_get_data(G_OBJECT(cell),
"column_edited_callback");
- col = GTK_TREE_VIEW_COLUMN(g_object_get_data(G_OBJECT(cell),
- "column_view"));
+ col = GTK_TREE_VIEW_COLUMN(g_object_get_data(G_OBJECT(cell),
+ "column_view"));
s_model = GTK_TREE_MODEL(_s_model);
if (!gtk_tree_model_get_iter_from_string(s_model, &s_iter, path_string))
return;
-
+
account = gnc_tree_view_account_get_account_from_iter(s_model, &s_iter);
col_edited_cb(account, col, new_text);
}
@@ -1531,7 +1564,7 @@
Account *account;
gchar *text;
GncTreeViewAccountColumnSource col_source_cb;
-
+
g_return_if_fail (GTK_IS_TREE_MODEL_SORT (s_model));
col_source_cb = (GncTreeViewAccountColumnSource) _col_source_cb;
account = gnc_tree_view_account_get_account_from_iter(s_model, s_iter);
@@ -1550,28 +1583,28 @@
GtkCellRenderer *renderer,
GncTreeViewAccountColumnTextEdited col_edited_cb)
{
- GtkTreeModel *s_model;
+ GtkTreeModel *s_model;
- if (col_edited_cb == NULL)
- {
- g_object_set(G_OBJECT(renderer), "editable", FALSE, NULL);
- g_object_set_data(G_OBJECT(renderer), "column_edited_callback", col_edited_cb);
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(account_view));
- g_signal_handlers_disconnect_by_func(G_OBJECT(renderer), col_edited_cb, s_model);
- g_object_set_data(G_OBJECT(renderer), "column_view", column);
- }
- else
- {
- g_object_set(G_OBJECT(renderer), "editable", TRUE, NULL);
- g_object_set_data(G_OBJECT(renderer), "column_edited_callback",
- col_edited_cb);
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(account_view));
- g_signal_connect(G_OBJECT(renderer), "edited",
- (GCallback) col_edited_helper, s_model);
- g_object_set_data(G_OBJECT(renderer), "column_view", column);
- }
+ if (col_edited_cb == NULL)
+ {
+ g_object_set(G_OBJECT(renderer), "editable", FALSE, NULL);
+ g_object_set_data(G_OBJECT(renderer), "column_edited_callback", col_edited_cb);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(account_view));
+ g_signal_handlers_disconnect_by_func(G_OBJECT(renderer), col_edited_cb, s_model);
+ g_object_set_data(G_OBJECT(renderer), "column_view", column);
+ }
+ else
+ {
+ g_object_set(G_OBJECT(renderer), "editable", TRUE, NULL);
+ g_object_set_data(G_OBJECT(renderer), "column_edited_callback",
+ col_edited_cb);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(account_view));
+ g_signal_connect(G_OBJECT(renderer), "edited",
+ (GCallback) col_edited_helper, s_model);
+ g_object_set_data(G_OBJECT(renderer), "column_view", column);
+ }
}
-
+
GtkTreeViewColumn *
gnc_tree_view_account_add_custom_column(GncTreeViewAccount *account_view,
const gchar *column_title,
@@ -1582,21 +1615,22 @@
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
-
+
g_return_val_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (account_view), NULL);
-
+
renderer = gtk_cell_renderer_text_new ();
g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
-
+
column = gtk_tree_view_column_new_with_attributes (column_title,
- renderer, NULL);
- if (col_edited_cb) {
- gtva_setup_column_renderer_edited_cb(account_view, column,
+ renderer, NULL);
+ if (col_edited_cb)
+ {
+ gtva_setup_column_renderer_edited_cb(account_view, column,
renderer, col_edited_cb);
}
- gtk_tree_view_column_set_cell_data_func (column, renderer,
- col_source_helper,
- col_source_cb, NULL);
+ gtk_tree_view_column_set_cell_data_func (column, renderer,
+ col_source_helper,
+ col_source_cb, NULL);
gnc_tree_view_append_column (GNC_TREE_VIEW(account_view), column);
return column;
}
@@ -1617,33 +1651,36 @@
* @return TRUE if the account should be visible. FALSE if the
* account should be hidden. */
gboolean
-gnc_plugin_page_account_tree_filter_accounts (Account *account,
- gpointer user_data)
+gnc_plugin_page_account_tree_filter_accounts (Account *account,
+ gpointer user_data)
{
- AccountFilterDialog *fd = user_data;
- GNCAccountType acct_type;
- gnc_numeric total;
- gboolean result;
+ AccountFilterDialog *fd = user_data;
+ GNCAccountType acct_type;
+ gnc_numeric total;
+ gboolean result;
- ENTER("account %p:%s", account, xaccAccountGetName(account));
+ ENTER("account %p:%s", account, xaccAccountGetName(account));
- if (!fd->show_hidden && xaccAccountIsHidden (account)) {
- LEAVE(" hide: hidden");
- return FALSE;
- }
-
- if (!fd->show_zero_total) {
- total = xaccAccountGetBalanceInCurrency (account, NULL, TRUE);
- if (gnc_numeric_zero_p(total)) {
- LEAVE(" hide: zero balance");
- return FALSE;
+ if (!fd->show_hidden && xaccAccountIsHidden (account))
+ {
+ LEAVE(" hide: hidden");
+ return FALSE;
}
- }
-
- acct_type = xaccAccountGetType(account);
- result = (fd->visible_types & (1 << acct_type)) ? TRUE : FALSE;
- LEAVE(" %s", result ? "show" : "hide");
- return result;
+
+ if (!fd->show_zero_total)
+ {
+ total = xaccAccountGetBalanceInCurrency (account, NULL, TRUE);
+ if (gnc_numeric_zero_p(total))
+ {
+ LEAVE(" hide: zero balance");
+ return FALSE;
+ }
+ }
+
+ acct_type = xaccAccountGetType(account);
+ result = (fd->visible_types & (1 << acct_type)) ? TRUE : FALSE;
+ LEAVE(" %s", result ? "show" : "hide");
+ return result;
}
/** The "show hidden" button in the Filter dialog changed state.
@@ -1654,14 +1691,14 @@
* @param fd A pointer to the account filter dialog struct. */
void
gppat_filter_show_hidden_toggled_cb (GtkToggleButton *button,
- AccountFilterDialog *fd)
+ AccountFilterDialog *fd)
{
- g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
+ g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
- ENTER("button %p", button);
- fd->show_hidden = gtk_toggle_button_get_active(button);
- gnc_tree_view_account_refilter(fd->tree_view);
- LEAVE("show_hidden %d", fd->show_hidden);
+ ENTER("button %p", button);
+ fd->show_hidden = gtk_toggle_button_get_active(button);
+ gnc_tree_view_account_refilter(fd->tree_view);
+ LEAVE("show_hidden %d", fd->show_hidden);
}
/** The "show zero totals" button in the Filter dialog changed state.
@@ -1672,14 +1709,14 @@
* @param fd A pointer to the account filter dialog struct. */
void
gppat_filter_show_zero_toggled_cb (GtkToggleButton *button,
- AccountFilterDialog *fd)
+ AccountFilterDialog *fd)
{
- g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
+ g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
- ENTER("button %p", button);
- fd->show_zero_total = gtk_toggle_button_get_active(button);
- gnc_tree_view_account_refilter(fd->tree_view);
- LEAVE("show_zero %d", fd->show_zero_total);
+ ENTER("button %p", button);
+ fd->show_zero_total = gtk_toggle_button_get_active(button);
+ gnc_tree_view_account_refilter(fd->tree_view);
+ LEAVE("show_zero %d", fd->show_zero_total);
}
/** The "clear all account types" button in the Filter dialog was
@@ -1691,15 +1728,15 @@
* @param fd A pointer to the account filter dialog struct. */
void
gppat_filter_clear_all_cb (GtkWidget *button,
- AccountFilterDialog *fd)
+ AccountFilterDialog *fd)
{
- g_return_if_fail(GTK_IS_BUTTON(button));
+ g_return_if_fail(GTK_IS_BUTTON(button));
- ENTER("button %p", button);
- fd->visible_types = 0;
- gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(fd->model));
- gnc_tree_view_account_refilter(fd->tree_view);
- LEAVE("types 0x%x", fd->visible_types);
+ ENTER("button %p", button);
+ fd->visible_types = 0;
+ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(fd->model));
+ gnc_tree_view_account_refilter(fd->tree_view);
+ LEAVE("types 0x%x", fd->visible_types);
}
/** The "select all account types" button in the Filter dialog was
@@ -1710,15 +1747,15 @@
* @param fd A pointer to the account filter dialog struct. */
void
gppat_filter_select_all_cb (GtkWidget *button,
- AccountFilterDialog *fd)
+ AccountFilterDialog *fd)
{
- g_return_if_fail(GTK_IS_BUTTON(button));
+ g_return_if_fail(GTK_IS_BUTTON(button));
- ENTER("button %p", button);
- fd->visible_types = -1;
- gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(fd->model));
- gnc_tree_view_account_refilter(fd->tree_view);
- LEAVE("types 0x%x", fd->visible_types);
+ ENTER("button %p", button);
+ fd->visible_types = -1;
+ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(fd->model));
+ gnc_tree_view_account_refilter(fd->tree_view);
+ LEAVE("types 0x%x", fd->visible_types);
}
/** The "select default account types" button in the Filter dialog was
@@ -1730,11 +1767,11 @@
* @param fd A pointer to the account filter dialog struct. */
void
gppat_filter_select_default_cb (GtkWidget *button,
- AccountFilterDialog *fd)
+ AccountFilterDialog *fd)
{
- ENTER("button %p", button);
- gppat_filter_select_all_cb(button, fd);
- LEAVE(" ");
+ ENTER("button %p", button);
+ gppat_filter_select_all_cb(button, fd);
+ LEAVE(" ");
}
/** Set the renderer's properties.
@@ -1755,14 +1792,14 @@
GtkTreeIter *iter,
gpointer data)
{
- AccountFilterDialog *fd = data;
- GNCAccountType type;
- gboolean active;
+ AccountFilterDialog *fd = data;
+ GNCAccountType type;
+ gboolean active;
- gtk_tree_model_get(model, iter, GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE, &type, -1);
+ gtk_tree_model_get(model, iter, GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE, &type, -1);
- active = (fd->visible_types & (1 << type)) ? TRUE : FALSE;
- g_object_set (G_OBJECT (renderer), "active", active, NULL);
+ active = (fd->visible_types & (1 << type)) ? TRUE : FALSE;
+ g_object_set (G_OBJECT (renderer), "active", active, NULL);
}
/** A check box in the tree view was toggled.
@@ -1775,21 +1812,22 @@
gchar *path_str,
AccountFilterDialog *fd)
{
- GtkTreeModel *model = fd->model;
- GtkTreeIter iter;
- GtkTreePath *path;
- GNCAccountType type;
+ GtkTreeModel *model = fd->model;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GNCAccountType type;
- ENTER("toggled %p", path_str);
- path = gtk_tree_path_new_from_string(path_str);
+ ENTER("toggled %p", path_str);
+ path = gtk_tree_path_new_from_string(path_str);
- if (gtk_tree_model_get_iter(model, &iter, path)) {
- gtk_tree_model_get(model, &iter, GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE, &type, -1);
- fd->visible_types ^= (1 << type);
- gnc_tree_view_account_refilter(fd->tree_view);
- }
- gtk_tree_path_free(path);
- LEAVE("types 0x%x", fd->visible_types);
+ if (gtk_tree_model_get_iter(model, &iter, path))
+ {
+ gtk_tree_model_get(model, &iter, GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE, &type, -1);
+ fd->visible_types ^= (1 << type);
+ gnc_tree_view_account_refilter(fd->tree_view);
+ }
+ gtk_tree_path_free(path);
+ LEAVE("types 0x%x", fd->visible_types);
}
/** The Filter dialog was closed. Check to see if this was done via
@@ -1803,105 +1841,107 @@
* @param fd A pointer to the account filter dialog struct. */
void
gppat_filter_response_cb (GtkWidget *dialog,
- gint response,
- AccountFilterDialog *fd)
+ gint response,
+ AccountFilterDialog *fd)
{
- GtkWidget *view;
- gpointer gptemp;
+ GtkWidget *view;
+ gpointer gptemp;
- g_return_if_fail(GTK_IS_DIALOG(dialog));
+ g_return_if_fail(GTK_IS_DIALOG(dialog));
- ENTER("dialog %p, response %d", dialog, response);
- view = gnc_glade_lookup_widget(dialog, FILTER_TREE_VIEW);
+ ENTER("dialog %p, response %d", dialog, response);
+ view = gnc_glade_lookup_widget(dialog, FILTER_TREE_VIEW);
- if (response != GTK_RESPONSE_OK) {
- fd->visible_types = fd->original_visible_types;
- fd->show_hidden = fd->original_show_hidden;
- fd->show_zero_total = fd->original_show_zero_total;
- gnc_tree_view_account_refilter(fd->tree_view);
- }
+ if (response != GTK_RESPONSE_OK)
+ {
+ fd->visible_types = fd->original_visible_types;
+ fd->show_hidden = fd->original_show_hidden;
+ fd->show_zero_total = fd->original_show_zero_total;
+ gnc_tree_view_account_refilter(fd->tree_view);
+ }
- /* Clean up and delete dialog */
- gptemp = (gpointer *)fd->dialog;
- g_atomic_pointer_compare_and_exchange(&gptemp,
- dialog, NULL);
- fd->dialog = gptemp;
- gtk_widget_destroy(dialog);
- LEAVE("types 0x%x", fd->visible_types);
+ /* Clean up and delete dialog */
+ gptemp = (gpointer *)fd->dialog;
+ g_atomic_pointer_compare_and_exchange(&gptemp,
+ dialog, NULL);
+ fd->dialog = gptemp;
+ gtk_widget_destroy(dialog);
+ LEAVE("types 0x%x", fd->visible_types);
}
void
account_filter_dialog_create(AccountFilterDialog *fd, GncPluginPage *page)
{
- GtkWidget *dialog, *button;
- GtkTreeView *view;
- GtkCellRenderer *renderer;
- GladeXML *xml;
- gchar *title;
+ GtkWidget *dialog, *button;
+ GtkTreeView *view;
+ GtkCellRenderer *renderer;
+ GladeXML *xml;
+ gchar *title;
- ENTER("(fd %p, page %p)", fd, page);
+ ENTER("(fd %p, page %p)", fd, page);
- if (fd->dialog) {
- gtk_window_present(GTK_WINDOW(fd->dialog));
- LEAVE("existing dialog");
- return;
- }
+ if (fd->dialog)
+ {
+ gtk_window_present(GTK_WINDOW(fd->dialog));
+ LEAVE("existing dialog");
+ return;
+ }
- /* Create the dialog */
- xml = gnc_glade_xml_new ("account.glade", "Filter By");
- dialog = glade_xml_get_widget (xml, "Filter By");
- fd->dialog = dialog;
- gtk_window_set_transient_for(GTK_WINDOW(dialog),
- GTK_WINDOW(GNC_PLUGIN_PAGE(page)->window));
- /* Translators: The %s is the name of the plugin page */
- title = g_strdup_printf(_("Filter %s by..."),
- gnc_plugin_page_get_page_name(GNC_PLUGIN_PAGE(page)));
- gtk_window_set_title(GTK_WINDOW(dialog), title);
- g_free(title);
+ /* Create the dialog */
+ xml = gnc_glade_xml_new ("account.glade", "Filter By");
+ dialog = glade_xml_get_widget (xml, "Filter By");
+ fd->dialog = dialog;
+ gtk_window_set_transient_for(GTK_WINDOW(dialog),
+ GTK_WINDOW(GNC_PLUGIN_PAGE(page)->window));
+ /* Translators: The %s is the name of the plugin page */
+ title = g_strdup_printf(_("Filter %s by..."),
+ gnc_plugin_page_get_page_name(GNC_PLUGIN_PAGE(page)));
+ gtk_window_set_title(GTK_WINDOW(dialog), title);
+ g_free(title);
- /* Remember current state */
- fd->original_visible_types = fd->visible_types;
- fd->original_show_hidden = fd->show_hidden;
- fd->original_show_zero_total = fd->show_zero_total;
+ /* Remember current state */
+ fd->original_visible_types = fd->visible_types;
+ fd->original_show_hidden = fd->show_hidden;
+ fd->original_show_zero_total = fd->show_zero_total;
- /* Update the dialog widgets for the current state */
- button = glade_xml_get_widget (xml, "show_hidden");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
- fd->show_hidden);
- button = glade_xml_get_widget (xml, "show_zero");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
- fd->show_zero_total);
+ /* Update the dialog widgets for the current state */
+ button = glade_xml_get_widget (xml, "show_hidden");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
+ fd->show_hidden);
+ button = glade_xml_get_widget (xml, "show_zero");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
+ fd->show_zero_total);
- /* Set up the tree view and model */
- view = GTK_TREE_VIEW(glade_xml_get_widget (xml, FILTER_TREE_VIEW));
+ /* Set up the tree view and model */
+ view = GTK_TREE_VIEW(glade_xml_get_widget (xml, FILTER_TREE_VIEW));
- fd->model = gnc_tree_model_account_types_filter_using_mask
- (~(1 << ACCT_TYPE_ROOT));
- gtk_tree_view_set_model(view, fd->model);
- g_object_unref (fd->model);
+ fd->model = gnc_tree_model_account_types_filter_using_mask
+ (~(1 << ACCT_TYPE_ROOT));
+ gtk_tree_view_set_model(view, fd->model);
+ g_object_unref (fd->model);
- renderer = gtk_cell_renderer_toggle_new();
+ renderer = gtk_cell_renderer_toggle_new();
- g_signal_connect(renderer, "toggled",
- G_CALLBACK(gppat_filter_visible_toggled_cb), fd);
+ g_signal_connect(renderer, "toggled",
+ G_CALLBACK(gppat_filter_visible_toggled_cb), fd);
- gtk_tree_view_insert_column_with_data_func
+ gtk_tree_view_insert_column_with_data_func
(view,
-1, NULL, renderer,
gppat_filter_visible_set_func, fd, NULL);
- gtk_tree_view_insert_column_with_attributes
+ gtk_tree_view_insert_column_with_attributes
(view,
-1, _("Account Types"), gtk_cell_renderer_text_new(),
"text", GNC_TREE_MODEL_ACCOUNT_TYPES_COL_NAME, NULL);
- /* Wire up the rest of the callbacks */
- glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
- fd);
+ /* Wire up the rest of the callbacks */
+ glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
+ fd);
- /* Show it */
- gtk_widget_show_all(dialog);
- LEAVE(" ");
+ /* Show it */
+ gtk_widget_show_all(dialog);
+ LEAVE(" ");
}
#define ACCT_COUNT "NumberOfOpenAccounts"
@@ -1911,10 +1951,11 @@
#define SHOW_ZERO "ShowZeroTotal"
#define ACCT_TYPES "AccountTypes"
-typedef struct foo {
- GKeyFile *key_file;
- const gchar *group_name;
- int count;
+typedef struct foo
+{
+ GKeyFile *key_file;
+ const gchar *group_name;
+ int count;
} bar_t;
/** Save information about an expanded row. This function is called
@@ -1930,18 +1971,18 @@
* related to the state file. */
static void
tree_save_expanded_row (GncTreeViewAccount *view,
- GtkTreePath *path,
- gpointer user_data)
+ GtkTreePath *path,
+ gpointer user_data)
{
Account *account;
bar_t *bar = user_data;
gchar *key;
gchar *account_name;
-
+
account = gnc_tree_view_account_get_account_from_path (view, path);
if (account == NULL)
return;
-
+
account_name = gnc_account_get_full_name(account);
if (account_name == NULL)
return;
@@ -1965,7 +2006,7 @@
* related to the state file. */
static void
tree_save_selected_row (GncTreeViewAccount *view,
- gpointer user_data)
+ gpointer user_data)
{
Account *account;
bar_t *bar = user_data;
@@ -1979,41 +2020,41 @@
if (account_name == NULL)
return;
- g_key_file_set_string(bar->key_file, bar->group_name, ACCT_SELECTED,
+ g_key_file_set_string(bar->key_file, bar->group_name, ACCT_SELECTED,
account_name);
g_free(account_name);
}
void
-gnc_tree_view_account_save(GncTreeViewAccount *view,
- AccountFilterDialog *fd,
+gnc_tree_view_account_save(GncTreeViewAccount *view,
+ AccountFilterDialog *fd,
GKeyFile *key_file, const gchar *group_name)
{
bar_t bar;
-
+
g_return_if_fail (key_file != NULL);
g_return_if_fail (group_name != NULL);
-
+
ENTER("view %p, key_file %p, group_name %s", view, key_file,
group_name);
-
- g_key_file_set_integer(key_file, group_name, ACCT_TYPES,
+
+ g_key_file_set_integer(key_file, group_name, ACCT_TYPES,
fd->visible_types);
- g_key_file_set_boolean(key_file, group_name, SHOW_HIDDEN,
+ g_key_file_set_boolean(key_file, group_name, SHOW_HIDDEN,
fd->show_hidden);
- g_key_file_set_boolean(key_file, group_name, SHOW_ZERO,
+ g_key_file_set_boolean(key_file, group_name, SHOW_ZERO,
fd->show_zero_total);
-
+
bar.key_file = key_file;
bar.group_name = group_name;
bar.count = 0;
tree_save_selected_row(view, &bar);
gtk_tree_view_map_expanded_rows(
- GTK_TREE_VIEW(view), (GtkTreeViewMappingFunc) tree_save_expanded_row,
+ GTK_TREE_VIEW(view), (GtkTreeViewMappingFunc) tree_save_expanded_row,
&bar);
g_key_file_set_integer(key_file, group_name, ACCT_COUNT, bar.count);
LEAVE(" ");
-
+
}
/** Expand a row in the tree that was expanded when the user last quit
@@ -2025,16 +2066,16 @@
* @param account_name A pointer to the full account name. */
static void
tree_restore_expanded_row (GncTreeViewAccount *view,
- const gchar *account_name)
+ const gchar *account_name)
{
- Account *account;
- QofBook *book;
+ Account *account;
+ QofBook *book;
- book = qof_session_get_book(gnc_get_current_session());
- account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
- account_name);
- if (account)
- gnc_tree_view_account_expand_to_account(view, account);
+ book = qof_session_get_book(gnc_get_current_session());
+ account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
+ account_name);
+ if (account)
+ gnc_tree_view_account_expand_to_account(view, account);
}
@@ -2047,31 +2088,32 @@
* @param account_name A pointer to the full account name. */
static void
tree_restore_selected_row (GncTreeViewAccount *view,
- const gchar *account_name)
+ const gchar *account_name)
{
- Account *account;
- QofBook *book;
+ Account *account;
+ QofBook *book;
- book = qof_session_get_book(gnc_get_current_session());
- account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
- account_name);
- if (account)
- gnc_tree_view_account_set_selected_account(view, account);
+ book = qof_session_get_book(gnc_get_current_session());
+ account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
+ account_name);
+ if (account)
+ gnc_tree_view_account_set_selected_account(view, account);
}
void
-gnc_tree_view_account_restore(GncTreeViewAccount *view,
- AccountFilterDialog *fd,
+gnc_tree_view_account_restore(GncTreeViewAccount *view,
+ AccountFilterDialog *fd,
GKeyFile *key_file, const gchar *group_name)
{
GError *error = NULL;
gchar *key, *value;
gint i, count;
- gboolean show;
+ gboolean show;
/* Filter information. Ignore missing keys. */
show = g_key_file_get_boolean(key_file, group_name, SHOW_HIDDEN, &error);
- if (error) {
+ if (error)
+ {
g_warning("error reading group %s key %s: %s",
group_name, SHOW_HIDDEN, error->message);
g_error_free(error);
@@ -2079,9 +2121,10 @@
show = TRUE;
}
fd->show_hidden = show;
-
+
show = g_key_file_get_boolean(key_file, group_name, SHOW_ZERO, &error);
- if (error) {
+ if (error)
+ {
g_warning("error reading group %s key %s: %s",
group_name, SHOW_ZERO, error->message);
g_error_free(error);
@@ -2089,9 +2132,10 @@
show = TRUE;
}
fd->show_zero_total = show;
-
+
i = g_key_file_get_integer(key_file, group_name, ACCT_TYPES, &error);
- if (error) {
+ if (error)
+ {
g_warning("error reading group %s key %s: %s",
group_name, ACCT_TYPES, error->message);
g_error_free(error);
@@ -2099,33 +2143,41 @@
i = -1;
}
fd->visible_types = i;
-
+
/* Expanded accounts. Skip if count key missing. */
count = g_key_file_get_integer(key_file, group_name, ACCT_COUNT, &error);
- if (error == NULL) {
- for (i = 1; i <= count; i++) {
- key = g_strdup_printf(ACCT_OPEN, i);
- value = g_key_file_get_string(key_file, group_name, key, &error);
- if (error) {
+ if (error == NULL)
+ {
+ for (i = 1; i <= count; i++)
+ {
+ key = g_strdup_printf(ACCT_OPEN, i);
+ value = g_key_file_get_string(key_file, group_name, key, &error);
+ if (error)
+ {
g_warning("error reading group %s key %s: %s",
group_name, key, error->message);
g_error_free(error);
error = NULL;
- } else {
+ }
+ else
+ {
tree_restore_expanded_row(view, value);
g_free(value);
- }
+ }
g_free(key);
}
- } else {
+ }
+ else
+ {
g_warning("error reading group %s key %s: %s",
group_name, ACCT_COUNT, error->message);
g_error_free(error);
}
-
+
/* Selected account (if any) */
value = g_key_file_get_string(key_file, group_name, ACCT_SELECTED, NULL);
- if (value) {
+ if (value)
+ {
tree_restore_selected_row(view, value);
g_free(value);
}
@@ -2138,37 +2190,37 @@
void
gnc_tree_view_account_name_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_name)
{
- // check for accounts with the same name among our parent's children.
- // should probably factor this consistency check out to the account
- // itself....
- {
- Account *parent = gnc_account_get_parent(account);
- Account *existing = gnc_account_lookup_by_name(parent, new_name);
- if (existing != NULL && existing != account)
+ // check for accounts with the same name among our parent's children.
+ // should probably factor this consistency check out to the account
+ // itself....
{
- PERR("account with the same name [%s] already exists.", new_name);
- return;
+ Account *parent = gnc_account_get_parent(account);
+ Account *existing = gnc_account_lookup_by_name(parent, new_name);
+ if (existing != NULL && existing != account)
+ {
+ PERR("account with the same name [%s] already exists.", new_name);
+ return;
+ }
}
- }
- xaccAccountSetName(account, new_name);
+ xaccAccountSetName(account, new_name);
}
void
gnc_tree_view_account_code_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_code)
{
- xaccAccountSetCode(account, new_code);
+ xaccAccountSetCode(account, new_code);
}
void
gnc_tree_view_account_description_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_desc)
{
- xaccAccountSetDescription(account, new_desc);
+ xaccAccountSetDescription(account, new_desc);
}
void
gnc_tree_view_account_notes_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_notes)
{
- xaccAccountSetNotes(account, new_notes);
+ xaccAccountSetNotes(account, new_notes);
}
static void
@@ -2176,52 +2228,52 @@
GtkTreeViewColumn *column,
GncTreeViewAccountColumnTextEdited edited_cb)
{
- GList *renderers_orig, *renderers;
- GtkCellRenderer *renderer;
-
- // look for the first text-renderer; on the 0th column of the account tree,
- // there are two renderers: pixbuf and text. So find the text one.
- for (renderers_orig = renderers = gtk_tree_view_column_get_cell_renderers(column);
- renderers && !GTK_IS_CELL_RENDERER_TEXT(renderers->data);
- renderers = renderers->next);
- renderer = GTK_CELL_RENDERER(renderers->data);
- g_list_free(renderers_orig);
- g_return_if_fail(renderer != NULL);
- gtva_setup_column_renderer_edited_cb(GNC_TREE_VIEW_ACCOUNT(view), column, renderer, edited_cb);
+ GList *renderers_orig, *renderers;
+ GtkCellRenderer *renderer;
+
+ // look for the first text-renderer; on the 0th column of the account tree,
+ // there are two renderers: pixbuf and text. So find the text one.
+ for (renderers_orig = renderers = gtk_tree_view_column_get_cell_renderers(column);
+ renderers && !GTK_IS_CELL_RENDERER_TEXT(renderers->data);
+ renderers = renderers->next);
+ renderer = GTK_CELL_RENDERER(renderers->data);
+ g_list_free(renderers_orig);
+ g_return_if_fail(renderer != NULL);
+ gtva_setup_column_renderer_edited_cb(GNC_TREE_VIEW_ACCOUNT(view), column, renderer, edited_cb);
}
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);
+ GncTreeViewAccountPrivate *priv;
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+ gtva_set_column_editor(view, priv->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);
+ GncTreeViewAccountPrivate *priv;
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+ gtva_set_column_editor(view, priv->code_column, edited_cb);
}
void
gnc_tree_view_account_set_description_edited(GncTreeViewAccount *view,
- GncTreeViewAccountColumnTextEdited edited_cb)
+ GncTreeViewAccountColumnTextEdited edited_cb)
{
- GncTreeViewAccountPrivate *priv;
- priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
- gtva_set_column_editor(view, priv->desc_column, edited_cb);
+ GncTreeViewAccountPrivate *priv;
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+ gtva_set_column_editor(view, priv->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);
+ GncTreeViewAccountPrivate *priv;
+ priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+ gtva_set_column_editor(view, priv->notes_column, edited_cb);
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -58,21 +58,24 @@
struct AccountViewInfo_s
{
- gboolean include_type[NUM_ACCOUNT_TYPES];
- gboolean show_hidden;
+ gboolean include_type[NUM_ACCOUNT_TYPES];
+ gboolean show_hidden;
};
-typedef struct {
- GncTreeView gnc_tree_view;
- int stamp;
+typedef struct
+{
+ GncTreeView gnc_tree_view;
+ int stamp;
} GncTreeViewAccount;
-typedef struct {
- GncTreeViewClass gnc_tree_view;
+typedef struct
+{
+ GncTreeViewClass gnc_tree_view;
} GncTreeViewAccountClass;
-typedef struct {
+typedef struct
+{
GtkWidget *dialog;
GtkTreeModel *model;
GncTreeViewAccount *tree_view;
@@ -84,31 +87,31 @@
gboolean original_show_zero_total;
} AccountFilterDialog;
-void account_filter_dialog_create(AccountFilterDialog *fd,
+void account_filter_dialog_create(AccountFilterDialog *fd,
GncPluginPage *page);
-gboolean gnc_plugin_page_account_tree_filter_accounts (Account *account,
- gpointer user_data);
+gboolean gnc_plugin_page_account_tree_filter_accounts (Account *account,
+ gpointer user_data);
/* "Filter By" dialog callbacks */
-void gppat_filter_show_hidden_toggled_cb (GtkToggleButton *togglebutton,
- AccountFilterDialog *fd);
-void gppat_filter_show_zero_toggled_cb (GtkToggleButton *togglebutton,
+void gppat_filter_show_hidden_toggled_cb (GtkToggleButton *togglebutton,
+ AccountFilterDialog *fd);
+void gppat_filter_show_zero_toggled_cb (GtkToggleButton *togglebutton,
AccountFilterDialog *fd);
void gppat_filter_clear_all_cb (GtkWidget *button, AccountFilterDialog *fd);
void gppat_filter_select_all_cb (GtkWidget *button, AccountFilterDialog *fd);
-void gppat_filter_select_default_cb (GtkWidget *button,
+void gppat_filter_select_default_cb (GtkWidget *button,
AccountFilterDialog *fd);
-void gppat_filter_response_cb (GtkWidget *dialog, gint response,
+void gppat_filter_response_cb (GtkWidget *dialog, gint response,
AccountFilterDialog *fd);
/* Saving/Restoring */
-void gnc_tree_view_account_save(GncTreeViewAccount *tree_view,
- AccountFilterDialog *fd,
+void gnc_tree_view_account_save(GncTreeViewAccount *tree_view,
+ AccountFilterDialog *fd,
GKeyFile *key_file, const gchar *group_name);
-void gnc_tree_view_account_restore(GncTreeViewAccount *view,
- AccountFilterDialog *fd,
- GKeyFile *key_file,
+void gnc_tree_view_account_restore(GncTreeViewAccount *view,
+ AccountFilterDialog *fd,
+ GKeyFile *key_file,
const gchar *group_name);
@@ -116,7 +119,7 @@
GType gnc_tree_view_account_get_type (void);
-/** @name Account Tree View Constructors
+/** @name Account Tree View Constructors
@{ */
/** Create a new account tree view. This view may or may not show a
@@ -131,8 +134,8 @@
*
* @return A pointer to a new account tree view.
*/
-GtkTreeView *gnc_tree_view_account_new_with_root (Account *root,
- gboolean show_root);
+GtkTreeView *gnc_tree_view_account_new_with_root (Account *root,
+ gboolean show_root);
/** Create a new account tree view. This view may or may not show a
* pseudo top-level account. The gnucash engine does not have a
@@ -150,16 +153,16 @@
/** @} */
-/** @name Account Tree View Configuration
+/** @name Account Tree View Configuration
@{ */
-typedef gchar * (*GncTreeViewAccountColumnSource) (Account *account,
- GtkTreeViewColumn *col,
- GtkCellRenderer *cell);
+typedef gchar * (*GncTreeViewAccountColumnSource) (Account *account,
+ GtkTreeViewColumn *col,
+ GtkCellRenderer *cell);
-typedef void (*GncTreeViewAccountColumnTextEdited) (Account *account,
- GtkTreeViewColumn *col,
- const gchar *new_text);
+typedef void (*GncTreeViewAccountColumnTextEdited) (Account *account,
+ GtkTreeViewColumn *col,
+ const gchar *new_text);
/** Add a new custom column to the set of columns in an account tree
@@ -180,23 +183,23 @@
*/
GtkTreeViewColumn * gnc_tree_view_account_add_custom_column(
GncTreeViewAccount *view, const gchar *column_title,
- GncTreeViewAccountColumnSource source_cb,
+ GncTreeViewAccountColumnSource source_cb,
GncTreeViewAccountColumnTextEdited edited_cb);
void gnc_tree_view_account_set_name_edited(GncTreeViewAccount *view,
- GncTreeViewAccountColumnTextEdited edited_cb);
+ GncTreeViewAccountColumnTextEdited edited_cb);
void gnc_tree_view_account_name_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_name);
void gnc_tree_view_account_set_code_edited(GncTreeViewAccount *view,
- GncTreeViewAccountColumnTextEdited edited_cb);
+ GncTreeViewAccountColumnTextEdited edited_cb);
void gnc_tree_view_account_code_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_code);
void gnc_tree_view_account_set_description_edited(GncTreeViewAccount *view,
- GncTreeViewAccountColumnTextEdited edited_cb);
+ GncTreeViewAccountColumnTextEdited edited_cb);
void gnc_tree_view_account_description_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_desc);
void gnc_tree_view_account_set_notes_edited(GncTreeViewAccount *view,
- GncTreeViewAccountColumnTextEdited edited_cb);
+ GncTreeViewAccountColumnTextEdited edited_cb);
void gnc_tree_view_account_notes_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_notes);
/** Add a new column to the set of columns in an account tree view.
@@ -211,7 +214,7 @@
* account KVP structures. The value associated with this key is what
* will be displayed in the column.
*/
-GtkTreeViewColumn *
+GtkTreeViewColumn *
gnc_tree_view_account_add_kvp_column (GncTreeViewAccount *view,
const gchar *column_title,
const gchar *kvp_key);
@@ -219,7 +222,7 @@
/** @} */
-/** @name Account Tree View Filtering
+/** @name Account Tree View Filtering
@{ */
/** Given pointers to an account tree and old style filter block, this
@@ -233,7 +236,7 @@
* @param avi A pointer to an old style filter block to fill in.
*/
void gnc_tree_view_account_get_view_info (GncTreeViewAccount *account_view,
- AccountViewInfo *avi);
+ AccountViewInfo *avi);
/** Given pointers to an account tree and old style filter block, this
* function will applies the settings specified to the current
@@ -247,10 +250,10 @@
* view.
*/
void gnc_tree_view_account_set_view_info (GncTreeViewAccount *account_view,
- AccountViewInfo *avi);
+ AccountViewInfo *avi);
-/** This is the description of a filter function used by the account tree.
+/** This is the description of a filter function used by the account tree.
*
* @param account The account to be tested.
*
@@ -280,10 +283,10 @@
* function will be called when the filter is destroyed. may be
* NULL.
*/
-void gnc_tree_view_account_set_filter (GncTreeViewAccount *account_view,
- gnc_tree_view_account_filter_func func,
- gpointer data,
- GtkFunction destroy);
+void gnc_tree_view_account_set_filter (GncTreeViewAccount *account_view,
+ gnc_tree_view_account_filter_func func,
+ gpointer data,
+ GtkFunction destroy);
/* This is a convenient filter function for use with
* gnc_tree_view_account_set_filter() and the functions in
@@ -297,10 +300,10 @@
*
* sel_mask = gnc_tree_model_account_types_get_selection(view);
*
- * gnc_tree_view_account_set_filter(account_view,
- * gnc_tree_view_account_filter_by_type_selection,
+ * gnc_tree_view_account_set_filter(account_view,
+ * gnc_tree_view_account_filter_by_type_selection,
* GUINT_TO_POINTER(sel_mask), NULL);
- *
+ *
*/
gboolean gnc_tree_view_account_filter_by_type_selection(
Account* acct, gpointer data);
@@ -331,7 +334,7 @@
/** @} */
-/** @name Account Tree View Get/Set Functions
+/** @name Account Tree View Get/Set Functions
@{ */
/** This function determines if an account in the account tree view
@@ -345,7 +348,7 @@
* on error.
*/
gint gnc_tree_view_account_count_children (GncTreeViewAccount *view,
- Account *account);
+ Account *account);
@@ -360,7 +363,7 @@
* @return The account associated with this path.
*/
Account * gnc_tree_view_account_get_account_from_path (GncTreeViewAccount *view,
- GtkTreePath *path);
+ GtkTreePath *path);
/** This function returns the account associated with the specified
@@ -374,7 +377,7 @@
* @return The account associated with this iter.
*/
Account * gnc_tree_view_account_get_account_from_iter (GtkTreeModel *model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/** This function returns the account in the account tree view at the
@@ -418,7 +421,7 @@
* @param account A pointer to the account to select.
*/
void gnc_tree_view_account_set_selected_account (GncTreeViewAccount *view,
- Account *account);
+ Account *account);
/** This function returns a list of the accounts associated with the
@@ -457,8 +460,8 @@
* selected.
*/
void gnc_tree_view_account_set_selected_accounts (GncTreeViewAccount *view,
- GList *account_list,
- gboolean show_last);
+ GList *account_list,
+ gboolean show_last);
/** This function selects all sub-accounts of an account in the
@@ -474,7 +477,7 @@
* selected.
*/
void gnc_tree_view_account_select_subaccounts (GncTreeViewAccount *view,
- Account *account);
+ Account *account);
/** This function forces the account tree expand whatever levels are
* necessary to make the specified account visible.
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -55,7 +55,7 @@
typedef struct GncTreeViewCommodityPrivate
{
- gpointer dummy;
+ gpointer dummy;
} GncTreeViewCommodityPrivate;
#define GNC_TREE_VIEW_COMMODITY_GET_PRIVATE(o) \
@@ -71,47 +71,49 @@
GType
gnc_tree_view_commodity_get_type (void)
{
- static GType gnc_tree_view_commodity_type = 0;
+ static GType gnc_tree_view_commodity_type = 0;
- if (gnc_tree_view_commodity_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeViewCommodityClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_view_commodity_class_init,
- NULL,
- NULL,
- sizeof (GncTreeViewCommodity),
- 0,
- (GInstanceInitFunc) gnc_tree_view_commodity_init
- };
-
- gnc_tree_view_commodity_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
- "GncTreeViewCommodity",
- &our_info, 0);
- }
+ if (gnc_tree_view_commodity_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeViewCommodityClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_view_commodity_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeViewCommodity),
+ 0,
+ (GInstanceInitFunc) gnc_tree_view_commodity_init
+ };
- return gnc_tree_view_commodity_type;
+ gnc_tree_view_commodity_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
+ "GncTreeViewCommodity",
+ &our_info, 0);
+ }
+
+ return gnc_tree_view_commodity_type;
}
static void
gnc_tree_view_commodity_class_init (GncTreeViewCommodityClass *klass)
{
- GObjectClass *o_class;
- GtkObjectClass *object_class;
+ GObjectClass *o_class;
+ GtkObjectClass *object_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class = G_OBJECT_CLASS (klass);
- object_class = GTK_OBJECT_CLASS (klass);
+ o_class = G_OBJECT_CLASS (klass);
+ object_class = GTK_OBJECT_CLASS (klass);
- /* GObject signals */
- o_class->finalize = gnc_tree_view_commodity_finalize;
+ /* GObject signals */
+ o_class->finalize = gnc_tree_view_commodity_finalize;
- /* GtkObject signals */
- object_class->destroy = gnc_tree_view_commodity_destroy;
+ /* GtkObject signals */
+ object_class->destroy = gnc_tree_view_commodity_destroy;
- g_type_class_add_private(klass, sizeof(GncTreeViewCommodityPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeViewCommodityPrivate));
}
static void
@@ -122,35 +124,35 @@
static void
gnc_tree_view_commodity_finalize (GObject *object)
{
- GncTreeViewCommodity *view;
- GncTreeViewCommodityPrivate *priv;
+ GncTreeViewCommodity *view;
+ GncTreeViewCommodityPrivate *priv;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
- ENTER("view %p", object);
- view = GNC_TREE_VIEW_COMMODITY (object);
- priv = GNC_TREE_VIEW_COMMODITY_GET_PRIVATE (view);
+ ENTER("view %p", object);
+ view = GNC_TREE_VIEW_COMMODITY (object);
+ priv = GNC_TREE_VIEW_COMMODITY_GET_PRIVATE (view);
- if (G_OBJECT_CLASS (parent_class)->finalize)
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+ LEAVE(" ");
}
static void
gnc_tree_view_commodity_destroy (GtkObject *object)
{
- GncTreeViewCommodity *view;
+ GncTreeViewCommodity *view;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
- ENTER("view %p", object);
- view = GNC_TREE_VIEW_COMMODITY (object);
+ ENTER("view %p", object);
+ view = GNC_TREE_VIEW_COMMODITY (object);
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
- LEAVE(" ");
+ if (GTK_OBJECT_CLASS (parent_class)->destroy)
+ (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ LEAVE(" ");
}
@@ -160,188 +162,188 @@
static gboolean
get_commodities_w_iters (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- GtkTreeModel **model_p,
- GtkTreeIter *iter_a,
- GtkTreeIter *iter_b,
- gnc_commodity **comm_a,
- gnc_commodity **comm_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ GtkTreeModel **model_p,
+ GtkTreeIter *iter_a,
+ GtkTreeIter *iter_b,
+ gnc_commodity **comm_a,
+ gnc_commodity **comm_b)
{
- GncTreeModelCommodity *model;
- GtkTreeModel *tree_model;
+ GncTreeModelCommodity *model;
+ GtkTreeModel *tree_model;
- tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- model = GNC_TREE_MODEL_COMMODITY(tree_model);
+ tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ model = GNC_TREE_MODEL_COMMODITY(tree_model);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- iter_a,
- f_iter_a);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ iter_a,
+ f_iter_a);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- iter_b,
- f_iter_b);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ iter_b,
+ f_iter_b);
- /* Both iters must point to commodities for this to be meaningful */
- if (!gnc_tree_model_commodity_iter_is_commodity (model, iter_a))
- return FALSE;
- if (!gnc_tree_model_commodity_iter_is_commodity (model, iter_b))
- return FALSE;
+ /* Both iters must point to commodities for this to be meaningful */
+ if (!gnc_tree_model_commodity_iter_is_commodity (model, iter_a))
+ return FALSE;
+ if (!gnc_tree_model_commodity_iter_is_commodity (model, iter_b))
+ return FALSE;
- *comm_a = gnc_tree_model_commodity_get_commodity (model, iter_a);
- *comm_b = gnc_tree_model_commodity_get_commodity (model, iter_b);
- if (model_p)
- *model_p = tree_model;
- return TRUE;
+ *comm_a = gnc_tree_model_commodity_get_commodity (model, iter_a);
+ *comm_b = gnc_tree_model_commodity_get_commodity (model, iter_b);
+ if (model_p)
+ *model_p = tree_model;
+ return TRUE;
}
static gboolean
get_commodities (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- GtkTreeModel **model_p,
- gnc_commodity **comm_a,
- gnc_commodity **comm_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ GtkTreeModel **model_p,
+ gnc_commodity **comm_a,
+ gnc_commodity **comm_b)
{
- GtkTreeIter iter_a, iter_b;
+ GtkTreeIter iter_a, iter_b;
- return get_commodities_w_iters(f_model, f_iter_a, f_iter_b, model_p,
- &iter_a, &iter_b, comm_a, comm_b);
+ return get_commodities_w_iters(f_model, f_iter_a, f_iter_b, model_p,
+ &iter_a, &iter_b, comm_a, comm_b);
}
static gint
sort_namespace (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b)
{
- GncTreeModelCommodity *model;
- GtkTreeModel *tree_model;
- GtkTreeIter iter_a, iter_b;
- gnc_commodity_namespace *ns_a, *ns_b;
+ GncTreeModelCommodity *model;
+ GtkTreeModel *tree_model;
+ GtkTreeIter iter_a, iter_b;
+ gnc_commodity_namespace *ns_a, *ns_b;
- tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- model = GNC_TREE_MODEL_COMMODITY(tree_model);
+ tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ model = GNC_TREE_MODEL_COMMODITY(tree_model);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter_a,
- f_iter_a);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter_b,
- f_iter_b);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter_a,
+ f_iter_a);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter_b,
+ f_iter_b);
- ns_a = gnc_tree_model_commodity_get_namespace (model, &iter_a);
- ns_b = gnc_tree_model_commodity_get_namespace (model, &iter_b);
- return safe_utf8_collate (gnc_commodity_namespace_get_name (ns_a),
- gnc_commodity_namespace_get_name (ns_b));
+ ns_a = gnc_tree_model_commodity_get_namespace (model, &iter_a);
+ ns_b = gnc_tree_model_commodity_get_namespace (model, &iter_b);
+ return safe_utf8_collate (gnc_commodity_namespace_get_name (ns_a),
+ gnc_commodity_namespace_get_name (ns_b));
}
static gint
default_sort (gnc_commodity *comm_a, gnc_commodity *comm_b)
{
- gint fraction_a, fraction_b, result;
+ gint fraction_a, fraction_b, result;
- result = safe_utf8_collate (gnc_commodity_get_namespace (comm_a),
- gnc_commodity_get_namespace (comm_b));
- if (result != 0) return result;
+ result = safe_utf8_collate (gnc_commodity_get_namespace (comm_a),
+ gnc_commodity_get_namespace (comm_b));
+ if (result != 0) return result;
- result = safe_utf8_collate (gnc_commodity_get_mnemonic (comm_a),
- gnc_commodity_get_mnemonic (comm_b));
- if (result != 0) return result;
+ result = safe_utf8_collate (gnc_commodity_get_mnemonic (comm_a),
+ gnc_commodity_get_mnemonic (comm_b));
+ if (result != 0) return result;
- result = safe_utf8_collate (gnc_commodity_get_fullname (comm_a),
- gnc_commodity_get_fullname (comm_b));
- if (result != 0) return result;
+ result = safe_utf8_collate (gnc_commodity_get_fullname (comm_a),
+ gnc_commodity_get_fullname (comm_b));
+ if (result != 0) return result;
- result = safe_utf8_collate (gnc_commodity_get_cusip (comm_a),
- gnc_commodity_get_cusip (comm_b));
- if (result != 0) return result;
+ result = safe_utf8_collate (gnc_commodity_get_cusip (comm_a),
+ gnc_commodity_get_cusip (comm_b));
+ if (result != 0) return result;
- fraction_a = gnc_commodity_get_fraction (comm_a);
- fraction_b = gnc_commodity_get_fraction (comm_b);
+ fraction_a = gnc_commodity_get_fraction (comm_a);
+ fraction_b = gnc_commodity_get_fraction (comm_b);
- if (fraction_a < fraction_b)
- return -1;
+ if (fraction_a < fraction_b)
+ return -1;
- if (fraction_b < fraction_a)
- return 1;
+ if (fraction_b < fraction_a)
+ return 1;
- return 0;
+ return 0;
}
static gint
sort_by_commodity_string (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- GtkTreeModel *model;
- GtkTreeIter iter_a, iter_b;
- gnc_commodity *comm_a, *comm_b;
- gchar *str1, *str2;
- gint column = GPOINTER_TO_INT(user_data);
- gint result;
+ GtkTreeModel *model;
+ GtkTreeIter iter_a, iter_b;
+ gnc_commodity *comm_a, *comm_b;
+ gchar *str1, *str2;
+ gint column = GPOINTER_TO_INT(user_data);
+ gint result;
- if (!get_commodities_w_iters(f_model, f_iter_a, f_iter_b,
- &model, &iter_a, &iter_b, &comm_a, &comm_b))
- return sort_namespace (f_model, f_iter_a, f_iter_b);
+ if (!get_commodities_w_iters(f_model, f_iter_a, f_iter_b,
+ &model, &iter_a, &iter_b, &comm_a, &comm_b))
+ return sort_namespace (f_model, f_iter_a, f_iter_b);
- /* Get the strings. */
- gtk_tree_model_get(GTK_TREE_MODEL(model), &iter_a, column, &str1, -1);
- gtk_tree_model_get(GTK_TREE_MODEL(model), &iter_b, column, &str2, -1);
+ /* Get the strings. */
+ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter_a, column, &str1, -1);
+ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter_b, column, &str2, -1);
- result = safe_utf8_collate(str1, str2);
- g_free(str1);
- g_free(str2);
- if (result != 0)
- return result;
- return default_sort(comm_a, comm_b);
+ result = safe_utf8_collate(str1, str2);
+ g_free(str1);
+ g_free(str2);
+ if (result != 0)
+ return result;
+ return default_sort(comm_a, comm_b);
}
static gint
sort_by_fraction (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- gnc_commodity *comm_a, *comm_b;
- gint fraction_a, fraction_b;
+ gnc_commodity *comm_a, *comm_b;
+ gint fraction_a, fraction_b;
- if (!get_commodities (f_model, f_iter_a, f_iter_b, NULL, &comm_a, &comm_b))
- return sort_namespace (f_model, f_iter_a, f_iter_b);
+ if (!get_commodities (f_model, f_iter_a, f_iter_b, NULL, &comm_a, &comm_b))
+ return sort_namespace (f_model, f_iter_a, f_iter_b);
- fraction_a = gnc_commodity_get_fraction (comm_a);
- fraction_b = gnc_commodity_get_fraction (comm_b);
+ fraction_a = gnc_commodity_get_fraction (comm_a);
+ fraction_b = gnc_commodity_get_fraction (comm_b);
- if (fraction_a < fraction_b)
- return -1;
+ if (fraction_a < fraction_b)
+ return -1;
- if (fraction_b < fraction_a)
- return 1;
+ if (fraction_b < fraction_a)
+ return 1;
- return default_sort(comm_a, comm_b);
+ return default_sort(comm_a, comm_b);
}
static gint
sort_by_quote_flag (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- gnc_commodity *comm_a, *comm_b;
- gboolean flag_a, flag_b;
+ gnc_commodity *comm_a, *comm_b;
+ gboolean flag_a, flag_b;
- if (!get_commodities (f_model, f_iter_a, f_iter_b, NULL, &comm_a, &comm_b))
- return sort_namespace (f_model, f_iter_a, f_iter_b);
+ if (!get_commodities (f_model, f_iter_a, f_iter_b, NULL, &comm_a, &comm_b))
+ return sort_namespace (f_model, f_iter_a, f_iter_b);
- flag_a = gnc_commodity_get_quote_flag(comm_a);
- flag_b = gnc_commodity_get_quote_flag(comm_b);
+ flag_a = gnc_commodity_get_quote_flag(comm_a);
+ flag_b = gnc_commodity_get_quote_flag(comm_b);
- if (flag_a < flag_b)
- return -1;
- else if (flag_a > flag_b)
- return 1;
- return default_sort(comm_a, comm_b);
+ if (flag_a < flag_b)
+ return -1;
+ else if (flag_a > flag_b)
+ return 1;
+ return default_sort(comm_a, comm_b);
}
/************************************************************/
@@ -356,122 +358,123 @@
*/
GtkTreeView *
gnc_tree_view_commodity_new (QofBook *book,
- const gchar *first_property_name,
- ...)
+ const gchar *first_property_name,
+ ...)
{
- GncTreeView *view;
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreeViewColumn *col;
- gnc_commodity_table *ct;
- va_list var_args;
+ GncTreeView *view;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreeViewColumn *col;
+ gnc_commodity_table *ct;
+ va_list var_args;
- ENTER(" ");
- /* Create/get a pointer to the existing model for this set of books. */
- ct = gnc_book_get_commodity_table (book);
- model = gnc_tree_model_commodity_new (book, ct);
+ ENTER(" ");
+ /* Create/get a pointer to the existing model for this set of books. */
+ ct = gnc_book_get_commodity_table (book);
+ model = gnc_tree_model_commodity_new (book, ct);
- /* Set up the view private filter on the common model. */
- f_model = gtk_tree_model_filter_new (model, NULL);
- g_object_unref(G_OBJECT(model));
- s_model = gtk_tree_model_sort_new_with_model (f_model);
- g_object_unref(G_OBJECT(f_model));
+ /* Set up the view private filter on the common model. */
+ f_model = gtk_tree_model_filter_new (model, NULL);
+ g_object_unref(G_OBJECT(model));
+ s_model = gtk_tree_model_sort_new_with_model (f_model);
+ g_object_unref(G_OBJECT(f_model));
- /* Create our view */
- view = g_object_new (GNC_TYPE_TREE_VIEW_COMMODITY,
- "name", "commodity_tree", NULL);
- gnc_tree_view_set_model (view, s_model);
- g_object_unref(G_OBJECT(s_model));
+ /* Create our view */
+ view = g_object_new (GNC_TYPE_TREE_VIEW_COMMODITY,
+ "name", "commodity_tree", NULL);
+ gnc_tree_view_set_model (view, s_model);
+ g_object_unref(G_OBJECT(s_model));
- DEBUG("model ref count is %d", G_OBJECT(model)->ref_count);
- DEBUG("f_model ref count is %d", G_OBJECT(f_model)->ref_count);
- DEBUG("s_model ref count is %d", G_OBJECT(s_model)->ref_count);
+ DEBUG("model ref count is %d", G_OBJECT(model)->ref_count);
+ DEBUG("f_model ref count is %d", G_OBJECT(f_model)->ref_count);
+ DEBUG("s_model ref count is %d", G_OBJECT(s_model)->ref_count);
- /* Set default visibilities */
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(view), FALSE);
+ /* Set default visibilities */
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(view), FALSE);
- 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 (
- /* Translators: Again replace CUSIP by the name of your
- National Securities Identifying Number. */
- view, _("ISIN/CUSIP"), "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));
+ 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 (
+ /* Translators: Again replace CUSIP by the name of your
+ National Securities Identifying Number. */
+ view, _("ISIN/CUSIP"), "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);
+ gnc_tree_view_configure_columns(view);
- /* Set properties */
- va_start (var_args, first_property_name);
- g_object_set_valist (G_OBJECT(view), first_property_name, var_args);
- va_end (var_args);
+ /* Set properties */
+ va_start (var_args, first_property_name);
+ g_object_set_valist (G_OBJECT(view), first_property_name, var_args);
+ va_end (var_args);
- /* Sort on the name column by default. This allows for a consistent
- * sort if commodities are briefly removed and re-added. */
- if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
- NULL, NULL)) {
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
- GNC_TREE_MODEL_COMMODITY_COL_FULLNAME,
- GTK_SORT_ASCENDING);
- }
+ /* Sort on the name column by default. This allows for a consistent
+ * sort if commodities are briefly removed and re-added. */
+ if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ NULL, NULL))
+ {
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ GNC_TREE_MODEL_COMMODITY_COL_FULLNAME,
+ GTK_SORT_ASCENDING);
+ }
- gtk_widget_show(GTK_WIDGET(view));
- LEAVE(" %p", view);
- return GTK_TREE_VIEW(view);
+ gtk_widget_show(GTK_WIDGET(view));
+ LEAVE(" %p", view);
+ return GTK_TREE_VIEW(view);
}
/************************************************************/
@@ -487,129 +490,135 @@
#if 0
static GtkTreePath *
gnc_tree_view_commodity_get_path_from_commodity (GncTreeViewCommodity *view,
- gnc_commodity *commodity)
+ gnc_commodity *commodity)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path;
- ENTER("view %p, commodity %p (%s)", view, commodity, gnc_commodity_get_name(commodity));
+ ENTER("view %p, commodity %p (%s)", view, commodity, gnc_commodity_get_name(commodity));
- if (commodity == NULL) {
- LEAVE("no commodity");
- return NULL;
- }
+ if (commodity == NULL)
+ {
+ LEAVE("no commodity");
+ return NULL;
+ }
- /* Reach down to the real model and get a path for this commodity */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- path = gnc_tree_model_commodity_get_path_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity);
- if (path == NULL) {
- LEAVE("no path");
- return NULL;
- }
+ /* Reach down to the real model and get a path for this commodity */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ path = gnc_tree_model_commodity_get_path_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity);
+ if (path == NULL)
+ {
+ LEAVE("no path");
+ return NULL;
+ }
- /* convert back to a filtered path */
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model), path);
- gtk_tree_path_free(path);
- if (!f_path) {
- LEAVE("no filter path");
- return NULL;
- }
+ /* convert back to a filtered path */
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model), path);
+ gtk_tree_path_free(path);
+ if (!f_path)
+ {
+ LEAVE("no filter path");
+ return NULL;
+ }
- /* convert back to a sorted path */
- s_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model), f_path);
- gtk_tree_path_free(f_path);
- debug_path(LEAVE, s_path);
- return s_path;
+ /* convert back to a sorted path */
+ s_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model), f_path);
+ gtk_tree_path_free(f_path);
+ debug_path(LEAVE, s_path);
+ return s_path;
}
#endif
static gboolean
gnc_tree_view_commodity_get_iter_from_commodity (GncTreeViewCommodity *view,
- gnc_commodity *commodity,
- GtkTreeIter *s_iter)
+ gnc_commodity *commodity,
+ GtkTreeIter *s_iter)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreeIter iter, f_iter;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreeIter iter, f_iter;
- g_return_val_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view), FALSE);
- g_return_val_if_fail(commodity != NULL, FALSE);
- g_return_val_if_fail(s_iter != NULL, FALSE);
-
- ENTER("view %p, commodity %p (%s)", view, commodity, gnc_commodity_get_mnemonic(commodity));
+ g_return_val_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view), FALSE);
+ g_return_val_if_fail(commodity != NULL, FALSE);
+ g_return_val_if_fail(s_iter != NULL, FALSE);
- /* Reach down to the real model and get an iter for this commodity */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- if (!gnc_tree_model_commodity_get_iter_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity, &iter)) {
- LEAVE("model_get_iter_from_commodity failed");
- return FALSE;
- }
+ ENTER("view %p, commodity %p (%s)", view, commodity, gnc_commodity_get_mnemonic(commodity));
- /* convert back to a sort iter */
- gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER(f_model),
- &f_iter, &iter);
- gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT(s_model),
- s_iter, &f_iter);
- LEAVE(" ");
- return TRUE;
+ /* Reach down to the real model and get an iter for this commodity */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ if (!gnc_tree_model_commodity_get_iter_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity, &iter))
+ {
+ LEAVE("model_get_iter_from_commodity failed");
+ return FALSE;
+ }
+
+ /* convert back to a sort iter */
+ gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &f_iter, &iter);
+ gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT(s_model),
+ s_iter, &f_iter);
+ LEAVE(" ");
+ return TRUE;
}
gint
gnc_tree_view_commodity_count_children (GncTreeViewCommodity *view,
- gnc_commodity *commodity)
+ gnc_commodity *commodity)
{
- GtkTreeModel *s_model;
- GtkTreeIter s_iter;
- gint num_children;
+ GtkTreeModel *s_model;
+ GtkTreeIter s_iter;
+ gint num_children;
- ENTER("view %p, commodity %p (%s)", view, commodity, gnc_commodity_get_mnemonic(commodity));
+ ENTER("view %p, commodity %p (%s)", view, commodity, gnc_commodity_get_mnemonic(commodity));
- if (commodity == NULL) {
- LEAVE("no commodity");
- return 0;
- }
+ if (commodity == NULL)
+ {
+ LEAVE("no commodity");
+ return 0;
+ }
- if (!gnc_tree_view_commodity_get_iter_from_commodity (view, commodity, &s_iter)) {
- LEAVE("view_get_iter_from_commodity failed");
- return 0;
- }
+ if (!gnc_tree_view_commodity_get_iter_from_commodity (view, commodity, &s_iter))
+ {
+ LEAVE("view_get_iter_from_commodity failed");
+ return 0;
+ }
- /* Any children? */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- num_children = gtk_tree_model_iter_n_children(s_model, &s_iter);
- LEAVE("%d children", num_children);
- return num_children;
+ /* Any children? */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ num_children = gtk_tree_model_iter_n_children(s_model, &s_iter);
+ LEAVE("%d children", num_children);
+ return num_children;
}
gnc_commodity *
gnc_tree_view_commodity_get_commodity_from_column (GtkTreeViewColumn *column,
- GtkTreeModel *s_model,
- GtkTreeIter *s_iter)
+ GtkTreeModel *s_model,
+ GtkTreeIter *s_iter)
{
- GtkTreeModel *model, *f_model;
- GtkTreeIter iter, f_iter;
- gnc_commodity *commodity;
+ GtkTreeModel *model, *f_model;
+ GtkTreeIter iter, f_iter;
+ gnc_commodity *commodity;
- g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN(column), NULL);
- g_return_val_if_fail (GTK_IS_TREE_MODEL_SORT(s_model), NULL);
- g_return_val_if_fail (s_iter != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN(column), NULL);
+ g_return_val_if_fail (GTK_IS_TREE_MODEL_SORT(s_model), NULL);
+ g_return_val_if_fail (s_iter != NULL, NULL);
- ENTER("column %p, model %p, iter %p", column, s_model, s_iter);
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT(s_model),
- &f_iter,
- s_iter);
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter,
- &f_iter);
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model), &iter);
- LEAVE("commodity %p (%s)", commodity, gnc_commodity_get_mnemonic (commodity));
- return commodity;
+ ENTER("column %p, model %p, iter %p", column, s_model, s_iter);
+ gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT(s_model),
+ &f_iter,
+ s_iter);
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter,
+ &f_iter);
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model), &iter);
+ LEAVE("commodity %p (%s)", commodity, gnc_commodity_get_mnemonic (commodity));
+ return commodity;
}
/************************************************************/
@@ -621,80 +630,87 @@
*/
void
gnc_tree_view_commodity_configure_columns (GncTreeViewCommodity *view,
- GSList *column_names)
+ GSList *column_names)
{
- GtkTreeViewColumn *column;
- GSList *node;
- int i;
+ GtkTreeViewColumn *column;
+ GSList *node;
+ int i;
- ENTER(" ");
+ ENTER(" ");
- for (i = 1; i < GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS; i++) {
- column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
- gtk_tree_view_column_set_visible (column, FALSE);
- }
+ for (i = 1; i < GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS; i++)
+ {
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
+ gtk_tree_view_column_set_visible (column, FALSE);
+ }
- for (node = column_names; node != NULL; node = node->next)
- {
- for (i = 0; i < GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS; i++) {
- column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
- gtk_tree_view_column_set_visible (column, TRUE);
+ for (node = column_names; node != NULL; node = node->next)
+ {
+ for (i = 0; i < GNC_TREE_MODEL_COMMODITY_NUM_COLUMNS; i++)
+ {
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
+ gtk_tree_view_column_set_visible (column, TRUE);
+ }
}
- }
- LEAVE(" ");
+ LEAVE(" ");
}
/************************************************************/
/* Commodity Tree View Visibility Filter */
/************************************************************/
-typedef struct {
- gnc_tree_view_commodity_ns_filter_func user_ns_fn;
- gnc_tree_view_commodity_cm_filter_func user_cm_fn;
- gpointer user_data;
- GtkDestroyNotify user_destroy;
+typedef struct
+{
+ gnc_tree_view_commodity_ns_filter_func user_ns_fn;
+ gnc_tree_view_commodity_cm_filter_func user_cm_fn;
+ gpointer user_data;
+ GtkDestroyNotify user_destroy;
} filter_user_data;
static void
gnc_tree_view_commodity_filter_destroy (gpointer data)
{
- filter_user_data *fd = data;
+ filter_user_data *fd = data;
- if (fd->user_destroy)
- fd->user_destroy(fd->user_data);
- g_free(fd);
+ if (fd->user_destroy)
+ fd->user_destroy(fd->user_data);
+ g_free(fd);
}
static gboolean
gnc_tree_view_commodity_filter_helper (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data)
+ GtkTreeIter *iter,
+ gpointer data)
{
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- filter_user_data *fd = data;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ filter_user_data *fd = data;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- if (gnc_tree_model_commodity_iter_is_namespace (GNC_TREE_MODEL_COMMODITY(model), iter)) {
- if (fd->user_ns_fn) {
- namespace = gnc_tree_model_commodity_get_namespace (GNC_TREE_MODEL_COMMODITY(model), iter);
- return fd->user_ns_fn(namespace, fd->user_data);
+ if (gnc_tree_model_commodity_iter_is_namespace (GNC_TREE_MODEL_COMMODITY(model), iter))
+ {
+ if (fd->user_ns_fn)
+ {
+ namespace = gnc_tree_model_commodity_get_namespace (GNC_TREE_MODEL_COMMODITY(model), iter);
+ return fd->user_ns_fn(namespace, fd->user_data);
+ }
+ return TRUE;
}
- return TRUE;
- }
- if (gnc_tree_model_commodity_iter_is_commodity (GNC_TREE_MODEL_COMMODITY(model), iter)) {
- if (fd->user_cm_fn) {
- commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model), iter);
- return fd->user_cm_fn(commodity, fd->user_data);
+ if (gnc_tree_model_commodity_iter_is_commodity (GNC_TREE_MODEL_COMMODITY(model), iter))
+ {
+ if (fd->user_cm_fn)
+ {
+ commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model), iter);
+ return fd->user_cm_fn(commodity, fd->user_data);
+ }
+ return TRUE;
}
- return TRUE;
- }
- return FALSE;
+ return FALSE;
}
/*
@@ -704,37 +720,37 @@
*/
void
gnc_tree_view_commodity_set_filter (GncTreeViewCommodity *view,
- gnc_tree_view_commodity_ns_filter_func ns_func,
- gnc_tree_view_commodity_cm_filter_func cm_func,
- gpointer data,
- GtkDestroyNotify destroy)
+ gnc_tree_view_commodity_ns_filter_func ns_func,
+ gnc_tree_view_commodity_cm_filter_func cm_func,
+ gpointer data,
+ GtkDestroyNotify destroy)
{
- GtkTreeModel *f_model, *s_model;
- filter_user_data *fd = data;
+ GtkTreeModel *f_model, *s_model;
+ filter_user_data *fd = data;
- g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
- g_return_if_fail((ns_func != NULL) || (cm_func != NULL));
+ g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
+ g_return_if_fail((ns_func != NULL) || (cm_func != NULL));
- ENTER("view %p, ns func %p, cm func %p, data %p, destroy %p",
- view, ns_func, cm_func, data, destroy);
+ ENTER("view %p, ns func %p, cm func %p, data %p, destroy %p",
+ view, ns_func, cm_func, data, destroy);
- fd = g_malloc(sizeof(filter_user_data));
- fd->user_ns_fn = ns_func;
- fd->user_cm_fn = cm_func;
- fd->user_data = data;
- fd->user_destroy = destroy;
+ fd = g_malloc(sizeof(filter_user_data));
+ fd->user_ns_fn = ns_func;
+ fd->user_cm_fn = cm_func;
+ fd->user_data = data;
+ fd->user_destroy = destroy;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
- gnc_tree_view_commodity_filter_helper,
- fd,
- gnc_tree_view_commodity_filter_destroy);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
+ gnc_tree_view_commodity_filter_helper,
+ fd,
+ gnc_tree_view_commodity_filter_destroy);
- /* Whack any existing levels. The top two levels have been created
- * before this routine can be called. */
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
- LEAVE(" ");
+ /* Whack any existing levels. The top two levels have been created
+ * before this routine can be called. */
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
+ LEAVE(" ");
}
/*
@@ -743,15 +759,15 @@
void
gnc_tree_view_commodity_refilter (GncTreeViewCommodity *view)
{
- GtkTreeModel *f_model, *s_model;
+ GtkTreeModel *f_model, *s_model;
- g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
- ENTER("view %p", view);
- s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
- LEAVE(" ");
+ ENTER("view %p", view);
+ s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
+ LEAVE(" ");
}
@@ -765,7 +781,7 @@
*/
gnc_commodity *
gnc_tree_view_commodity_get_commodity_from_path (GncTreeViewCommodity *view,
- GtkTreePath *s_path)
+ GtkTreePath *s_path)
{
GtkTreeModel *model, *f_model, *s_model;
GtkTreePath *path, *f_path;
@@ -778,27 +794,30 @@
ENTER("view %p", view);
s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
f_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT (s_model), s_path);
- if (!f_path) {
- LEAVE("no filter path");
- return NULL;
+ if (!f_path)
+ {
+ LEAVE("no filter path");
+ return NULL;
}
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (f_model), f_path);
gtk_tree_path_free(f_path);
- if (!path) {
- LEAVE("no path");
- return NULL;
+ if (!path)
+ {
+ LEAVE("no path");
+ return NULL;
}
model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- if (!gtk_tree_model_get_iter (model, &iter, path)) {
- LEAVE("no iter");
- return NULL;
+ if (!gtk_tree_model_get_iter (model, &iter, path))
+ {
+ LEAVE("no iter");
+ return NULL;
}
commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model),
- &iter);
+ &iter);
gtk_tree_path_free(path);
LEAVE("commodity %p (%s)", commodity, gnc_commodity_get_mnemonic (commodity));
return commodity;
@@ -821,23 +840,24 @@
ENTER("view %p", view);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
- if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter)) {
- LEAVE("no commodity, get_selected failed");
- return FALSE;
+ if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter))
+ {
+ LEAVE("no commodity, get_selected failed");
+ return FALSE;
}
gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
- &f_iter, &s_iter);
+ &f_iter, &s_iter);
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
- &iter, &f_iter);
+ &iter, &f_iter);
model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model),
- &iter);
+ &iter);
LEAVE("commodity %p (%s)", commodity,
- commodity? gnc_commodity_get_mnemonic(commodity) : "");
+ commodity ? gnc_commodity_get_mnemonic(commodity) : "");
return commodity;
}
@@ -847,67 +867,71 @@
*/
void
gnc_tree_view_commodity_set_selected_commodity (GncTreeViewCommodity *view,
- gnc_commodity *commodity)
+ gnc_commodity *commodity)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path, *parent_path;
- GtkTreeSelection *selection;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path, *parent_path;
+ GtkTreeSelection *selection;
- ENTER("view %p, commodity %p (%s)", view,
- commodity, gnc_commodity_get_mnemonic (commodity));
+ ENTER("view %p, commodity %p (%s)", view,
+ commodity, gnc_commodity_get_mnemonic (commodity));
- /* Clear any existing selection. */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_unselect_all (selection);
+ /* Clear any existing selection. */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_unselect_all (selection);
- if (commodity == NULL)
- {
- LEAVE("");
- return;
- }
+ if (commodity == NULL)
+ {
+ LEAVE("");
+ return;
+ }
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (f_model));
- path = gnc_tree_model_commodity_get_path_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity);
- if (path == NULL) {
- LEAVE("get_path_from_commodity failed");
- return;
- }
- debug_path(DEBUG, path);
+ path = gnc_tree_model_commodity_get_path_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity);
+ if (path == NULL)
+ {
+ LEAVE("get_path_from_commodity failed");
+ return;
+ }
+ debug_path(DEBUG, path);
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
- path);
- gtk_tree_path_free(path);
- if (f_path == NULL) {
- LEAVE("no filter path");
- return;
- }
- debug_path(DEBUG, f_path);
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
+ path);
+ gtk_tree_path_free(path);
+ if (f_path == NULL)
+ {
+ LEAVE("no filter path");
+ return;
+ }
+ debug_path(DEBUG, f_path);
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
- f_path);
- gtk_tree_path_free(f_path);
- if (s_path == NULL) {
- LEAVE("no sort path");
- return;
- }
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
+ f_path);
+ gtk_tree_path_free(f_path);
+ if (s_path == NULL)
+ {
+ LEAVE("no sort path");
+ return;
+ }
- /* gtk_tree_view requires that a row be visible before it can be selected */
- parent_path = gtk_tree_path_copy (s_path);
- if (gtk_tree_path_up (parent_path)) {
- /* This function is misnamed. It expands the actual item
- * specified, not the path to the item specified. I.E. It expands
- * one level too many, thus the get of the parent. */
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
- }
- gtk_tree_path_free(parent_path);
+ /* gtk_tree_view requires that a row be visible before it can be selected */
+ parent_path = gtk_tree_path_copy (s_path);
+ if (gtk_tree_path_up (parent_path))
+ {
+ /* This function is misnamed. It expands the actual item
+ * specified, not the path to the item specified. I.E. It expands
+ * one level too many, thus the get of the parent. */
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ }
+ gtk_tree_path_free(parent_path);
- gtk_tree_selection_select_path (selection, s_path);
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
- debug_path(LEAVE, s_path);
- gtk_tree_path_free(s_path);
+ gtk_tree_selection_select_path (selection, s_path);
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
+ debug_path(LEAVE, s_path);
+ gtk_tree_path_free(s_path);
}
/*
@@ -917,26 +941,26 @@
*/
static void
get_selected_commodities_helper (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gpointer data)
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gpointer data)
{
- GList **return_list = data;
- GtkTreeModel *model, *f_model;
- GtkTreeIter iter, f_iter;
- gnc_commodity *commodity;
+ GList **return_list = data;
+ GtkTreeModel *model, *f_model;
+ GtkTreeIter iter, f_iter;
+ gnc_commodity *commodity;
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
- &f_iter, s_iter);
+ gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
+ &f_iter, s_iter);
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
- &iter, &f_iter);
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
+ &iter, &f_iter);
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model),
- &iter);
- *return_list = g_list_append(*return_list, commodity);
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model),
+ &iter);
+ *return_list = g_list_append(*return_list, commodity);
}
/*
@@ -949,12 +973,12 @@
GList *
gnc_tree_view_commodity_get_selected_commodities (GncTreeViewCommodity *view)
{
- GtkTreeSelection *selection;
- GList *return_list = NULL;
+ GtkTreeSelection *selection;
+ GList *return_list = NULL;
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
- gtk_tree_selection_selected_foreach(selection, get_selected_commodities_helper, &return_list);
- return return_list;
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
+ gtk_tree_selection_selected_foreach(selection, get_selected_commodities_helper, &return_list);
+ return return_list;
}
/*
@@ -963,65 +987,68 @@
*/
void
gnc_tree_view_commodity_set_selected_commodities (GncTreeViewCommodity *view,
- GList *commodity_list,
- gboolean show_last)
+ GList *commodity_list,
+ gboolean show_last)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path, *parent_path;
- GtkTreeSelection *selection;
- GList *element;
- gnc_commodity *commodity;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path, *parent_path;
+ GtkTreeSelection *selection;
+ GList *element;
+ gnc_commodity *commodity;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- /* Clear any existing selection. */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_unselect_all (selection);
- gtk_tree_view_collapse_all (GTK_TREE_VIEW(view));
+ /* Clear any existing selection. */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_unselect_all (selection);
+ gtk_tree_view_collapse_all (GTK_TREE_VIEW(view));
- /* Now go select what the user requested. */
- for (element = commodity_list; element; ) {
- commodity = element->data;
- element = g_list_next(element);
+ /* Now go select what the user requested. */
+ for (element = commodity_list; element; )
+ {
+ commodity = element->data;
+ element = g_list_next(element);
- path = gnc_tree_model_commodity_get_path_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity);
- if (path == NULL) {
- /*
- * Oops. Someone must have deleted this commodity and not cleaned
- * up all references to it.
- */
- continue;
- }
+ path = gnc_tree_model_commodity_get_path_from_commodity (GNC_TREE_MODEL_COMMODITY(model), commodity);
+ if (path == NULL)
+ {
+ /*
+ * Oops. Someone must have deleted this commodity and not cleaned
+ * up all references to it.
+ */
+ continue;
+ }
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
- path);
- gtk_tree_path_free(path);
- if (f_path == NULL)
- continue;
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
+ path);
+ gtk_tree_path_free(path);
+ if (f_path == NULL)
+ continue;
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
- f_path);
- gtk_tree_path_free(f_path);
- if (s_path == NULL)
- continue;
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
+ f_path);
+ gtk_tree_path_free(f_path);
+ if (s_path == NULL)
+ continue;
- /* gtk_tree_view requires that a row be visible before it can be selected */
- parent_path = gtk_tree_path_copy (s_path);
- if (gtk_tree_path_up (parent_path)) {
- /* This function is misnamed. It expands the actual item
- * specified, not the path to the item specified. I.E. It
- * expands one level too many, thus the get of the parent. */
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ /* gtk_tree_view requires that a row be visible before it can be selected */
+ parent_path = gtk_tree_path_copy (s_path);
+ if (gtk_tree_path_up (parent_path))
+ {
+ /* This function is misnamed. It expands the actual item
+ * specified, not the path to the item specified. I.E. It
+ * expands one level too many, thus the get of the parent. */
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ }
+ gtk_tree_path_free(parent_path);
+
+ gtk_tree_selection_select_path (selection, s_path);
+ if (show_last && (element == NULL))
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
+ gtk_tree_path_free(s_path);
}
- gtk_tree_path_free(parent_path);
-
- gtk_tree_selection_select_path (selection, s_path);
- if (show_last && (element == NULL))
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
- gtk_tree_path_free(s_path);
- }
}
#ifdef NEEDED
@@ -1040,12 +1067,15 @@
ENTER("view %p", view);
s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
gtk_tree_view_get_cursor (GTK_TREE_VIEW(view), &s_path, NULL);
- if (s_path) {
- account = gnc_tree_view_commodity_get_account_from_path (view, s_path);
- gtk_tree_path_free(s_path);
- } else {
- account = NULL;
+ if (s_path)
+ {
+ account = gnc_tree_view_commodity_get_account_from_path (view, s_path);
+ gtk_tree_path_free(s_path);
}
+ else
+ {
+ account = NULL;
+ }
LEAVE("account %p (%s)", account, gnc_commodity_get_mnemonic (account));
return account;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -52,13 +52,15 @@
#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;
+typedef struct
+{
+ GncTreeView gnc_tree_view;
+ int stamp;
} GncTreeViewCommodity;
-typedef struct {
- GncTreeViewClass gnc_tree_view;
+typedef struct
+{
+ GncTreeViewClass gnc_tree_view;
} GncTreeViewCommodityClass;
@@ -67,7 +69,7 @@
GType gnc_tree_view_commodity_get_type (void);
-/** @name Commodity Tree View Constructors
+/** @name Commodity Tree View Constructors
@{ */
/** Create a new commodity tree view. This view may or may not show a
@@ -85,12 +87,12 @@
* @return A pointer to a new commodity tree view.
*/
GtkTreeView *gnc_tree_view_commodity_new (QofBook *book,
- const gchar *first_property_name,
- ...);
+ const gchar *first_property_name,
+ ...);
/** @} */
-/** @name Commodity Tree View Configuration
+/** @name Commodity Tree View Configuration
@{ */
/** Configure (by name) the set of visible columns in an commodity tree
@@ -103,7 +105,7 @@
* @param column_names A list of column names to make visible.
*/
void gnc_tree_view_commodity_configure_columns (GncTreeViewCommodity *view,
- GSList *column_names);
+ GSList *column_names);
#ifdef OLD
/** Add a new column to the set of columns in an commodity tree view.
@@ -118,13 +120,13 @@
* will be displayed in the column.
*/
void gnc_tree_view_commodity_add_kvp_column (GncTreeViewCommodity *view,
- const gchar *column_title,
- const gchar *kvp_key);
+ const gchar *column_title,
+ const gchar *kvp_key);
#endif
/** @} */
-/** @name Commodity Tree View Filtering
+/** @name Commodity Tree View Filtering
@{ */
typedef gboolean (*gnc_tree_view_commodity_ns_filter_func)(gnc_commodity_namespace*, gpointer data);
@@ -155,10 +157,10 @@
* NULL.
*/
void gnc_tree_view_commodity_set_filter (GncTreeViewCommodity *view,
- gnc_tree_view_commodity_ns_filter_func ns_func,
- gnc_tree_view_commodity_cm_filter_func cm_func,
- gpointer data,
- GtkDestroyNotify destroy);
+ gnc_tree_view_commodity_ns_filter_func ns_func,
+ gnc_tree_view_commodity_cm_filter_func cm_func,
+ gpointer data,
+ GtkDestroyNotify destroy);
/** This function forces the commodity tree filter to be evaluated. It
@@ -175,7 +177,7 @@
/** @} */
-/** @name Commodity Tree View Get/Set Functions
+/** @name Commodity Tree View Get/Set Functions
@{ */
/** This function determines if an commodity in the commodity tree view
@@ -189,7 +191,7 @@
* on error.
*/
gint gnc_tree_view_commodity_count_children (GncTreeViewCommodity *view,
- gnc_commodity *commodity);
+ gnc_commodity *commodity);
@@ -206,8 +208,8 @@
* @return The commodity associated with the spcified row in the view.
*/
gnc_commodity * gnc_tree_view_commodity_get_commodity_from_column (GtkTreeViewColumn *column,
- GtkTreeModel *f_model,
- GtkTreeIter *f_iter);
+ GtkTreeModel *f_model,
+ GtkTreeIter *f_iter);
@@ -222,7 +224,7 @@
* @return The commodity associated with this path.
*/
gnc_commodity * gnc_tree_view_commodity_get_commodity_from_path (GncTreeViewCommodity *view,
- GtkTreePath *path);
+ GtkTreePath *path);
/** This function returns the commodity in the commodity tree view at the
@@ -266,7 +268,7 @@
* @param commodity A pointer to the commodity to select.
*/
void gnc_tree_view_commodity_set_selected_commodity (GncTreeViewCommodity *view,
- gnc_commodity *commodity);
+ gnc_commodity *commodity);
/** This function returns a list of the commodities associated with the
@@ -305,8 +307,8 @@
* selected.
*/
void gnc_tree_view_commodity_set_selected_commodities (GncTreeViewCommodity *view,
- GList *commodity_list,
- gboolean show_last);
+ GList *commodity_list,
+ gboolean show_last);
/** This function selects all sub-commodities of an commodity in the
@@ -322,7 +324,7 @@
* selected.
*/
void gnc_tree_view_commodity_select_subcommodities (GncTreeViewCommodity *view,
- gnc_commodity *commodity);
+ gnc_commodity *commodity);
/** @} */
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -55,7 +55,7 @@
typedef struct GncTreeViewPricePrivate
{
- gpointer dummy;
+ gpointer dummy;
} GncTreeViewPricePrivate;
#define GNC_TREE_VIEW_PRICE_GET_PRIVATE(o) \
@@ -71,47 +71,49 @@
GType
gnc_tree_view_price_get_type (void)
{
- static GType gnc_tree_view_price_type = 0;
+ static GType gnc_tree_view_price_type = 0;
- if (gnc_tree_view_price_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeViewPriceClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_view_price_class_init,
- NULL,
- NULL,
- sizeof (GncTreeViewPrice),
- 0,
- (GInstanceInitFunc) gnc_tree_view_price_init
- };
-
- gnc_tree_view_price_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
- "GncTreeViewPrice",
- &our_info, 0);
- }
+ if (gnc_tree_view_price_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeViewPriceClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_view_price_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeViewPrice),
+ 0,
+ (GInstanceInitFunc) gnc_tree_view_price_init
+ };
- return gnc_tree_view_price_type;
+ gnc_tree_view_price_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
+ "GncTreeViewPrice",
+ &our_info, 0);
+ }
+
+ return gnc_tree_view_price_type;
}
static void
gnc_tree_view_price_class_init (GncTreeViewPriceClass *klass)
{
- GObjectClass *o_class;
- GtkObjectClass *object_class;
+ GObjectClass *o_class;
+ GtkObjectClass *object_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class = G_OBJECT_CLASS (klass);
- object_class = GTK_OBJECT_CLASS (klass);
+ o_class = G_OBJECT_CLASS (klass);
+ object_class = GTK_OBJECT_CLASS (klass);
- /* GObject signals */
- o_class->finalize = gnc_tree_view_price_finalize;
+ /* GObject signals */
+ o_class->finalize = gnc_tree_view_price_finalize;
- /* GtkObject signals */
- object_class->destroy = gnc_tree_view_price_destroy;
+ /* GtkObject signals */
+ object_class->destroy = gnc_tree_view_price_destroy;
- g_type_class_add_private(klass, sizeof(GncTreeViewPricePrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeViewPricePrivate));
}
static void
@@ -122,35 +124,35 @@
static void
gnc_tree_view_price_finalize (GObject *object)
{
- GncTreeViewPrice *view;
- GncTreeViewPricePrivate *priv;
+ GncTreeViewPrice *view;
+ GncTreeViewPricePrivate *priv;
- ENTER("view %p", object);
- gnc_leave_return_if_fail (object != NULL);
- gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
+ ENTER("view %p", object);
+ gnc_leave_return_if_fail (object != NULL);
+ gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
- view = GNC_TREE_VIEW_PRICE (object);
- priv = GNC_TREE_VIEW_PRICE_GET_PRIVATE (view);
+ view = GNC_TREE_VIEW_PRICE (object);
+ priv = GNC_TREE_VIEW_PRICE_GET_PRIVATE (view);
- if (G_OBJECT_CLASS (parent_class)->finalize)
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+ LEAVE(" ");
}
static void
gnc_tree_view_price_destroy (GtkObject *object)
{
- GncTreeViewPrice *view;
+ GncTreeViewPrice *view;
- ENTER("view %p", object);
- gnc_leave_return_if_fail (object != NULL);
- gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
+ ENTER("view %p", object);
+ gnc_leave_return_if_fail (object != NULL);
+ gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
- view = GNC_TREE_VIEW_PRICE (object);
+ view = GNC_TREE_VIEW_PRICE (object);
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
- LEAVE(" ");
+ if (GTK_OBJECT_CLASS (parent_class)->destroy)
+ (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ LEAVE(" ");
}
@@ -160,225 +162,227 @@
static gboolean
get_prices (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- GNCPrice **price_a,
- GNCPrice **price_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ GNCPrice **price_a,
+ GNCPrice **price_b)
{
- GncTreeModelPrice *model;
- GtkTreeModel *tree_model;
- GtkTreeIter iter_a, iter_b;
+ GncTreeModelPrice *model;
+ GtkTreeModel *tree_model;
+ GtkTreeIter iter_a, iter_b;
- tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- model = GNC_TREE_MODEL_PRICE(tree_model);
+ tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ model = GNC_TREE_MODEL_PRICE(tree_model);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter_a,
- f_iter_a);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter_a,
+ f_iter_a);
- /* The iters must point to prices for this to be meaningful */
- if (!gnc_tree_model_price_iter_is_price (model, &iter_a))
- return FALSE;
+ /* The iters must point to prices for this to be meaningful */
+ if (!gnc_tree_model_price_iter_is_price (model, &iter_a))
+ return FALSE;
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter_b,
- f_iter_b);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter_b,
+ f_iter_b);
- *price_a = gnc_tree_model_price_get_price (model, &iter_a);
- *price_b = gnc_tree_model_price_get_price (model, &iter_b);
- return TRUE;
+ *price_a = gnc_tree_model_price_get_price (model, &iter_a);
+ *price_b = gnc_tree_model_price_get_price (model, &iter_b);
+ return TRUE;
}
static gint
sort_ns_or_cm (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b)
{
- GncTreeModelPrice *model;
- GtkTreeModel *tree_model;
- GtkTreeIter iter_a, iter_b;
- gnc_commodity_namespace *ns_a, *ns_b;
- gnc_commodity *comm_a, *comm_b;
+ GncTreeModelPrice *model;
+ GtkTreeModel *tree_model;
+ GtkTreeIter iter_a, iter_b;
+ gnc_commodity_namespace *ns_a, *ns_b;
+ gnc_commodity *comm_a, *comm_b;
- tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- model = GNC_TREE_MODEL_PRICE(tree_model);
+ tree_model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ model = GNC_TREE_MODEL_PRICE(tree_model);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter_a,
- f_iter_a);
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter_b,
- f_iter_b);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter_a,
+ f_iter_a);
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter_b,
+ f_iter_b);
- if (gnc_tree_model_price_iter_is_namespace (model, &iter_a)) {
- ns_a = gnc_tree_model_price_get_namespace (model, &iter_a);
- ns_b = gnc_tree_model_price_get_namespace (model, &iter_b);
- return safe_utf8_collate (gnc_commodity_namespace_get_name (ns_a),
- gnc_commodity_namespace_get_name (ns_b));
- }
+ if (gnc_tree_model_price_iter_is_namespace (model, &iter_a))
+ {
+ ns_a = gnc_tree_model_price_get_namespace (model, &iter_a);
+ ns_b = gnc_tree_model_price_get_namespace (model, &iter_b);
+ return safe_utf8_collate (gnc_commodity_namespace_get_name (ns_a),
+ gnc_commodity_namespace_get_name (ns_b));
+ }
- comm_a = gnc_tree_model_price_get_commodity (model, &iter_a);
- comm_b = gnc_tree_model_price_get_commodity (model, &iter_b);
- return safe_utf8_collate (gnc_commodity_get_mnemonic (comm_a),
- gnc_commodity_get_mnemonic (comm_b));
+ comm_a = gnc_tree_model_price_get_commodity (model, &iter_a);
+ comm_b = gnc_tree_model_price_get_commodity (model, &iter_b);
+ return safe_utf8_collate (gnc_commodity_get_mnemonic (comm_a),
+ gnc_commodity_get_mnemonic (comm_b));
}
static gint
default_sort (GNCPrice *price_a, GNCPrice *price_b)
{
- gnc_commodity *curr_a, *curr_b;
- Timespec ts_a, ts_b;
- gint result;
+ gnc_commodity *curr_a, *curr_b;
+ Timespec ts_a, ts_b;
+ gint result;
- /* Primary sort (i.e. commodity name) handled by the tree structure. */
+ /* Primary sort (i.e. commodity name) handled by the tree structure. */
- /* secondary sort: currency */
- curr_a = gnc_price_get_currency (price_a);
- curr_b = gnc_price_get_currency (price_b);
+ /* secondary sort: currency */
+ curr_a = gnc_price_get_currency (price_a);
+ curr_b = gnc_price_get_currency (price_b);
- result = safe_utf8_collate (gnc_commodity_get_namespace (curr_a),
- gnc_commodity_get_namespace (curr_b));
- if (result != 0) return result;
+ result = safe_utf8_collate (gnc_commodity_get_namespace (curr_a),
+ gnc_commodity_get_namespace (curr_b));
+ if (result != 0) return result;
- result = safe_utf8_collate (gnc_commodity_get_mnemonic (curr_a),
- gnc_commodity_get_mnemonic (curr_b));
- if (result != 0) return result;
+ result = safe_utf8_collate (gnc_commodity_get_mnemonic (curr_a),
+ gnc_commodity_get_mnemonic (curr_b));
+ if (result != 0) return result;
- /* tertiary sort: time */
- ts_a = gnc_price_get_time (price_a);
- ts_b = gnc_price_get_time (price_b);
- result = timespec_cmp (&ts_a, &ts_b);
- if (result)
- /* Reverse the result to present the most recent quote first. */
- return -result;
+ /* tertiary sort: time */
+ ts_a = gnc_price_get_time (price_a);
+ ts_b = gnc_price_get_time (price_b);
+ result = timespec_cmp (&ts_a, &ts_b);
+ if (result)
+ /* Reverse the result to present the most recent quote first. */
+ return -result;
- /* last sort: value */
- return gnc_numeric_compare (gnc_price_get_value (price_a),
- gnc_price_get_value (price_b));
+ /* last sort: value */
+ return gnc_numeric_compare (gnc_price_get_value (price_a),
+ gnc_price_get_value (price_b));
}
static gint
sort_by_name (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- GNCPrice *price_a, *price_b;
+ GNCPrice *price_a, *price_b;
- if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
- return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
+ if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
+ return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
- return default_sort (price_a, price_b);
+ return default_sort (price_a, price_b);
}
static gint
sort_by_date (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- GNCPrice *price_a, *price_b;
- Timespec ts_a, ts_b;
- gboolean result;
+ GNCPrice *price_a, *price_b;
+ Timespec ts_a, ts_b;
+ gboolean result;
- if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
- return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
+ if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
+ return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
- /* sort by time first */
- ts_a = gnc_price_get_time (price_a);
- ts_b = gnc_price_get_time (price_b);
- result = timespec_cmp (&ts_a, &ts_b);
- if (result)
- /* Reverse the result to present the most recent quote first. */
- return -result;
+ /* sort by time first */
+ ts_a = gnc_price_get_time (price_a);
+ ts_b = gnc_price_get_time (price_b);
+ result = timespec_cmp (&ts_a, &ts_b);
+ if (result)
+ /* Reverse the result to present the most recent quote first. */
+ return -result;
- return default_sort (price_a, price_b);
+ return default_sort (price_a, price_b);
}
static gint
sort_by_source (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- GNCPrice *price_a, *price_b;
- gint result;
+ GNCPrice *price_a, *price_b;
+ gint result;
- if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
- return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
+ if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
+ return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
- /* sort by source first */
- result = safe_utf8_collate (gnc_price_get_source (price_a),
- gnc_price_get_source (price_b));
- if (result != 0)
- return result;
+ /* sort by source first */
+ result = safe_utf8_collate (gnc_price_get_source (price_a),
+ gnc_price_get_source (price_b));
+ if (result != 0)
+ return result;
- return default_sort (price_a, price_b);
+ return default_sort (price_a, price_b);
}
static gint
sort_by_type (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- GNCPrice *price_a, *price_b;
- gint result;
+ GNCPrice *price_a, *price_b;
+ gint result;
- if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
- return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
+ if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
+ return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
- /* sort by source first */
- result = safe_utf8_collate (gnc_price_get_typestr (price_a),
- gnc_price_get_typestr (price_b));
- if (result != 0)
- return result;
+ /* sort by source first */
+ result = safe_utf8_collate (gnc_price_get_typestr (price_a),
+ gnc_price_get_typestr (price_b));
+ if (result != 0)
+ return result;
- return default_sort (price_a, price_b);
+ return default_sort (price_a, price_b);
}
static gint
sort_by_value (GtkTreeModel *f_model,
- GtkTreeIter *f_iter_a,
- GtkTreeIter *f_iter_b,
- gpointer user_data)
+ GtkTreeIter *f_iter_a,
+ GtkTreeIter *f_iter_b,
+ gpointer user_data)
{
- gnc_commodity *comm_a, *comm_b;
- GNCPrice *price_a, *price_b;
- gboolean result;
- gint value;
+ gnc_commodity *comm_a, *comm_b;
+ GNCPrice *price_a, *price_b;
+ gboolean result;
+ gint value;
- if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
- return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
+ if (!get_prices (f_model, f_iter_a, f_iter_b, &price_a, &price_b))
+ return sort_ns_or_cm (f_model, f_iter_a, f_iter_b);
- /*
- * Sorted by commodity because of the tree structure. Now sort by
- * currency so we're only comparing numbers in the same currency
- * denomination.
- */
- comm_a = gnc_price_get_currency (price_a);
- comm_b = gnc_price_get_currency (price_b);
- if (comm_a && comm_b){
- value = safe_utf8_collate (gnc_commodity_get_namespace (comm_a),
- gnc_commodity_get_namespace (comm_b));
- if (value != 0)
- return value;
- value = safe_utf8_collate (gnc_commodity_get_mnemonic (comm_a),
- gnc_commodity_get_mnemonic (comm_b));
- if (value != 0)
- return value;
- }
+ /*
+ * Sorted by commodity because of the tree structure. Now sort by
+ * currency so we're only comparing numbers in the same currency
+ * denomination.
+ */
+ comm_a = gnc_price_get_currency (price_a);
+ comm_b = gnc_price_get_currency (price_b);
+ if (comm_a && comm_b)
+ {
+ value = safe_utf8_collate (gnc_commodity_get_namespace (comm_a),
+ gnc_commodity_get_namespace (comm_b));
+ if (value != 0)
+ return value;
+ value = safe_utf8_collate (gnc_commodity_get_mnemonic (comm_a),
+ gnc_commodity_get_mnemonic (comm_b));
+ if (value != 0)
+ return value;
+ }
- /*
- * Now do the actual price comparison now we're sure that its an
- * apples to apples comparison.
- */
- result = gnc_numeric_compare (gnc_price_get_value (price_a),
- gnc_price_get_value (price_b));
- if (result)
- return result;
+ /*
+ * Now do the actual price comparison now we're sure that its an
+ * apples to apples comparison.
+ */
+ result = gnc_numeric_compare (gnc_price_get_value (price_a),
+ gnc_price_get_value (price_b));
+ if (result)
+ return result;
- return default_sort (price_a, price_b);
+ return default_sort (price_a, price_b);
}
@@ -394,97 +398,98 @@
*/
GtkTreeView *
gnc_tree_view_price_new (QofBook *book,
- const gchar *first_property_name,
- ...)
+ const gchar *first_property_name,
+ ...)
{
- GncTreeView *view;
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreeViewColumn *col;
- GNCPriceDB *price_db;
- va_list var_args;
- const gchar *sample_text;
- gchar *sample_text2;
+ GncTreeView *view;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreeViewColumn *col;
+ GNCPriceDB *price_db;
+ va_list var_args;
+ const gchar *sample_text;
+ gchar *sample_text2;
- ENTER(" ");
- /* Create/get a pointer to the existing model for this set of books. */
- price_db = gnc_pricedb_get_db(book);
- model = gnc_tree_model_price_new (book, price_db);
+ ENTER(" ");
+ /* Create/get a pointer to the existing model for this set of books. */
+ price_db = gnc_pricedb_get_db(book);
+ model = gnc_tree_model_price_new (book, price_db);
- /* Set up the view private filter on the common model. */
- f_model = gtk_tree_model_filter_new (model, NULL);
- g_object_unref(G_OBJECT(model));
- s_model = gtk_tree_model_sort_new_with_model (f_model);
- g_object_unref(G_OBJECT(f_model));
+ /* Set up the view private filter on the common model. */
+ f_model = gtk_tree_model_filter_new (model, NULL);
+ g_object_unref(G_OBJECT(model));
+ s_model = gtk_tree_model_sort_new_with_model (f_model);
+ g_object_unref(G_OBJECT(f_model));
- /* Create our view */
- view = g_object_new (GNC_TYPE_TREE_VIEW_PRICE,
- "name", "price_tree", NULL);
- gnc_tree_view_set_model (view, s_model);
- g_object_unref(G_OBJECT(s_model));
+ /* Create our view */
+ view = g_object_new (GNC_TYPE_TREE_VIEW_PRICE,
+ "name", "price_tree", NULL);
+ gnc_tree_view_set_model (view, s_model);
+ g_object_unref(G_OBJECT(s_model));
- DEBUG("model ref count is %d", G_OBJECT(model)->ref_count);
- DEBUG("f_model ref count is %d", G_OBJECT(f_model)->ref_count);
- DEBUG("s_model ref count is %d", G_OBJECT(s_model)->ref_count);
+ DEBUG("model ref count is %d", G_OBJECT(model)->ref_count);
+ DEBUG("f_model ref count is %d", G_OBJECT(f_model)->ref_count);
+ DEBUG("s_model ref count is %d", G_OBJECT(s_model)->ref_count);
- sample_text = gnc_commodity_get_printname(gnc_default_currency());
- sample_text2 = g_strdup_printf("%s%s", sample_text, sample_text);
- 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);
- 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));
+ sample_text = gnc_commodity_get_printname(gnc_default_currency());
+ sample_text2 = g_strdup_printf("%s%s", sample_text, sample_text);
+ 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);
+ 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);
+ gnc_tree_view_configure_columns(view);
- /* Set properties */
- va_start (var_args, first_property_name);
- g_object_set_valist (G_OBJECT(view), first_property_name, var_args);
- va_end (var_args);
+ /* Set properties */
+ va_start (var_args, first_property_name);
+ g_object_set_valist (G_OBJECT(view), first_property_name, var_args);
+ va_end (var_args);
- /* Sort on the commodity column by default. This allows for a consistent
- * sort if commodities are removed and re-added from the model. */
- if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
- NULL, NULL)) {
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
- GNC_TREE_MODEL_PRICE_COL_COMMODITY,
- GTK_SORT_ASCENDING);
- }
+ /* Sort on the commodity column by default. This allows for a consistent
+ * sort if commodities are removed and re-added from the model. */
+ if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ NULL, NULL))
+ {
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ GNC_TREE_MODEL_PRICE_COL_COMMODITY,
+ GTK_SORT_ASCENDING);
+ }
- gtk_widget_show(GTK_WIDGET(view));
- LEAVE(" %p", view);
- return GTK_TREE_VIEW(view);
+ gtk_widget_show(GTK_WIDGET(view));
+ LEAVE(" %p", view);
+ return GTK_TREE_VIEW(view);
}
/************************************************************/
@@ -500,129 +505,135 @@
#if 0
static GtkTreePath *
gnc_tree_view_price_get_path_from_price (GncTreeViewPrice *view,
- GNCPrice *price)
+ GNCPrice *price)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path;
- ENTER("view %p, price %p (%s)", view, price, gnc_price_get_name(price));
+ ENTER("view %p, price %p (%s)", view, price, gnc_price_get_name(price));
- if (price == NULL) {
- LEAVE("no price");
- return NULL;
- }
+ if (price == NULL)
+ {
+ LEAVE("no price");
+ return NULL;
+ }
- /* Reach down to the real model and get a path for this price */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- path = gnc_tree_model_price_get_path_from_price (GNC_TREE_MODEL_PRICE(model), price);
- if (path == NULL) {
- LEAVE("no path");
- return NULL;
- }
+ /* Reach down to the real model and get a path for this price */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ path = gnc_tree_model_price_get_path_from_price (GNC_TREE_MODEL_PRICE(model), price);
+ if (path == NULL)
+ {
+ LEAVE("no path");
+ return NULL;
+ }
- /* convert back to a filtered path */
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model), path);
- gtk_tree_path_free(path);
- if (!f_path) {
- LEAVE("no filter path");
- return NULL;
- }
+ /* convert back to a filtered path */
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model), path);
+ gtk_tree_path_free(path);
+ if (!f_path)
+ {
+ LEAVE("no filter path");
+ return NULL;
+ }
- /* convert back to a sorted path */
- s_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model), f_path);
- gtk_tree_path_free(f_path);
- debug_path(LEAVE, s_path);
- return s_path;
+ /* convert back to a sorted path */
+ s_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model), f_path);
+ gtk_tree_path_free(f_path);
+ debug_path(LEAVE, s_path);
+ return s_path;
}
#endif
static gboolean
gnc_tree_view_price_get_iter_from_price (GncTreeViewPrice *view,
- GNCPrice *price,
- GtkTreeIter *s_iter)
+ GNCPrice *price,
+ GtkTreeIter *s_iter)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreeIter iter, f_iter;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreeIter iter, f_iter;
- g_return_val_if_fail(GNC_IS_TREE_VIEW_PRICE(view), FALSE);
- g_return_val_if_fail(price != NULL, FALSE);
- g_return_val_if_fail(s_iter != NULL, FALSE);
-
- ENTER("view %p, price %p", view, price);
+ g_return_val_if_fail(GNC_IS_TREE_VIEW_PRICE(view), FALSE);
+ g_return_val_if_fail(price != NULL, FALSE);
+ g_return_val_if_fail(s_iter != NULL, FALSE);
- /* Reach down to the real model and get an iter for this price */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- if (!gnc_tree_model_price_get_iter_from_price (GNC_TREE_MODEL_PRICE(model), price, &iter)) {
- LEAVE("model_get_iter_from_price failed");
- return FALSE;
- }
+ ENTER("view %p, price %p", view, price);
- /* convert back to a sort iter */
- gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER(f_model),
- &f_iter, &iter);
- gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT(s_model),
- s_iter, &f_iter);
- LEAVE(" ");
- return TRUE;
+ /* Reach down to the real model and get an iter for this price */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ if (!gnc_tree_model_price_get_iter_from_price (GNC_TREE_MODEL_PRICE(model), price, &iter))
+ {
+ LEAVE("model_get_iter_from_price failed");
+ return FALSE;
+ }
+
+ /* convert back to a sort iter */
+ gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &f_iter, &iter);
+ gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT(s_model),
+ s_iter, &f_iter);
+ LEAVE(" ");
+ return TRUE;
}
gint
gnc_tree_view_price_count_children (GncTreeViewPrice *view,
- GNCPrice *price)
+ GNCPrice *price)
{
- GtkTreeModel *s_model;
- GtkTreeIter s_iter;
- gint num_children;
+ GtkTreeModel *s_model;
+ GtkTreeIter s_iter;
+ gint num_children;
- ENTER("view %p, price %p", view, price);
+ ENTER("view %p, price %p", view, price);
- if (price == NULL) {
- LEAVE("no price");
- return 0;
- }
+ if (price == NULL)
+ {
+ LEAVE("no price");
+ return 0;
+ }
- if (!gnc_tree_view_price_get_iter_from_price (view, price, &s_iter)) {
- LEAVE("view_get_iter_from_price failed");
- return 0;
- }
+ if (!gnc_tree_view_price_get_iter_from_price (view, price, &s_iter))
+ {
+ LEAVE("view_get_iter_from_price failed");
+ return 0;
+ }
- /* Any children? */
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- num_children = gtk_tree_model_iter_n_children(s_model, &s_iter);
- LEAVE("%d children", num_children);
- return num_children;
+ /* Any children? */
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ num_children = gtk_tree_model_iter_n_children(s_model, &s_iter);
+ LEAVE("%d children", num_children);
+ return num_children;
}
GNCPrice *
gnc_tree_view_price_get_price_from_column (GtkTreeViewColumn *column,
- GtkTreeModel *s_model,
- GtkTreeIter *s_iter)
+ GtkTreeModel *s_model,
+ GtkTreeIter *s_iter)
{
- GtkTreeModel *model, *f_model;
- GtkTreeIter iter, f_iter;
- GNCPrice *price;
+ GtkTreeModel *model, *f_model;
+ GtkTreeIter iter, f_iter;
+ GNCPrice *price;
- g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN(column), NULL);
- g_return_val_if_fail (GTK_IS_TREE_MODEL_SORT(s_model), NULL);
- g_return_val_if_fail (s_iter != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN(column), NULL);
+ g_return_val_if_fail (GTK_IS_TREE_MODEL_SORT(s_model), NULL);
+ g_return_val_if_fail (s_iter != NULL, NULL);
- ENTER("column %p, model %p, iter %p", column, s_model, s_iter);
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT(s_model),
- &f_iter,
- s_iter);
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
- &iter,
- &f_iter);
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model), &iter);
- LEAVE("price %p", price);
- return price;
+ ENTER("column %p, model %p, iter %p", column, s_model, s_iter);
+ gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT(s_model),
+ &f_iter,
+ s_iter);
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER(f_model),
+ &iter,
+ &f_iter);
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model), &iter);
+ LEAVE("price %p", price);
+ return price;
}
/************************************************************/
@@ -634,90 +645,99 @@
*/
void
gnc_tree_view_price_configure_columns (GncTreeViewPrice *view,
- GSList *column_names)
+ GSList *column_names)
{
- GtkTreeViewColumn *column;
- GSList *node;
- int i;
+ GtkTreeViewColumn *column;
+ GSList *node;
+ int i;
- ENTER(" ");
+ ENTER(" ");
- for (i = 1; i < GNC_TREE_MODEL_PRICE_NUM_COLUMNS; i++) {
- column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
- gtk_tree_view_column_set_visible (column, FALSE);
- }
+ for (i = 1; i < GNC_TREE_MODEL_PRICE_NUM_COLUMNS; i++)
+ {
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
+ gtk_tree_view_column_set_visible (column, FALSE);
+ }
- for (node = column_names; node != NULL; node = node->next)
- {
- for (i = 0; i < GNC_TREE_MODEL_PRICE_NUM_COLUMNS; i++) {
- column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
- gtk_tree_view_column_set_visible (column, TRUE);
+ for (node = column_names; node != NULL; node = node->next)
+ {
+ for (i = 0; i < GNC_TREE_MODEL_PRICE_NUM_COLUMNS; i++)
+ {
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW(view), i);
+ gtk_tree_view_column_set_visible (column, TRUE);
+ }
}
- }
- LEAVE(" ");
+ LEAVE(" ");
}
/************************************************************/
/* Price Tree View Visibility Filter */
/************************************************************/
-typedef struct {
- gnc_tree_view_price_ns_filter_func user_ns_fn;
- gnc_tree_view_price_cm_filter_func user_cm_fn;
- gnc_tree_view_price_pc_filter_func user_pc_fn;
- gpointer user_data;
- GtkDestroyNotify user_destroy;
+typedef struct
+{
+ gnc_tree_view_price_ns_filter_func user_ns_fn;
+ gnc_tree_view_price_cm_filter_func user_cm_fn;
+ gnc_tree_view_price_pc_filter_func user_pc_fn;
+ gpointer user_data;
+ GtkDestroyNotify user_destroy;
} filter_user_data;
static void
gnc_tree_view_price_filter_destroy (gpointer data)
{
- filter_user_data *fd = data;
+ filter_user_data *fd = data;
- if (fd->user_destroy)
- fd->user_destroy(fd->user_data);
- g_free(fd);
+ if (fd->user_destroy)
+ fd->user_destroy(fd->user_data);
+ g_free(fd);
}
static gboolean
gnc_tree_view_price_filter_helper (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data)
+ GtkTreeIter *iter,
+ gpointer data)
{
- gnc_commodity_namespace *namespace;
- gnc_commodity *commodity;
- GNCPrice *price;
- filter_user_data *fd = data;
+ gnc_commodity_namespace *namespace;
+ gnc_commodity *commodity;
+ GNCPrice *price;
+ filter_user_data *fd = data;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_PRICE (model), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- if (gnc_tree_model_price_iter_is_namespace (GNC_TREE_MODEL_PRICE(model), iter)) {
- if (fd->user_ns_fn) {
- namespace = gnc_tree_model_price_get_namespace (GNC_TREE_MODEL_PRICE(model), iter);
- return fd->user_ns_fn(namespace, fd->user_data);
+ if (gnc_tree_model_price_iter_is_namespace (GNC_TREE_MODEL_PRICE(model), iter))
+ {
+ if (fd->user_ns_fn)
+ {
+ namespace = gnc_tree_model_price_get_namespace (GNC_TREE_MODEL_PRICE(model), iter);
+ return fd->user_ns_fn(namespace, fd->user_data);
+ }
+ return TRUE;
}
- return TRUE;
- }
- if (gnc_tree_model_price_iter_is_commodity (GNC_TREE_MODEL_PRICE(model), iter)) {
- if (fd->user_cm_fn) {
- commodity = gnc_tree_model_price_get_commodity (GNC_TREE_MODEL_PRICE(model), iter);
- return fd->user_cm_fn(commodity, fd->user_data);
+ if (gnc_tree_model_price_iter_is_commodity (GNC_TREE_MODEL_PRICE(model), iter))
+ {
+ if (fd->user_cm_fn)
+ {
+ commodity = gnc_tree_model_price_get_commodity (GNC_TREE_MODEL_PRICE(model), iter);
+ return fd->user_cm_fn(commodity, fd->user_data);
+ }
+ return TRUE;
}
- return TRUE;
- }
- if (gnc_tree_model_price_iter_is_price (GNC_TREE_MODEL_PRICE(model), iter)) {
- if (fd->user_pc_fn) {
- price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model), iter);
- return fd->user_pc_fn(price, fd->user_data);
+ if (gnc_tree_model_price_iter_is_price (GNC_TREE_MODEL_PRICE(model), iter))
+ {
+ if (fd->user_pc_fn)
+ {
+ price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model), iter);
+ return fd->user_pc_fn(price, fd->user_data);
+ }
+ return TRUE;
}
- return TRUE;
- }
- return FALSE;
+ return FALSE;
}
/*
@@ -727,43 +747,43 @@
*/
void
gnc_tree_view_price_set_filter (GncTreeViewPrice *view,
- gnc_tree_view_price_ns_filter_func ns_func,
- gnc_tree_view_price_cm_filter_func cm_func,
- gnc_tree_view_price_pc_filter_func pc_func,
- gpointer data,
- GtkDestroyNotify destroy)
+ gnc_tree_view_price_ns_filter_func ns_func,
+ gnc_tree_view_price_cm_filter_func cm_func,
+ gnc_tree_view_price_pc_filter_func pc_func,
+ gpointer data,
+ GtkDestroyNotify destroy)
{
- GtkTreeModel *f_model, *s_model;
- filter_user_data *fd = data;
+ GtkTreeModel *f_model, *s_model;
+ filter_user_data *fd = data;
- ENTER("view %p, ns func %p, cm func %p, pc func %p, data %p, destroy %p",
- view, ns_func, cm_func, pc_func, data, destroy);
+ ENTER("view %p, ns func %p, cm func %p, pc func %p, data %p, destroy %p",
+ view, ns_func, cm_func, pc_func, data, destroy);
- g_return_if_fail(GNC_IS_TREE_VIEW_PRICE(view));
- g_return_if_fail((ns_func != NULL) || (cm_func != NULL));
+ g_return_if_fail(GNC_IS_TREE_VIEW_PRICE(view));
+ g_return_if_fail((ns_func != NULL) || (cm_func != NULL));
- fd = g_malloc(sizeof(filter_user_data));
- fd->user_ns_fn = ns_func;
- fd->user_cm_fn = cm_func;
- fd->user_pc_fn = pc_func;
- fd->user_data = data;
- fd->user_destroy = destroy;
+ fd = g_malloc(sizeof(filter_user_data));
+ fd->user_ns_fn = ns_func;
+ fd->user_cm_fn = cm_func;
+ fd->user_pc_fn = pc_func;
+ fd->user_data = data;
+ fd->user_destroy = destroy;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
- gnc_tree_view_price_filter_helper,
- fd,
- gnc_tree_view_price_filter_destroy);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (f_model),
+ gnc_tree_view_price_filter_helper,
+ fd,
+ gnc_tree_view_price_filter_destroy);
- /* Whack any existing levels. The top two levels have been created
- * before this routine can be called. Unfortunately, if the just
- * applied filter filters out all the nodes in the tree, the gtk
- * code throws a critical error. This occurs when there are no
- * prices in the price database. Once the very first price has been
- * added this error message goes away. */
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
- LEAVE(" ");
+ /* Whack any existing levels. The top two levels have been created
+ * before this routine can be called. Unfortunately, if the just
+ * applied filter filters out all the nodes in the tree, the gtk
+ * code throws a critical error. This occurs when there are no
+ * prices in the price database. Once the very first price has been
+ * added this error message goes away. */
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
+ LEAVE(" ");
}
/*
@@ -772,16 +792,16 @@
void
gnc_tree_view_price_refilter (GncTreeViewPrice *view)
{
- GtkTreeModel *f_model, *s_model;
+ GtkTreeModel *f_model, *s_model;
- ENTER("view %p", view);
+ ENTER("view %p", view);
- g_return_if_fail(GNC_IS_TREE_VIEW_PRICE(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW_PRICE(view));
- s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
- LEAVE(" ");
+ s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
+ LEAVE(" ");
}
/************************************************************/
@@ -794,7 +814,7 @@
*/
GNCPrice *
gnc_tree_view_price_get_price_from_path (GncTreeViewPrice *view,
- GtkTreePath *s_path)
+ GtkTreePath *s_path)
{
GtkTreeModel *model, *f_model, *s_model;
GtkTreePath *path, *f_path;
@@ -807,27 +827,30 @@
s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
f_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT (s_model), s_path);
- if (!f_path) {
- LEAVE("no filter path");
- return NULL;
+ if (!f_path)
+ {
+ LEAVE("no filter path");
+ return NULL;
}
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (f_model), f_path);
gtk_tree_path_free(f_path);
- if (!path) {
- LEAVE("no path");
- return NULL;
+ if (!path)
+ {
+ LEAVE("no path");
+ return NULL;
}
model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- if (!gtk_tree_model_get_iter (model, &iter, path)) {
- LEAVE("no iter");
- return NULL;
+ if (!gtk_tree_model_get_iter (model, &iter, path))
+ {
+ LEAVE("no iter");
+ return NULL;
}
price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model),
- &iter);
+ &iter);
gtk_tree_path_free(path);
LEAVE("price %p", price);
return price;
@@ -849,21 +872,22 @@
g_return_val_if_fail (GNC_IS_TREE_VIEW_PRICE (view), NULL);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
- if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter)) {
- LEAVE("no price, get_selected failed");
- return FALSE;
+ if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter))
+ {
+ LEAVE("no price, get_selected failed");
+ return FALSE;
}
gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
- &f_iter, &s_iter);
+ &f_iter, &s_iter);
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
- &iter, &f_iter);
+ &iter, &f_iter);
model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model),
- &iter);
+ &iter);
LEAVE("price %p", price);
return price;
}
@@ -874,63 +898,67 @@
*/
void
gnc_tree_view_price_set_selected_price (GncTreeViewPrice *view,
- GNCPrice *price)
+ GNCPrice *price)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path, *parent_path;
- GtkTreeSelection *selection;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path, *parent_path;
+ GtkTreeSelection *selection;
- ENTER("view %p, price %p", view, price);
+ ENTER("view %p, price %p", view, price);
- /* Clear any existing selection. */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_unselect_all (selection);
+ /* Clear any existing selection. */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_unselect_all (selection);
- if (price == NULL)
- return;
+ if (price == NULL)
+ return;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (f_model));
- path = gnc_tree_model_price_get_path_from_price (GNC_TREE_MODEL_PRICE(model), price);
- if (path == NULL) {
- LEAVE("get_path_from_price failed");
- return;
- }
- debug_path(DEBUG, path);
+ path = gnc_tree_model_price_get_path_from_price (GNC_TREE_MODEL_PRICE(model), price);
+ if (path == NULL)
+ {
+ LEAVE("get_path_from_price failed");
+ return;
+ }
+ debug_path(DEBUG, path);
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
- path);
- gtk_tree_path_free(path);
- if (f_path == NULL) {
- LEAVE("no filter path");
- return;
- }
- debug_path(DEBUG, f_path);
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
+ path);
+ gtk_tree_path_free(path);
+ if (f_path == NULL)
+ {
+ LEAVE("no filter path");
+ return;
+ }
+ debug_path(DEBUG, f_path);
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
- f_path);
- gtk_tree_path_free(f_path);
- if (s_path == NULL) {
- LEAVE("no sort path");
- return;
- }
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
+ f_path);
+ gtk_tree_path_free(f_path);
+ if (s_path == NULL)
+ {
+ LEAVE("no sort path");
+ return;
+ }
- /* gtk_tree_view requires that a row be visible before it can be selected */
- parent_path = gtk_tree_path_copy (s_path);
- if (gtk_tree_path_up (parent_path)) {
- /* This function is misnamed. It expands the actual item
- * specified, not the path to the item specified. I.E. It expands
- * one level too many, thus the get of the parent. */
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
- }
- gtk_tree_path_free(parent_path);
+ /* gtk_tree_view requires that a row be visible before it can be selected */
+ parent_path = gtk_tree_path_copy (s_path);
+ if (gtk_tree_path_up (parent_path))
+ {
+ /* This function is misnamed. It expands the actual item
+ * specified, not the path to the item specified. I.E. It expands
+ * one level too many, thus the get of the parent. */
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ }
+ gtk_tree_path_free(parent_path);
- gtk_tree_selection_select_path (selection, s_path);
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
- debug_path(LEAVE, s_path);
- gtk_tree_path_free(s_path);
+ gtk_tree_selection_select_path (selection, s_path);
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
+ debug_path(LEAVE, s_path);
+ gtk_tree_path_free(s_path);
}
/*
@@ -940,27 +968,27 @@
*/
static void
get_selected_prices_helper (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gpointer data)
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gpointer data)
{
- GList **return_list = data;
- GtkTreeModel *model, *f_model;
- GtkTreeIter iter, f_iter;
- GNCPrice *price;
+ GList **return_list = data;
+ GtkTreeModel *model, *f_model;
+ GtkTreeIter iter, f_iter;
+ GNCPrice *price;
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
- &f_iter, s_iter);
+ gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (s_model),
+ &f_iter, s_iter);
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
- &iter, &f_iter);
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (f_model),
+ &iter, &f_iter);
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model),
- &iter);
- if (price)
- *return_list = g_list_append(*return_list, price);
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model),
+ &iter);
+ if (price)
+ *return_list = g_list_append(*return_list, price);
}
/*
@@ -973,12 +1001,12 @@
GList *
gnc_tree_view_price_get_selected_prices (GncTreeViewPrice *view)
{
- GtkTreeSelection *selection;
- GList *return_list = NULL;
+ GtkTreeSelection *selection;
+ GList *return_list = NULL;
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
- gtk_tree_selection_selected_foreach(selection, get_selected_prices_helper, &return_list);
- return return_list;
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
+ gtk_tree_selection_selected_foreach(selection, get_selected_prices_helper, &return_list);
+ return return_list;
}
/*
@@ -987,65 +1015,68 @@
*/
void
gnc_tree_view_price_set_selected_prices (GncTreeViewPrice *view,
- GList *price_list,
- gboolean show_last)
+ GList *price_list,
+ gboolean show_last)
{
- GtkTreeModel *model, *f_model, *s_model;
- GtkTreePath *path, *f_path, *s_path, *parent_path;
- GtkTreeSelection *selection;
- GList *element;
- GNCPrice *price;
+ GtkTreeModel *model, *f_model, *s_model;
+ GtkTreePath *path, *f_path, *s_path, *parent_path;
+ GtkTreeSelection *selection;
+ GList *element;
+ GNCPrice *price;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
- model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
+ model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(f_model));
- /* Clear any existing selection. */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- gtk_tree_selection_unselect_all (selection);
- gtk_tree_view_collapse_all (GTK_TREE_VIEW(view));
+ /* Clear any existing selection. */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
+ gtk_tree_selection_unselect_all (selection);
+ gtk_tree_view_collapse_all (GTK_TREE_VIEW(view));
- /* Now go select what the user requested. */
- for (element = price_list; element; ) {
- price = element->data;
- element = g_list_next(element);
+ /* Now go select what the user requested. */
+ for (element = price_list; element; )
+ {
+ price = element->data;
+ element = g_list_next(element);
- path = gnc_tree_model_price_get_path_from_price (GNC_TREE_MODEL_PRICE(model), price);
- if (path == NULL) {
- /*
- * Oops. Someone must have deleted this price and not cleaned
- * up all references to it.
- */
- continue;
- }
+ path = gnc_tree_model_price_get_path_from_price (GNC_TREE_MODEL_PRICE(model), price);
+ if (path == NULL)
+ {
+ /*
+ * Oops. Someone must have deleted this price and not cleaned
+ * up all references to it.
+ */
+ continue;
+ }
- f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
- path);
- gtk_tree_path_free(path);
- if (f_path == NULL)
- continue;
+ f_path = gtk_tree_model_filter_convert_child_path_to_path (GTK_TREE_MODEL_FILTER (f_model),
+ path);
+ gtk_tree_path_free(path);
+ if (f_path == NULL)
+ continue;
- s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
- f_path);
- gtk_tree_path_free(f_path);
- if (s_path == NULL)
- continue;
+ s_path = gtk_tree_model_sort_convert_child_path_to_path (GTK_TREE_MODEL_SORT (s_model),
+ f_path);
+ gtk_tree_path_free(f_path);
+ if (s_path == NULL)
+ continue;
- /* gtk_tree_view requires that a row be visible before it can be selected */
- parent_path = gtk_tree_path_copy (s_path);
- if (gtk_tree_path_up (parent_path)) {
- /* This function is misnamed. It expands the actual item
- * specified, not the path to the item specified. I.E. It
- * expands one level too many, thus the get of the parent. */
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ /* gtk_tree_view requires that a row be visible before it can be selected */
+ parent_path = gtk_tree_path_copy (s_path);
+ if (gtk_tree_path_up (parent_path))
+ {
+ /* This function is misnamed. It expands the actual item
+ * specified, not the path to the item specified. I.E. It
+ * expands one level too many, thus the get of the parent. */
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), parent_path);
+ }
+ gtk_tree_path_free(parent_path);
+
+ gtk_tree_selection_select_path (selection, s_path);
+ if (show_last && (element == NULL))
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
+ gtk_tree_path_free(s_path);
}
- gtk_tree_path_free(parent_path);
-
- gtk_tree_selection_select_path (selection, s_path);
- if (show_last && (element == NULL))
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(view), s_path, NULL, FALSE, 0.0, 0.0);
- gtk_tree_path_free(s_path);
- }
}
#ifdef NEEDED
@@ -1064,12 +1095,15 @@
s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
gtk_tree_view_get_cursor (GTK_TREE_VIEW(view), &s_path, NULL);
- if (s_path) {
- account = gnc_tree_view_price_get_account_from_path (view, s_path);
- gtk_tree_path_free(s_path);
- } else {
- account = NULL;
+ if (s_path)
+ {
+ account = gnc_tree_view_price_get_account_from_path (view, s_path);
+ gtk_tree_path_free(s_path);
}
+ else
+ {
+ account = NULL;
+ }
LEAVE("account %p (%s)", account, gnc_price_get_mnemonic (account));
return account;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -52,13 +52,15 @@
#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;
+typedef struct
+{
+ GncTreeView gnc_tree_view;
+ int stamp;
} GncTreeViewPrice;
-typedef struct {
- GncTreeViewClass gnc_tree_view;
+typedef struct
+{
+ GncTreeViewClass gnc_tree_view;
} GncTreeViewPriceClass;
@@ -85,8 +87,8 @@
* @return A pointer to a new price tree view.
*/
GtkTreeView *gnc_tree_view_price_new (QofBook *book,
- const gchar *first_property_name,
- ...);
+ const gchar *first_property_name,
+ ...);
/** @} */
@@ -103,7 +105,7 @@
* @param column_names A list of column names to make visible.
*/
void gnc_tree_view_price_configure_columns (GncTreeViewPrice *price_view,
- GSList *column_names);
+ GSList *column_names);
#ifdef OLD
/** Add a new column to the set of columns in an price tree view.
@@ -118,8 +120,8 @@
* will be displayed in the column.
*/
void gnc_tree_view_price_add_kvp_column (GncTreeViewPrice *view,
- const gchar *column_title,
- const gchar *kvp_key);
+ const gchar *column_title,
+ const gchar *kvp_key);
#endif
/** @} */
@@ -150,11 +152,11 @@
typedef gboolean (*gnc_tree_view_price_cm_filter_func)(gnc_commodity *, gpointer data);
typedef gboolean (*gnc_tree_view_price_pc_filter_func)(GNCPrice *, gpointer data);
void gnc_tree_view_price_set_filter (GncTreeViewPrice *view,
- gnc_tree_view_price_ns_filter_func ns_func,
- gnc_tree_view_price_cm_filter_func cm_func,
- gnc_tree_view_price_pc_filter_func pc_func,
- gpointer data,
- GtkDestroyNotify destroy);
+ gnc_tree_view_price_ns_filter_func ns_func,
+ gnc_tree_view_price_cm_filter_func cm_func,
+ gnc_tree_view_price_pc_filter_func pc_func,
+ gpointer data,
+ GtkDestroyNotify destroy);
/** This function forces the price tree filter to be evaluated. It
* may be necessary to call this function if the initial state of the
@@ -170,7 +172,7 @@
/** @} */
-/** @name Price Tree View Get/Set Functions
+/** @name Price Tree View Get/Set Functions
@{ */
/** This function determines if an price in the price tree view
@@ -184,13 +186,13 @@
* on error.
*/
gint gnc_tree_view_price_count_children (GncTreeViewPrice *view,
- GNCPrice *price);
+ GNCPrice *price);
GNCPrice * gnc_tree_view_price_get_price_from_column (GtkTreeViewColumn *column,
- GtkTreeModel *f_model,
- GtkTreeIter *f_iter);
+ GtkTreeModel *f_model,
+ GtkTreeIter *f_iter);
@@ -205,7 +207,7 @@
* @return The price associated with this path.
*/
GNCPrice * gnc_tree_view_price_get_price_from_path (GncTreeViewPrice *view,
- GtkTreePath *path);
+ GtkTreePath *path);
/** This function returns the price in the price tree view at the
@@ -249,7 +251,7 @@
* @param price A pointer to the price to select.
*/
void gnc_tree_view_price_set_selected_price (GncTreeViewPrice *view,
- GNCPrice *price);
+ GNCPrice *price);
/** This function returns a list of the prices associated with the
@@ -288,8 +290,8 @@
* selected.
*/
void gnc_tree_view_price_set_selected_prices (GncTreeViewPrice *view,
- GList *price_list,
- gboolean show_last);
+ GList *price_list,
+ gboolean show_last);
/** @} */
G_END_DECLS
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-sx-list.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-sx-list.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-sx-list.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -67,41 +67,42 @@
GType
gnc_tree_view_sx_list_get_type(void)
{
- static GType gnc_tree_view_sx_list_type = 0;
+ static GType gnc_tree_view_sx_list_type = 0;
- if (gnc_tree_view_sx_list_type == 0)
+ if (gnc_tree_view_sx_list_type == 0)
{
- static const GTypeInfo our_info = {
- sizeof (GncTreeViewSxListClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_view_sx_list_class_init,
- NULL,
- NULL,
- sizeof (GncTreeViewSxList),
- 0,
- (GInstanceInitFunc) gnc_tree_view_sx_list_init
- };
-
- gnc_tree_view_sx_list_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
- "GncTreeViewSxList",
- &our_info, 0);
- }
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeViewSxListClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_view_sx_list_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeViewSxList),
+ 0,
+ (GInstanceInitFunc) gnc_tree_view_sx_list_init
+ };
- return gnc_tree_view_sx_list_type;
+ gnc_tree_view_sx_list_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
+ "GncTreeViewSxList",
+ &our_info, 0);
+ }
+
+ return gnc_tree_view_sx_list_type;
}
static void
gnc_tree_view_sx_list_class_init(GncTreeViewSxListClass *klass)
{
- GObjectClass *o_class;
+ GObjectClass *o_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- o_class = G_OBJECT_CLASS (klass);
+ o_class = G_OBJECT_CLASS (klass);
o_class->dispose = gnc_tree_view_sx_list_dispose;
- o_class->finalize = gnc_tree_view_sx_list_finalize;
+ o_class->finalize = gnc_tree_view_sx_list_finalize;
g_type_class_add_private(klass, sizeof(GncTreeViewSxListPrivate));
}
@@ -115,38 +116,38 @@
static void
gnc_tree_view_sx_list_dispose(GObject *object)
{
- GncTreeViewSxList *view;
- GncTreeViewSxListPrivate *priv;
+ GncTreeViewSxList *view;
+ GncTreeViewSxListPrivate *priv;
- gnc_leave_return_if_fail (object != NULL);
- gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_SX_LIST (object));
+ 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);
+ view = GNC_TREE_VIEW_SX_LIST (object);
+ priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
- if (priv->disposed)
- return;
- priv->disposed = TRUE;
+ if (priv->disposed)
+ return;
+ priv->disposed = TRUE;
- g_object_unref(G_OBJECT(priv->tree_model));
- priv->tree_model = NULL;
+ g_object_unref(G_OBJECT(priv->tree_model));
+ priv->tree_model = NULL;
- if (G_OBJECT_CLASS (parent_class)->dispose)
- (* G_OBJECT_CLASS (parent_class)->dispose) (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ (* G_OBJECT_CLASS (parent_class)->dispose) (object);
}
static void
gnc_tree_view_sx_list_finalize(GObject *object)
{
- GncTreeViewSxList *view;
+ GncTreeViewSxList *view;
- gnc_leave_return_if_fail(object != NULL);
- gnc_leave_return_if_fail(GNC_IS_TREE_VIEW_SX_LIST (object));
+ 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);
+ view = GNC_TREE_VIEW_SX_LIST(object);
- if (G_OBJECT_CLASS(parent_class)->finalize)
- (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+ if (G_OBJECT_CLASS(parent_class)->finalize)
+ (* G_OBJECT_CLASS(parent_class)->finalize) (object);
}
GtkTreeView*
@@ -160,7 +161,7 @@
g_object_set(view, "name", "sx_list_tree", NULL);
priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
-
+
priv->tree_model = GTK_TREE_MODEL(gnc_sx_list_tree_model_adapter_new(sx_instances));
gnc_tree_view_set_model(view, GTK_TREE_MODEL(priv->tree_model));
@@ -169,9 +170,9 @@
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"),
- /* Translators: This string has a context prefix; the translation
- must only contain the part after the | character. */
+ col = gnc_tree_view_add_toggle_column(view, _("Enabled"),
+ /* Translators: This string has a context prefix; the translation
+ must only contain the part after the | character. */
Q_("Single-character short column-title form of 'Enabled'|E"),
"enabled", SXLTMA_COL_ENABLED,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
@@ -187,7 +188,7 @@
"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,
"2007-01-02",
SXLTMA_COL_NEXT_OCCUR, -1, NULL);
@@ -206,5 +207,5 @@
GncTreeViewSxListPrivate *priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->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(priv->tree_model), &iter)->sx;
}
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -76,10 +76,11 @@
#define GCONF_KEY_VISIBLE "visible"
#define GCONF_KEY_WIDTH "width"
-enum {
- PROP_0,
- PROP_GCONF_SECTION,
- PROP_SHOW_COLUMN_MENU,
+enum
+{
+ PROP_0,
+ PROP_GCONF_SECTION,
+ PROP_SHOW_COLUMN_MENU,
};
/** Static Globals *******************************************************/
@@ -93,46 +94,46 @@
static void gnc_tree_view_finalize (GObject *object);
static void gnc_tree_view_destroy (GtkObject *object);
static void gnc_tree_view_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
static void gnc_tree_view_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
static void gnc_tree_view_remove_gconf(GncTreeView *view);
static gboolean gnc_tree_view_drop_ok_cb (GtkTreeView *view,
- GtkTreeViewColumn *column,
- GtkTreeViewColumn *prev_column,
- GtkTreeViewColumn *next_column,
- gpointer data);
+ GtkTreeViewColumn *column,
+ GtkTreeViewColumn *prev_column,
+ GtkTreeViewColumn *next_column,
+ gpointer data);
static void gtk_tree_view_sort_column_changed_cb (GtkTreeSortable *treesortable,
- GncTreeView *view);
+ GncTreeView *view);
static void gnc_tree_view_build_column_menu (GncTreeView *view);
static void gnc_tree_view_select_column_cb (GtkTreeViewColumn *column,
- GncTreeView *view);
+ GncTreeView *view);
/** Private Data Structure ***********************************************/
typedef struct GncTreeViewPrivate
{
- GtkTooltips *title_tips;
+ GtkTooltips *title_tips;
- /* Spacer column */
- GtkTreeViewColumn *spacer_column;
- GtkTreeViewColumn *selection_column;
+ /* Spacer column */
+ GtkTreeViewColumn *spacer_column;
+ GtkTreeViewColumn *selection_column;
- /* Column selection menu related values */
- GtkTreeViewColumn *column_menu_column;
- GtkWidget *column_menu;
- gboolean show_column_menu;
+ /* Column selection menu related values */
+ GtkTreeViewColumn *column_menu_column;
+ GtkWidget *column_menu;
+ gboolean show_column_menu;
- /* Gconf related values */
- gchar *gconf_section;
- gboolean seen_gconf_visibility;
- gulong columns_changed_cb_id;
- gulong sort_column_changed_cb_id;
- gulong size_allocate_cb_id;
+ /* Gconf related values */
+ gchar *gconf_section;
+ gboolean seen_gconf_visibility;
+ gulong columns_changed_cb_id;
+ gulong sort_column_changed_cb_id;
+ gulong size_allocate_cb_id;
} GncTreeViewPrivate;
#define GNC_TREE_VIEW_GET_PRIVATE(o) \
@@ -157,27 +158,29 @@
GType
gnc_tree_view_get_type (void)
{
- static GType gnc_tree_view_type = 0;
+ static GType gnc_tree_view_type = 0;
- if (gnc_tree_view_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncTreeViewClass),
- NULL,
- NULL,
- (GClassInitFunc) gnc_tree_view_class_init,
- NULL,
- NULL,
- sizeof (GncTreeView),
- 0,
- (GInstanceInitFunc) gnc_tree_view_init
- };
+ if (gnc_tree_view_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncTreeViewClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_tree_view_class_init,
+ NULL,
+ NULL,
+ sizeof (GncTreeView),
+ 0,
+ (GInstanceInitFunc) gnc_tree_view_init
+ };
- gnc_tree_view_type = g_type_register_static (GTK_TYPE_TREE_VIEW,
- GNC_TREE_VIEW_NAME,
- &our_info, 0);
- }
+ gnc_tree_view_type = g_type_register_static (GTK_TYPE_TREE_VIEW,
+ GNC_TREE_VIEW_NAME,
+ &our_info, 0);
+ }
- return gnc_tree_view_type;
+ return gnc_tree_view_type;
}
/** Initialize the class for the new base gnucash tree view. This
@@ -192,39 +195,39 @@
static void
gnc_tree_view_class_init (GncTreeViewClass *klass)
{
- GObjectClass *gobject_class;
- GtkObjectClass *gtkobject_class;
+ GObjectClass *gobject_class;
+ GtkObjectClass *gtkobject_class;
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- gobject_class = G_OBJECT_CLASS (klass);
- gtkobject_class = GTK_OBJECT_CLASS (klass);
+ gobject_class = G_OBJECT_CLASS (klass);
+ gtkobject_class = GTK_OBJECT_CLASS (klass);
- gobject_class->set_property = gnc_tree_view_set_property;
- gobject_class->get_property = gnc_tree_view_get_property;
+ gobject_class->set_property = gnc_tree_view_set_property;
+ gobject_class->get_property = gnc_tree_view_get_property;
- g_type_class_add_private(klass, sizeof(GncTreeViewPrivate));
+ g_type_class_add_private(klass, sizeof(GncTreeViewPrivate));
- g_object_class_install_property (gobject_class,
- PROP_GCONF_SECTION,
- g_param_spec_string ("gconf-section",
- "Gconf Section",
- "The Gconf section to use for storing settings",
- NULL,
- G_PARAM_READWRITE));
- g_object_class_install_property (gobject_class,
- PROP_SHOW_COLUMN_MENU,
- g_param_spec_boolean ("show-column-menu",
- "Show Column Menu",
- "Show the column menu so user can change what columns are visible.",
- FALSE,
- G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+ PROP_GCONF_SECTION,
+ g_param_spec_string ("gconf-section",
+ "Gconf Section",
+ "The Gconf section to use for storing settings",
+ NULL,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+ PROP_SHOW_COLUMN_MENU,
+ g_param_spec_boolean ("show-column-menu",
+ "Show Column Menu",
+ "Show the column menu so user can change what columns are visible.",
+ FALSE,
+ G_PARAM_READWRITE));
- /* GObject signals */
- gobject_class->finalize = gnc_tree_view_finalize;
+ /* GObject signals */
+ gobject_class->finalize = gnc_tree_view_finalize;
- /* GtkObject signals */
- gtkobject_class->destroy = gnc_tree_view_destroy;
+ /* GtkObject signals */
+ gtkobject_class->destroy = gnc_tree_view_destroy;
}
/** Initialize a new instance of a base gnucash tree view. This
@@ -239,59 +242,59 @@
static void
gnc_tree_view_init (GncTreeView *view, GncTreeViewClass *klass)
{
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column;
- GtkWidget *icon;
- GtkRequisition requisition;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column;
+ GtkWidget *icon;
+ GtkRequisition requisition;
- gnc_gobject_tracking_remember(G_OBJECT(view), G_OBJECT_CLASS(klass));
+ gnc_gobject_tracking_remember(G_OBJECT(view), G_OBJECT_CLASS(klass));
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- priv->column_menu = NULL;
- priv->show_column_menu = FALSE;
- priv->gconf_section = NULL;
- priv->seen_gconf_visibility = FALSE;
- priv->columns_changed_cb_id = 0;
- priv->sort_column_changed_cb_id = 0;
- priv->size_allocate_cb_id = 0;
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ priv->column_menu = NULL;
+ priv->show_column_menu = FALSE;
+ priv->gconf_section = NULL;
+ priv->seen_gconf_visibility = FALSE;
+ priv->columns_changed_cb_id = 0;
+ priv->sort_column_changed_cb_id = 0;
+ priv->size_allocate_cb_id = 0;
- /* Ask gtk to help the user keep track of rows. */
- g_object_set(view, "rules-hint", TRUE, NULL);
+ /* Ask gtk to help the user keep track of rows. */
+ g_object_set(view, "rules-hint", TRUE, NULL);
- /* Handle column drag and drop */
- gtk_tree_view_set_column_drag_function(GTK_TREE_VIEW(view),
- gnc_tree_view_drop_ok_cb, NULL, NULL);
+ /* Handle column drag and drop */
+ gtk_tree_view_set_column_drag_function(GTK_TREE_VIEW(view),
+ gnc_tree_view_drop_ok_cb, NULL, NULL);
- /* Create the next to last column which is always present, visible,
- * and empty. Override the defaults and make this a one pixel wide
- * column, but have it take up any extra space in the window. */
- column = gnc_tree_view_add_text_column (view, NULL, NULL, NULL, NULL,
- -1, -1, NULL);
- g_object_set(G_OBJECT(column),
- "fixed-width", 1,
- "expand", TRUE,
- (gchar *)NULL);
- priv->spacer_column = column;
+ /* Create the next to last column which is always present, visible,
+ * and empty. Override the defaults and make this a one pixel wide
+ * column, but have it take up any extra space in the window. */
+ column = gnc_tree_view_add_text_column (view, NULL, NULL, NULL, NULL,
+ -1, -1, NULL);
+ g_object_set(G_OBJECT(column),
+ "fixed-width", 1,
+ "expand", TRUE,
+ (gchar *)NULL);
+ priv->spacer_column = column;
- /* Create the last column which contains the column selection
- * widget. gnc_tree_view_add_text_column will do most of the
- * work. */
- icon = gtk_image_new_from_stock(GTK_STOCK_GO_DOWN,
- GTK_ICON_SIZE_SMALL_TOOLBAR);
- gtk_widget_show(icon);
- gtk_widget_size_request(icon, &requisition);
- column = gnc_tree_view_add_text_column (view, NULL, NULL, NULL, NULL,
- -1, -1, NULL);
- g_object_set(G_OBJECT(column),
- "clickable", TRUE,
- "widget", icon,
- "fixed-width", requisition.width + 10,
- (gchar *)NULL);
- priv->selection_column = column;
- g_signal_connect(G_OBJECT(column), "clicked",
- G_CALLBACK (gnc_tree_view_select_column_cb),
- view);
- priv->column_menu_column = column;
+ /* Create the last column which contains the column selection
+ * widget. gnc_tree_view_add_text_column will do most of the
+ * work. */
+ icon = gtk_image_new_from_stock(GTK_STOCK_GO_DOWN,
+ GTK_ICON_SIZE_SMALL_TOOLBAR);
+ gtk_widget_show(icon);
+ gtk_widget_size_request(icon, &requisition);
+ column = gnc_tree_view_add_text_column (view, NULL, NULL, NULL, NULL,
+ -1, -1, NULL);
+ g_object_set(G_OBJECT(column),
+ "clickable", TRUE,
+ "widget", icon,
+ "fixed-width", requisition.width + 10,
+ (gchar *)NULL);
+ priv->selection_column = column;
+ g_signal_connect(G_OBJECT(column), "clicked",
+ G_CALLBACK (gnc_tree_view_select_column_cb),
+ view);
+ priv->column_menu_column = column;
}
/** Finalize the GncTreeView object. This function is called from the
@@ -307,21 +310,21 @@
static void
gnc_tree_view_finalize (GObject *object)
{
- GncTreeView *view;
- GncTreeViewPrivate *priv;
+ GncTreeView *view;
+ GncTreeViewPrivate *priv;
- ENTER("view %p", object);
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_VIEW (object));
+ ENTER("view %p", object);
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_VIEW (object));
- gnc_gobject_tracking_forget(object);
+ gnc_gobject_tracking_forget(object);
- view = GNC_TREE_VIEW (object);
- priv = GNC_TREE_VIEW_GET_PRIVATE (view);
+ view = GNC_TREE_VIEW (object);
+ priv = GNC_TREE_VIEW_GET_PRIVATE (view);
- if (G_OBJECT_CLASS (parent_class)->finalize)
- G_OBJECT_CLASS (parent_class)->finalize (object);
- LEAVE(" ");
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ LEAVE(" ");
}
/** Destroy the GncTreeView object. This function is called (possibly
@@ -338,28 +341,29 @@
static void
gnc_tree_view_destroy (GtkObject *object)
{
- GncTreeView *view;
- GncTreeViewPrivate *priv;
+ GncTreeView *view;
+ GncTreeViewPrivate *priv;
- ENTER("view %p", object);
- g_return_if_fail (object != NULL);
- g_return_if_fail (GNC_IS_TREE_VIEW (object));
+ ENTER("view %p", object);
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GNC_IS_TREE_VIEW (object));
- view = GNC_TREE_VIEW (object);
+ view = GNC_TREE_VIEW (object);
- gnc_tree_view_remove_gconf(view);
+ gnc_tree_view_remove_gconf(view);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (priv->column_menu) {
- DEBUG("removing column selection menu");
- gtk_widget_unref(priv->column_menu);
- priv->column_menu = NULL;
- }
+ if (priv->column_menu)
+ {
+ DEBUG("removing column selection menu");
+ gtk_widget_unref(priv->column_menu);
+ priv->column_menu = NULL;
+ }
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- GTK_OBJECT_CLASS (parent_class)->destroy (object);
- LEAVE(" ");
+ if (GTK_OBJECT_CLASS (parent_class)->destroy)
+ GTK_OBJECT_CLASS (parent_class)->destroy (object);
+ LEAVE(" ");
}
/** @} */
@@ -380,25 +384,25 @@
*/
static void
gnc_tree_view_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- GncTreeView *view = GNC_TREE_VIEW (object);
- GncTreeViewPrivate *priv;
+ GncTreeView *view = GNC_TREE_VIEW (object);
+ GncTreeViewPrivate *priv;
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- switch (prop_id)
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ switch (prop_id)
{
case PROP_GCONF_SECTION:
- g_value_set_string (value, priv->gconf_section);
- break;
+ g_value_set_string (value, priv->gconf_section);
+ break;
case PROP_SHOW_COLUMN_MENU:
- g_value_set_boolean (value, priv->show_column_menu);
- break;
+ g_value_set_boolean (value, priv->show_column_menu);
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
}
@@ -413,23 +417,23 @@
*/
static void
gnc_tree_view_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- GncTreeView *view = GNC_TREE_VIEW (object);
+ GncTreeView *view = GNC_TREE_VIEW (object);
- switch (prop_id)
+ switch (prop_id)
{
case PROP_GCONF_SECTION:
- gnc_tree_view_set_gconf_section (view, g_value_get_string (value));
- break;
+ gnc_tree_view_set_gconf_section (view, g_value_get_string (value));
+ break;
case PROP_SHOW_COLUMN_MENU:
- gnc_tree_view_set_show_column_menu (view, g_value_get_boolean (value));
- break;
+ gnc_tree_view_set_show_column_menu (view, g_value_get_boolean (value));
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
}
@@ -459,26 +463,27 @@
*/
static GtkTreeViewColumn *
view_column_find_by_model_id (GncTreeView *view,
- const gint wanted)
+ const gint wanted)
{
- GtkTreeViewColumn *column, *found = NULL;
- GList *column_list, *tmp;
- gint id;
+ GtkTreeViewColumn *column, *found = NULL;
+ GList *column_list, *tmp;
+ gint id;
- // ENTER("view %p, name %s", view, name);
- column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- for (tmp = column_list; tmp; tmp = g_list_next(tmp)) {
- column = tmp->data;
- id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(column), MODEL_COLUMN));
- if (id != wanted)
- continue;
- found = column;
- break;
- }
- g_list_free(column_list);
+ // ENTER("view %p, name %s", view, name);
+ column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ for (tmp = column_list; tmp; tmp = g_list_next(tmp))
+ {
+ column = tmp->data;
+ id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(column), MODEL_COLUMN));
+ if (id != wanted)
+ continue;
+ found = column;
+ break;
+ }
+ g_list_free(column_list);
- // LEAVE("column %p", found);
- return found;
+ // LEAVE("column %p", found);
+ return found;
}
/** Find a tree column given the "pref name" used with gconf. This
@@ -495,24 +500,25 @@
gnc_tree_view_find_column_by_name (GncTreeView *view,
const gchar *wanted)
{
- GtkTreeViewColumn *column, *found = NULL;
- GList *column_list, *tmp;
- const gchar *name;
+ GtkTreeViewColumn *column, *found = NULL;
+ GList *column_list, *tmp;
+ const gchar *name;
- // ENTER("view %p, wanted %s", view, wanted);
- column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- for (tmp = column_list; tmp; tmp = g_list_next(tmp)) {
- column = tmp->data;
- name = g_object_get_data(G_OBJECT(column), PREF_NAME);
- if (!name || (strcmp(name, wanted) != 0))
- continue;
- found = column;
- break;
- }
- g_list_free(column_list);
+ // ENTER("view %p, wanted %s", view, wanted);
+ column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ for (tmp = column_list; tmp; tmp = g_list_next(tmp))
+ {
+ column = tmp->data;
+ name = g_object_get_data(G_OBJECT(column), PREF_NAME);
+ if (!name || (strcmp(name, wanted) != 0))
+ continue;
+ found = column;
+ break;
+ }
+ g_list_free(column_list);
- // LEAVE("column %p", found);
- return found;
+ // LEAVE("column %p", found);
+ return found;
}
/** @} */
@@ -551,35 +557,35 @@
*/
static gboolean
gnc_tree_view_drop_ok_cb (GtkTreeView *view,
- GtkTreeViewColumn *column,
- GtkTreeViewColumn *prev_column,
- GtkTreeViewColumn *next_column,
- gpointer data)
+ GtkTreeViewColumn *column,
+ GtkTreeViewColumn *prev_column,
+ GtkTreeViewColumn *next_column,
+ gpointer data)
{
- const gchar *pref_name;
+ const gchar *pref_name;
- /* Should we allow a drop at the left side of the tree view before
- * the widget to open a new display level? I can think of cases
- * where the user might want to do this with a checkbox column. */
- if (prev_column == NULL)
- return TRUE;
+ /* Should we allow a drop at the left side of the tree view before
+ * the widget to open a new display level? I can think of cases
+ * where the user might want to do this with a checkbox column. */
+ if (prev_column == NULL)
+ return TRUE;
- /* Do not allow a drop at the right side of the tree view after the
- * column selection widget. */
- if (next_column == NULL)
- return FALSE;
+ /* Do not allow a drop at the right side of the tree view after the
+ * column selection widget. */
+ if (next_column == NULL)
+ return FALSE;
- /* Columns without pref names are considered fixed at the right hand
- * side of the view. At the time of this writing, the only two are
- * the column where the "column selection widget" is stored, and the
- * "padding" column to the left of that where extra view space ends
- * up. */
- pref_name = g_object_get_data(G_OBJECT(prev_column), PREF_NAME);
- if (!pref_name)
- return FALSE;
+ /* Columns without pref names are considered fixed at the right hand
+ * side of the view. At the time of this writing, the only two are
+ * the column where the "column selection widget" is stored, and the
+ * "padding" column to the left of that where extra view space ends
+ * up. */
+ pref_name = g_object_get_data(G_OBJECT(prev_column), PREF_NAME);
+ if (!pref_name)
+ return FALSE;
- /* Everything else is allowed. */
- return TRUE;
+ /* Everything else is allowed. */
+ return TRUE;
}
/** This function is called when the sort order has changed on the
@@ -595,43 +601,45 @@
*/
static void
gtk_tree_view_sort_column_changed_cb (GtkTreeSortable *treesortable,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column;
- const gchar *gconf_section;
- gchar *column_pref_name;
- GtkSortType order;
- gint id;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column;
+ const gchar *gconf_section;
+ gchar *column_pref_name;
+ GtkSortType order;
+ gint id;
- g_return_if_fail(GTK_IS_TREE_SORTABLE(treesortable));
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GTK_IS_TREE_SORTABLE(treesortable));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER(" ");
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (!priv->gconf_section) {
- LEAVE("no gconf section");
- return;
- }
+ ENTER(" ");
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (!priv->gconf_section)
+ {
+ LEAVE("no gconf section");
+ return;
+ }
- /* Set defaults, then extract data from the model */
- if (!gtk_tree_sortable_get_sort_column_id(treesortable, &id, &order)) {
- order = GTK_SORT_ASCENDING;
- id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
- }
- column = view_column_find_by_model_id (view, id);
- column_pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
+ /* Set defaults, then extract data from the model */
+ if (!gtk_tree_sortable_get_sort_column_id(treesortable, &id, &order))
+ {
+ order = GTK_SORT_ASCENDING;
+ id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
+ }
+ column = view_column_find_by_model_id (view, id);
+ column_pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
- if (!column_pref_name)
- column_pref_name = "none";
+ if (!column_pref_name)
+ column_pref_name = "none";
- /* Store the values in gconf */
- gconf_section = priv->gconf_section;
- gnc_gconf_set_string(gconf_section, GCONF_KEY_SORT_COLUMN,
- column_pref_name, NULL);
- gnc_gconf_set_string(gconf_section, GCONF_KEY_SORT_ORDER,
- gnc_enum_to_nick(GTK_TYPE_SORT_TYPE, order), NULL);
- LEAVE(" ");
+ /* Store the values in gconf */
+ gconf_section = priv->gconf_section;
+ gnc_gconf_set_string(gconf_section, GCONF_KEY_SORT_COLUMN,
+ column_pref_name, NULL);
+ gnc_gconf_set_string(gconf_section, GCONF_KEY_SORT_ORDER,
+ gnc_enum_to_nick(GTK_TYPE_SORT_TYPE, order), NULL);
+ LEAVE(" ");
}
/** This function is called when the column order has changed in the
@@ -649,29 +657,30 @@
*/
static void
gtk_tree_view_columns_changed_cb (GncTreeView *view,
- gpointer data)
+ gpointer data)
{
- GncTreeViewPrivate *priv;
- GList *column_list, *tmp;
- GSList *column_names = NULL;
- gchar *name;
+ GncTreeViewPrivate *priv;
+ GList *column_list, *tmp;
+ GSList *column_names = NULL;
+ gchar *name;
- //ENTER("view %p, data %p", view, data);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- for (tmp = column_list; tmp; tmp = g_list_next(tmp)) {
- name = g_object_get_data(tmp->data, PREF_NAME);
- if (!name)
- continue;
- column_names = g_slist_append(column_names, name);
- //DEBUG("%s", name);
- }
- g_list_free(column_list);
+ //ENTER("view %p, data %p", view, data);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ for (tmp = column_list; tmp; tmp = g_list_next(tmp))
+ {
+ name = g_object_get_data(tmp->data, PREF_NAME);
+ if (!name)
+ continue;
+ column_names = g_slist_append(column_names, name);
+ //DEBUG("%s", name);
+ }
+ g_list_free(column_list);
- gnc_gconf_set_list(priv->gconf_section, GCONF_KEY_COLUMN_ORDER,
- GCONF_VALUE_STRING, column_names, NULL);
- g_slist_free(column_names);
- //LEAVE(" ");
+ gnc_gconf_set_list(priv->gconf_section, GCONF_KEY_COLUMN_ORDER,
+ GCONF_VALUE_STRING, column_names, NULL);
+ g_slist_free(column_names);
+ //LEAVE(" ");
}
/** This is the helper function for gtk_tree_view_size_allocate_cb().
@@ -690,33 +699,34 @@
*/
static void
gtk_tree_view_size_allocate_helper (GtkTreeViewColumn *column,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- const gchar *column_pref_name;
- gint new_width, current_width;
- gchar *key;
+ GncTreeViewPrivate *priv;
+ const gchar *column_pref_name;
+ gint new_width, current_width;
+ gchar *key;
- g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- /* Any updates to be made? */
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- column_pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
- if (!column_pref_name)
- return;
- new_width = gtk_tree_view_column_get_width (column);
- if (!new_width)
- return;
+ /* Any updates to be made? */
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ column_pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
+ if (!column_pref_name)
+ return;
+ new_width = gtk_tree_view_column_get_width (column);
+ if (!new_width)
+ return;
- /* Do it */
- key = g_strdup_printf("%s_%s", column_pref_name, GCONF_KEY_WIDTH);
- current_width = gnc_gconf_get_int(priv->gconf_section, key, NULL);
- if (new_width != current_width) {
- gnc_gconf_set_int(priv->gconf_section, key, new_width, NULL);
- DEBUG("set %s width to %d", column_pref_name, new_width);
- }
- g_free(key);
+ /* Do it */
+ key = g_strdup_printf("%s_%s", column_pref_name, GCONF_KEY_WIDTH);
+ current_width = gnc_gconf_get_int(priv->gconf_section, key, NULL);
+ if (new_width != current_width)
+ {
+ gnc_gconf_set_int(priv->gconf_section, key, new_width, NULL);
+ DEBUG("set %s width to %d", column_pref_name, new_width);
+ }
+ g_free(key);
}
/** This function is called when the tree size has been reallocated.
@@ -741,18 +751,18 @@
*/
static void
gtk_tree_view_size_allocate_cb (GtkWidget *widget,
- GtkAllocation *allocation,
- gpointer data)
+ GtkAllocation *allocation,
+ gpointer data)
{
- GncTreeView *view;
- GList *column_list;
+ GncTreeView *view;
+ GList *column_list;
- g_return_if_fail(GNC_IS_TREE_VIEW(widget));
+ g_return_if_fail(GNC_IS_TREE_VIEW(widget));
- view = GNC_TREE_VIEW(widget);
- column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- g_list_foreach(column_list, (GFunc)gtk_tree_view_size_allocate_helper, view);
- g_list_free(column_list);
+ view = GNC_TREE_VIEW(widget);
+ column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ g_list_foreach(column_list, (GFunc)gtk_tree_view_size_allocate_helper, view);
+ g_list_free(column_list);
}
/** @} */
@@ -788,50 +798,55 @@
*/
static gboolean
gnc_tree_view_column_visible (GncTreeView *view,
- GtkTreeViewColumn *column,
- const gchar *pref_name)
+ GtkTreeViewColumn *column,
+ const gchar *pref_name)
{
- GncTreeViewPrivate *priv;
- gboolean visible;
- gchar *key;
+ GncTreeViewPrivate *priv;
+ gboolean visible;
+ gchar *key;
- ENTER("column %p, name %s", column, pref_name ? pref_name : "(null)");
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (column) {
- if (g_object_get_data(G_OBJECT(column), ALWAYS_VISIBLE)) {
- LEAVE("1, first column");
- return TRUE;
+ ENTER("column %p, name %s", column, pref_name ? pref_name : "(null)");
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (column)
+ {
+ if (g_object_get_data(G_OBJECT(column), ALWAYS_VISIBLE))
+ {
+ LEAVE("1, first column");
+ return TRUE;
+ }
+ pref_name = (gchar *)g_object_get_data(G_OBJECT(column), PREF_NAME);
+ DEBUG("pref_name is %s", pref_name ? pref_name : "(null)");
}
- pref_name = (gchar *)g_object_get_data(G_OBJECT(column), PREF_NAME);
- DEBUG("pref_name is %s", pref_name ? pref_name : "(null)");
- }
- if (!pref_name) {
- LEAVE("1, no pref name");
- return TRUE;
- }
+ if (!pref_name)
+ {
+ LEAVE("1, no pref name");
+ return TRUE;
+ }
- /* Using gconf? */
- if (priv->gconf_section) {
- if (priv->seen_gconf_visibility) {
- key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_VISIBLE);
- visible = gnc_gconf_get_bool(priv->gconf_section, key, NULL);
- g_free(key);
- LEAVE("%d, gconf visibility", visible);
- return visible;
+ /* Using gconf? */
+ if (priv->gconf_section)
+ {
+ if (priv->seen_gconf_visibility)
+ {
+ key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_VISIBLE);
+ visible = gnc_gconf_get_bool(priv->gconf_section, key, NULL);
+ g_free(key);
+ LEAVE("%d, gconf visibility", visible);
+ return visible;
+ }
+
+ 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 = column ?
- (g_object_get_data(G_OBJECT(column), DEFAULT_VISIBLE) != NULL) : FALSE;
- LEAVE("%d, gconf but using defaults", visible);
+ (g_object_get_data(G_OBJECT(column), DEFAULT_VISIBLE) != NULL) : FALSE;
+ LEAVE("defaults says %d", visible);
return visible;
- }
-
- /* Check the default columns list */
- visible = column ?
- (g_object_get_data(G_OBJECT(column), DEFAULT_VISIBLE) != NULL) : FALSE;
- LEAVE("defaults says %d", visible);
- return visible;
}
/** This function updates the visibility of a single column. It
@@ -846,32 +861,34 @@
*/
static void
gnc_tree_view_update_visibility (GtkTreeViewColumn *column,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- gchar *name, *key;
- gboolean visible;
+ GncTreeViewPrivate *priv;
+ gchar *name, *key;
+ gboolean visible;
- g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER(" ");
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- visible = gnc_tree_view_column_visible(view, column, NULL);
- gtk_tree_view_column_set_visible(column, visible);
- if (priv->gconf_section) {
- name = (gchar *)g_object_get_data(G_OBJECT(column), PREF_NAME);
- if (!name) {
- LEAVE("no pref name");
- return;
+ ENTER(" ");
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ visible = gnc_tree_view_column_visible(view, column, NULL);
+ gtk_tree_view_column_set_visible(column, visible);
+ if (priv->gconf_section)
+ {
+ name = (gchar *)g_object_get_data(G_OBJECT(column), PREF_NAME);
+ if (!name)
+ {
+ LEAVE("no pref name");
+ return;
+ }
+ key = g_strdup_printf("%s_%s", name, GCONF_KEY_VISIBLE);
+ gnc_gconf_set_bool(priv->gconf_section, key, visible, NULL);
+ g_free(key);
+ LEAVE("made %s, set gconf key", visible ? "visible" : "invisible");
+ return;
}
- key = g_strdup_printf("%s_%s", name, GCONF_KEY_VISIBLE);
- gnc_gconf_set_bool(priv->gconf_section, key, visible, NULL);
- g_free(key);
- LEAVE("made %s, set gconf key", visible ? "visible" : "invisible");
- return;
- }
- LEAVE("made %s", visible ? "visible" : "invisible");
+ LEAVE("made %s", visible ? "visible" : "invisible");
}
/** This function is called via the gconf notification callback when
@@ -890,26 +907,26 @@
*/
static void
gnc_tree_view_set_sort_order (GncTreeView *view,
- const gchar *name)
+ const gchar *name)
{
- GncTreeViewPrivate *priv;
- GtkTreeModel *s_model;
- GtkSortType order;
- gint current;
+ GncTreeViewPrivate *priv;
+ GtkTreeModel *s_model;
+ GtkSortType order;
+ gint current;
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- if (!s_model)
- return;
- order = gnc_enum_from_nick(GTK_TYPE_SORT_TYPE, name, GTK_SORT_ASCENDING);
- if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
- ¤t, NULL))
- current = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
- g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
- current, order);
- g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
- DEBUG("sort_order set to %s", gnc_enum_to_nick(GTK_TYPE_SORT_TYPE, order));
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ if (!s_model)
+ return;
+ order = gnc_enum_from_nick(GTK_TYPE_SORT_TYPE, name, GTK_SORT_ASCENDING);
+ if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ ¤t, NULL))
+ current = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
+ g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ current, order);
+ g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
+ DEBUG("sort_order set to %s", gnc_enum_to_nick(GTK_TYPE_SORT_TYPE, order));
}
/** This function is called via the gconf notification callback when
@@ -928,42 +945,43 @@
*/
static void
gnc_tree_view_set_sort_column (GncTreeView *view,
- const gchar *name)
+ const gchar *name)
{
- GncTreeViewPrivate *priv;
- GtkTreeModel *s_model;
- GtkTreeViewColumn *column;
- GtkSortType order;
- gint model_column, current;
+ GncTreeViewPrivate *priv;
+ GtkTreeModel *s_model;
+ GtkTreeViewColumn *column;
+ GtkSortType order;
+ gint model_column, current;
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- if (!s_model)
- return;
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- column = gnc_tree_view_find_column_by_name(view, name);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ if (!s_model)
+ return;
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ column = gnc_tree_view_find_column_by_name(view, name);
- if (!column) {
+ if (!column)
+ {
+ g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
+ gtk_tree_sortable_set_sort_column_id(
+ GTK_TREE_SORTABLE(s_model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
+ GTK_SORT_ASCENDING);
+ g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
+ return;
+ }
+
+ model_column =
+ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(column), MODEL_COLUMN));
+ if (model_column == GNC_TREE_VIEW_COLUMN_DATA_NONE)
+ return;
+
+ if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ ¤t, &order))
+ order = GTK_SORT_ASCENDING;
g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
- gtk_tree_sortable_set_sort_column_id(
- GTK_TREE_SORTABLE(s_model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
- GTK_SORT_ASCENDING);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
+ model_column, order);
g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
- return;
- }
-
- model_column =
- GPOINTER_TO_INT(g_object_get_data(G_OBJECT(column), MODEL_COLUMN));
- if (model_column == GNC_TREE_VIEW_COLUMN_DATA_NONE)
- return;
-
- if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
- ¤t, &order))
- order = GTK_SORT_ASCENDING;
- g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
- model_column, order);
- g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
- DEBUG("sort column set to %s", name);
+ DEBUG("sort column set to %s", name);
}
/** This function is called via the gconf notification callback when
@@ -981,38 +999,40 @@
*/
static void
gnc_tree_view_set_column_order (GncTreeView *view,
- const GSList *column_names)
+ const GSList *column_names)
{
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column, *prev;
- const gchar *name;
- const GSList *tmp;
- GSList *columns;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column, *prev;
+ const gchar *name;
+ const GSList *tmp;
+ GSList *columns;
- /* First, convert from names to pointers */
- ENTER(" ");
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- columns = NULL;
- for (tmp = column_names; tmp; tmp = g_slist_next(tmp)) {
- name = gconf_value_get_string(tmp->data);
- column = gnc_tree_view_find_column_by_name(view, name);
- if (!column)
- continue;
- columns = g_slist_append(columns, column);
- }
+ /* First, convert from names to pointers */
+ ENTER(" ");
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ columns = NULL;
+ for (tmp = column_names; tmp; tmp = g_slist_next(tmp))
+ {
+ name = gconf_value_get_string(tmp->data);
+ column = gnc_tree_view_find_column_by_name(view, name);
+ if (!column)
+ continue;
+ columns = g_slist_append(columns, column);
+ }
- /* Then reorder the columns */
- g_signal_handler_block(view, priv->columns_changed_cb_id);
- for (prev = NULL, tmp = columns; tmp; tmp = g_slist_next(tmp)) {
- column = tmp->data;
- gtk_tree_view_move_column_after(GTK_TREE_VIEW(view), column, prev);
- prev = column;
- }
- g_signal_handler_unblock(view, priv->columns_changed_cb_id);
+ /* Then reorder the columns */
+ g_signal_handler_block(view, priv->columns_changed_cb_id);
+ for (prev = NULL, tmp = columns; tmp; tmp = g_slist_next(tmp))
+ {
+ column = tmp->data;
+ gtk_tree_view_move_column_after(GTK_TREE_VIEW(view), column, prev);
+ prev = column;
+ }
+ g_signal_handler_unblock(view, priv->columns_changed_cb_id);
- /* Clean up */
- g_slist_free(columns);
- LEAVE("column order set");
+ /* Clean up */
+ g_slist_free(columns);
+ LEAVE("column order set");
}
/** This function is called via the gconf notification callback when
@@ -1036,73 +1056,89 @@
*/
static void
gnc_tree_view_gconf_changed (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- gpointer data)
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer data)
{
- GncTreeView *view;
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column;
- GConfValue *value;
- const gchar *key, *local;
- gchar *column_name, *type_name;
- gboolean known;
- gint width;
+ GncTreeView *view;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column;
+ GConfValue *value;
+ const gchar *key, *local;
+ gchar *column_name, *type_name;
+ gboolean known;
+ gint width;
- g_return_if_fail(GNC_IS_TREE_VIEW(data));
+ g_return_if_fail(GNC_IS_TREE_VIEW(data));
- ENTER(" ");
- view = GNC_TREE_VIEW(data);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- key = gconf_entry_get_key(entry);
- value = gconf_entry_get_value(entry);
- if (!value) {
- /* Values can be unset */
- LEAVE("Unset valued for %s", key);
- return;
- }
+ ENTER(" ");
+ view = GNC_TREE_VIEW(data);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ key = gconf_entry_get_key(entry);
+ value = gconf_entry_get_value(entry);
+ if (!value)
+ {
+ /* Values can be unset */
+ LEAVE("Unset valued for %s", key);
+ return;
+ }
- DEBUG("Key %s, value %p", key, value);
- local = strrchr(key, '/')+1;
- if (strcmp(local, GCONF_KEY_SORT_COLUMN) == 0) {
- gnc_tree_view_set_sort_column(view, gconf_value_get_string(value));
- } else if (strcmp(local, GCONF_KEY_SORT_ORDER) == 0) {
- gnc_tree_view_set_sort_order(view, gconf_value_get_string(value));
- } else if (strcmp(local, GCONF_KEY_COLUMN_ORDER) == 0) {
- gnc_tree_view_set_column_order(view, gconf_value_get_list(value));
- } else {
- /* Make a copy of the local part of the key so it can be split
- * into column name and key type */
- known = FALSE;
- column_name = strdup(local);
- type_name = strrchr(column_name, '_');
- *type_name++ = '\0';
+ DEBUG("Key %s, value %p", key, value);
+ local = strrchr(key, '/') + 1;
+ if (strcmp(local, GCONF_KEY_SORT_COLUMN) == 0)
+ {
+ gnc_tree_view_set_sort_column(view, gconf_value_get_string(value));
+ }
+ else if (strcmp(local, GCONF_KEY_SORT_ORDER) == 0)
+ {
+ gnc_tree_view_set_sort_order(view, gconf_value_get_string(value));
+ }
+ else if (strcmp(local, GCONF_KEY_COLUMN_ORDER) == 0)
+ {
+ gnc_tree_view_set_column_order(view, gconf_value_get_list(value));
+ }
+ else
+ {
+ /* Make a copy of the local part of the key so it can be split
+ * into column name and key type */
+ known = FALSE;
+ column_name = strdup(local);
+ type_name = strrchr(column_name, '_');
+ *type_name++ = '\0';
- if (strcmp(type_name, GCONF_KEY_VISIBLE) == 0) {
- priv->seen_gconf_visibility = TRUE;
- 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)) {
- gtk_tree_view_column_set_visible(column, gconf_value_get_bool(value));
- }
- }
- } else if (strcmp(type_name, GCONF_KEY_WIDTH) == 0) {
- width = gconf_value_get_int(value);
- 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))) {
- gtk_tree_view_column_set_fixed_width(column, width);
- }
- }
+ if (strcmp(type_name, GCONF_KEY_VISIBLE) == 0)
+ {
+ priv->seen_gconf_visibility = TRUE;
+ 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))
+ {
+ gtk_tree_view_column_set_visible(column, gconf_value_get_bool(value));
+ }
+ }
+ }
+ else if (strcmp(type_name, GCONF_KEY_WIDTH) == 0)
+ {
+ width = gconf_value_get_int(value);
+ 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)))
+ {
+ gtk_tree_view_column_set_fixed_width(column, width);
+ }
+ }
+ }
+ if (!known)
+ {
+ DEBUG("Ignored key %s", key);
+ }
+ g_free(column_name);
}
- if (!known) {
- DEBUG("Ignored key %s", key);
- }
- g_free(column_name);
- }
- LEAVE(" ");
+ LEAVE(" ");
}
/** This function is called force synchronization between the gconf
@@ -1119,34 +1155,36 @@
static void
gnc_tree_view_gconf_force_update (GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GSList *all_entries, *etmp;
- GList *columns;
+ GncTreeViewPrivate *priv;
+ GSList *all_entries, *etmp;
+ GList *columns;
- ENTER("view %p", view);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- all_entries = gnc_gconf_client_all_entries(priv->gconf_section);
+ ENTER("view %p", view);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ all_entries = gnc_gconf_client_all_entries(priv->gconf_section);
- /* Set a flag indicating that the gconf data section may be empty.
- * It will be checked later on and appropriate action taken if its
- * still set. */
- priv->seen_gconf_visibility = FALSE;
+ /* Set a flag indicating that the gconf data section may be empty.
+ * It will be checked later on and appropriate action taken if its
+ * still set. */
+ priv->seen_gconf_visibility = FALSE;
- /* Pull all the entries from gconf */
- for (etmp = all_entries; etmp; etmp = g_slist_next(etmp)) {
- gnc_tree_view_gconf_changed(NULL, 0, etmp->data, view);
- gconf_entry_free(etmp->data);
- }
- g_slist_free(all_entries);
+ /* Pull all the entries from gconf */
+ for (etmp = all_entries; etmp; etmp = g_slist_next(etmp))
+ {
+ gnc_tree_view_gconf_changed(NULL, 0, etmp->data, view);
+ gconf_entry_free(etmp->data);
+ }
+ g_slist_free(all_entries);
- /* No visibilities seen yet. Write out any columns we may have */
- if (!priv->seen_gconf_visibility) {
- 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);
- }
+ /* No visibilities seen yet. Write out any columns we may have */
+ if (!priv->seen_gconf_visibility)
+ {
+ 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);
+ }
- LEAVE(" ");
+ LEAVE(" ");
}
/** This internal function is called to disconnect a tree view from a
@@ -1163,48 +1201,53 @@
static void
gnc_tree_view_remove_gconf(GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GtkTreeModel *model;
+ GncTreeViewPrivate *priv;
+ GtkTreeModel *model;
- ENTER(" ");
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (!priv->gconf_section) {
- LEAVE("no gconf section");
- return;
- }
+ ENTER(" ");
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (!priv->gconf_section)
+ {
+ LEAVE("no gconf section");
+ return;
+ }
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (priv->sort_column_changed_cb_id) {
- model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
- if (model) {
- DEBUG("removing sort_column_changed callback (# %ld)",
- priv->sort_column_changed_cb_id);
- g_signal_handler_disconnect(GTK_TREE_SORTABLE(model),
- priv->sort_column_changed_cb_id);
- priv->sort_column_changed_cb_id = 0;
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (priv->sort_column_changed_cb_id)
+ {
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
+ if (model)
+ {
+ DEBUG("removing sort_column_changed callback (# %ld)",
+ priv->sort_column_changed_cb_id);
+ g_signal_handler_disconnect(GTK_TREE_SORTABLE(model),
+ priv->sort_column_changed_cb_id);
+ priv->sort_column_changed_cb_id = 0;
+ }
}
- }
- if (priv->columns_changed_cb_id) {
- DEBUG("removing columns_changed callback (# %ld)",
- priv->columns_changed_cb_id);
- g_signal_handler_disconnect(view, priv->columns_changed_cb_id);
- priv->columns_changed_cb_id = 0;
- }
+ if (priv->columns_changed_cb_id)
+ {
+ DEBUG("removing columns_changed callback (# %ld)",
+ priv->columns_changed_cb_id);
+ g_signal_handler_disconnect(view, priv->columns_changed_cb_id);
+ priv->columns_changed_cb_id = 0;
+ }
- if (priv->size_allocate_cb_id) {
- DEBUG("removing size_allocate callback (# %ld)",
- priv->size_allocate_cb_id);
- g_signal_handler_disconnect(view, priv->size_allocate_cb_id);
- priv->size_allocate_cb_id = 0;
- }
+ if (priv->size_allocate_cb_id)
+ {
+ DEBUG("removing size_allocate callback (# %ld)",
+ priv->size_allocate_cb_id);
+ g_signal_handler_disconnect(view, priv->size_allocate_cb_id);
+ priv->size_allocate_cb_id = 0;
+ }
- DEBUG("removing gconf notification");
- gnc_gconf_remove_notification(G_OBJECT(view), priv->gconf_section,
- GNC_TREE_VIEW_NAME);
- g_free(priv->gconf_section);
- priv->gconf_section = NULL;
- LEAVE(" ");
+ DEBUG("removing gconf notification");
+ gnc_gconf_remove_notification(G_OBJECT(view), priv->gconf_section,
+ GNC_TREE_VIEW_NAME);
+ g_free(priv->gconf_section);
+ priv->gconf_section = NULL;
+ LEAVE(" ");
}
/** This function is called to set up or remove an association between
@@ -1218,53 +1261,54 @@
*/
void
gnc_tree_view_set_gconf_section (GncTreeView *view,
- const gchar *section)
+ const gchar *section)
{
- GncTreeViewPrivate *priv;
- GtkTreeModel *model;
- gulong id;
+ GncTreeViewPrivate *priv;
+ GtkTreeModel *model;
+ gulong id;
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER("view %p, section %s", view, section);
- gnc_tree_view_remove_gconf(view);
+ ENTER("view %p, section %s", view, section);
+ gnc_tree_view_remove_gconf(view);
- if (!section) {
- LEAVE("cleared gconf section");
- return;
- }
+ if (!section)
+ {
+ LEAVE("cleared gconf section");
+ return;
+ }
- /* Catch changes in gconf. Propagate to view. */
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- priv->gconf_section = g_strdup(section);
- gnc_gconf_add_notification(G_OBJECT(view), section,
- gnc_tree_view_gconf_changed,
- GNC_TREE_VIEW_NAME);
+ /* Catch changes in gconf. Propagate to view. */
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ priv->gconf_section = g_strdup(section);
+ gnc_gconf_add_notification(G_OBJECT(view), section,
+ gnc_tree_view_gconf_changed,
+ GNC_TREE_VIEW_NAME);
- /* Catch changes to the sort column. Propagate to gconf. The key can
- * be set before the model, so the code must handle that case. */
- model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
- if (model)
- priv->sort_column_changed_cb_id =
- g_signal_connect(GTK_TREE_SORTABLE(model), "sort-column-changed",
- (GCallback)gtk_tree_view_sort_column_changed_cb, view);
+ /* Catch changes to the sort column. Propagate to gconf. The key can
+ * be set before the model, so the code must handle that case. */
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
+ if (model)
+ priv->sort_column_changed_cb_id =
+ g_signal_connect(GTK_TREE_SORTABLE(model), "sort-column-changed",
+ (GCallback)gtk_tree_view_sort_column_changed_cb, view);
- /* Catch changes to the column order. Propagate to gconf */
- id = g_signal_connect(view, "columns-changed",
- (GCallback)gtk_tree_view_columns_changed_cb, NULL);
- priv->columns_changed_cb_id = id;
+ /* Catch changes to the column order. Propagate to gconf */
+ id = g_signal_connect(view, "columns-changed",
+ (GCallback)gtk_tree_view_columns_changed_cb, NULL);
+ priv->columns_changed_cb_id = id;
- /* Catch changes to the column width. Propagate to gconf */
- id = g_signal_connect(view, "size-allocate",
- (GCallback)gtk_tree_view_size_allocate_cb, NULL);
- priv->size_allocate_cb_id = id;
+ /* Catch changes to the column width. Propagate to gconf */
+ id = g_signal_connect(view, "size-allocate",
+ (GCallback)gtk_tree_view_size_allocate_cb, NULL);
+ priv->size_allocate_cb_id = id;
- /* Force an update of the view with all items from gconf. */
- gnc_tree_view_gconf_force_update(view);
+ /* Force an update of the view with all items from gconf. */
+ gnc_tree_view_gconf_force_update(view);
- /* Rebuild the column visibility menu */
- gnc_tree_view_build_column_menu(view);
- LEAVE("set gconf section");
+ /* Rebuild the column visibility menu */
+ gnc_tree_view_build_column_menu(view);
+ LEAVE("set gconf section");
}
/** This function is called to get the current association between a
@@ -1277,12 +1321,12 @@
const gchar *
gnc_tree_view_get_gconf_section (GncTreeView *view)
{
- GncTreeViewPrivate *priv;
+ GncTreeViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_TREE_VIEW(view), NULL);
+ g_return_val_if_fail(GNC_IS_TREE_VIEW(view), NULL);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- return(priv->gconf_section);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ return(priv->gconf_section);
}
@@ -1308,27 +1352,28 @@
*/
static void
gnc_tree_view_menu_item_toggled (GtkCheckMenuItem *checkmenuitem,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- gboolean value;
- gchar *key;
+ GncTreeViewPrivate *priv;
+ gboolean value;
+ gchar *key;
- g_return_if_fail(GTK_IS_CHECK_MENU_ITEM(checkmenuitem));
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GTK_IS_CHECK_MENU_ITEM(checkmenuitem));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER("checkmenuitem %p, view %p", checkmenuitem, view);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (!priv->gconf_section) {
- LEAVE("no gconf section");
- return;
- }
+ ENTER("checkmenuitem %p, view %p", checkmenuitem, view);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (!priv->gconf_section)
+ {
+ LEAVE("no gconf section");
+ return;
+ }
- key = g_object_get_data(G_OBJECT(checkmenuitem), GCONF_KEY);
- value = gtk_check_menu_item_get_active(checkmenuitem);
- gnc_gconf_set_bool(priv->gconf_section, key, value, NULL);
- LEAVE("set gconf section %s, key %s, visible %d",
- priv->gconf_section, key, value);
+ key = g_object_get_data(G_OBJECT(checkmenuitem), GCONF_KEY);
+ value = gtk_check_menu_item_get_active(checkmenuitem);
+ gnc_gconf_set_bool(priv->gconf_section, key, value, NULL);
+ LEAVE("set gconf section %s, key %s, visible %d",
+ priv->gconf_section, key, value);
}
/** This function is called to create a single checkmenuitem in the
@@ -1348,54 +1393,58 @@
*/
static void
gnc_tree_view_create_menu_item (GtkTreeViewColumn *column,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GtkWidget *widget;
- const gchar *column_name, *pref_name;
- gulong id;
- gchar *key;
+ GncTreeViewPrivate *priv;
+ GtkWidget *widget;
+ const gchar *column_name, *pref_name;
+ gulong id;
+ gchar *key;
- // ENTER("view %p, column %p", view, column);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (!priv->gconf_section) {
- // LEAVE("no gconf section");
- return;
- }
+ // ENTER("view %p, column %p", view, column);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (!priv->gconf_section)
+ {
+ // LEAVE("no gconf section");
+ return;
+ }
- pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
- if (!pref_name) {
- // LEAVE("column has no pref_name");
- return;
- }
+ pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
+ if (!pref_name)
+ {
+ // LEAVE("column has no pref_name");
+ return;
+ }
- /* Create the menu if we don't have one already */
- if (!priv->column_menu) {
- priv->column_menu = gtk_menu_new();
- g_object_ref_sink(priv->column_menu);
- }
+ /* Create the menu if we don't have one already */
+ if (!priv->column_menu)
+ {
+ priv->column_menu = gtk_menu_new();
+ g_object_ref_sink(priv->column_menu);
+ }
- /* Create the check menu item */
- column_name = g_object_get_data(G_OBJECT(column), REAL_TITLE);
- if (!column_name)
- column_name = gtk_tree_view_column_get_title(column);
- widget = gtk_check_menu_item_new_with_label(column_name);
- gtk_menu_shell_append(GTK_MENU_SHELL(priv->column_menu), widget);
+ /* Create the check menu item */
+ column_name = g_object_get_data(G_OBJECT(column), REAL_TITLE);
+ if (!column_name)
+ column_name = gtk_tree_view_column_get_title(column);
+ widget = gtk_check_menu_item_new_with_label(column_name);
+ gtk_menu_shell_append(GTK_MENU_SHELL(priv->column_menu), widget);
- /* Should never be able to hide the first column */
- if (g_object_get_data(G_OBJECT(column), ALWAYS_VISIBLE)) {
- g_object_set_data(G_OBJECT(widget), ALWAYS_VISIBLE, GINT_TO_POINTER(1));
- gtk_widget_set_sensitive(widget, FALSE);
- }
+ /* Should never be able to hide the first column */
+ if (g_object_get_data(G_OBJECT(column), ALWAYS_VISIBLE))
+ {
+ g_object_set_data(G_OBJECT(widget), ALWAYS_VISIBLE, GINT_TO_POINTER(1));
+ gtk_widget_set_sensitive(widget, FALSE);
+ }
- /* Set up the callback */
- id = g_signal_connect(widget, "toggled",
- (GCallback)gnc_tree_view_menu_item_toggled, view);
+ /* Set up the callback */
+ id = g_signal_connect(widget, "toggled",
+ (GCallback)gnc_tree_view_menu_item_toggled, view);
- /* Store data on the widget for callbacks */
- key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_VISIBLE);
- g_object_set_data_full(G_OBJECT(widget), GCONF_KEY, key, g_free);
- // LEAVE(" ");
+ /* Store data on the widget for callbacks */
+ key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_VISIBLE);
+ g_object_set_data_full(G_OBJECT(widget), GCONF_KEY, key, g_free);
+ // LEAVE(" ");
}
/** This function is called to build the column selection menu. It
@@ -1412,36 +1461,40 @@
static void
gnc_tree_view_build_column_menu (GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GList *column_list;
+ GncTreeViewPrivate *priv;
+ GList *column_list;
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER("view %p", view);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ ENTER("view %p", view);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- /* Destroy any old menu */
- if (priv->column_menu) {
- gtk_widget_unref(priv->column_menu);
- priv->column_menu = NULL;
- }
+ /* Destroy any old menu */
+ if (priv->column_menu)
+ {
+ gtk_widget_unref(priv->column_menu);
+ priv->column_menu = NULL;
+ }
- if (priv->show_column_menu && priv->gconf_section) {
- /* Show the menu popup button */
- if (priv->column_menu_column)
- gtk_tree_view_column_set_visible(priv->column_menu_column, TRUE);
+ if (priv->show_column_menu && priv->gconf_section)
+ {
+ /* Show the menu popup button */
+ if (priv->column_menu_column)
+ gtk_tree_view_column_set_visible(priv->column_menu_column, TRUE);
- /* Now build a new menu */
- column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- g_list_foreach(column_list, (GFunc)gnc_tree_view_create_menu_item, view);
- g_list_free(column_list);
- } else {
- /* Hide the menu popup button */
- if (priv->column_menu_column)
- gtk_tree_view_column_set_visible(priv->column_menu_column, FALSE);
- }
- LEAVE("menu: show %d, section %s", priv->show_column_menu,
- priv->gconf_section ? priv->gconf_section : "(null)");
+ /* Now build a new menu */
+ column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ g_list_foreach(column_list, (GFunc)gnc_tree_view_create_menu_item, view);
+ g_list_free(column_list);
+ }
+ else
+ {
+ /* Hide the menu popup button */
+ if (priv->column_menu_column)
+ gtk_tree_view_column_set_visible(priv->column_menu_column, FALSE);
+ }
+ LEAVE("menu: show %d, section %s", priv->show_column_menu,
+ priv->gconf_section ? priv->gconf_section : "(null)");
}
/** This function is called to synchronize the checkbox on a menu item
@@ -1461,28 +1514,31 @@
*/
static void
gnc_tree_view_update_column_menu_item (GtkCheckMenuItem *checkmenuitem,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- gchar *key;
- gboolean visible;
+ GncTreeViewPrivate *priv;
+ gchar *key;
+ gboolean visible;
- g_return_if_fail(GTK_IS_CHECK_MENU_ITEM(checkmenuitem));
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GTK_IS_CHECK_MENU_ITEM(checkmenuitem));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- key = g_object_get_data(G_OBJECT(checkmenuitem), GCONF_KEY);
- if (g_object_get_data(G_OBJECT(checkmenuitem), ALWAYS_VISIBLE)) {
- visible = TRUE;
- } else {
- visible = gnc_gconf_get_bool(priv->gconf_section, key, NULL);
- }
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ key = g_object_get_data(G_OBJECT(checkmenuitem), GCONF_KEY);
+ if (g_object_get_data(G_OBJECT(checkmenuitem), ALWAYS_VISIBLE))
+ {
+ visible = TRUE;
+ }
+ else
+ {
+ visible = gnc_gconf_get_bool(priv->gconf_section, key, NULL);
+ }
- g_signal_handlers_block_by_func(checkmenuitem,
- gnc_tree_view_menu_item_toggled, view);
- gtk_check_menu_item_set_active(checkmenuitem, visible);
- g_signal_handlers_unblock_by_func(checkmenuitem,
- gnc_tree_view_menu_item_toggled, view);
+ g_signal_handlers_block_by_func(checkmenuitem,
+ gnc_tree_view_menu_item_toggled, view);
+ gtk_check_menu_item_set_active(checkmenuitem, visible);
+ g_signal_handlers_unblock_by_func(checkmenuitem,
+ gnc_tree_view_menu_item_toggled, view);
}
/** This function when the user clicks on the button to show the
@@ -1499,77 +1555,80 @@
*/
static void
gnc_tree_view_select_column_cb (GtkTreeViewColumn *column,
- GncTreeView *view)
+ GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GtkWidget *widget, *menu;
+ GncTreeViewPrivate *priv;
+ GtkWidget *widget, *menu;
- g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- menu = priv->column_menu;
- if (!menu)
- return;
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ menu = priv->column_menu;
+ if (!menu)
+ return;
- /* Synchronize the menu before display */
- gtk_container_foreach(GTK_CONTAINER(menu),
- (GtkCallback)gnc_tree_view_update_column_menu_item,
- view);
+ /* Synchronize the menu before display */
+ gtk_container_foreach(GTK_CONTAINER(menu),
+ (GtkCallback)gnc_tree_view_update_column_menu_item,
+ view);
- /* Ensure all components are visible */
- gtk_widget_show_all(menu);
+ /* Ensure all components are visible */
+ gtk_widget_show_all(menu);
- /* Pop the menu up at the button */
- widget = gtk_tree_view_column_get_widget(column);
- gtk_menu_popup(GTK_MENU(priv->column_menu), NULL, GTK_WIDGET(menu),
- NULL, NULL, 0, gtk_get_current_event_time());
+ /* Pop the menu up at the button */
+ widget = gtk_tree_view_column_get_widget(column);
+ gtk_menu_popup(GTK_MENU(priv->column_menu), NULL, GTK_WIDGET(menu),
+ NULL, NULL, 0, gtk_get_current_event_time());
}
void gnc_tree_view_expand_columns (GncTreeView *view,
- gchar *first_column_name,
- ...)
+ gchar *first_column_name,
+ ...)
{
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column;
- gboolean hide_spacer;
- GList *columns, *tmp;
- gchar *name, *pref_name;
- va_list args;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column;
+ gboolean hide_spacer;
+ GList *columns, *tmp;
+ gchar *name, *pref_name;
+ va_list args;
- g_return_if_fail (GNC_IS_TREE_VIEW (view));
- ENTER(" ");
- va_start (args, first_column_name);
- priv = GNC_TREE_VIEW_GET_PRIVATE (view);
- name = first_column_name;
- hide_spacer = FALSE;
+ g_return_if_fail (GNC_IS_TREE_VIEW (view));
+ ENTER(" ");
+ va_start (args, first_column_name);
+ priv = GNC_TREE_VIEW_GET_PRIVATE (view);
+ name = first_column_name;
+ hide_spacer = FALSE;
- /* First disable the expand property on all (non-infrastructure) columns. */
- columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- for (tmp = columns; tmp; tmp = g_list_next(tmp)) {
- column = tmp->data;
- pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
- if (pref_name != NULL)
- gtk_tree_view_column_set_expand(column, FALSE);
- }
- g_list_free(columns);
+ /* First disable the expand property on all (non-infrastructure) columns. */
+ columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ for (tmp = columns; tmp; tmp = g_list_next(tmp))
+ {
+ column = tmp->data;
+ pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
+ if (pref_name != NULL)
+ gtk_tree_view_column_set_expand(column, FALSE);
+ }
+ g_list_free(columns);
- /* Now enable it on the requested columns. */
- while (name != NULL) {
- column = gnc_tree_view_find_column_by_name(view, name);
- if (column != NULL) {
- gtk_tree_view_column_set_expand(column, TRUE);
- hide_spacer = TRUE;
+ /* Now enable it on the requested columns. */
+ while (name != NULL)
+ {
+ column = gnc_tree_view_find_column_by_name(view, name);
+ if (column != NULL)
+ {
+ gtk_tree_view_column_set_expand(column, TRUE);
+ hide_spacer = TRUE;
+ }
+ name = va_arg (args, gchar*);
}
- name = va_arg (args, gchar*);
- }
- va_end (args);
+ va_end (args);
- gtk_tree_view_column_set_visible (priv->spacer_column, !hide_spacer);
- gtk_tree_view_column_set_visible (priv->selection_column, !hide_spacer);
+ gtk_tree_view_column_set_visible (priv->spacer_column, !hide_spacer);
+ gtk_tree_view_column_set_visible (priv->selection_column, !hide_spacer);
- LEAVE(" ");
+ LEAVE(" ");
}
/** This function is called to set the "show-column-menu" property on
@@ -1580,17 +1639,17 @@
*/
void
gnc_tree_view_set_show_column_menu (GncTreeView *view,
- gboolean visible)
+ gboolean visible)
{
- GncTreeViewPrivate *priv;
+ GncTreeViewPrivate *priv;
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER("view %p, show menu %d", view, visible);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- priv->show_column_menu = visible;
- gnc_tree_view_build_column_menu(view);
- LEAVE(" ");
+ ENTER("view %p, show menu %d", view, visible);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ priv->show_column_menu = visible;
+ gnc_tree_view_build_column_menu(view);
+ LEAVE(" ");
}
/** This function is called to get the current value of the
@@ -1602,12 +1661,12 @@
gboolean
gnc_tree_view_get_show_column_menu (GncTreeView *view)
{
- GncTreeViewPrivate *priv;
+ GncTreeViewPrivate *priv;
- g_return_val_if_fail(GNC_IS_TREE_VIEW(view), FALSE);
+ g_return_val_if_fail(GNC_IS_TREE_VIEW(view), FALSE);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- return(priv->show_column_menu);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ return(priv->show_column_menu);
}
/** @} */
@@ -1628,25 +1687,27 @@
void
gnc_tree_view_set_model(GncTreeView *view, GtkTreeModel *model)
{
- GncTreeViewPrivate *priv;
- GtkTreeModel *old_model;
+ GncTreeViewPrivate *priv;
+ GtkTreeModel *old_model;
- /* Remove existing callback */
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (priv->sort_column_changed_cb_id) {
- old_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
- g_signal_handler_disconnect (old_model, priv->sort_column_changed_cb_id);
- priv->sort_column_changed_cb_id = 0;
- }
+ /* Remove existing callback */
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (priv->sort_column_changed_cb_id)
+ {
+ old_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
+ g_signal_handler_disconnect (old_model, priv->sort_column_changed_cb_id);
+ priv->sort_column_changed_cb_id = 0;
+ }
- gtk_tree_view_set_model (GTK_TREE_VIEW(view), model);
+ gtk_tree_view_set_model (GTK_TREE_VIEW(view), model);
- /* Maybe add a new callback */
- if (model && priv->gconf_section) {
- priv->sort_column_changed_cb_id =
- g_signal_connect(GTK_TREE_SORTABLE(model), "sort-column-changed",
- (GCallback)gtk_tree_view_sort_column_changed_cb, view);
- }
+ /* Maybe add a new callback */
+ if (model && priv->gconf_section)
+ {
+ priv->sort_column_changed_cb_id =
+ g_signal_connect(GTK_TREE_SORTABLE(model), "sort-column-changed",
+ (GCallback)gtk_tree_view_sort_column_changed_cb, view);
+ }
}
static gint
@@ -1656,11 +1717,12 @@
gint count = 0;
columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- for (node = columns; node; node = node->next) {
+ for (node = columns; node; node = node->next)
+ {
GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN(node->data);
if (g_object_get_data(G_OBJECT(col), DEFAULT_VISIBLE) ||
- g_object_get_data(G_OBJECT(col), ALWAYS_VISIBLE))
+ g_object_get_data(G_OBJECT(col), ALWAYS_VISIBLE))
count++;
}
g_list_free(columns);
@@ -1670,33 +1732,33 @@
void
gnc_tree_view_configure_columns (GncTreeView *view)
{
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column;
- GList *columns;
- gboolean hide_spacer;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column;
+ GList *columns;
+ gboolean hide_spacer;
- g_return_if_fail(GNC_IS_TREE_VIEW(view));
+ g_return_if_fail(GNC_IS_TREE_VIEW(view));
- ENTER(" ");
+ ENTER(" ");
- /* 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);
+ /* 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;
+ 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 = (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);
- gtk_tree_view_column_set_visible(priv->selection_column, !hide_spacer);
+ /* If only the first column is visible, hide the spacer and make that
+ * column expand. */
+ 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);
+ gtk_tree_view_column_set_visible(priv->selection_column, !hide_spacer);
- LEAVE(" ");
+ LEAVE(" ");
}
@@ -1731,70 +1793,74 @@
*/
static void
gnc_tree_view_column_properties (GncTreeView *view,
- GtkTreeViewColumn *column,
- const gchar *pref_name,
- gint data_column,
- gint default_width,
- gboolean resizable,
- GtkTreeIterCompareFunc column_sort_fn)
+ GtkTreeViewColumn *column,
+ const gchar *pref_name,
+ gint data_column,
+ gint default_width,
+ gboolean resizable,
+ GtkTreeIterCompareFunc column_sort_fn)
{
- GncTreeViewPrivate *priv;
- GtkTreeModel *s_model;
- gboolean visible;
- int width = 0;
- gchar *key;
+ GncTreeViewPrivate *priv;
+ GtkTreeModel *s_model;
+ gboolean visible;
+ int width = 0;
+ gchar *key;
- /* Set data used by other functions */
- if (pref_name)
- g_object_set_data(G_OBJECT(column), PREF_NAME, (gpointer)pref_name);
- if (data_column == 0)
- g_object_set_data(G_OBJECT(column), ALWAYS_VISIBLE, GINT_TO_POINTER(1));
- g_object_set_data(G_OBJECT(column), MODEL_COLUMN,
- GINT_TO_POINTER(data_column));
+ /* Set data used by other functions */
+ if (pref_name)
+ g_object_set_data(G_OBJECT(column), PREF_NAME, (gpointer)pref_name);
+ if (data_column == 0)
+ g_object_set_data(G_OBJECT(column), ALWAYS_VISIBLE, GINT_TO_POINTER(1));
+ g_object_set_data(G_OBJECT(column), MODEL_COLUMN,
+ GINT_TO_POINTER(data_column));
- /* Get visibility */
- visible = gnc_tree_view_column_visible(view, NULL, pref_name);
+ /* Get visibility */
+ visible = gnc_tree_view_column_visible(view, NULL, pref_name);
- /* Get width */
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- if (priv->gconf_section) {
- key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_WIDTH);
- width = gnc_gconf_get_int(priv->gconf_section, key, NULL);
- g_free(key);
- }
+ /* Get width */
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ if (priv->gconf_section)
+ {
+ key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_WIDTH);
+ width = gnc_gconf_get_int(priv->gconf_section, key, NULL);
+ g_free(key);
+ }
- /* If gconf comes back with a width of zero (or there is no gconf
- * width) the use the default width for the column. Allow for
- * padding L and R of the displayed data. */
- if (width == 0)
- width = default_width + 10;
- if (width == 0)
- width = 10;
+ /* If gconf comes back with a width of zero (or there is no gconf
+ * width) the use the default width for the column. Allow for
+ * padding L and R of the displayed data. */
+ if (width == 0)
+ width = default_width + 10;
+ if (width == 0)
+ width = 10;
- /* Set column attributes */
- g_object_set(G_OBJECT(column),
- "visible", visible,
- "sizing", GTK_TREE_VIEW_COLUMN_FIXED,
- "fixed-width", width,
- "resizable", resizable && pref_name != NULL,
- "reorderable", pref_name != NULL,
- NULL);
+ /* Set column attributes */
+ g_object_set(G_OBJECT(column),
+ "visible", visible,
+ "sizing", GTK_TREE_VIEW_COLUMN_FIXED,
+ "fixed-width", width,
+ "resizable", resizable && pref_name != NULL,
+ "reorderable", pref_name != NULL,
+ NULL);
- s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
- if (GTK_IS_TREE_SORTABLE(s_model)) {
- gtk_tree_view_column_set_sort_column_id (column, data_column);
- if (column_sort_fn) {
- gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE(s_model),
- data_column, column_sort_fn,
- GINT_TO_POINTER(data_column),
- NULL /* destroy fn */);
+ s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+ if (GTK_IS_TREE_SORTABLE(s_model))
+ {
+ gtk_tree_view_column_set_sort_column_id (column, data_column);
+ if (column_sort_fn)
+ {
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE(s_model),
+ data_column, column_sort_fn,
+ GINT_TO_POINTER(data_column),
+ NULL /* destroy fn */);
+ }
}
- }
- /* Add to the column selection menu */
- if (pref_name) {
- gnc_tree_view_create_menu_item(column, view);
- }
+ /* Add to the column selection menu */
+ if (pref_name)
+ {
+ gnc_tree_view_create_menu_item(column, view);
+ }
}
/** This function adds a new toggle column to a GncTreeView base view.
@@ -1809,57 +1875,57 @@
*/
GtkTreeViewColumn *
gnc_tree_view_add_toggle_column (GncTreeView *view,
- const gchar *column_title,
- const gchar *column_short_title,
- const gchar *pref_name,
- gint model_data_column,
- gint model_visibility_column,
- GtkTreeIterCompareFunc column_sort_fn,
- renderer_toggled toggle_edited_cb)
+ const gchar *column_title,
+ const gchar *column_short_title,
+ const gchar *pref_name,
+ gint model_data_column,
+ gint model_visibility_column,
+ GtkTreeIterCompareFunc column_sort_fn,
+ renderer_toggled toggle_edited_cb)
{
- GncTreeViewPrivate *priv;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- PangoLayout* layout;
- int title_width;
+ GncTreeViewPrivate *priv;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ PangoLayout* layout;
+ int title_width;
- g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
+ g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
- priv = GNC_TREE_VIEW_GET_PRIVATE(view);
- renderer = gtk_cell_renderer_toggle_new ();
- column =
- gtk_tree_view_column_new_with_attributes (column_short_title,
- renderer,
- "active", model_data_column,
- NULL);
+ priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+ renderer = gtk_cell_renderer_toggle_new ();
+ column =
+ gtk_tree_view_column_new_with_attributes (column_short_title,
+ renderer,
+ "active", model_data_column,
+ NULL);
- /* Add the full title to the object for menu creation */
- g_object_set_data_full(G_OBJECT(column), REAL_TITLE,
- g_strdup(column_title), g_free);
- if (toggle_edited_cb)
- g_signal_connect(G_OBJECT(renderer), "toggled",
- G_CALLBACK(toggle_edited_cb), view);
+ /* Add the full title to the object for menu creation */
+ g_object_set_data_full(G_OBJECT(column), REAL_TITLE,
+ g_strdup(column_title), g_free);
+ if (toggle_edited_cb)
+ g_signal_connect(G_OBJECT(renderer), "toggled",
+ G_CALLBACK(toggle_edited_cb), view);
- if (model_visibility_column != GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS)
- gtk_tree_view_column_add_attribute (column, renderer,
- "visible", model_visibility_column);
+ if (model_visibility_column != GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "visible", model_visibility_column);
- layout = gtk_widget_create_pango_layout (GTK_WIDGET(view),
- column_short_title);
- pango_layout_get_pixel_size(layout, &title_width, NULL);
- g_object_unref(layout);
+ layout = gtk_widget_create_pango_layout (GTK_WIDGET(view),
+ column_short_title);
+ pango_layout_get_pixel_size(layout, &title_width, NULL);
+ g_object_unref(layout);
- gnc_tree_view_column_properties (view, column, pref_name, model_data_column,
- title_width, FALSE, column_sort_fn);
+ gnc_tree_view_column_properties (view, column, pref_name, model_data_column,
+ title_width, FALSE, column_sort_fn);
- gnc_tree_view_append_column (view, column);
+ gnc_tree_view_append_column (view, column);
- /* Also add the full title to the object as a tooltip */
- if (!priv->title_tips)
- priv->title_tips = gtk_tooltips_new();
- gtk_tooltips_set_tip(priv->title_tips, column->button, column_title, NULL);
+ /* Also add the full title to the object as a tooltip */
+ if (!priv->title_tips)
+ priv->title_tips = gtk_tooltips_new();
+ gtk_tooltips_set_tip(priv->title_tips, column->button, column_title, NULL);
- return column;
+ return column;
}
/** This function adds a new text column to a GncTreeView base view.
@@ -1872,58 +1938,59 @@
*/
GtkTreeViewColumn *
gnc_tree_view_add_text_column (GncTreeView *view,
- const gchar *column_title,
- const gchar *pref_name,
- const gchar *stock_icon_name,
- const gchar *sizing_text,
- gint model_data_column,
- gint model_visibility_column,
- GtkTreeIterCompareFunc column_sort_fn)
+ const gchar *column_title,
+ const gchar *pref_name,
+ const gchar *stock_icon_name,
+ const gchar *sizing_text,
+ gint model_data_column,
+ gint model_visibility_column,
+ GtkTreeIterCompareFunc column_sort_fn)
{
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- PangoLayout* layout;
- int default_width, title_width;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ PangoLayout* layout;
+ int default_width, title_width;
- g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
+ g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
- column = gtk_tree_view_column_new ();
- gtk_tree_view_column_set_title (column, column_title);
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_title (column, column_title);
- /* Set up an icon renderer if requested */
- if (stock_icon_name) {
- renderer = gtk_cell_renderer_pixbuf_new ();
- g_object_set (renderer, "stock-id", stock_icon_name, NULL);
- gtk_tree_view_column_pack_start (column, renderer, FALSE);
- }
+ /* Set up an icon renderer if requested */
+ if (stock_icon_name)
+ {
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ g_object_set (renderer, "stock-id", stock_icon_name, NULL);
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ }
- /* Set up a text renderer and attributes */
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ /* Set up a text renderer and attributes */
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
- /* Set renderer attributes controlled by the model */
- if (model_data_column != GNC_TREE_VIEW_COLUMN_DATA_NONE)
- gtk_tree_view_column_add_attribute (column, renderer,
- "text", model_data_column);
- if (model_visibility_column != GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS)
- gtk_tree_view_column_add_attribute (column, renderer,
- "visible", model_visibility_column);
+ /* Set renderer attributes controlled by the model */
+ if (model_data_column != GNC_TREE_VIEW_COLUMN_DATA_NONE)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "text", model_data_column);
+ if (model_visibility_column != GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "visible", model_visibility_column);
- /* Default size is the larger of the column title and the sizing text */
- layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), column_title);
- pango_layout_get_pixel_size(layout, &title_width, NULL);
- g_object_unref(layout);
- layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), sizing_text);
- pango_layout_get_pixel_size(layout, &default_width, NULL);
- g_object_unref(layout);
- default_width = MAX(default_width, title_width);
- if (default_width)
- default_width += 10; /* padding on either side */
- gnc_tree_view_column_properties (view, column, pref_name, model_data_column,
- default_width, TRUE, column_sort_fn);
+ /* Default size is the larger of the column title and the sizing text */
+ layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), column_title);
+ pango_layout_get_pixel_size(layout, &title_width, NULL);
+ g_object_unref(layout);
+ layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), sizing_text);
+ pango_layout_get_pixel_size(layout, &default_width, NULL);
+ g_object_unref(layout);
+ default_width = MAX(default_width, title_width);
+ if (default_width)
+ default_width += 10; /* padding on either side */
+ gnc_tree_view_column_properties (view, column, pref_name, model_data_column,
+ default_width, TRUE, column_sort_fn);
- gnc_tree_view_append_column (view, column);
- return column;
+ gnc_tree_view_append_column (view, column);
+ return column;
}
GtkTreeViewColumn *
@@ -1937,68 +2004,69 @@
gint combo_model_text_column,
GtkTreeIterCompareFunc column_sort_fn)
{
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- PangoLayout* layout;
- int default_width, title_width;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ PangoLayout* layout;
+ int default_width, title_width;
- g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
+ g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
- column = gtk_tree_view_column_new ();
- gtk_tree_view_column_set_title (column, gettext(column_title));
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_title (column, gettext(column_title));
- /* Set up a renderer and attributes */
- renderer = gtk_cell_renderer_combo_new ();
- gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ /* Set up a renderer and attributes */
+ renderer = gtk_cell_renderer_combo_new ();
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
- /* Set renderer attributes controlled by the model */
- if (model_data_column != GNC_TREE_VIEW_COLUMN_DATA_NONE)
- gtk_tree_view_column_add_attribute (column, renderer,
- "text", model_data_column);
- if (model_visibility_column != GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS)
- gtk_tree_view_column_add_attribute (column, renderer,
- "visible", model_visibility_column);
+ /* Set renderer attributes controlled by the model */
+ if (model_data_column != GNC_TREE_VIEW_COLUMN_DATA_NONE)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "text", model_data_column);
+ if (model_visibility_column != GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "visible", model_visibility_column);
- /* Default size is the larger of the column title and the sizing text */
- layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), column_title);
- pango_layout_get_pixel_size(layout, &title_width, NULL);
- g_object_unref(layout);
- layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), sizing_text);
- pango_layout_get_pixel_size(layout, &default_width, NULL);
- g_object_unref(layout);
- default_width = MAX(default_width, title_width);
- if (default_width)
- default_width += 10; /* padding on either side */
+ /* Default size is the larger of the column title and the sizing text */
+ layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), column_title);
+ pango_layout_get_pixel_size(layout, &title_width, NULL);
+ g_object_unref(layout);
+ layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), sizing_text);
+ pango_layout_get_pixel_size(layout, &default_width, NULL);
+ g_object_unref(layout);
+ default_width = MAX(default_width, title_width);
+ if (default_width)
+ default_width += 10; /* padding on either side */
- gnc_tree_view_column_properties (view, column, pref_name, model_data_column,
- default_width, TRUE, column_sort_fn);
+ gnc_tree_view_column_properties (view, column, pref_name, model_data_column,
+ default_width, TRUE, column_sort_fn);
- /* Stuff specific to combo */
- if (combo_tree_model) {
- g_object_set(G_OBJECT(renderer), "model", combo_tree_model,
- "text-column", combo_model_text_column, NULL);
- }
- /* TODO: has-entry? */
+ /* Stuff specific to combo */
+ if (combo_tree_model)
+ {
+ g_object_set(G_OBJECT(renderer), "model", combo_tree_model,
+ "text-column", combo_model_text_column, NULL);
+ }
+ /* TODO: has-entry? */
- gnc_tree_view_append_column (view, column);
- return column;
+ gnc_tree_view_append_column (view, column);
+ return column;
}
GtkCellRenderer *
gnc_tree_view_column_get_renderer(GtkTreeViewColumn *column)
{
- GList *renderers;
- GtkCellRenderer *cr = NULL;
+ GList *renderers;
+ GtkCellRenderer *cr = NULL;
- g_return_val_if_fail(GTK_TREE_VIEW_COLUMN(column), NULL);
+ g_return_val_if_fail(GTK_TREE_VIEW_COLUMN(column), NULL);
- /* Get the list of one renderer */
- renderers = gtk_tree_view_column_get_cell_renderers(column);
- if (g_list_length(renderers) > 0)
- cr = GTK_CELL_RENDERER(renderers->data);
- g_list_free(renderers);
+ /* Get the list of one renderer */
+ renderers = gtk_tree_view_column_get_cell_renderers(column);
+ if (g_list_length(renderers) > 0)
+ cr = GTK_CELL_RENDERER(renderers->data);
+ g_list_free(renderers);
- return cr;
+ return cr;
}
/** This function adds a new numeric column to a GncTreeView base
@@ -2013,34 +2081,34 @@
*/
GtkTreeViewColumn *
gnc_tree_view_add_numeric_column (GncTreeView *view,
- const gchar *column_title,
- const gchar *pref_name,
- const gchar *sizing_text,
- gint model_data_column,
- gint model_color_column,
- gint model_visibility_column,
- GtkTreeIterCompareFunc column_sort_fn)
+ const gchar *column_title,
+ const gchar *pref_name,
+ const gchar *sizing_text,
+ gint model_data_column,
+ gint model_color_column,
+ gint model_visibility_column,
+ GtkTreeIterCompareFunc column_sort_fn)
{
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
- column = gnc_tree_view_add_text_column (view, column_title, pref_name,
- NULL, sizing_text, model_data_column,
- model_visibility_column,
- column_sort_fn);
+ column = gnc_tree_view_add_text_column (view, column_title, pref_name,
+ NULL, sizing_text, model_data_column,
+ model_visibility_column,
+ column_sort_fn);
- renderer = gnc_tree_view_column_get_renderer(column);
+ renderer = gnc_tree_view_column_get_renderer(column);
- /* Right align the column title and data */
- g_object_set(G_OBJECT(column), "alignment", 1.0, NULL);
- g_object_set(G_OBJECT(renderer), "xalign", 1.0, NULL);
+ /* Right align the column title and data */
+ g_object_set(G_OBJECT(column), "alignment", 1.0, NULL);
+ g_object_set(G_OBJECT(renderer), "xalign", 1.0, NULL);
- /* Change the text color */
- if (model_color_column != GNC_TREE_VIEW_COLUMN_COLOR_NONE)
- gtk_tree_view_column_add_attribute (column, renderer,
- "foreground", model_color_column);
+ /* Change the text color */
+ if (model_color_column != GNC_TREE_VIEW_COLUMN_COLOR_NONE)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "foreground", model_color_column);
- return column;
+ return column;
}
/** Add a column to a view based upon a GncTreeView. This function
@@ -2053,20 +2121,20 @@
*/
gint
gnc_tree_view_append_column (GncTreeView *view,
- GtkTreeViewColumn *column)
+ GtkTreeViewColumn *column)
{
- GList *columns;
- int n;
+ GList *columns;
+ int n;
- /* There's no easy way to get this number. */
- columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
- n = g_list_length(columns);
- g_list_free(columns);
+ /* There's no easy way to get this number. */
+ columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
+ n = g_list_length(columns);
+ g_list_free(columns);
- /* Ignore the initial two columns (the spacer and the selection menu) */
- if (n >= 2)
- n -= 2;
- return gtk_tree_view_insert_column (GTK_TREE_VIEW(view), column, n);
+ /* Ignore the initial two columns (the spacer and the selection menu) */
+ if (n >= 2)
+ n -= 2;
+ return gtk_tree_view_insert_column (GTK_TREE_VIEW(view), column, n);
}
static gboolean
@@ -2082,9 +2150,11 @@
node = g_list_find(cols, *col);
g_return_val_if_fail(node, FALSE);
- do {
+ do
+ {
node = backward ? node->prev : node->next;
- if (!node) {
+ if (!node)
+ {
wrapped = TRUE;
node = backward ? g_list_last(cols) : cols;
}
@@ -2092,7 +2162,8 @@
if (c && gtk_tree_view_column_get_visible(c))
seen++;
if (c == *col) break;
- } while (!seen);
+ }
+ while (!seen);
g_list_free(cols);
*col = c;
@@ -2120,23 +2191,32 @@
if (event->type != GDK_KEY_PRESS) return;
- switch (event->keyval) {
+ switch (event->keyval)
+ {
case GDK_Tab:
case GDK_ISO_Left_Tab:
case GDK_KP_Tab:
shifted = event->state & GDK_SHIFT_MASK;
- if (get_column_next_to(tv, col, shifted)) {
+ if (get_column_next_to(tv, col, shifted))
+ {
/* This is the end (or beginning) of the line, buddy. */
depth = gtk_tree_path_get_depth(path);
- if (shifted) {
- if (!gtk_tree_path_prev(path) && depth > 1) {
+ if (shifted)
+ {
+ if (!gtk_tree_path_prev(path) && depth > 1)
+ {
gtk_tree_path_up(path);
}
- } else if (gtk_tree_view_row_expanded(tv, path)) {
+ }
+ else if (gtk_tree_view_row_expanded(tv, path))
+ {
gtk_tree_path_down(path);
- } else {
+ }
+ else
+ {
gtk_tree_path_next(path);
- if (!gnc_tree_view_path_is_valid(view, path) && depth > 1) {
+ if (!gnc_tree_view_path_is_valid(view, path) && depth > 1)
+ {
gtk_tree_path_prev(path);
gtk_tree_path_up(path);
gtk_tree_path_next(path);
@@ -2147,12 +2227,16 @@
case GDK_Return:
case GDK_KP_Enter:
- if (gtk_tree_view_row_expanded(tv, path)) {
+ if (gtk_tree_view_row_expanded(tv, path))
+ {
gtk_tree_path_down(path);
- } else {
+ }
+ else
+ {
depth = gtk_tree_path_get_depth(path);
gtk_tree_path_next(path);
- if (!gnc_tree_view_path_is_valid(view, path) && depth > 1) {
+ if (!gnc_tree_view_path_is_valid(view, path) && depth > 1)
+ {
gtk_tree_path_prev(path);
gtk_tree_path_up(path);
gtk_tree_path_next(path);
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -25,7 +25,7 @@
/** @addtogroup GUI
@{ */
/** @file gnc-tree-view.h
- @brief common utilities for manipulating a GtkTreeView within gnucash
+ @brief common utilities for manipulating a GtkTreeView within gnucash
@author David Hampton <hampton at employees.org>
*/
@@ -48,12 +48,14 @@
/* typedefs & structures */
-typedef struct {
- GtkTreeView gtk_tree_view;
+typedef struct
+{
+ GtkTreeView gtk_tree_view;
} GncTreeView;
-typedef struct {
- GtkTreeViewClass gtk_tree_view;
+typedef struct
+{
+ GtkTreeViewClass gtk_tree_view;
} GncTreeViewClass;
/* Standard g_object type */
@@ -81,8 +83,8 @@
typedef void (* renderer_toggled) (GtkCellRendererToggle *cell_renderer_toggle,
- const gchar *path,
- gpointer user_data);
+ const gchar *path,
+ gpointer user_data);
/** @name Tree View Creation */
@@ -131,13 +133,13 @@
*/
GtkTreeViewColumn *
gnc_tree_view_add_toggle_column (GncTreeView *view,
- const gchar *column_title,
- const gchar *column_short_title,
- const gchar *pref_name,
- gint model_data_column,
- gint model_visibility_column,
- GtkTreeIterCompareFunc column_sort_fn,
- renderer_toggled toggle_edited_cb);
+ const gchar *column_title,
+ const gchar *column_short_title,
+ const gchar *pref_name,
+ gint model_data_column,
+ gint model_visibility_column,
+ GtkTreeIterCompareFunc column_sort_fn,
+ renderer_toggled toggle_edited_cb);
/** This function adds a new text column to a GncTreeView base view.
* It takes all the parameters necessary to hook a GtkTreeModel
@@ -181,13 +183,13 @@
*/
GtkTreeViewColumn *
gnc_tree_view_add_text_column (GncTreeView *view,
- const gchar *column_title,
- const gchar *pref_name,
- const gchar *stock_icon_name,
- const gchar *sizing_text,
- gint model_data_column,
- gint model_visibility_column,
- GtkTreeIterCompareFunc column_sort_fn);
+ const gchar *column_title,
+ const gchar *pref_name,
+ const gchar *stock_icon_name,
+ const gchar *sizing_text,
+ gint model_data_column,
+ gint model_visibility_column,
+ GtkTreeIterCompareFunc column_sort_fn);
/** This function adds a new combobox column to a GncTreeView base
* view. The parameters it takes in common with
@@ -251,13 +253,13 @@
*/
GtkTreeViewColumn *
gnc_tree_view_add_numeric_column (GncTreeView *view,
- const gchar *column_title,
- const gchar *pref_name,
- const gchar *sizing_text,
- gint model_data_column,
- gint model_color_column,
- gint model_visibility_column,
- GtkTreeIterCompareFunc column_sort_fn);
+ const gchar *column_title,
+ const gchar *pref_name,
+ const gchar *sizing_text,
+ gint model_data_column,
+ gint model_color_column,
+ gint model_visibility_column,
+ GtkTreeIterCompareFunc column_sort_fn);
/** Add a column to a view based upon a GncTreeView. This function
* knows about the two special columns on the right side of this type
@@ -272,7 +274,7 @@
* @return The index of the newly added column.
*/
gint gnc_tree_view_append_column (GncTreeView *view,
- GtkTreeViewColumn *column);
+ GtkTreeViewColumn *column);
/** @} */
@@ -335,7 +337,7 @@
* Use NULL to disconnect a gconf association.
*/
void gnc_tree_view_set_gconf_section (GncTreeView *view,
- const gchar *section);
+ const gchar *section);
/** This function is called to get the current association between a
* gconf section and the display of a view. It returns the same
@@ -350,8 +352,8 @@
const gchar *gnc_tree_view_get_gconf_section (GncTreeView *view);
void gnc_tree_view_expand_columns (GncTreeView *view,
- gchar *first_column_name,
- ...);
+ gchar *first_column_name,
+ ...);
/** This function is called to set the "show-column-menu" property on
* this view. This function has no visible effect if the
@@ -363,7 +365,7 @@
*/
void
gnc_tree_view_set_show_column_menu (GncTreeView *view,
- gboolean visible);
+ gboolean visible);
/** This function is called to get the current value of the
* "show-column-menu" property. It returns the same value passed to
@@ -392,7 +394,7 @@
* cursor. Returns the new column and the possibly changed (if
* navigation wrapped a row) path. */
void
-gnc_tree_view_keynav(GncTreeView *view, GtkTreeViewColumn **col,
+gnc_tree_view_keynav(GncTreeView *view, GtkTreeViewColumn **col,
GtkTreePath *path, GdkEventKey *event);
/* Returns TRUE if path is a vaid path for the treeview */
Modified: gnucash/trunk/src/gnome-utils/gnc-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-window.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-window.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-window.c -- structure which represents a GnuCash window.
*
* Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -36,28 +36,30 @@
GType
gnc_window_get_type (void)
{
- static GType gnc_window_type = 0;
+ static GType gnc_window_type = 0;
- if (gnc_window_type == 0) {
- static const GTypeInfo our_info = {
- sizeof (GncWindowIface),
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- 0,
- 0,
- NULL
- };
+ if (gnc_window_type == 0)
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (GncWindowIface),
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ NULL
+ };
- gnc_window_type = g_type_register_static (G_TYPE_INTERFACE,
- "GncWindow",
- &our_info, 0);
- g_type_interface_add_prerequisite (gnc_window_type, G_TYPE_OBJECT);
- }
+ gnc_window_type = g_type_register_static (G_TYPE_INTERFACE,
+ "GncWindow",
+ &our_info, 0);
+ g_type_interface_add_prerequisite (gnc_window_type, G_TYPE_OBJECT);
+ }
- return gnc_window_type;
+ return gnc_window_type;
}
/************************************************************
@@ -67,35 +69,35 @@
GtkWindow *
gnc_window_get_gtk_window (GncWindow *window)
{
- g_return_val_if_fail(GNC_WINDOW (window), NULL);
+ g_return_val_if_fail(GNC_WINDOW (window), NULL);
- /* mandatory */
- g_return_val_if_fail(GNC_WINDOW_GET_IFACE (window)->get_gtk_window, NULL);
+ /* mandatory */
+ g_return_val_if_fail(GNC_WINDOW_GET_IFACE (window)->get_gtk_window, NULL);
- return GNC_WINDOW_GET_IFACE (window)->get_gtk_window (window);
+ return GNC_WINDOW_GET_IFACE (window)->get_gtk_window (window);
}
static GtkWidget *
gnc_window_get_statusbar (GncWindow *window)
{
- g_return_val_if_fail(GNC_WINDOW (window), NULL);
+ g_return_val_if_fail(GNC_WINDOW (window), NULL);
- /* mandatory */
- g_return_val_if_fail(GNC_WINDOW_GET_IFACE (window)->get_statusbar, NULL);
+ /* mandatory */
+ g_return_val_if_fail(GNC_WINDOW_GET_IFACE (window)->get_statusbar, NULL);
- return GNC_WINDOW_GET_IFACE (window)->get_statusbar (window);
+ return GNC_WINDOW_GET_IFACE (window)->get_statusbar (window);
}
static GtkWidget *
gnc_window_get_progressbar (GncWindow *window)
{
- g_return_val_if_fail(GNC_WINDOW (window), NULL);
+ g_return_val_if_fail(GNC_WINDOW (window), NULL);
- /* optional */
- if (GNC_WINDOW_GET_IFACE (window)->get_progressbar == NULL)
- return NULL;
+ /* optional */
+ if (GNC_WINDOW_GET_IFACE (window)->get_progressbar == NULL)
+ return NULL;
- return GNC_WINDOW_GET_IFACE (window)->get_progressbar (window);
+ return GNC_WINDOW_GET_IFACE (window)->get_progressbar (window);
}
/************************************************************
@@ -105,26 +107,26 @@
void
gnc_window_update_status (GncWindow *window, GncPluginPage *page)
{
- GtkWidget *statusbar;
- const gchar *message;
+ GtkWidget *statusbar;
+ const gchar *message;
- g_return_if_fail(GNC_WINDOW (window));
+ g_return_if_fail(GNC_WINDOW (window));
- statusbar = gnc_window_get_statusbar (window);
- message = gnc_plugin_page_get_statusbar_text(page);
- gtk_statusbar_pop(GTK_STATUSBAR(statusbar), 0);
- gtk_statusbar_push(GTK_STATUSBAR(statusbar), 0, message ? message : "");
+ statusbar = gnc_window_get_statusbar (window);
+ message = gnc_plugin_page_get_statusbar_text(page);
+ gtk_statusbar_pop(GTK_STATUSBAR(statusbar), 0);
+ gtk_statusbar_push(GTK_STATUSBAR(statusbar), 0, message ? message : "");
}
void
-gnc_window_set_status (GncWindow *window, GncPluginPage *page,
+gnc_window_set_status (GncWindow *window, GncPluginPage *page,
const gchar *message)
{
- g_return_if_fail(GNC_WINDOW (window));
- g_return_if_fail(GNC_PLUGIN_PAGE (page));
+ g_return_if_fail(GNC_WINDOW (window));
+ g_return_if_fail(GNC_PLUGIN_PAGE (page));
- gnc_plugin_page_set_statusbar_text(page, message);
- gnc_window_update_status (window, page);
+ gnc_plugin_page_set_statusbar_text(page, message);
+ gnc_window_update_status (window, page);
}
/************************************************************
@@ -144,59 +146,67 @@
void
gnc_window_set_progressbar_window (GncWindow *window)
{
- if (window != NULL) {
- g_return_if_fail(GNC_WINDOW (window));
- }
+ if (window != NULL)
+ {
+ g_return_if_fail(GNC_WINDOW (window));
+ }
- progress_bar_hack_window = window;
+ progress_bar_hack_window = window;
}
GncWindow *
gnc_window_get_progressbar_window (void)
{
- return progress_bar_hack_window;
+ return progress_bar_hack_window;
}
void
gnc_window_show_progress (const char *message, double percentage)
{
- GncWindow *window;
- GtkWidget *progressbar;
+ GncWindow *window;
+ GtkWidget *progressbar;
- window = progress_bar_hack_window;
- if (window == NULL)
- return;
+ window = progress_bar_hack_window;
+ if (window == NULL)
+ return;
- progressbar = gnc_window_get_progressbar (window);
- if (progressbar == NULL) {
- DEBUG( "no progressbar in hack-window" );
- return;
- }
+ progressbar = gnc_window_get_progressbar (window);
+ if (progressbar == NULL)
+ {
+ DEBUG( "no progressbar in hack-window" );
+ return;
+ }
- gnc_update_splash_screen(message, percentage);
+ gnc_update_splash_screen(message, percentage);
- if (percentage < 0) {
- gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), " ");
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), 0.0);
- if (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL)
- GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, TRUE);
- } else {
- if (message)
- gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), message);
- if ((percentage == 0) &&
- (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL))
- GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, FALSE);
- if (percentage <= 100) {
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar),
- percentage/100);
- } else {
- gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progressbar));
+ if (percentage < 0)
+ {
+ gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), " ");
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), 0.0);
+ if (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL)
+ GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, TRUE);
}
- }
+ else
+ {
+ if (message)
+ gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), message);
+ if ((percentage == 0) &&
+ (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL))
+ GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, FALSE);
+ if (percentage <= 100)
+ {
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar),
+ percentage / 100);
+ }
+ else
+ {
+ gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progressbar));
+ }
+ }
- /* make sure new text is up */
- while (gtk_events_pending ())
- gtk_main_iteration ();
+ /* make sure new text is up */
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
}
Modified: gnucash/trunk/src/gnome-utils/gnc-window.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-window.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnc-window.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/*
+/*
* gnc-window.h -- structure which represents a GnuCash window.
*
* Copyright (C) 2003 Jan Arne Petersen <jpetersen at uni-bonn.de>
@@ -55,14 +55,15 @@
/* typedefs & structures */
typedef struct GncWindow GncWindow; /* dummy typedef */
-typedef struct {
- GTypeInterface parent;
+typedef struct
+{
+ GTypeInterface parent;
- /* Virtual Table */
- GtkWindow * (* get_gtk_window) (GncWindow *window);
- GtkWidget * (* get_statusbar) (GncWindow *window);
- GtkWidget * (* get_progressbar) (GncWindow *window);
- void (* ui_set_sensitive) (GncWindow *window, gboolean sensitive);
+ /* Virtual Table */
+ GtkWindow * (* get_gtk_window) (GncWindow *window);
+ GtkWidget * (* get_statusbar) (GncWindow *window);
+ GtkWidget * (* get_progressbar) (GncWindow *window);
+ void (* ui_set_sensitive) (GncWindow *window, gboolean sensitive);
} GncWindowIface;
/* function prototypes */
Modified: gnucash/trunk/src/gnome-utils/gnctreemodelsort.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnctreemodelsort.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnctreemodelsort.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -67,42 +67,43 @@
struct _SortElt
{
- GtkTreeIter iter;
- SortLevel *children;
- gint offset;
- gint ref_count;
- gint zero_ref_count;
+ GtkTreeIter iter;
+ SortLevel *children;
+ gint offset;
+ gint ref_count;
+ gint zero_ref_count;
};
struct _SortLevel
{
- GArray *array;
- gint ref_count;
- SortElt *parent_elt;
- SortLevel *parent_level;
+ GArray *array;
+ gint ref_count;
+ SortElt *parent_elt;
+ SortLevel *parent_level;
};
struct _SortData
{
- GncTreeModelSort *tree_model_sort;
- GtkTreePath *parent_path;
- gint parent_path_depth;
- gint *parent_path_indices;
- GtkTreeIterCompareFunc sort_func;
- gpointer sort_data;
+ GncTreeModelSort *tree_model_sort;
+ GtkTreePath *parent_path;
+ gint parent_path_depth;
+ gint *parent_path_indices;
+ GtkTreeIterCompareFunc sort_func;
+ gpointer sort_data;
};
struct _SortTuple
{
- SortElt *elt;
- gint offset;
+ SortElt *elt;
+ gint offset;
};
/* Properties */
-enum {
- PROP_0,
- /* Construct args */
- PROP_MODEL
+enum
+{
+ PROP_0,
+ /* Construct args */
+ PROP_MODEL
};
@@ -126,260 +127,260 @@
static void gnc_tree_model_sort_drag_source_init (GtkTreeDragSourceIface*iface);
static void gnc_tree_model_sort_finalize (GObject *object);
static void gnc_tree_model_sort_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
static void gnc_tree_model_sort_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
/* our signal handlers */
static void gnc_tree_model_sort_row_changed (GtkTreeModel *model,
- GtkTreePath *start_path,
- GtkTreeIter *start_iter,
- gpointer data);
+ GtkTreePath *start_path,
+ GtkTreeIter *start_iter,
+ gpointer data);
static void gnc_tree_model_sort_row_inserted (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer data);
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data);
static void gnc_tree_model_sort_row_has_child_toggled (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer data);
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data);
static void gnc_tree_model_sort_row_deleted (GtkTreeModel *model,
- GtkTreePath *path,
- gpointer data);
+ GtkTreePath *path,
+ gpointer data);
static void gnc_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gint *new_order,
- gpointer data);
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gint *new_order,
+ gpointer data);
/* TreeModel interface */
static GtkTreeModelFlags gnc_tree_model_sort_get_flags (GtkTreeModel *tree_model);
static gint gnc_tree_model_sort_get_n_columns (GtkTreeModel *tree_model);
static GType gnc_tree_model_sort_get_column_type (GtkTreeModel *tree_model,
- gint index);
+ gint index);
static gboolean gnc_tree_model_sort_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path);
+ GtkTreeIter *iter,
+ GtkTreePath *path);
static GtkTreePath *gnc_tree_model_sort_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static void gnc_tree_model_sort_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gint column,
- GValue *value);
+ GtkTreeIter *iter,
+ gint column,
+ GValue *value);
static gboolean gnc_tree_model_sort_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_sort_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
static gboolean gnc_tree_model_sort_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gint gnc_tree_model_sort_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static gboolean gnc_tree_model_sort_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- gint n);
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ gint n);
static gboolean gnc_tree_model_sort_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child);
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
static void gnc_tree_model_sort_ref_node (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
static void gnc_tree_model_sort_real_unref_node (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gboolean propagate_unref);
+ GtkTreeIter *iter,
+ gboolean propagate_unref);
static void gnc_tree_model_sort_unref_node (GtkTreeModel *tree_model,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
/* TreeDragSource interface */
static gboolean gnc_tree_model_sort_row_draggable (GtkTreeDragSource *drag_source,
- GtkTreePath *path);
+ GtkTreePath *path);
static gboolean gnc_tree_model_sort_drag_data_get (GtkTreeDragSource *drag_source,
- GtkTreePath *path,
- GtkSelectionData *selection_data);
+ GtkTreePath *path,
+ GtkSelectionData *selection_data);
static gboolean gnc_tree_model_sort_drag_data_delete (GtkTreeDragSource *drag_source,
- GtkTreePath *path);
+ GtkTreePath *path);
/* TreeSortable interface */
static gboolean gnc_tree_model_sort_get_sort_column_id (GtkTreeSortable *sortable,
- gint *sort_column_id,
- GtkSortType *order);
+ gint *sort_column_id,
+ GtkSortType *order);
static void gnc_tree_model_sort_set_sort_column_id (GtkTreeSortable *sortable,
- gint sort_column_id,
- GtkSortType order);
+ gint sort_column_id,
+ GtkSortType order);
static void gnc_tree_model_sort_set_sort_func (GtkTreeSortable *sortable,
- gint sort_column_id,
- GtkTreeIterCompareFunc func,
- gpointer data,
- GtkDestroyNotify destroy);
+ gint sort_column_id,
+ GtkTreeIterCompareFunc func,
+ gpointer data,
+ GtkDestroyNotify destroy);
static void gnc_tree_model_sort_set_default_sort_func (GtkTreeSortable *sortable,
- GtkTreeIterCompareFunc func,
- gpointer data,
- GtkDestroyNotify destroy);
+ GtkTreeIterCompareFunc func,
+ gpointer data,
+ GtkDestroyNotify destroy);
static gboolean gnc_tree_model_sort_has_default_sort_func (GtkTreeSortable *sortable);
/* Private functions (sort funcs, level handling and other utils) */
static void gnc_tree_model_sort_build_level (GncTreeModelSort *tree_model_sort,
- SortLevel *parent_level,
- SortElt *parent_elt);
+ SortLevel *parent_level,
+ SortElt *parent_elt);
static void gnc_tree_model_sort_free_level (GncTreeModelSort *tree_model_sort,
- SortLevel *sort_level);
+ SortLevel *sort_level);
static void gnc_tree_model_sort_increment_stamp (GncTreeModelSort *tree_model_sort);
static void gnc_tree_model_sort_sort_level (GncTreeModelSort *tree_model_sort,
- SortLevel *level,
- gboolean recurse,
- gboolean emit_reordered);
+ SortLevel *level,
+ gboolean recurse,
+ gboolean emit_reordered);
static void gnc_tree_model_sort_sort (GncTreeModelSort *tree_model_sort);
static gint gnc_tree_model_sort_level_find_insert (GncTreeModelSort *tree_model_sort,
- SortLevel *level,
- GtkTreeIter *iter,
- gint skip_index);
+ SortLevel *level,
+ GtkTreeIter *iter,
+ gint skip_index);
static gboolean gnc_tree_model_sort_insert_value (GncTreeModelSort *tree_model_sort,
- SortLevel *level,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter);
+ SortLevel *level,
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter);
static GtkTreePath *gnc_tree_model_sort_elt_get_path (SortLevel *level,
- SortElt *elt);
+ SortElt *elt);
static void gnc_tree_model_sort_set_model (GncTreeModelSort *tree_model_sort,
- GtkTreeModel *child_model);
+ GtkTreeModel *child_model);
static GtkTreePath *gtk_real_tree_model_sort_convert_child_path_to_path (GncTreeModelSort *tree_model_sort,
- GtkTreePath *child_path,
- gboolean build_levels);
+ GtkTreePath *child_path,
+ gboolean build_levels);
static GObjectClass *parent_class = NULL;
GType
gnc_tree_model_sort_get_type (void)
{
- static GType tree_model_sort_type = 0;
+ static GType tree_model_sort_type = 0;
- if (!tree_model_sort_type)
+ if (!tree_model_sort_type)
{
- static const GTypeInfo tree_model_sort_info =
- {
- sizeof (GncTreeModelSortClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gnc_tree_model_sort_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GncTreeModelSort),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gnc_tree_model_sort_init
- };
+ static const GTypeInfo tree_model_sort_info =
+ {
+ sizeof (GncTreeModelSortClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gnc_tree_model_sort_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GncTreeModelSort),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_tree_model_sort_init
+ };
- static const GInterfaceInfo tree_model_info =
- {
- (GInterfaceInitFunc) gnc_tree_model_sort_tree_model_init,
- NULL,
- NULL
- };
+ static const GInterfaceInfo tree_model_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_sort_tree_model_init,
+ NULL,
+ NULL
+ };
- static const GInterfaceInfo sortable_info =
- {
- (GInterfaceInitFunc) gnc_tree_model_sort_tree_sortable_init,
- NULL,
- NULL
- };
+ static const GInterfaceInfo sortable_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_sort_tree_sortable_init,
+ NULL,
+ NULL
+ };
- static const GInterfaceInfo drag_source_info =
- {
- (GInterfaceInitFunc) gnc_tree_model_sort_drag_source_init,
- NULL,
- NULL
- };
+ static const GInterfaceInfo drag_source_info =
+ {
+ (GInterfaceInitFunc) gnc_tree_model_sort_drag_source_init,
+ NULL,
+ NULL
+ };
- tree_model_sort_type =
- g_type_register_static (G_TYPE_OBJECT, "GncTreeModelSort",
- &tree_model_sort_info, 0);
+ tree_model_sort_type =
+ g_type_register_static (G_TYPE_OBJECT, "GncTreeModelSort",
+ &tree_model_sort_info, 0);
- g_type_add_interface_static (tree_model_sort_type,
- GTK_TYPE_TREE_MODEL,
- &tree_model_info);
+ g_type_add_interface_static (tree_model_sort_type,
+ GTK_TYPE_TREE_MODEL,
+ &tree_model_info);
- g_type_add_interface_static (tree_model_sort_type,
- GTK_TYPE_TREE_SORTABLE,
- &sortable_info);
+ g_type_add_interface_static (tree_model_sort_type,
+ GTK_TYPE_TREE_SORTABLE,
+ &sortable_info);
- g_type_add_interface_static (tree_model_sort_type,
- GTK_TYPE_TREE_DRAG_SOURCE,
- &drag_source_info);
+ g_type_add_interface_static (tree_model_sort_type,
+ GTK_TYPE_TREE_DRAG_SOURCE,
+ &drag_source_info);
}
- return tree_model_sort_type;
+ return tree_model_sort_type;
}
static void
gnc_tree_model_sort_init (GncTreeModelSort *tree_model_sort)
{
- tree_model_sort->sort_column_id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
- tree_model_sort->stamp = 0;
- tree_model_sort->zero_ref_count = 0;
- tree_model_sort->root = NULL;
- tree_model_sort->sort_list = NULL;
+ tree_model_sort->sort_column_id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
+ tree_model_sort->stamp = 0;
+ tree_model_sort->zero_ref_count = 0;
+ tree_model_sort->root = NULL;
+ tree_model_sort->sort_list = NULL;
}
static void
gnc_tree_model_sort_class_init (GncTreeModelSortClass *class)
{
- GObjectClass *object_class;
+ GObjectClass *object_class;
- object_class = (GObjectClass *) class;
- parent_class = g_type_class_peek_parent (class);
+ object_class = (GObjectClass *) class;
+ parent_class = g_type_class_peek_parent (class);
- object_class->set_property = gnc_tree_model_sort_set_property;
- object_class->get_property = gnc_tree_model_sort_get_property;
+ object_class->set_property = gnc_tree_model_sort_set_property;
+ object_class->get_property = gnc_tree_model_sort_get_property;
- object_class->finalize = gnc_tree_model_sort_finalize;
+ object_class->finalize = gnc_tree_model_sort_finalize;
- /* Properties */
- g_object_class_install_property (object_class,
- PROP_MODEL,
- g_param_spec_object ("model",
- P_("TreeModelSort Model"),
- P_("The model for the TreeModelSort to sort"),
- GTK_TYPE_TREE_MODEL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /* Properties */
+ g_object_class_install_property (object_class,
+ PROP_MODEL,
+ g_param_spec_object ("model",
+ P_("TreeModelSort Model"),
+ P_("The model for the TreeModelSort to sort"),
+ GTK_TYPE_TREE_MODEL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
}
static void
gnc_tree_model_sort_tree_model_init (GtkTreeModelIface *iface)
{
- iface->get_flags = gnc_tree_model_sort_get_flags;
- iface->get_n_columns = gnc_tree_model_sort_get_n_columns;
- iface->get_column_type = gnc_tree_model_sort_get_column_type;
- iface->get_iter = gnc_tree_model_sort_get_iter;
- iface->get_path = gnc_tree_model_sort_get_path;
- iface->get_value = gnc_tree_model_sort_get_value;
- iface->iter_next = gnc_tree_model_sort_iter_next;
- iface->iter_children = gnc_tree_model_sort_iter_children;
- iface->iter_has_child = gnc_tree_model_sort_iter_has_child;
- iface->iter_n_children = gnc_tree_model_sort_iter_n_children;
- iface->iter_nth_child = gnc_tree_model_sort_iter_nth_child;
- iface->iter_parent = gnc_tree_model_sort_iter_parent;
- iface->ref_node = gnc_tree_model_sort_ref_node;
- iface->unref_node = gnc_tree_model_sort_unref_node;
+ iface->get_flags = gnc_tree_model_sort_get_flags;
+ iface->get_n_columns = gnc_tree_model_sort_get_n_columns;
+ iface->get_column_type = gnc_tree_model_sort_get_column_type;
+ iface->get_iter = gnc_tree_model_sort_get_iter;
+ iface->get_path = gnc_tree_model_sort_get_path;
+ iface->get_value = gnc_tree_model_sort_get_value;
+ iface->iter_next = gnc_tree_model_sort_iter_next;
+ iface->iter_children = gnc_tree_model_sort_iter_children;
+ iface->iter_has_child = gnc_tree_model_sort_iter_has_child;
+ iface->iter_n_children = gnc_tree_model_sort_iter_n_children;
+ iface->iter_nth_child = gnc_tree_model_sort_iter_nth_child;
+ iface->iter_parent = gnc_tree_model_sort_iter_parent;
+ iface->ref_node = gnc_tree_model_sort_ref_node;
+ iface->unref_node = gnc_tree_model_sort_unref_node;
}
static void
gnc_tree_model_sort_tree_sortable_init (GtkTreeSortableIface *iface)
{
- iface->get_sort_column_id = gnc_tree_model_sort_get_sort_column_id;
- iface->set_sort_column_id = gnc_tree_model_sort_set_sort_column_id;
- iface->set_sort_func = gnc_tree_model_sort_set_sort_func;
- iface->set_default_sort_func = gnc_tree_model_sort_set_default_sort_func;
- iface->has_default_sort_func = gnc_tree_model_sort_has_default_sort_func;
+ iface->get_sort_column_id = gnc_tree_model_sort_get_sort_column_id;
+ iface->set_sort_column_id = gnc_tree_model_sort_set_sort_column_id;
+ iface->set_sort_func = gnc_tree_model_sort_set_sort_func;
+ iface->set_default_sort_func = gnc_tree_model_sort_set_default_sort_func;
+ iface->has_default_sort_func = gnc_tree_model_sort_has_default_sort_func;
}
static void
gnc_tree_model_sort_drag_source_init (GtkTreeDragSourceIface *iface)
{
- iface->row_draggable = gnc_tree_model_sort_row_draggable;
- iface->drag_data_delete = gnc_tree_model_sort_drag_data_delete;
- iface->drag_data_get = gnc_tree_model_sort_drag_data_get;
+ iface->row_draggable = gnc_tree_model_sort_row_draggable;
+ iface->drag_data_delete = gnc_tree_model_sort_drag_data_delete;
+ iface->drag_data_get = gnc_tree_model_sort_drag_data_get;
}
/**
@@ -393,1103 +394,1103 @@
GtkTreeModel *
gnc_tree_model_sort_new_with_model (GtkTreeModel *child_model)
{
- GtkTreeModel *retval;
+ GtkTreeModel *retval;
- g_return_val_if_fail (GTK_IS_TREE_MODEL (child_model), NULL);
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (child_model), NULL);
- retval = g_object_new (gnc_tree_model_sort_get_type (), NULL);
+ retval = g_object_new (gnc_tree_model_sort_get_type (), NULL);
- gnc_tree_model_sort_set_model (GNC_TREE_MODEL_SORT (retval), child_model);
+ gnc_tree_model_sort_set_model (GNC_TREE_MODEL_SORT (retval), child_model);
- return retval;
+ return retval;
}
/* GObject callbacks */
static void
gnc_tree_model_sort_finalize (GObject *object)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) object;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) object;
- gnc_tree_model_sort_set_model (tree_model_sort, NULL);
+ gnc_tree_model_sort_set_model (tree_model_sort, NULL);
- if (tree_model_sort->root)
- gnc_tree_model_sort_free_level (tree_model_sort, tree_model_sort->root);
+ if (tree_model_sort->root)
+ gnc_tree_model_sort_free_level (tree_model_sort, tree_model_sort->root);
- if (tree_model_sort->sort_list)
+ if (tree_model_sort->sort_list)
{
- _gtk_tree_data_list_header_free (tree_model_sort->sort_list);
- tree_model_sort->sort_list = NULL;
+ _gtk_tree_data_list_header_free (tree_model_sort->sort_list);
+ tree_model_sort->sort_list = NULL;
}
- /* must chain up */
- parent_class->finalize (object);
+ /* must chain up */
+ parent_class->finalize (object);
}
static void
gnc_tree_model_sort_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (object);
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (object);
- switch (prop_id)
+ switch (prop_id)
{
case PROP_MODEL:
- gnc_tree_model_sort_set_model (tree_model_sort, g_value_get_object (value));
- break;
+ gnc_tree_model_sort_set_model (tree_model_sort, g_value_get_object (value));
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
}
static void
gnc_tree_model_sort_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (object);
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (object);
- switch (prop_id)
+ switch (prop_id)
{
case PROP_MODEL:
- g_value_set_object (value, gnc_tree_model_sort_get_model(tree_model_sort));
- break;
+ g_value_set_object (value, gnc_tree_model_sort_get_model(tree_model_sort));
+ break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
}
static void
gnc_tree_model_sort_row_changed (GtkTreeModel *s_model,
- GtkTreePath *start_s_path,
- GtkTreeIter *start_s_iter,
- gpointer data)
+ GtkTreePath *start_s_path,
+ GtkTreeIter *start_s_iter,
+ gpointer data)
{
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
- GtkTreePath *path = NULL;
- GtkTreeIter iter;
- GtkTreeIter tmpiter;
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
+ GtkTreePath *path = NULL;
+ GtkTreeIter iter;
+ GtkTreeIter tmpiter;
- SortElt tmp;
- SortElt *elt;
- SortLevel *level;
+ SortElt tmp;
+ SortElt *elt;
+ SortLevel *level;
- gboolean free_s_path = FALSE;
+ gboolean free_s_path = FALSE;
- gint index = 0, old_index, i;
+ gint index = 0, old_index, i;
- g_return_if_fail (start_s_path != NULL || start_s_iter != NULL);
+ g_return_if_fail (start_s_path != NULL || start_s_iter != NULL);
- if (!start_s_path)
+ if (!start_s_path)
{
- free_s_path = TRUE;
- start_s_path = gtk_tree_model_get_path (s_model, start_s_iter);
+ free_s_path = TRUE;
+ start_s_path = gtk_tree_model_get_path (s_model, start_s_iter);
}
- path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort,
- start_s_path,
- FALSE);
- if (!path)
+ path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort,
+ start_s_path,
+ FALSE);
+ if (!path)
{
- if (free_s_path)
- gtk_tree_path_free (start_s_path);
- return;
+ if (free_s_path)
+ gtk_tree_path_free (start_s_path);
+ return;
}
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- level = iter.user_data;
- elt = iter.user_data2;
+ level = iter.user_data;
+ elt = iter.user_data2;
- level->ref_count++;
+ level->ref_count++;
- if (level->array->len < 2 ||
- (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
- tree_model_sort->default_sort_func == NO_SORT_FUNC))
+ if (level->array->len < 2 ||
+ (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
+ tree_model_sort->default_sort_func == NO_SORT_FUNC))
{
- if (free_s_path)
- gtk_tree_path_free (start_s_path);
+ if (free_s_path)
+ gtk_tree_path_free (start_s_path);
- gtk_tree_model_row_changed (GTK_TREE_MODEL (data), path, &iter);
+ gtk_tree_model_row_changed (GTK_TREE_MODEL (data), path, &iter);
- gtk_tree_path_free (path);
+ gtk_tree_path_free (path);
- level->ref_count--;
+ level->ref_count--;
- return;
+ return;
}
- if (!GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ if (!GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
{
- gtk_tree_model_get_iter (tree_model_sort->child_model,
- &tmpiter, start_s_path);
+ gtk_tree_model_get_iter (tree_model_sort->child_model,
+ &tmpiter, start_s_path);
}
- old_index = elt - SORT_ELT (level->array->data);
+ old_index = elt - SORT_ELT (level->array->data);
- memcpy (&tmp, elt, sizeof (SortElt));
+ memcpy (&tmp, elt, sizeof (SortElt));
- if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
- index = gnc_tree_model_sort_level_find_insert (tree_model_sort,
- level,
- &tmp.iter,
- old_index);
- else
- index = gnc_tree_model_sort_level_find_insert (tree_model_sort,
- level,
- &tmpiter,
- old_index);
+ if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ index = gnc_tree_model_sort_level_find_insert (tree_model_sort,
+ level,
+ &tmp.iter,
+ old_index);
+ else
+ index = gnc_tree_model_sort_level_find_insert (tree_model_sort,
+ level,
+ &tmpiter,
+ old_index);
- if (index < old_index)
+ if (index < old_index)
{
- g_memmove (level->array->data + ((index + 1)*sizeof (SortElt)),
- level->array->data + ((index)*sizeof (SortElt)),
- (old_index - index)* sizeof(SortElt));
+ g_memmove (level->array->data + ((index + 1)*sizeof (SortElt)),
+ level->array->data + ((index)*sizeof (SortElt)),
+ (old_index - index)* sizeof(SortElt));
}
- else if (index > old_index)
+ else if (index > old_index)
{
- g_memmove (level->array->data + ((old_index)*sizeof (SortElt)),
- level->array->data + ((old_index + 1)*sizeof (SortElt)),
- (index - old_index)* sizeof(SortElt));
+ g_memmove (level->array->data + ((old_index)*sizeof (SortElt)),
+ level->array->data + ((old_index + 1)*sizeof (SortElt)),
+ (index - old_index)* sizeof(SortElt));
}
- memcpy (level->array->data + ((index)*sizeof (SortElt)),
- &tmp, sizeof (SortElt));
+ memcpy (level->array->data + ((index)*sizeof (SortElt)),
+ &tmp, sizeof (SortElt));
- for (i = 0; i < level->array->len; i++)
- if (g_array_index (level->array, SortElt, i).children)
- g_array_index (level->array, SortElt, i).children->parent_elt = &g_array_index (level->array, SortElt, i);
+ for (i = 0; i < level->array->len; i++)
+ if (g_array_index (level->array, SortElt, i).children)
+ g_array_index (level->array, SortElt, i).children->parent_elt = &g_array_index (level->array, SortElt, i);
- gtk_tree_path_up (path);
- gtk_tree_path_append_index (path, index);
+ gtk_tree_path_up (path);
+ gtk_tree_path_append_index (path, index);
- gnc_tree_model_sort_increment_stamp (tree_model_sort);
+ gnc_tree_model_sort_increment_stamp (tree_model_sort);
- /* if the item moved, then emit rows_reordered */
- if (old_index != index)
+ /* if the item moved, then emit rows_reordered */
+ if (old_index != index)
{
- gint *new_order;
- gint j;
+ gint *new_order;
+ gint j;
- GtkTreePath *tmppath;
+ GtkTreePath *tmppath;
- new_order = g_new (gint, level->array->len);
+ new_order = g_new (gint, level->array->len);
- for (j = 0; j < level->array->len; j++)
+ for (j = 0; j < level->array->len; j++)
{
- if (index > old_index)
- {
- if (j == index)
- new_order[j] = old_index;
- else if (j >= old_index && j < index)
- new_order[j] = j + 1;
- else
- new_order[j] = j;
- }
- else if (index < old_index)
- {
- if (j == index)
- new_order[j] = old_index;
- else if (j > index && j <= old_index)
- new_order[j] = j - 1;
- else
- new_order[j] = j;
- }
- /* else? shouldn't really happen */
- }
+ if (index > old_index)
+ {
+ if (j == index)
+ new_order[j] = old_index;
+ else if (j >= old_index && j < index)
+ new_order[j] = j + 1;
+ else
+ new_order[j] = j;
+ }
+ else if (index < old_index)
+ {
+ if (j == index)
+ new_order[j] = old_index;
+ else if (j > index && j <= old_index)
+ new_order[j] = j - 1;
+ else
+ new_order[j] = j;
+ }
+ /* else? shouldn't really happen */
+ }
- if (level->parent_elt)
+ if (level->parent_elt)
{
- iter.stamp = tree_model_sort->stamp;
- iter.user_data = level->parent_level;
- iter.user_data2 = level->parent_elt;
+ iter.stamp = tree_model_sort->stamp;
+ iter.user_data = level->parent_level;
+ iter.user_data2 = level->parent_elt;
- tmppath = gtk_tree_model_get_path (GTK_TREE_MODEL (tree_model_sort), &iter);
+ tmppath = gtk_tree_model_get_path (GTK_TREE_MODEL (tree_model_sort), &iter);
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
- tmppath, &iter, new_order);
- }
- else
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
+ tmppath, &iter, new_order);
+ }
+ else
{
- /* toplevel */
- tmppath = gtk_tree_path_new ();
+ /* toplevel */
+ tmppath = gtk_tree_path_new ();
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort), tmppath,
- NULL, new_order);
- }
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort), tmppath,
+ NULL, new_order);
+ }
- gtk_tree_path_free (tmppath);
- g_free (new_order);
+ gtk_tree_path_free (tmppath);
+ g_free (new_order);
}
- level->ref_count--;
+ level->ref_count--;
- /* emit row_changed signal (at new location) */
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- gtk_tree_model_row_changed (GTK_TREE_MODEL (data), path, &iter);
+ /* emit row_changed signal (at new location) */
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ gtk_tree_model_row_changed (GTK_TREE_MODEL (data), path, &iter);
- gtk_tree_path_free (path);
- if (free_s_path)
- gtk_tree_path_free (start_s_path);
+ gtk_tree_path_free (path);
+ if (free_s_path)
+ gtk_tree_path_free (start_s_path);
}
static void
gnc_tree_model_sort_row_inserted (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gpointer data)
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gpointer data)
{
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
- GtkTreePath *path;
- GtkTreeIter iter;
- GtkTreeIter real_s_iter;
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ GtkTreeIter real_s_iter;
- gint i = 0;
+ gint i = 0;
- gboolean free_s_path = FALSE;
+ gboolean free_s_path = FALSE;
- SortElt *elt;
- SortLevel *level;
- SortLevel *parent_level = NULL;
+ SortElt *elt;
+ SortLevel *level;
+ SortLevel *parent_level = NULL;
- parent_level = level = SORT_LEVEL (tree_model_sort->root);
+ parent_level = level = SORT_LEVEL (tree_model_sort->root);
- g_return_if_fail (s_path != NULL || s_iter != NULL);
+ g_return_if_fail (s_path != NULL || s_iter != NULL);
- if (!s_path)
+ if (!s_path)
{
- s_path = gtk_tree_model_get_path (s_model, s_iter);
- free_s_path = TRUE;
+ s_path = gtk_tree_model_get_path (s_model, s_iter);
+ free_s_path = TRUE;
}
- if (!s_iter)
- gtk_tree_model_get_iter (s_model, &real_s_iter, s_path);
- else
- real_s_iter = *s_iter;
+ if (!s_iter)
+ gtk_tree_model_get_iter (s_model, &real_s_iter, s_path);
+ else
+ real_s_iter = *s_iter;
- if (!tree_model_sort->root)
+ if (!tree_model_sort->root)
{
- gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
+ gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
- /* the build level already put the inserted iter in the level,
- so no need to handle this signal anymore */
+ /* the build level already put the inserted iter in the level,
+ so no need to handle this signal anymore */
- goto done_and_submit;
+ goto done_and_submit;
}
- /* find the parent level */
- while (i < gtk_tree_path_get_depth (s_path) - 1)
+ /* find the parent level */
+ while (i < gtk_tree_path_get_depth (s_path) - 1)
{
- gint j;
+ gint j;
- if (!level)
- {
- /* level not yet build, we won't cover this signal */
- goto done;
- }
+ if (!level)
+ {
+ /* level not yet build, we won't cover this signal */
+ goto done;
+ }
- if (level->array->len < gtk_tree_path_get_indices (s_path)[i])
- {
- g_warning ("A node was inserted with a parent that's not in the tree.\n"
- "This possibly means that a GtkTreeModel inserted a child node\n"
- "before the parent was inserted.");
- goto done;
- }
+ if (level->array->len < gtk_tree_path_get_indices (s_path)[i])
+ {
+ g_warning ("A node was inserted with a parent that's not in the tree.\n"
+ "This possibly means that a GtkTreeModel inserted a child node\n"
+ "before the parent was inserted.");
+ goto done;
+ }
- elt = NULL;
- for (j = 0; j < level->array->len; j++)
- if (g_array_index (level->array, SortElt, j).offset == gtk_tree_path_get_indices (s_path)[i])
- {
- elt = &g_array_index (level->array, SortElt, j);
- break;
- }
+ elt = NULL;
+ for (j = 0; j < level->array->len; j++)
+ if (g_array_index (level->array, SortElt, j).offset == gtk_tree_path_get_indices (s_path)[i])
+ {
+ elt = &g_array_index (level->array, SortElt, j);
+ break;
+ }
- g_return_if_fail (elt != NULL);
+ g_return_if_fail (elt != NULL);
- if (!elt->children)
- {
- GtkTreePath *tmppath;
- GtkTreeIter tmpiter;
+ if (!elt->children)
+ {
+ GtkTreePath *tmppath;
+ GtkTreeIter tmpiter;
- tmpiter.stamp = tree_model_sort->stamp;
- tmpiter.user_data = level;
- tmpiter.user_data2 = elt;
+ tmpiter.stamp = tree_model_sort->stamp;
+ tmpiter.user_data = level;
+ tmpiter.user_data2 = elt;
- tmppath = gtk_tree_model_get_path (GTK_TREE_MODEL (data), &tmpiter);
- if (tmppath)
- {
- gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (data),
- tmppath,
- &tmpiter);
- gtk_tree_path_free (tmppath);
- }
+ tmppath = gtk_tree_model_get_path (GTK_TREE_MODEL (data), &tmpiter);
+ if (tmppath)
+ {
+ gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (data),
+ tmppath,
+ &tmpiter);
+ gtk_tree_path_free (tmppath);
+ }
- /* not covering this signal */
- goto done;
- }
+ /* not covering this signal */
+ goto done;
+ }
- level = elt->children;
- parent_level = level;
- i++;
+ level = elt->children;
+ parent_level = level;
+ i++;
}
- if (!parent_level)
- goto done;
+ if (!parent_level)
+ goto done;
- if (level->ref_count == 0 && level != tree_model_sort->root)
+ if (level->ref_count == 0 && level != tree_model_sort->root)
{
- gnc_tree_model_sort_free_level (tree_model_sort, level);
- goto done;
+ gnc_tree_model_sort_free_level (tree_model_sort, level);
+ goto done;
}
- if (!gnc_tree_model_sort_insert_value (tree_model_sort,
- parent_level,
- s_path,
- &real_s_iter))
- goto done;
+ if (!gnc_tree_model_sort_insert_value (tree_model_sort,
+ parent_level,
+ s_path,
+ &real_s_iter))
+ goto done;
- done_and_submit:
- path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort,
- s_path,
- FALSE);
+done_and_submit:
+ path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort,
+ s_path,
+ FALSE);
- if (!path)
- return;
+ if (!path)
+ return;
- gnc_tree_model_sort_increment_stamp (tree_model_sort);
+ gnc_tree_model_sort_increment_stamp (tree_model_sort);
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- gtk_tree_model_row_inserted (GTK_TREE_MODEL (data), path, &iter);
- gtk_tree_path_free (path);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ gtk_tree_model_row_inserted (GTK_TREE_MODEL (data), path, &iter);
+ gtk_tree_path_free (path);
- done:
- if (free_s_path)
- gtk_tree_path_free (s_path);
+done:
+ if (free_s_path)
+ gtk_tree_path_free (s_path);
- return;
+ return;
}
static void
gnc_tree_model_sort_row_has_child_toggled (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gpointer data)
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gpointer data)
{
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
- GtkTreePath *path;
- GtkTreeIter iter;
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
+ GtkTreePath *path;
+ GtkTreeIter iter;
- g_return_if_fail (s_path != NULL && s_iter != NULL);
+ g_return_if_fail (s_path != NULL && s_iter != NULL);
- path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, s_path, FALSE);
- if (path == NULL)
- return;
+ path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, s_path, FALSE);
+ if (path == NULL)
+ return;
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (data), path, &iter);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (data), path, &iter);
- gtk_tree_path_free (path);
+ gtk_tree_path_free (path);
}
/* FIXME: I still have doubts if this works */
static void
gnc_tree_model_sort_row_deleted (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- gpointer data)
+ GtkTreePath *s_path,
+ gpointer data)
{
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
- GtkTreePath *path = NULL;
- SortElt *elt;
- SortLevel *level;
- GtkTreeIter iter;
- gint offset;
- gint i;
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
+ GtkTreePath *path = NULL;
+ SortElt *elt;
+ SortLevel *level;
+ GtkTreeIter iter;
+ gint offset;
+ gint i;
- g_return_if_fail (s_path != NULL);
+ g_return_if_fail (s_path != NULL);
- path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, s_path, FALSE);
- if (path == NULL)
- return;
+ path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, s_path, FALSE);
+ if (path == NULL)
+ return;
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- level = SORT_LEVEL (iter.user_data);
- elt = SORT_ELT (iter.user_data2);
- offset = elt->offset;
+ level = SORT_LEVEL (iter.user_data);
+ elt = SORT_ELT (iter.user_data2);
+ offset = elt->offset;
- /* we _need_ to emit ::row_deleted before we start unreffing the node
- * itself. This is because of the row refs, which start unreffing nodes
- * when we emit ::row_deleted
- */
- gtk_tree_model_row_deleted (GTK_TREE_MODEL (data), path);
+ /* we _need_ to emit ::row_deleted before we start unreffing the node
+ * itself. This is because of the row refs, which start unreffing nodes
+ * when we emit ::row_deleted
+ */
+ gtk_tree_model_row_deleted (GTK_TREE_MODEL (data), path);
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- while (elt->ref_count > 0)
- gnc_tree_model_sort_real_unref_node (GTK_TREE_MODEL (data), &iter, FALSE);
+ while (elt->ref_count > 0)
+ gnc_tree_model_sort_real_unref_node (GTK_TREE_MODEL (data), &iter, FALSE);
- if (level->ref_count == 0)
+ if (level->ref_count == 0)
{
- /* This will prune the level, so I can just emit the signal and
- * not worry about cleaning this level up.
- * Careful, root level is not cleaned up in increment stamp.
- */
- gnc_tree_model_sort_increment_stamp (tree_model_sort);
- gtk_tree_path_free (path);
- if (level == tree_model_sort->root)
- {
- gnc_tree_model_sort_free_level (tree_model_sort,
- tree_model_sort->root);
- tree_model_sort->root = NULL;
- }
- return;
+ /* This will prune the level, so I can just emit the signal and
+ * not worry about cleaning this level up.
+ * Careful, root level is not cleaned up in increment stamp.
+ */
+ gnc_tree_model_sort_increment_stamp (tree_model_sort);
+ gtk_tree_path_free (path);
+ if (level == tree_model_sort->root)
+ {
+ gnc_tree_model_sort_free_level (tree_model_sort,
+ tree_model_sort->root);
+ tree_model_sort->root = NULL;
+ }
+ return;
}
- gnc_tree_model_sort_increment_stamp (tree_model_sort);
+ gnc_tree_model_sort_increment_stamp (tree_model_sort);
- /* Remove the row */
- for (i = 0; i < level->array->len; i++)
- if (elt->offset == g_array_index (level->array, SortElt, i).offset)
- break;
+ /* Remove the row */
+ for (i = 0; i < level->array->len; i++)
+ if (elt->offset == g_array_index (level->array, SortElt, i).offset)
+ break;
- g_array_remove_index (level->array, i);
+ g_array_remove_index (level->array, i);
- /* update all offsets */
- for (i = 0; i < level->array->len; i++)
+ /* update all offsets */
+ for (i = 0; i < level->array->len; i++)
{
- elt = & (g_array_index (level->array, SortElt, i));
- if (elt->offset > offset)
- elt->offset--;
- if (elt->children)
- elt->children->parent_elt = elt;
+ elt = & (g_array_index (level->array, SortElt, i));
+ if (elt->offset > offset)
+ elt->offset--;
+ if (elt->children)
+ elt->children->parent_elt = elt;
}
- gtk_tree_path_free (path);
+ gtk_tree_path_free (path);
}
static void
gnc_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter,
- gint *new_order,
- gpointer data)
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter,
+ gint *new_order,
+ gpointer data)
{
- SortElt *elt;
- SortLevel *level;
- GtkTreeIter iter;
- gint *tmp_array;
- int i, j;
- GtkTreePath *path;
- GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
+ SortElt *elt;
+ SortLevel *level;
+ GtkTreeIter iter;
+ gint *tmp_array;
+ int i, j;
+ GtkTreePath *path;
+ GncTreeModelSort *tree_model_sort = GNC_TREE_MODEL_SORT (data);
- g_return_if_fail (new_order != NULL);
+ g_return_if_fail (new_order != NULL);
- if (s_path == NULL || gtk_tree_path_get_indices (s_path) == NULL)
+ if (s_path == NULL || gtk_tree_path_get_indices (s_path) == NULL)
{
- if (tree_model_sort->root == NULL)
- return;
- path = gtk_tree_path_new ();
- level = SORT_LEVEL (tree_model_sort->root);
+ if (tree_model_sort->root == NULL)
+ return;
+ path = gtk_tree_path_new ();
+ level = SORT_LEVEL (tree_model_sort->root);
}
- else
+ else
{
- path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, s_path, FALSE);
- if (path == NULL)
- return;
- gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
+ path = gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, s_path, FALSE);
+ if (path == NULL)
+ return;
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- level = SORT_LEVEL (iter.user_data);
- elt = SORT_ELT (iter.user_data2);
+ level = SORT_LEVEL (iter.user_data);
+ elt = SORT_ELT (iter.user_data2);
- if (!elt->children)
- {
- gtk_tree_path_free (path);
- return;
- }
+ if (!elt->children)
+ {
+ gtk_tree_path_free (path);
+ return;
+ }
- level = elt->children;
+ level = elt->children;
}
- if (level->array->len < 2)
+ if (level->array->len < 2)
{
- gtk_tree_path_free (path);
- return;
+ gtk_tree_path_free (path);
+ return;
}
- tmp_array = g_new (int, level->array->len);
- for (i = 0; i < level->array->len; i++)
+ tmp_array = g_new (int, level->array->len);
+ for (i = 0; i < level->array->len; i++)
{
- for (j = 0; j < level->array->len; j++)
- {
- if (g_array_index (level->array, SortElt, i).offset == new_order[j])
- tmp_array[i] = j;
- }
+ for (j = 0; j < level->array->len; j++)
+ {
+ if (g_array_index (level->array, SortElt, i).offset == new_order[j])
+ tmp_array[i] = j;
+ }
}
- for (i = 0; i < level->array->len; i++)
- g_array_index (level->array, SortElt, i).offset = tmp_array[i];
- g_free (tmp_array);
+ for (i = 0; i < level->array->len; i++)
+ g_array_index (level->array, SortElt, i).offset = tmp_array[i];
+ g_free (tmp_array);
- if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
- tree_model_sort->default_sort_func == NO_SORT_FUNC)
+ if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
+ tree_model_sort->default_sort_func == NO_SORT_FUNC)
{
- gnc_tree_model_sort_sort_level (tree_model_sort, level,
- FALSE, FALSE);
- gnc_tree_model_sort_increment_stamp (tree_model_sort);
+ gnc_tree_model_sort_sort_level (tree_model_sort, level,
+ FALSE, FALSE);
+ gnc_tree_model_sort_increment_stamp (tree_model_sort);
- if (gtk_tree_path_get_depth (path))
- {
- gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort),
- &iter,
- path);
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
- path, &iter, new_order);
- }
- else
- {
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
- path, NULL, new_order);
- }
+ if (gtk_tree_path_get_depth (path))
+ {
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort),
+ &iter,
+ path);
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
+ path, &iter, new_order);
+ }
+ else
+ {
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
+ path, NULL, new_order);
+ }
}
- gtk_tree_path_free (path);
+ gtk_tree_path_free (path);
}
/* Fulfill our model requirements */
static GtkTreeModelFlags
gnc_tree_model_sort_get_flags (GtkTreeModel *tree_model)
{
- GtkTreeModelFlags flags;
+ GtkTreeModelFlags flags;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), 0);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), 0);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, 0);
- flags = gtk_tree_model_get_flags (GNC_TREE_MODEL_SORT (tree_model)->child_model);
+ flags = gtk_tree_model_get_flags (GNC_TREE_MODEL_SORT (tree_model)->child_model);
- if ((flags & GTK_TREE_MODEL_LIST_ONLY) == GTK_TREE_MODEL_LIST_ONLY)
- return GTK_TREE_MODEL_LIST_ONLY;
+ if ((flags & GTK_TREE_MODEL_LIST_ONLY) == GTK_TREE_MODEL_LIST_ONLY)
+ return GTK_TREE_MODEL_LIST_ONLY;
- return 0;
+ return 0;
}
static gint
gnc_tree_model_sort_get_n_columns (GtkTreeModel *tree_model)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), 0);
- if (tree_model_sort->child_model == 0)
- return 0;
+ if (tree_model_sort->child_model == 0)
+ return 0;
- return gtk_tree_model_get_n_columns (tree_model_sort->child_model);
+ return gtk_tree_model_get_n_columns (tree_model_sort->child_model);
}
static GType
gnc_tree_model_sort_get_column_type (GtkTreeModel *tree_model,
gint index)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), G_TYPE_INVALID);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, G_TYPE_INVALID);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), G_TYPE_INVALID);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, G_TYPE_INVALID);
- return gtk_tree_model_get_column_type (GNC_TREE_MODEL_SORT (tree_model)->child_model, index);
+ return gtk_tree_model_get_column_type (GNC_TREE_MODEL_SORT (tree_model)->child_model, index);
}
static gboolean
gnc_tree_model_sort_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path)
+ GtkTreeIter *iter,
+ GtkTreePath *path)
{
- GncTreeModelSort *tree_model_sort;
- gint *indices;
- SortLevel *level;
- gint depth, i;
+ GncTreeModelSort *tree_model_sort;
+ gint *indices;
+ SortLevel *level;
+ gint depth, i;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
- tree_model_sort = (GncTreeModelSort *) tree_model;
- indices = gtk_tree_path_get_indices (path);
+ tree_model_sort = (GncTreeModelSort *) tree_model;
+ indices = gtk_tree_path_get_indices (path);
- if (tree_model_sort->root == NULL)
- gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
- level = SORT_LEVEL (tree_model_sort->root);
+ if (tree_model_sort->root == NULL)
+ gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
+ level = SORT_LEVEL (tree_model_sort->root);
- depth = gtk_tree_path_get_depth (path);
- if (depth == 0)
- return FALSE;
+ depth = gtk_tree_path_get_depth (path);
+ if (depth == 0)
+ return FALSE;
- for (i = 0; i < depth - 1; i++)
+ for (i = 0; i < depth - 1; i++)
{
- if ((level == NULL) ||
- (indices[i] >= level->array->len))
- return FALSE;
+ if ((level == NULL) ||
+ (indices[i] >= level->array->len))
+ return FALSE;
- if (g_array_index (level->array, SortElt, indices[i]).children == NULL)
- gnc_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, indices[i]));
- level = g_array_index (level->array, SortElt, indices[i]).children;
+ if (g_array_index (level->array, SortElt, indices[i]).children == NULL)
+ gnc_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, indices[i]));
+ level = g_array_index (level->array, SortElt, indices[i]).children;
}
- if (!level || indices[i] >= level->array->len)
+ if (!level || indices[i] >= level->array->len)
{
- iter->stamp = 0;
- return FALSE;
+ iter->stamp = 0;
+ return FALSE;
}
- iter->stamp = tree_model_sort->stamp;
- iter->user_data = level;
- iter->user_data2 = &g_array_index (level->array, SortElt, indices[depth - 1]);
+ iter->stamp = tree_model_sort->stamp;
+ iter->user_data = level;
+ iter->user_data2 = &g_array_index (level->array, SortElt, indices[depth - 1]);
- return TRUE;
+ return TRUE;
}
static GtkTreePath *
gnc_tree_model_sort_get_path (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GtkTreePath *retval;
- SortLevel *level;
- SortElt *elt;
+ GtkTreePath *retval;
+ SortLevel *level;
+ SortElt *elt;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), NULL);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, NULL);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), NULL);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, NULL);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, NULL);
- retval = gtk_tree_path_new ();
- level = iter->user_data;
- elt = iter->user_data2;
- while (level != NULL)
+ retval = gtk_tree_path_new ();
+ level = iter->user_data;
+ elt = iter->user_data2;
+ while (level != NULL)
{
- gtk_tree_path_prepend_index (retval, elt - (SortElt *)level->array->data);
+ gtk_tree_path_prepend_index (retval, elt - (SortElt *)level->array->data);
- elt = level->parent_elt;
- level = level->parent_level;
+ elt = level->parent_elt;
+ level = level->parent_level;
}
- return retval;
+ return retval;
}
static void
gnc_tree_model_sort_get_value (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gint column,
- GValue *value)
+ GtkTreeIter *iter,
+ gint column,
+ GValue *value)
{
- GtkTreeIter child_iter;
+ GtkTreeIter child_iter;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model));
- g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL);
- g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model));
+ g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL);
+ g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp);
- GET_CHILD_ITER (tree_model, &child_iter, iter);
- gtk_tree_model_get_value (GNC_TREE_MODEL_SORT (tree_model)->child_model,
- &child_iter, column, value);
+ GET_CHILD_ITER (tree_model, &child_iter, iter);
+ gtk_tree_model_get_value (GNC_TREE_MODEL_SORT (tree_model)->child_model,
+ &child_iter, column, value);
}
static gboolean
gnc_tree_model_sort_iter_next (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- SortLevel *level;
- SortElt *elt;
+ SortLevel *level;
+ SortElt *elt;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, FALSE);
- level = iter->user_data;
- elt = iter->user_data2;
+ level = iter->user_data;
+ elt = iter->user_data2;
- if (elt - (SortElt *)level->array->data >= level->array->len - 1)
+ if (elt - (SortElt *)level->array->data >= level->array->len - 1)
{
- iter->stamp = 0;
- return FALSE;
+ iter->stamp = 0;
+ return FALSE;
}
- iter->user_data2 = elt + 1;
+ iter->user_data2 = elt + 1;
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_tree_model_sort_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
- SortLevel *level;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
+ SortLevel *level;
- iter->stamp = 0;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
- g_return_val_if_fail (tree_model_sort->child_model != NULL, FALSE);
- if (parent) g_return_val_if_fail (tree_model_sort->stamp == parent->stamp, FALSE);
+ iter->stamp = 0;
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
+ g_return_val_if_fail (tree_model_sort->child_model != NULL, FALSE);
+ if (parent) g_return_val_if_fail (tree_model_sort->stamp == parent->stamp, FALSE);
- if (parent == NULL)
+ if (parent == NULL)
{
- if (tree_model_sort->root == NULL)
- gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
- if (tree_model_sort->root == NULL)
- return FALSE;
+ if (tree_model_sort->root == NULL)
+ gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
+ if (tree_model_sort->root == NULL)
+ return FALSE;
- level = tree_model_sort->root;
- iter->stamp = tree_model_sort->stamp;
- iter->user_data = level;
- iter->user_data2 = level->array->data;
+ level = tree_model_sort->root;
+ iter->stamp = tree_model_sort->stamp;
+ iter->user_data = level;
+ iter->user_data2 = level->array->data;
}
- else
+ else
{
- if (((SortElt *)parent->user_data2)->children == NULL)
- gnc_tree_model_sort_build_level (tree_model_sort,
- (SortLevel *)parent->user_data,
- (SortElt *)parent->user_data2);
- if (((SortElt *)parent->user_data2)->children == NULL)
- return FALSE;
- iter->stamp = tree_model_sort->stamp;
- iter->user_data = ((SortElt *)parent->user_data2)->children;
- iter->user_data2 = ((SortLevel *)iter->user_data)->array->data;
+ if (((SortElt *)parent->user_data2)->children == NULL)
+ gnc_tree_model_sort_build_level (tree_model_sort,
+ (SortLevel *)parent->user_data,
+ (SortElt *)parent->user_data2);
+ if (((SortElt *)parent->user_data2)->children == NULL)
+ return FALSE;
+ iter->stamp = tree_model_sort->stamp;
+ iter->user_data = ((SortElt *)parent->user_data2)->children;
+ iter->user_data2 = ((SortLevel *)iter->user_data)->array->data;
}
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_tree_model_sort_iter_has_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GtkTreeIter child_iter;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, FALSE);
- GET_CHILD_ITER (tree_model, &child_iter, iter);
+ GET_CHILD_ITER (tree_model, &child_iter, iter);
- return gtk_tree_model_iter_has_child (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
+ return gtk_tree_model_iter_has_child (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
}
static gint
gnc_tree_model_sort_iter_n_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GtkTreeIter child_iter;
+ GtkTreeIter child_iter;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), 0);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, 0);
- if (iter) g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, 0);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), 0);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, 0);
+ if (iter) g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp, 0);
- if (iter == NULL)
- return gtk_tree_model_iter_n_children (GNC_TREE_MODEL_SORT (tree_model)->child_model, NULL);
+ if (iter == NULL)
+ return gtk_tree_model_iter_n_children (GNC_TREE_MODEL_SORT (tree_model)->child_model, NULL);
- GET_CHILD_ITER (tree_model, &child_iter, iter);
+ GET_CHILD_ITER (tree_model, &child_iter, iter);
- return gtk_tree_model_iter_n_children (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
+ return gtk_tree_model_iter_n_children (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
}
static gboolean
gnc_tree_model_sort_iter_nth_child (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- gint n)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ gint n)
{
- SortLevel *level;
- /* We have this for the iter == parent case */
- GtkTreeIter children;
+ SortLevel *level;
+ /* We have this for the iter == parent case */
+ GtkTreeIter children;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
- if (parent) g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == parent->stamp, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
+ if (parent) g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == parent->stamp, FALSE);
- /* Use this instead of has_child to force us to build the level, if needed */
- if (gnc_tree_model_sort_iter_children (tree_model, &children, parent) == FALSE)
+ /* Use this instead of has_child to force us to build the level, if needed */
+ if (gnc_tree_model_sort_iter_children (tree_model, &children, parent) == FALSE)
{
- iter->stamp = 0;
- return FALSE;
+ iter->stamp = 0;
+ return FALSE;
}
- level = children.user_data;
- if (n >= level->array->len)
+ level = children.user_data;
+ if (n >= level->array->len)
{
- iter->stamp = 0;
- return FALSE;
+ iter->stamp = 0;
+ return FALSE;
}
- iter->stamp = GNC_TREE_MODEL_SORT (tree_model)->stamp;
- iter->user_data = level;
- iter->user_data2 = &g_array_index (level->array, SortElt, n);
+ iter->stamp = GNC_TREE_MODEL_SORT (tree_model)->stamp;
+ iter->user_data = level;
+ iter->user_data2 = &g_array_index (level->array, SortElt, n);
- return TRUE;
+ return TRUE;
}
static gboolean
gnc_tree_model_sort_iter_parent (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *child)
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
{
- SortLevel *level;
+ SortLevel *level;
- iter->stamp = 0;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
- g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == child->stamp, FALSE);
+ iter->stamp = 0;
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL, FALSE);
+ g_return_val_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == child->stamp, FALSE);
- level = child->user_data;
+ level = child->user_data;
- if (level->parent_level)
+ if (level->parent_level)
{
- iter->stamp = GNC_TREE_MODEL_SORT (tree_model)->stamp;
- iter->user_data = level->parent_level;
- iter->user_data2 = level->parent_elt;
+ iter->stamp = GNC_TREE_MODEL_SORT (tree_model)->stamp;
+ iter->user_data = level->parent_level;
+ iter->user_data2 = level->parent_elt;
- return TRUE;
+ return TRUE;
}
- return FALSE;
+ return FALSE;
}
static void
gnc_tree_model_sort_ref_node (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
- GtkTreeIter child_iter;
- SortLevel *level;
- SortElt *elt;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
+ GtkTreeIter child_iter;
+ SortLevel *level;
+ SortElt *elt;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model));
- g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL);
- g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model));
+ g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL);
+ g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp);
- GET_CHILD_ITER (tree_model, &child_iter, iter);
+ GET_CHILD_ITER (tree_model, &child_iter, iter);
- gtk_tree_model_ref_node (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
+ gtk_tree_model_ref_node (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
- level = iter->user_data;
- elt = iter->user_data2;
+ level = iter->user_data;
+ elt = iter->user_data2;
- elt->ref_count++;
- level->ref_count++;
- if (level->ref_count == 1)
+ elt->ref_count++;
+ level->ref_count++;
+ if (level->ref_count == 1)
{
- SortLevel *parent_level = level->parent_level;
- SortElt *parent_elt = level->parent_elt;
- /* We were at zero -- time to decrement the zero_ref_count val */
- do
- {
- if (parent_elt)
- parent_elt->zero_ref_count--;
- else
- tree_model_sort->zero_ref_count--;
+ SortLevel *parent_level = level->parent_level;
+ SortElt *parent_elt = level->parent_elt;
+ /* We were at zero -- time to decrement the zero_ref_count val */
+ do
+ {
+ if (parent_elt)
+ parent_elt->zero_ref_count--;
+ else
+ tree_model_sort->zero_ref_count--;
- if (parent_level)
- {
- parent_elt = parent_level->parent_elt;
- parent_level = parent_level->parent_level;
- }
- }
- while (parent_level);
+ if (parent_level)
+ {
+ parent_elt = parent_level->parent_elt;
+ parent_level = parent_level->parent_level;
+ }
+ }
+ while (parent_level);
}
}
static void
gnc_tree_model_sort_real_unref_node (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gboolean propagate_unref)
+ GtkTreeIter *iter,
+ gboolean propagate_unref)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
- GtkTreeIter child_iter;
- SortLevel *level;
- SortElt *elt;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) tree_model;
+ GtkTreeIter child_iter;
+ SortLevel *level;
+ SortElt *elt;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model));
- g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL);
- g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model));
+ g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->child_model != NULL);
+ g_return_if_fail (GNC_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp);
- GET_CHILD_ITER (tree_model, &child_iter, iter);
+ GET_CHILD_ITER (tree_model, &child_iter, iter);
- if (propagate_unref)
- gtk_tree_model_unref_node (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
+ if (propagate_unref)
+ gtk_tree_model_unref_node (GNC_TREE_MODEL_SORT (tree_model)->child_model, &child_iter);
- level = iter->user_data;
- elt = iter->user_data2;
+ level = iter->user_data;
+ elt = iter->user_data2;
- g_return_if_fail (elt->ref_count > 0);
+ g_return_if_fail (elt->ref_count > 0);
- elt->ref_count--;
- level->ref_count--;
+ elt->ref_count--;
+ level->ref_count--;
- if (level->ref_count == 0)
+ if (level->ref_count == 0)
{
- SortLevel *parent_level = level->parent_level;
- SortElt *parent_elt = level->parent_elt;
+ SortLevel *parent_level = level->parent_level;
+ SortElt *parent_elt = level->parent_elt;
- /* We are at zero -- time to increment the zero_ref_count val */
- while (parent_level)
- {
- parent_elt->zero_ref_count++;
+ /* We are at zero -- time to increment the zero_ref_count val */
+ while (parent_level)
+ {
+ parent_elt->zero_ref_count++;
- parent_elt = parent_level->parent_elt;
- parent_level = parent_level->parent_level;
- }
- tree_model_sort->zero_ref_count++;
+ parent_elt = parent_level->parent_elt;
+ parent_level = parent_level->parent_level;
+ }
+ tree_model_sort->zero_ref_count++;
}
}
static void
gnc_tree_model_sort_unref_node (GtkTreeModel *tree_model,
- GtkTreeIter *iter)
+ GtkTreeIter *iter)
{
- gnc_tree_model_sort_real_unref_node (tree_model, iter, TRUE);
+ gnc_tree_model_sort_real_unref_node (tree_model, iter, TRUE);
}
/* Sortable interface */
static gboolean
gnc_tree_model_sort_get_sort_column_id (GtkTreeSortable *sortable,
- gint *sort_column_id,
- GtkSortType *order)
+ gint *sort_column_id,
+ GtkSortType *order)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (sortable), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (sortable), FALSE);
- if (sort_column_id)
- *sort_column_id = tree_model_sort->sort_column_id;
- if (order)
- *order = tree_model_sort->order;
+ if (sort_column_id)
+ *sort_column_id = tree_model_sort->sort_column_id;
+ if (order)
+ *order = tree_model_sort->order;
- if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID ||
- tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID)
- return FALSE;
+ if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID ||
+ tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID)
+ return FALSE;
- return TRUE;
+ return TRUE;
}
static void
gnc_tree_model_sort_set_sort_column_id (GtkTreeSortable *sortable,
- gint sort_column_id,
- GtkSortType order)
+ gint sort_column_id,
+ GtkSortType order)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (sortable));
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (sortable));
- if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
+ if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
{
- GtkTreeDataSortHeader *header = NULL;
+ GtkTreeDataSortHeader *header = NULL;
- header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
- sort_column_id);
+ header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
+ sort_column_id);
- /* we want to make sure that we have a function */
- g_return_if_fail (header != NULL);
- g_return_if_fail (header->func != NULL);
+ /* we want to make sure that we have a function */
+ g_return_if_fail (header != NULL);
+ g_return_if_fail (header->func != NULL);
}
- else
- g_return_if_fail (tree_model_sort->default_sort_func != NULL);
+ else
+ g_return_if_fail (tree_model_sort->default_sort_func != NULL);
- if (tree_model_sort->sort_column_id == sort_column_id)
+ if (tree_model_sort->sort_column_id == sort_column_id)
{
- if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
- {
- if (tree_model_sort->order == order)
- return;
- }
- else
- return;
+ if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
+ {
+ if (tree_model_sort->order == order)
+ return;
+ }
+ else
+ return;
}
- tree_model_sort->sort_column_id = sort_column_id;
- tree_model_sort->order = order;
+ tree_model_sort->sort_column_id = sort_column_id;
+ tree_model_sort->order = order;
- gtk_tree_sortable_sort_column_changed (sortable);
+ gtk_tree_sortable_sort_column_changed (sortable);
- gnc_tree_model_sort_sort (tree_model_sort);
+ gnc_tree_model_sort_sort (tree_model_sort);
}
static void
gnc_tree_model_sort_set_sort_func (GtkTreeSortable *sortable,
- gint sort_column_id,
- GtkTreeIterCompareFunc func,
- gpointer data,
- GtkDestroyNotify destroy)
+ gint sort_column_id,
+ GtkTreeIterCompareFunc func,
+ gpointer data,
+ GtkDestroyNotify destroy)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) sortable;
- GtkTreeDataSortHeader *header = NULL;
- GList *list;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *) sortable;
+ GtkTreeDataSortHeader *header = NULL;
+ GList *list;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (sortable));
- g_return_if_fail (func != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (sortable));
+ g_return_if_fail (func != NULL);
- for (list = tree_model_sort->sort_list; list; list = list->next)
+ for (list = tree_model_sort->sort_list; list; list = list->next)
{
- GtkTreeDataSortHeader *list_header;
+ GtkTreeDataSortHeader *list_header;
- list_header = (GtkTreeDataSortHeader*) list->data;
- if (list_header->sort_column_id == sort_column_id)
- {
- header = list_header;
- break;
- }
+ list_header = (GtkTreeDataSortHeader*) list->data;
+ if (list_header->sort_column_id == sort_column_id)
+ {
+ header = list_header;
+ break;
+ }
}
- if (header == NULL)
+ if (header == NULL)
{
- header = g_new0 (GtkTreeDataSortHeader, 1);
- header->sort_column_id = sort_column_id;
- tree_model_sort->sort_list = g_list_append (tree_model_sort->sort_list,
- header);
+ header = g_new0 (GtkTreeDataSortHeader, 1);
+ header->sort_column_id = sort_column_id;
+ tree_model_sort->sort_list = g_list_append (tree_model_sort->sort_list,
+ header);
}
- if (header->destroy)
+ if (header->destroy)
{
- GtkDestroyNotify d = header->destroy;
+ GtkDestroyNotify d = header->destroy;
- header->destroy = NULL;
- d (header->data);
+ header->destroy = NULL;
+ d (header->data);
}
- header->func = func;
- header->data = data;
- header->destroy = destroy;
+ header->func = func;
+ header->data = data;
+ header->destroy = destroy;
- if (tree_model_sort->sort_column_id == sort_column_id)
- gnc_tree_model_sort_sort (tree_model_sort);
+ if (tree_model_sort->sort_column_id == sort_column_id)
+ gnc_tree_model_sort_sort (tree_model_sort);
}
static void
gnc_tree_model_sort_set_default_sort_func (GtkTreeSortable *sortable,
- GtkTreeIterCompareFunc func,
- gpointer data,
- GtkDestroyNotify destroy)
+ GtkTreeIterCompareFunc func,
+ gpointer data,
+ GtkDestroyNotify destroy)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (sortable));
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (sortable));
- if (tree_model_sort->default_sort_destroy)
+ if (tree_model_sort->default_sort_destroy)
{
- GtkDestroyNotify d = tree_model_sort->default_sort_destroy;
+ GtkDestroyNotify d = tree_model_sort->default_sort_destroy;
- tree_model_sort->default_sort_destroy = NULL;
- d (tree_model_sort->default_sort_data);
+ tree_model_sort->default_sort_destroy = NULL;
+ d (tree_model_sort->default_sort_data);
}
- tree_model_sort->default_sort_func = func;
- tree_model_sort->default_sort_data = data;
- tree_model_sort->default_sort_destroy = destroy;
+ tree_model_sort->default_sort_func = func;
+ tree_model_sort->default_sort_data = data;
+ tree_model_sort->default_sort_destroy = destroy;
- if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
- gnc_tree_model_sort_sort (tree_model_sort);
+ if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
+ gnc_tree_model_sort_sort (tree_model_sort);
}
static gboolean
gnc_tree_model_sort_has_default_sort_func (GtkTreeSortable *sortable)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)sortable;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (sortable), FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (sortable), FALSE);
- return (tree_model_sort->default_sort_func != NULL);
+ return (tree_model_sort->default_sort_func != NULL);
}
/* DragSource interface */
@@ -1497,19 +1498,19 @@
gnc_tree_model_sort_row_draggable (GtkTreeDragSource *drag_source,
GtkTreePath *path)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)drag_source;
- GtkTreePath *child_path;
- gboolean draggable;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)drag_source;
+ GtkTreePath *child_path;
+ gboolean draggable;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (drag_source), FALSE);
- g_return_val_if_fail (path != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (drag_source), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
- child_path = gnc_tree_model_sort_convert_path_to_child_path (tree_model_sort,
- path);
- draggable = gtk_tree_drag_source_row_draggable (GTK_TREE_DRAG_SOURCE (tree_model_sort->child_model), child_path);
- gtk_tree_path_free (child_path);
+ child_path = gnc_tree_model_sort_convert_path_to_child_path (tree_model_sort,
+ path);
+ draggable = gtk_tree_drag_source_row_draggable (GTK_TREE_DRAG_SOURCE (tree_model_sort->child_model), child_path);
+ gtk_tree_path_free (child_path);
- return draggable;
+ return draggable;
}
static gboolean
@@ -1517,442 +1518,442 @@
GtkTreePath *path,
GtkSelectionData *selection_data)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)drag_source;
- GtkTreePath *child_path;
- gboolean gotten;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)drag_source;
+ GtkTreePath *child_path;
+ gboolean gotten;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (drag_source), FALSE);
- g_return_val_if_fail (path != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (drag_source), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
- child_path = gnc_tree_model_sort_convert_path_to_child_path (tree_model_sort,
- path);
- gotten = gtk_tree_drag_source_drag_data_get (GTK_TREE_DRAG_SOURCE (tree_model_sort->child_model), child_path, selection_data);
- gtk_tree_path_free (child_path);
+ child_path = gnc_tree_model_sort_convert_path_to_child_path (tree_model_sort,
+ path);
+ gotten = gtk_tree_drag_source_drag_data_get (GTK_TREE_DRAG_SOURCE (tree_model_sort->child_model), child_path, selection_data);
+ gtk_tree_path_free (child_path);
- return gotten;
+ return gotten;
}
static gboolean
gnc_tree_model_sort_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path)
{
- GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)drag_source;
- GtkTreePath *child_path;
- gboolean deleted;
+ GncTreeModelSort *tree_model_sort = (GncTreeModelSort *)drag_source;
+ GtkTreePath *child_path;
+ gboolean deleted;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (drag_source), FALSE);
- g_return_val_if_fail (path != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (drag_source), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
- child_path = gnc_tree_model_sort_convert_path_to_child_path (tree_model_sort,
- path);
- deleted = gtk_tree_drag_source_drag_data_delete (GTK_TREE_DRAG_SOURCE (tree_model_sort->child_model), child_path);
- gtk_tree_path_free (child_path);
+ child_path = gnc_tree_model_sort_convert_path_to_child_path (tree_model_sort,
+ path);
+ deleted = gtk_tree_drag_source_drag_data_delete (GTK_TREE_DRAG_SOURCE (tree_model_sort->child_model), child_path);
+ gtk_tree_path_free (child_path);
- return deleted;
+ return deleted;
}
/* sorting code - private */
static gint
gnc_tree_model_sort_compare_func (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
+ gconstpointer b,
+ gpointer user_data)
{
- SortData *data = (SortData *)user_data;
- GncTreeModelSort *tree_model_sort = data->tree_model_sort;
- SortTuple *sa = (SortTuple *)a;
- SortTuple *sb = (SortTuple *)b;
+ SortData *data = (SortData *)user_data;
+ GncTreeModelSort *tree_model_sort = data->tree_model_sort;
+ SortTuple *sa = (SortTuple *)a;
+ SortTuple *sb = (SortTuple *)b;
- GtkTreeIter iter_a, iter_b;
- gint retval;
+ GtkTreeIter iter_a, iter_b;
+ gint retval;
- /* shortcut, if we've the same offsets here, they should be equal */
- if (sa->offset == sb->offset)
- return 0;
+ /* shortcut, if we've the same offsets here, they should be equal */
+ if (sa->offset == sb->offset)
+ return 0;
- if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
{
- iter_a = sa->elt->iter;
- iter_b = sb->elt->iter;
+ iter_a = sa->elt->iter;
+ iter_b = sb->elt->iter;
}
- else
+ else
{
- data->parent_path_indices [data->parent_path_depth-1] = sa->elt->offset;
- gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort->child_model), &iter_a, data->parent_path);
- data->parent_path_indices [data->parent_path_depth-1] = sb->elt->offset;
- gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort->child_model), &iter_b, data->parent_path);
+ data->parent_path_indices [data->parent_path_depth-1] = sa->elt->offset;
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort->child_model), &iter_a, data->parent_path);
+ data->parent_path_indices [data->parent_path_depth-1] = sb->elt->offset;
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort->child_model), &iter_b, data->parent_path);
}
- retval = (* data->sort_func) (GTK_TREE_MODEL (tree_model_sort->child_model),
- &iter_a, &iter_b,
- data->sort_data);
+ retval = (* data->sort_func) (GTK_TREE_MODEL (tree_model_sort->child_model),
+ &iter_a, &iter_b,
+ data->sort_data);
- if (tree_model_sort->order == GTK_SORT_DESCENDING)
+ if (tree_model_sort->order == GTK_SORT_DESCENDING)
{
- if (retval > 0)
- retval = -1;
- else if (retval < 0)
- retval = 1;
+ if (retval > 0)
+ retval = -1;
+ else if (retval < 0)
+ retval = 1;
}
- return retval;
+ return retval;
}
static gint
gnc_tree_model_sort_offset_compare_func (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
+ gconstpointer b,
+ gpointer user_data)
{
- gint retval;
+ gint retval;
- SortTuple *sa = (SortTuple *)a;
- SortTuple *sb = (SortTuple *)b;
+ SortTuple *sa = (SortTuple *)a;
+ SortTuple *sb = (SortTuple *)b;
- SortData *data = (SortData *)user_data;
+ SortData *data = (SortData *)user_data;
- if (sa->elt->offset < sb->elt->offset)
- retval = -1;
- else if (sa->elt->offset > sb->elt->offset)
- retval = 1;
- else
- retval = 0;
+ if (sa->elt->offset < sb->elt->offset)
+ retval = -1;
+ else if (sa->elt->offset > sb->elt->offset)
+ retval = 1;
+ else
+ retval = 0;
- if (data->tree_model_sort->order == GTK_SORT_DESCENDING)
+ if (data->tree_model_sort->order == GTK_SORT_DESCENDING)
{
- if (retval > 0)
- retval = -1;
- else if (retval < 0)
- retval = 1;
+ if (retval > 0)
+ retval = -1;
+ else if (retval < 0)
+ retval = 1;
}
- return retval;
+ return retval;
}
static void
gnc_tree_model_sort_sort_level (GncTreeModelSort *tree_model_sort,
- SortLevel *level,
- gboolean recurse,
- gboolean emit_reordered)
+ SortLevel *level,
+ gboolean recurse,
+ gboolean emit_reordered)
{
- gint i;
- GArray *sort_array;
- GArray *new_array;
- gint *new_order;
+ gint i;
+ GArray *sort_array;
+ GArray *new_array;
+ gint *new_order;
- GtkTreeIter iter;
- GtkTreePath *path;
+ GtkTreeIter iter;
+ GtkTreePath *path;
- SortData data;
+ SortData data;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- g_return_if_fail (level != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (level != NULL);
- if (level->array->len < 1 && !((SortElt *)level->array->data)->children)
- return;
+ if (level->array->len < 1 && !((SortElt *)level->array->data)->children)
+ return;
- level->ref_count++;
+ level->ref_count++;
- /* Set up data */
- data.tree_model_sort = tree_model_sort;
- if (level->parent_elt)
+ /* Set up data */
+ data.tree_model_sort = tree_model_sort;
+ if (level->parent_elt)
{
- data.parent_path = gnc_tree_model_sort_elt_get_path (level->parent_level,
- level->parent_elt);
- gtk_tree_path_append_index (data.parent_path, 0);
+ data.parent_path = gnc_tree_model_sort_elt_get_path (level->parent_level,
+ level->parent_elt);
+ gtk_tree_path_append_index (data.parent_path, 0);
}
- else
+ else
{
- data.parent_path = gtk_tree_path_new_first ();
+ data.parent_path = gtk_tree_path_new_first ();
}
- data.parent_path_depth = gtk_tree_path_get_depth (data.parent_path);
- data.parent_path_indices = gtk_tree_path_get_indices (data.parent_path);
+ data.parent_path_depth = gtk_tree_path_get_depth (data.parent_path);
+ data.parent_path_indices = gtk_tree_path_get_indices (data.parent_path);
- /* make the array to be sorted */
- sort_array = g_array_sized_new (FALSE, FALSE, sizeof (SortTuple), level->array->len);
- for (i = 0; i < level->array->len; i++)
+ /* make the array to be sorted */
+ sort_array = g_array_sized_new (FALSE, FALSE, sizeof (SortTuple), level->array->len);
+ for (i = 0; i < level->array->len; i++)
{
- SortTuple tuple;
+ SortTuple tuple;
- tuple.elt = &g_array_index (level->array, SortElt, i);
- tuple.offset = i;
+ tuple.elt = &g_array_index (level->array, SortElt, i);
+ tuple.offset = i;
- g_array_append_val (sort_array, tuple);
+ g_array_append_val (sort_array, tuple);
}
if (tree_model_sort->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
- {
- GtkTreeDataSortHeader *header = NULL;
+ {
+ GtkTreeDataSortHeader *header = NULL;
- header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
- tree_model_sort->sort_column_id);
+ header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
+ tree_model_sort->sort_column_id);
- g_return_if_fail (header != NULL);
- g_return_if_fail (header->func != NULL);
+ g_return_if_fail (header != NULL);
+ g_return_if_fail (header->func != NULL);
- data.sort_func = header->func;
- data.sort_data = header->data;
- }
+ data.sort_func = header->func;
+ data.sort_data = header->data;
+ }
else
- {
- /* absolutely SHOULD NOT happen: */
- g_return_if_fail (tree_model_sort->default_sort_func != NULL);
+ {
+ /* absolutely SHOULD NOT happen: */
+ g_return_if_fail (tree_model_sort->default_sort_func != NULL);
- data.sort_func = tree_model_sort->default_sort_func;
- data.sort_data = tree_model_sort->default_sort_data;
- }
+ data.sort_func = tree_model_sort->default_sort_func;
+ data.sort_data = tree_model_sort->default_sort_data;
+ }
- if (data.sort_func == NO_SORT_FUNC)
- g_array_sort_with_data (sort_array,
- gnc_tree_model_sort_offset_compare_func,
- &data);
- else
- g_array_sort_with_data (sort_array,
- gnc_tree_model_sort_compare_func,
- &data);
+ if (data.sort_func == NO_SORT_FUNC)
+ g_array_sort_with_data (sort_array,
+ gnc_tree_model_sort_offset_compare_func,
+ &data);
+ else
+ g_array_sort_with_data (sort_array,
+ gnc_tree_model_sort_compare_func,
+ &data);
- gtk_tree_path_free (data.parent_path);
+ gtk_tree_path_free (data.parent_path);
- new_array = g_array_sized_new (FALSE, FALSE, sizeof (SortElt), level->array->len);
- new_order = g_new (gint, level->array->len);
+ new_array = g_array_sized_new (FALSE, FALSE, sizeof (SortElt), level->array->len);
+ new_order = g_new (gint, level->array->len);
- for (i = 0; i < level->array->len; i++)
+ for (i = 0; i < level->array->len; i++)
{
- SortElt *elt;
+ SortElt *elt;
- elt = g_array_index (sort_array, SortTuple, i).elt;
- new_order[i] = g_array_index (sort_array, SortTuple, i).offset;
+ elt = g_array_index (sort_array, SortTuple, i).elt;
+ new_order[i] = g_array_index (sort_array, SortTuple, i).offset;
- g_array_append_val (new_array, *elt);
- elt = &g_array_index (new_array, SortElt, i);
- if (elt->children)
- elt->children->parent_elt = elt;
+ g_array_append_val (new_array, *elt);
+ elt = &g_array_index (new_array, SortElt, i);
+ if (elt->children)
+ elt->children->parent_elt = elt;
}
- g_array_free (level->array, TRUE);
- level->array = new_array;
- g_array_free (sort_array, TRUE);
+ g_array_free (level->array, TRUE);
+ level->array = new_array;
+ g_array_free (sort_array, TRUE);
- if (emit_reordered)
+ if (emit_reordered)
{
- gnc_tree_model_sort_increment_stamp (tree_model_sort);
- if (level->parent_elt)
- {
- iter.stamp = tree_model_sort->stamp;
- iter.user_data = level->parent_level;
- iter.user_data2 = level->parent_elt;
+ gnc_tree_model_sort_increment_stamp (tree_model_sort);
+ if (level->parent_elt)
+ {
+ iter.stamp = tree_model_sort->stamp;
+ iter.user_data = level->parent_level;
+ iter.user_data2 = level->parent_elt;
- path = gtk_tree_model_get_path (GTK_TREE_MODEL (tree_model_sort),
- &iter);
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (tree_model_sort),
+ &iter);
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort), path,
- &iter, new_order);
- }
- else
- {
- /* toplevel list */
- path = gtk_tree_path_new ();
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort), path,
- NULL, new_order);
- }
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort), path,
+ &iter, new_order);
+ }
+ else
+ {
+ /* toplevel list */
+ path = gtk_tree_path_new ();
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort), path,
+ NULL, new_order);
+ }
- gtk_tree_path_free (path);
+ gtk_tree_path_free (path);
}
- /* recurse, if possible */
- if (recurse)
+ /* recurse, if possible */
+ if (recurse)
{
- for (i = 0; i < level->array->len; i++)
- {
- SortElt *elt = &g_array_index (level->array, SortElt, i);
+ for (i = 0; i < level->array->len; i++)
+ {
+ SortElt *elt = &g_array_index (level->array, SortElt, i);
- if (elt->children)
- gnc_tree_model_sort_sort_level (tree_model_sort,
- elt->children,
- TRUE, emit_reordered);
- }
+ if (elt->children)
+ gnc_tree_model_sort_sort_level (tree_model_sort,
+ elt->children,
+ TRUE, emit_reordered);
+ }
}
- g_free (new_order);
+ g_free (new_order);
- level->ref_count--;
+ level->ref_count--;
}
static void
gnc_tree_model_sort_sort (GncTreeModelSort *tree_model_sort)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- if (!tree_model_sort->root)
- return;
+ if (!tree_model_sort->root)
+ return;
- if (tree_model_sort->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
+ if (tree_model_sort->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
{
- GtkTreeDataSortHeader *header = NULL;
+ GtkTreeDataSortHeader *header = NULL;
- header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
- tree_model_sort->sort_column_id);
+ header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
+ tree_model_sort->sort_column_id);
- /* we want to make sure that we have a function */
- g_return_if_fail (header != NULL);
- g_return_if_fail (header->func != NULL);
+ /* we want to make sure that we have a function */
+ g_return_if_fail (header != NULL);
+ g_return_if_fail (header->func != NULL);
}
- else
- g_return_if_fail (tree_model_sort->default_sort_func != NULL);
+ else
+ g_return_if_fail (tree_model_sort->default_sort_func != NULL);
- gnc_tree_model_sort_sort_level (tree_model_sort, tree_model_sort->root,
- TRUE, TRUE);
+ gnc_tree_model_sort_sort_level (tree_model_sort, tree_model_sort->root,
+ TRUE, TRUE);
}
/* signal helpers */
static gint
gnc_tree_model_sort_level_find_insert (GncTreeModelSort *tree_model_sort,
- SortLevel *level,
- GtkTreeIter *iter,
- gint skip_index)
+ SortLevel *level,
+ GtkTreeIter *iter,
+ gint skip_index)
{
- gint start, middle, end;
- gint cmp;
- SortElt *tmp_elt;
- GtkTreeIter tmp_iter;
+ gint start, middle, end;
+ gint cmp;
+ SortElt *tmp_elt;
+ GtkTreeIter tmp_iter;
- GtkTreeIterCompareFunc func;
- gpointer data;
+ GtkTreeIterCompareFunc func;
+ gpointer data;
- if (tree_model_sort->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
+ if (tree_model_sort->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
{
- GtkTreeDataSortHeader *header;
+ GtkTreeDataSortHeader *header;
- header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
- tree_model_sort->sort_column_id);
+ header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list,
+ tree_model_sort->sort_column_id);
- g_return_val_if_fail (header != NULL, 0);
+ g_return_val_if_fail (header != NULL, 0);
- func = header->func;
- data = header->data;
+ func = header->func;
+ data = header->data;
}
- else
+ else
{
- func = tree_model_sort->default_sort_func;
- data = tree_model_sort->default_sort_data;
+ func = tree_model_sort->default_sort_func;
+ data = tree_model_sort->default_sort_data;
- g_return_val_if_fail (func != NO_SORT_FUNC, 0);
+ g_return_val_if_fail (func != NO_SORT_FUNC, 0);
}
- g_return_val_if_fail (func != NULL, 0);
+ g_return_val_if_fail (func != NULL, 0);
- start = 0;
- end = level->array->len;
- if (skip_index < 0)
- skip_index = end;
- else
- end--;
+ start = 0;
+ end = level->array->len;
+ if (skip_index < 0)
+ skip_index = end;
+ else
+ end--;
- if (start == end)
- return 0;
+ if (start == end)
+ return 0;
- while (start != end)
+ while (start != end)
{
- middle = (start + end) / 2;
+ middle = (start + end) / 2;
- if (middle < skip_index)
- tmp_elt = &(g_array_index (level->array, SortElt, middle));
- else
- tmp_elt = &(g_array_index (level->array, SortElt, middle + 1));
+ if (middle < skip_index)
+ tmp_elt = &(g_array_index (level->array, SortElt, middle));
+ else
+ tmp_elt = &(g_array_index (level->array, SortElt, middle + 1));
- if (!GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
- {
- GtkTreePath *path = gnc_tree_model_sort_elt_get_path (level, tmp_elt);
- gtk_tree_model_get_iter (tree_model_sort->child_model,
- &tmp_iter, path);
- gtk_tree_path_free (path);
- }
- else
- tmp_iter = tmp_elt->iter;
+ if (!GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ {
+ GtkTreePath *path = gnc_tree_model_sort_elt_get_path (level, tmp_elt);
+ gtk_tree_model_get_iter (tree_model_sort->child_model,
+ &tmp_iter, path);
+ gtk_tree_path_free (path);
+ }
+ else
+ tmp_iter = tmp_elt->iter;
- if (tree_model_sort->order == GTK_SORT_ASCENDING)
- cmp = (* func) (GTK_TREE_MODEL (tree_model_sort->child_model),
- &tmp_iter, iter, data);
- else
- cmp = (* func) (GTK_TREE_MODEL (tree_model_sort->child_model),
- iter, &tmp_iter, data);
+ if (tree_model_sort->order == GTK_SORT_ASCENDING)
+ cmp = (* func) (GTK_TREE_MODEL (tree_model_sort->child_model),
+ &tmp_iter, iter, data);
+ else
+ cmp = (* func) (GTK_TREE_MODEL (tree_model_sort->child_model),
+ iter, &tmp_iter, data);
- if (cmp <= 0)
- start = middle + 1;
- else
- end = middle;
+ if (cmp <= 0)
+ start = middle + 1;
+ else
+ end = middle;
}
- if (cmp <= 0)
- return middle + 1;
- else
- return middle;
+ if (cmp <= 0)
+ return middle + 1;
+ else
+ return middle;
}
static gboolean
gnc_tree_model_sort_insert_value (GncTreeModelSort *tree_model_sort,
- SortLevel *level,
- GtkTreePath *s_path,
- GtkTreeIter *s_iter)
+ SortLevel *level,
+ GtkTreePath *s_path,
+ GtkTreeIter *s_iter)
{
- gint offset, index, i;
+ gint offset, index, i;
- SortElt elt;
- SortElt *tmp_elt;
+ SortElt elt;
+ SortElt *tmp_elt;
- offset = gtk_tree_path_get_indices (s_path)[gtk_tree_path_get_depth (s_path) - 1];
+ offset = gtk_tree_path_get_indices (s_path)[gtk_tree_path_get_depth (s_path) - 1];
- if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
- elt.iter = *s_iter;
- elt.offset = offset;
- elt.zero_ref_count = 0;
- elt.ref_count = 0;
- elt.children = NULL;
+ if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ elt.iter = *s_iter;
+ elt.offset = offset;
+ elt.zero_ref_count = 0;
+ elt.ref_count = 0;
+ elt.children = NULL;
- /* update all larger offsets */
- tmp_elt = SORT_ELT (level->array->data);
- for (i = 0; i < level->array->len; i++, tmp_elt++)
- if (tmp_elt->offset >= offset)
- tmp_elt->offset++;
+ /* update all larger offsets */
+ tmp_elt = SORT_ELT (level->array->data);
+ for (i = 0; i < level->array->len; i++, tmp_elt++)
+ if (tmp_elt->offset >= offset)
+ tmp_elt->offset++;
- if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
- tree_model_sort->default_sort_func == NO_SORT_FUNC)
- index = offset;
- else
- index = gnc_tree_model_sort_level_find_insert (tree_model_sort,
- level, s_iter,
- -1);
+ if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
+ tree_model_sort->default_sort_func == NO_SORT_FUNC)
+ index = offset;
+ else
+ index = gnc_tree_model_sort_level_find_insert (tree_model_sort,
+ level, s_iter,
+ -1);
- g_array_insert_vals (level->array, index, &elt, 1);
- tmp_elt = SORT_ELT (level->array->data);
- for (i = 0; i < level->array->len; i++, tmp_elt++)
- if (tmp_elt->children)
- tmp_elt->children->parent_elt = tmp_elt;
+ g_array_insert_vals (level->array, index, &elt, 1);
+ tmp_elt = SORT_ELT (level->array->data);
+ for (i = 0; i < level->array->len; i++, tmp_elt++)
+ if (tmp_elt->children)
+ tmp_elt->children->parent_elt = tmp_elt;
- return TRUE;
+ return TRUE;
}
/* sort elt stuff */
static GtkTreePath *
gnc_tree_model_sort_elt_get_path (SortLevel *level,
- SortElt *elt)
+ SortElt *elt)
{
- SortLevel *walker = level;
- SortElt *walker2 = elt;
- GtkTreePath *path;
+ SortLevel *walker = level;
+ SortElt *walker2 = elt;
+ GtkTreePath *path;
- g_return_val_if_fail (level != NULL, NULL);
- g_return_val_if_fail (elt != NULL, NULL);
+ g_return_val_if_fail (level != NULL, NULL);
+ g_return_val_if_fail (elt != NULL, NULL);
- path = gtk_tree_path_new ();
+ path = gtk_tree_path_new ();
- while (walker)
+ while (walker)
{
- gtk_tree_path_prepend_index (path, walker2->offset);
+ gtk_tree_path_prepend_index (path, walker2->offset);
- walker2 = walker->parent_elt;
- walker = walker->parent_level;
+ walker2 = walker->parent_elt;
+ walker = walker->parent_level;
}
- return path;
+ return path;
}
/**
@@ -1969,73 +1970,73 @@
gnc_tree_model_sort_set_model (GncTreeModelSort *tree_model_sort,
GtkTreeModel *child_model)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- if (child_model)
- g_object_ref (child_model);
+ if (child_model)
+ g_object_ref (child_model);
- if (tree_model_sort->child_model)
+ if (tree_model_sort->child_model)
{
- g_signal_handler_disconnect (tree_model_sort->child_model,
- tree_model_sort->changed_id);
- g_signal_handler_disconnect (tree_model_sort->child_model,
- tree_model_sort->inserted_id);
- g_signal_handler_disconnect (tree_model_sort->child_model,
- tree_model_sort->has_child_toggled_id);
- g_signal_handler_disconnect (tree_model_sort->child_model,
- tree_model_sort->deleted_id);
- g_signal_handler_disconnect (tree_model_sort->child_model,
- tree_model_sort->reordered_id);
+ g_signal_handler_disconnect (tree_model_sort->child_model,
+ tree_model_sort->changed_id);
+ g_signal_handler_disconnect (tree_model_sort->child_model,
+ tree_model_sort->inserted_id);
+ g_signal_handler_disconnect (tree_model_sort->child_model,
+ tree_model_sort->has_child_toggled_id);
+ g_signal_handler_disconnect (tree_model_sort->child_model,
+ tree_model_sort->deleted_id);
+ g_signal_handler_disconnect (tree_model_sort->child_model,
+ tree_model_sort->reordered_id);
- /* reset our state */
- if (tree_model_sort->root)
- gnc_tree_model_sort_free_level (tree_model_sort, tree_model_sort->root);
- tree_model_sort->root = NULL;
- _gtk_tree_data_list_header_free (tree_model_sort->sort_list);
- tree_model_sort->sort_list = NULL;
- g_object_unref (tree_model_sort->child_model);
+ /* reset our state */
+ if (tree_model_sort->root)
+ gnc_tree_model_sort_free_level (tree_model_sort, tree_model_sort->root);
+ tree_model_sort->root = NULL;
+ _gtk_tree_data_list_header_free (tree_model_sort->sort_list);
+ tree_model_sort->sort_list = NULL;
+ g_object_unref (tree_model_sort->child_model);
}
- tree_model_sort->child_model = child_model;
+ tree_model_sort->child_model = child_model;
- if (child_model)
+ if (child_model)
{
- GType *types;
- gint i, n_columns;
+ GType *types;
+ gint i, n_columns;
- tree_model_sort->changed_id =
- g_signal_connect (child_model, "row_changed",
- G_CALLBACK (gnc_tree_model_sort_row_changed),
- tree_model_sort);
- tree_model_sort->inserted_id =
- g_signal_connect (child_model, "row_inserted",
- G_CALLBACK (gnc_tree_model_sort_row_inserted),
- tree_model_sort);
- tree_model_sort->has_child_toggled_id =
- g_signal_connect (child_model, "row_has_child_toggled",
- G_CALLBACK (gnc_tree_model_sort_row_has_child_toggled),
- tree_model_sort);
- tree_model_sort->deleted_id =
- g_signal_connect (child_model, "row_deleted",
- G_CALLBACK (gnc_tree_model_sort_row_deleted),
- tree_model_sort);
- tree_model_sort->reordered_id =
- g_signal_connect (child_model, "rows_reordered",
- G_CALLBACK (gnc_tree_model_sort_rows_reordered),
- tree_model_sort);
+ tree_model_sort->changed_id =
+ g_signal_connect (child_model, "row_changed",
+ G_CALLBACK (gnc_tree_model_sort_row_changed),
+ tree_model_sort);
+ tree_model_sort->inserted_id =
+ g_signal_connect (child_model, "row_inserted",
+ G_CALLBACK (gnc_tree_model_sort_row_inserted),
+ tree_model_sort);
+ tree_model_sort->has_child_toggled_id =
+ g_signal_connect (child_model, "row_has_child_toggled",
+ G_CALLBACK (gnc_tree_model_sort_row_has_child_toggled),
+ tree_model_sort);
+ tree_model_sort->deleted_id =
+ g_signal_connect (child_model, "row_deleted",
+ G_CALLBACK (gnc_tree_model_sort_row_deleted),
+ tree_model_sort);
+ tree_model_sort->reordered_id =
+ g_signal_connect (child_model, "rows_reordered",
+ G_CALLBACK (gnc_tree_model_sort_rows_reordered),
+ tree_model_sort);
- tree_model_sort->child_flags = gtk_tree_model_get_flags (child_model);
- n_columns = gtk_tree_model_get_n_columns (child_model);
+ tree_model_sort->child_flags = gtk_tree_model_get_flags (child_model);
+ n_columns = gtk_tree_model_get_n_columns (child_model);
- types = g_new (GType, n_columns);
- for (i = 0; i < n_columns; i++)
- types[i] = gtk_tree_model_get_column_type (child_model, i);
+ types = g_new (GType, n_columns);
+ for (i = 0; i < n_columns; i++)
+ types[i] = gtk_tree_model_get_column_type (child_model, i);
- tree_model_sort->sort_list = _gtk_tree_data_list_header_new (n_columns, types);
- g_free (types);
+ tree_model_sort->sort_list = _gtk_tree_data_list_header_new (n_columns, types);
+ g_free (types);
- tree_model_sort->default_sort_func = NO_SORT_FUNC;
- tree_model_sort->stamp = g_random_int ();
+ tree_model_sort->default_sort_func = NO_SORT_FUNC;
+ tree_model_sort->stamp = g_random_int ();
}
}
@@ -2050,71 +2051,71 @@
GtkTreeModel *
gnc_tree_model_sort_get_model (GncTreeModelSort *tree_model)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model), NULL);
- return tree_model->child_model;
+ return tree_model->child_model;
}
static GtkTreePath *
gtk_real_tree_model_sort_convert_child_path_to_path (GncTreeModelSort *tree_model_sort,
- GtkTreePath *child_path,
- gboolean build_levels)
+ GtkTreePath *child_path,
+ gboolean build_levels)
{
- gint *child_indices;
- GtkTreePath *retval;
- SortLevel *level;
- gint i;
+ gint *child_indices;
+ GtkTreePath *retval;
+ SortLevel *level;
+ gint i;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), NULL);
- g_return_val_if_fail (tree_model_sort->child_model != NULL, NULL);
- g_return_val_if_fail (child_path != NULL, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), NULL);
+ g_return_val_if_fail (tree_model_sort->child_model != NULL, NULL);
+ g_return_val_if_fail (child_path != NULL, NULL);
- retval = gtk_tree_path_new ();
- child_indices = gtk_tree_path_get_indices (child_path);
+ retval = gtk_tree_path_new ();
+ child_indices = gtk_tree_path_get_indices (child_path);
- if (tree_model_sort->root == NULL && build_levels)
- gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
- level = SORT_LEVEL (tree_model_sort->root);
+ if (tree_model_sort->root == NULL && build_levels)
+ gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
+ level = SORT_LEVEL (tree_model_sort->root);
- for (i = 0; i < gtk_tree_path_get_depth (child_path); i++)
+ for (i = 0; i < gtk_tree_path_get_depth (child_path); i++)
{
- gint j;
- gboolean found_child = FALSE;
+ gint j;
+ gboolean found_child = FALSE;
- if (!level)
- {
- gtk_tree_path_free (retval);
- return NULL;
- }
+ if (!level)
+ {
+ gtk_tree_path_free (retval);
+ return NULL;
+ }
- if (child_indices[i] >= level->array->len)
- {
- gtk_tree_path_free (retval);
- return NULL;
- }
- for (j = 0; j < level->array->len; j++)
- {
- if ((g_array_index (level->array, SortElt, j)).offset == child_indices[i])
- {
- gtk_tree_path_append_index (retval, j);
- if (g_array_index (level->array, SortElt, j).children == NULL && build_levels)
- {
- gnc_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, j));
- }
- level = g_array_index (level->array, SortElt, j).children;
- found_child = TRUE;
- break;
- }
- }
- if (! found_child)
- {
- gtk_tree_path_free (retval);
- return NULL;
- }
+ if (child_indices[i] >= level->array->len)
+ {
+ gtk_tree_path_free (retval);
+ return NULL;
+ }
+ for (j = 0; j < level->array->len; j++)
+ {
+ if ((g_array_index (level->array, SortElt, j)).offset == child_indices[i])
+ {
+ gtk_tree_path_append_index (retval, j);
+ if (g_array_index (level->array, SortElt, j).children == NULL && build_levels)
+ {
+ gnc_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, j));
+ }
+ level = g_array_index (level->array, SortElt, j).children;
+ found_child = TRUE;
+ break;
+ }
+ }
+ if (! found_child)
+ {
+ gtk_tree_path_free (retval);
+ return NULL;
+ }
}
- return retval;
+ return retval;
}
@@ -2132,13 +2133,13 @@
**/
GtkTreePath *
gnc_tree_model_sort_convert_child_path_to_path (GncTreeModelSort *tree_model_sort,
- GtkTreePath *child_path)
+ GtkTreePath *child_path)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), NULL);
- g_return_val_if_fail (tree_model_sort->child_model != NULL, NULL);
- g_return_val_if_fail (child_path != NULL, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), NULL);
+ g_return_val_if_fail (tree_model_sort->child_model != NULL, NULL);
+ g_return_val_if_fail (child_path != NULL, NULL);
- return gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, child_path, TRUE);
+ return gtk_real_tree_model_sort_convert_child_path_to_path (tree_model_sort, child_path, TRUE);
}
/**
@@ -2152,27 +2153,27 @@
**/
void
gnc_tree_model_sort_convert_child_iter_to_iter (GncTreeModelSort *tree_model_sort,
- GtkTreeIter *sort_iter,
- GtkTreeIter *child_iter)
+ GtkTreeIter *sort_iter,
+ GtkTreeIter *child_iter)
{
- GtkTreePath *child_path, *path;
+ GtkTreePath *child_path, *path;
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- g_return_if_fail (tree_model_sort->child_model != NULL);
- g_return_if_fail (sort_iter != NULL);
- g_return_if_fail (child_iter != NULL);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (tree_model_sort->child_model != NULL);
+ g_return_if_fail (sort_iter != NULL);
+ g_return_if_fail (child_iter != NULL);
- sort_iter->stamp = 0;
+ sort_iter->stamp = 0;
- child_path = gtk_tree_model_get_path (tree_model_sort->child_model, child_iter);
- g_return_if_fail (child_path != NULL);
+ child_path = gtk_tree_model_get_path (tree_model_sort->child_model, child_iter);
+ g_return_if_fail (child_path != NULL);
- path = gnc_tree_model_sort_convert_child_path_to_path (tree_model_sort, child_path);
- gtk_tree_path_free (child_path);
- g_return_if_fail (path != NULL);
+ path = gnc_tree_model_sort_convert_child_path_to_path (tree_model_sort, child_path);
+ gtk_tree_path_free (child_path);
+ g_return_if_fail (path != NULL);
- gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort), sort_iter, path);
- gtk_tree_path_free (path);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort), sort_iter, path);
+ gtk_tree_path_free (path);
}
/**
@@ -2190,48 +2191,48 @@
**/
GtkTreePath *
gnc_tree_model_sort_convert_path_to_child_path (GncTreeModelSort *tree_model_sort,
- GtkTreePath *sorted_path)
+ GtkTreePath *sorted_path)
{
- gint *sorted_indices;
- GtkTreePath *retval;
- SortLevel *level;
- gint i;
+ gint *sorted_indices;
+ GtkTreePath *retval;
+ SortLevel *level;
+ gint i;
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), NULL);
- g_return_val_if_fail (tree_model_sort->child_model != NULL, NULL);
- g_return_val_if_fail (sorted_path != NULL, NULL);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), NULL);
+ g_return_val_if_fail (tree_model_sort->child_model != NULL, NULL);
+ g_return_val_if_fail (sorted_path != NULL, NULL);
- retval = gtk_tree_path_new ();
- sorted_indices = gtk_tree_path_get_indices (sorted_path);
- if (tree_model_sort->root == NULL)
- gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
- level = SORT_LEVEL (tree_model_sort->root);
+ retval = gtk_tree_path_new ();
+ sorted_indices = gtk_tree_path_get_indices (sorted_path);
+ if (tree_model_sort->root == NULL)
+ gnc_tree_model_sort_build_level (tree_model_sort, NULL, NULL);
+ level = SORT_LEVEL (tree_model_sort->root);
- for (i = 0; i < gtk_tree_path_get_depth (sorted_path); i++)
+ for (i = 0; i < gtk_tree_path_get_depth (sorted_path); i++)
{
- gint count = sorted_indices[i];
+ gint count = sorted_indices[i];
- if ((level == NULL) ||
- (level->array->len <= count))
- {
- gtk_tree_path_free (retval);
- return NULL;
- }
+ if ((level == NULL) ||
+ (level->array->len <= count))
+ {
+ gtk_tree_path_free (retval);
+ return NULL;
+ }
- if (g_array_index (level->array, SortElt, count).children == NULL)
- gnc_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, count));
+ if (g_array_index (level->array, SortElt, count).children == NULL)
+ gnc_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, count));
- if (level == NULL)
+ if (level == NULL)
{
- gtk_tree_path_free (retval);
- break;
- }
+ gtk_tree_path_free (retval);
+ break;
+ }
- gtk_tree_path_append_index (retval, g_array_index (level->array, SortElt, count).offset);
- level = g_array_index (level->array, SortElt, count).children;
+ gtk_tree_path_append_index (retval, g_array_index (level->array, SortElt, count).offset);
+ level = g_array_index (level->array, SortElt, count).children;
}
- return retval;
+ return retval;
}
/**
@@ -2244,199 +2245,199 @@
**/
void
gnc_tree_model_sort_convert_iter_to_child_iter (GncTreeModelSort *tree_model_sort,
- GtkTreeIter *child_iter,
- GtkTreeIter *sorted_iter)
+ GtkTreeIter *child_iter,
+ GtkTreeIter *sorted_iter)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- g_return_if_fail (tree_model_sort->child_model != NULL);
- g_return_if_fail (child_iter != NULL);
- g_return_if_fail (sorted_iter != NULL);
- g_return_if_fail (sorted_iter->stamp == tree_model_sort->stamp);
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (tree_model_sort->child_model != NULL);
+ g_return_if_fail (child_iter != NULL);
+ g_return_if_fail (sorted_iter != NULL);
+ g_return_if_fail (sorted_iter->stamp == tree_model_sort->stamp);
- if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
{
- *child_iter = SORT_ELT (sorted_iter->user_data2)->iter;
+ *child_iter = SORT_ELT (sorted_iter->user_data2)->iter;
}
- else
+ else
{
- GtkTreePath *path;
+ GtkTreePath *path;
- path = gnc_tree_model_sort_elt_get_path (sorted_iter->user_data,
- sorted_iter->user_data2);
- gtk_tree_model_get_iter (tree_model_sort->child_model, child_iter, path);
- gtk_tree_path_free (path);
+ path = gnc_tree_model_sort_elt_get_path (sorted_iter->user_data,
+ sorted_iter->user_data2);
+ gtk_tree_model_get_iter (tree_model_sort->child_model, child_iter, path);
+ gtk_tree_path_free (path);
}
}
static void
gnc_tree_model_sort_build_level (GncTreeModelSort *tree_model_sort,
- SortLevel *parent_level,
- SortElt *parent_elt)
+ SortLevel *parent_level,
+ SortElt *parent_elt)
{
- GtkTreeIter iter;
- SortLevel *new_level;
- gint length = 0;
- gint i;
+ GtkTreeIter iter;
+ SortLevel *new_level;
+ gint length = 0;
+ gint i;
- g_assert (tree_model_sort->child_model != NULL);
+ g_assert (tree_model_sort->child_model != NULL);
- if (parent_level == NULL)
+ if (parent_level == NULL)
{
- if (gtk_tree_model_get_iter_first (tree_model_sort->child_model, &iter) == FALSE)
- return;
- length = gtk_tree_model_iter_n_children (tree_model_sort->child_model, NULL);
+ if (gtk_tree_model_get_iter_first (tree_model_sort->child_model, &iter) == FALSE)
+ return;
+ length = gtk_tree_model_iter_n_children (tree_model_sort->child_model, NULL);
}
- else
+ else
{
- GtkTreeIter parent_iter;
- GtkTreeIter child_parent_iter;
+ GtkTreeIter parent_iter;
+ GtkTreeIter child_parent_iter;
- parent_iter.stamp = tree_model_sort->stamp;
- parent_iter.user_data = parent_level;
- parent_iter.user_data2 = parent_elt;
+ parent_iter.stamp = tree_model_sort->stamp;
+ parent_iter.user_data = parent_level;
+ parent_iter.user_data2 = parent_elt;
- gnc_tree_model_sort_convert_iter_to_child_iter (tree_model_sort,
- &child_parent_iter,
- &parent_iter);
- if (gtk_tree_model_iter_children (tree_model_sort->child_model,
- &iter,
- &child_parent_iter) == FALSE)
- return;
+ gnc_tree_model_sort_convert_iter_to_child_iter (tree_model_sort,
+ &child_parent_iter,
+ &parent_iter);
+ if (gtk_tree_model_iter_children (tree_model_sort->child_model,
+ &iter,
+ &child_parent_iter) == FALSE)
+ return;
- /* stamp may have changed */
- gnc_tree_model_sort_convert_iter_to_child_iter (tree_model_sort,
- &child_parent_iter,
- &parent_iter);
+ /* stamp may have changed */
+ gnc_tree_model_sort_convert_iter_to_child_iter (tree_model_sort,
+ &child_parent_iter,
+ &parent_iter);
- length = gtk_tree_model_iter_n_children (tree_model_sort->child_model, &child_parent_iter);
+ length = gtk_tree_model_iter_n_children (tree_model_sort->child_model, &child_parent_iter);
}
- g_return_if_fail (length > 0);
+ g_return_if_fail (length > 0);
- new_level = g_new (SortLevel, 1);
- new_level->array = g_array_sized_new (FALSE, FALSE, sizeof (SortElt), length);
- new_level->ref_count = 0;
- new_level->parent_elt = parent_elt;
- new_level->parent_level = parent_level;
+ new_level = g_new (SortLevel, 1);
+ new_level->array = g_array_sized_new (FALSE, FALSE, sizeof (SortElt), length);
+ new_level->ref_count = 0;
+ new_level->parent_elt = parent_elt;
+ new_level->parent_level = parent_level;
- if (parent_elt)
- parent_elt->children = new_level;
- else
- tree_model_sort->root = new_level;
+ if (parent_elt)
+ parent_elt->children = new_level;
+ else
+ tree_model_sort->root = new_level;
- /* increase the count of zero ref_counts.*/
- while (parent_level)
+ /* increase the count of zero ref_counts.*/
+ while (parent_level)
{
- parent_elt->zero_ref_count++;
+ parent_elt->zero_ref_count++;
- parent_elt = parent_level->parent_elt;
- parent_level = parent_level->parent_level;
+ parent_elt = parent_level->parent_elt;
+ parent_level = parent_level->parent_level;
}
- if (new_level != tree_model_sort->root)
- tree_model_sort->zero_ref_count++;
+ if (new_level != tree_model_sort->root)
+ tree_model_sort->zero_ref_count++;
- for (i = 0; i < length; i++)
+ for (i = 0; i < length; i++)
{
- SortElt sort_elt;
- sort_elt.offset = i;
- sort_elt.zero_ref_count = 0;
- sort_elt.ref_count = 0;
- sort_elt.children = NULL;
+ SortElt sort_elt;
+ sort_elt.offset = i;
+ sort_elt.zero_ref_count = 0;
+ sort_elt.ref_count = 0;
+ sort_elt.children = NULL;
- if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
- {
- sort_elt.iter = iter;
- if (gtk_tree_model_iter_next (tree_model_sort->child_model, &iter) == FALSE &&
- i < length - 1)
- {
- g_warning ("There is a discrepancy between the sort model and the child model.");
- return;
- }
- }
- g_array_append_val (new_level->array, sort_elt);
+ if (GNC_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ {
+ sort_elt.iter = iter;
+ if (gtk_tree_model_iter_next (tree_model_sort->child_model, &iter) == FALSE &&
+ i < length - 1)
+ {
+ g_warning ("There is a discrepancy between the sort model and the child model.");
+ return;
+ }
+ }
+ g_array_append_val (new_level->array, sort_elt);
}
- /* sort level */
- gnc_tree_model_sort_sort_level (tree_model_sort, new_level,
- FALSE, FALSE);
+ /* sort level */
+ gnc_tree_model_sort_sort_level (tree_model_sort, new_level,
+ FALSE, FALSE);
}
static void
gnc_tree_model_sort_free_level (GncTreeModelSort *tree_model_sort,
- SortLevel *sort_level)
+ SortLevel *sort_level)
{
- gint i;
+ gint i;
- g_assert (sort_level);
+ g_assert (sort_level);
- if (sort_level->ref_count == 0)
+ if (sort_level->ref_count == 0)
{
- SortLevel *parent_level = sort_level->parent_level;
- SortElt *parent_elt = sort_level->parent_elt;
+ SortLevel *parent_level = sort_level->parent_level;
+ SortElt *parent_elt = sort_level->parent_elt;
- do
- {
- if (parent_elt)
- parent_elt->zero_ref_count--;
- else
- tree_model_sort->zero_ref_count--;
+ do
+ {
+ if (parent_elt)
+ parent_elt->zero_ref_count--;
+ else
+ tree_model_sort->zero_ref_count--;
- if (parent_level)
- {
- parent_elt = parent_level->parent_elt;
- parent_level = parent_level->parent_level;
- }
- }
- while (parent_level);
+ if (parent_level)
+ {
+ parent_elt = parent_level->parent_elt;
+ parent_level = parent_level->parent_level;
+ }
+ }
+ while (parent_level);
}
- for (i = 0; i < sort_level->array->len; i++)
+ for (i = 0; i < sort_level->array->len; i++)
{
- if (g_array_index (sort_level->array, SortElt, i).children)
- gnc_tree_model_sort_free_level (tree_model_sort,
- SORT_LEVEL(g_array_index (sort_level->array, SortElt, i).children));
+ if (g_array_index (sort_level->array, SortElt, i).children)
+ gnc_tree_model_sort_free_level (tree_model_sort,
+ SORT_LEVEL(g_array_index (sort_level->array, SortElt, i).children));
}
- if (sort_level->parent_elt)
- sort_level->parent_elt->children = NULL;
- else
- tree_model_sort->root = NULL;
+ if (sort_level->parent_elt)
+ sort_level->parent_elt->children = NULL;
+ else
+ tree_model_sort->root = NULL;
- g_array_free (sort_level->array, TRUE);
- sort_level->array = NULL;
+ g_array_free (sort_level->array, TRUE);
+ sort_level->array = NULL;
- g_free (sort_level);
- sort_level = NULL;
+ g_free (sort_level);
+ sort_level = NULL;
}
static void
gnc_tree_model_sort_increment_stamp (GncTreeModelSort *tree_model_sort)
{
- do
+ do
{
- tree_model_sort->stamp++;
+ tree_model_sort->stamp++;
}
- while (tree_model_sort->stamp == 0);
+ while (tree_model_sort->stamp == 0);
- gnc_tree_model_sort_clear_cache (tree_model_sort);
+ gnc_tree_model_sort_clear_cache (tree_model_sort);
}
static void
gnc_tree_model_sort_clear_cache_helper (GncTreeModelSort *tree_model_sort,
- SortLevel *level)
+ SortLevel *level)
{
- gint i;
+ gint i;
- g_assert (level != NULL);
+ g_assert (level != NULL);
- for (i = 0; i < level->array->len; i++)
+ for (i = 0; i < level->array->len; i++)
{
- if (g_array_index (level->array, SortElt, i).zero_ref_count > 0)
- gnc_tree_model_sort_clear_cache_helper (tree_model_sort, g_array_index (level->array, SortElt, i).children);
+ if (g_array_index (level->array, SortElt, i).zero_ref_count > 0)
+ gnc_tree_model_sort_clear_cache_helper (tree_model_sort, g_array_index (level->array, SortElt, i).children);
}
- if (level->ref_count == 0 && level != tree_model_sort->root)
- gnc_tree_model_sort_free_level (tree_model_sort, level);
+ if (level->ref_count == 0 && level != tree_model_sort->root)
+ gnc_tree_model_sort_free_level (tree_model_sort, level);
}
/**
@@ -2451,23 +2452,23 @@
void
gnc_tree_model_sort_reset_default_sort_func (GncTreeModelSort *tree_model_sort)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- if (tree_model_sort->default_sort_destroy)
+ if (tree_model_sort->default_sort_destroy)
{
- GtkDestroyNotify d = tree_model_sort->default_sort_destroy;
+ GtkDestroyNotify d = tree_model_sort->default_sort_destroy;
- tree_model_sort->default_sort_destroy = NULL;
- d (tree_model_sort->default_sort_data);
+ tree_model_sort->default_sort_destroy = NULL;
+ d (tree_model_sort->default_sort_data);
}
- tree_model_sort->default_sort_func = NO_SORT_FUNC;
- tree_model_sort->default_sort_data = NULL;
- tree_model_sort->default_sort_destroy = NULL;
+ tree_model_sort->default_sort_func = NO_SORT_FUNC;
+ tree_model_sort->default_sort_data = NULL;
+ tree_model_sort->default_sort_destroy = NULL;
- if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
- gnc_tree_model_sort_sort (tree_model_sort);
- tree_model_sort->sort_column_id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
+ if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
+ gnc_tree_model_sort_sort (tree_model_sort);
+ tree_model_sort->sort_column_id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
}
/**
@@ -2484,31 +2485,31 @@
void
gnc_tree_model_sort_clear_cache (GncTreeModelSort *tree_model_sort)
{
- g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
+ g_return_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort));
- if (tree_model_sort->zero_ref_count)
- gnc_tree_model_sort_clear_cache_helper (tree_model_sort, (SortLevel *)tree_model_sort->root);
+ if (tree_model_sort->zero_ref_count)
+ gnc_tree_model_sort_clear_cache_helper (tree_model_sort, (SortLevel *)tree_model_sort->root);
}
static gboolean
gnc_tree_model_sort_iter_is_valid_helper (GtkTreeIter *iter,
- SortLevel *level)
+ SortLevel *level)
{
- gint i;
+ gint i;
- for (i = 0; i < level->array->len; i++)
+ for (i = 0; i < level->array->len; i++)
{
- SortElt *elt = &g_array_index (level->array, SortElt, i);
+ SortElt *elt = &g_array_index (level->array, SortElt, i);
- if (iter->user_data == level && iter->user_data2 == elt)
- return TRUE;
+ if (iter->user_data == level && iter->user_data2 == elt)
+ return TRUE;
- if (elt->children)
- if (gnc_tree_model_sort_iter_is_valid_helper (iter, elt->children))
- return TRUE;
+ if (elt->children)
+ if (gnc_tree_model_sort_iter_is_valid_helper (iter, elt->children))
+ return TRUE;
}
- return FALSE;
+ return FALSE;
}
/**
@@ -2530,14 +2531,14 @@
gnc_tree_model_sort_iter_is_valid (GncTreeModelSort *tree_model_sort,
GtkTreeIter *iter)
{
- g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (GNC_IS_TREE_MODEL_SORT (tree_model_sort), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
- if (!VALID_ITER (iter, tree_model_sort))
- return FALSE;
+ if (!VALID_ITER (iter, tree_model_sort))
+ return FALSE;
- return gnc_tree_model_sort_iter_is_valid_helper (iter,
- tree_model_sort->root);
+ return gnc_tree_model_sort_iter_is_valid_helper (iter,
+ tree_model_sort->root);
}
#define __GNC_TREE_MODEL_SORT_C__
Modified: gnucash/trunk/src/gnome-utils/gnctreemodelsort.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnctreemodelsort.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gnctreemodelsort.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,4 +1,4 @@
-/* Note: This file was copied from gtk-2.8.12 gtktreemodelsort.h with the
+/* Note: This file was copied from gtk-2.8.12 gtktreemodelsort.h with the
following changes:
s/GTK_TREE_MODEL_SORT/GNC_TREE_MODEL_SORT/g
@@ -48,42 +48,42 @@
struct _GncTreeModelSort
{
- GObject parent;
+ GObject parent;
- /* < private > */
- gpointer root;
- gint stamp;
- guint child_flags;
- GtkTreeModel *child_model;
- gint zero_ref_count;
+ /* < private > */
+ gpointer root;
+ gint stamp;
+ guint child_flags;
+ GtkTreeModel *child_model;
+ gint zero_ref_count;
- /* sort information */
- GList *sort_list;
- gint sort_column_id;
- GtkSortType order;
+ /* sort information */
+ GList *sort_list;
+ gint sort_column_id;
+ GtkSortType order;
- /* default sort */
- GtkTreeIterCompareFunc default_sort_func;
- gpointer default_sort_data;
- GtkDestroyNotify default_sort_destroy;
+ /* default sort */
+ GtkTreeIterCompareFunc default_sort_func;
+ gpointer default_sort_data;
+ GtkDestroyNotify default_sort_destroy;
- /* signal ids */
- guint changed_id;
- guint inserted_id;
- guint has_child_toggled_id;
- guint deleted_id;
- guint reordered_id;
+ /* signal ids */
+ guint changed_id;
+ guint inserted_id;
+ guint has_child_toggled_id;
+ guint deleted_id;
+ guint reordered_id;
};
struct _GncTreeModelSortClass
{
- GObjectClass parent_class;
+ GObjectClass parent_class;
- /* Padding for future expansion */
- void (*_gtk_reserved1) (void);
- void (*_gtk_reserved2) (void);
- void (*_gtk_reserved3) (void);
- void (*_gtk_reserved4) (void);
+ /* Padding for future expansion */
+ void (*_gtk_reserved1) (void);
+ void (*_gtk_reserved2) (void);
+ void (*_gtk_reserved3) (void);
+ void (*_gtk_reserved4) (void);
};
@@ -92,19 +92,19 @@
GtkTreeModel *gnc_tree_model_sort_get_model (GncTreeModelSort *tree_model);
GtkTreePath *gnc_tree_model_sort_convert_child_path_to_path (GncTreeModelSort *tree_model_sort,
- GtkTreePath *child_path);
+ GtkTreePath *child_path);
void gnc_tree_model_sort_convert_child_iter_to_iter (GncTreeModelSort *tree_model_sort,
- GtkTreeIter *sort_iter,
- GtkTreeIter *child_iter);
+ GtkTreeIter *sort_iter,
+ GtkTreeIter *child_iter);
GtkTreePath *gnc_tree_model_sort_convert_path_to_child_path (GncTreeModelSort *tree_model_sort,
- GtkTreePath *sorted_path);
+ GtkTreePath *sorted_path);
void gnc_tree_model_sort_convert_iter_to_child_iter (GncTreeModelSort *tree_model_sort,
- GtkTreeIter *child_iter,
- GtkTreeIter *sorted_iter);
+ GtkTreeIter *child_iter,
+ GtkTreeIter *sorted_iter);
void gnc_tree_model_sort_reset_default_sort_func (GncTreeModelSort *tree_model_sort);
void gnc_tree_model_sort_clear_cache (GncTreeModelSort *tree_model_sort);
gboolean gnc_tree_model_sort_iter_is_valid (GncTreeModelSort *tree_model_sort,
- GtkTreeIter *iter);
+ GtkTreeIter *iter);
G_END_DECLS
Modified: gnucash/trunk/src/gnome-utils/gtktreedatalist.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gtktreedatalist.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gtktreedatalist.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -32,224 +32,224 @@
GtkTreeDataList *
_gtk_tree_data_list_alloc (void)
{
- GtkTreeDataList *list;
+ GtkTreeDataList *list;
- list = g_slice_new0 (GtkTreeDataList);
+ list = g_slice_new0 (GtkTreeDataList);
- return list;
+ return list;
}
void
_gtk_tree_data_list_free (GtkTreeDataList *list,
- GType *column_headers)
+ GType *column_headers)
{
- GtkTreeDataList *tmp, *next;
- gint i = 0;
+ GtkTreeDataList *tmp, *next;
+ gint i = 0;
- tmp = list;
+ tmp = list;
- while (tmp)
+ while (tmp)
{
- next = tmp->next;
- if (g_type_is_a (column_headers [i], G_TYPE_STRING))
- g_free ((gchar *) tmp->data.v_pointer);
- else if (g_type_is_a (column_headers [i], G_TYPE_OBJECT) && tmp->data.v_pointer != NULL)
- g_object_unref (tmp->data.v_pointer);
- else if (g_type_is_a (column_headers [i], G_TYPE_BOXED) && tmp->data.v_pointer != NULL)
- g_boxed_free (column_headers [i], (gpointer) tmp->data.v_pointer);
+ next = tmp->next;
+ if (g_type_is_a (column_headers [i], G_TYPE_STRING))
+ g_free ((gchar *) tmp->data.v_pointer);
+ else if (g_type_is_a (column_headers [i], G_TYPE_OBJECT) && tmp->data.v_pointer != NULL)
+ g_object_unref (tmp->data.v_pointer);
+ else if (g_type_is_a (column_headers [i], G_TYPE_BOXED) && tmp->data.v_pointer != NULL)
+ g_boxed_free (column_headers [i], (gpointer) tmp->data.v_pointer);
- g_slice_free (GtkTreeDataList, tmp);
- i++;
- tmp = next;
+ g_slice_free (GtkTreeDataList, tmp);
+ i++;
+ tmp = next;
}
}
gboolean
_gtk_tree_data_list_check_type (GType type)
{
- gint i = 0;
- static const GType type_list[] =
- {
- G_TYPE_BOOLEAN,
- G_TYPE_CHAR,
- G_TYPE_UCHAR,
- G_TYPE_INT,
- G_TYPE_UINT,
- G_TYPE_LONG,
- G_TYPE_ULONG,
- G_TYPE_INT64,
- G_TYPE_UINT64,
- G_TYPE_ENUM,
- G_TYPE_FLAGS,
- G_TYPE_FLOAT,
- G_TYPE_DOUBLE,
- G_TYPE_STRING,
- G_TYPE_POINTER,
- G_TYPE_BOXED,
- G_TYPE_OBJECT,
- G_TYPE_INVALID
- };
+ gint i = 0;
+ static const GType type_list[] =
+ {
+ G_TYPE_BOOLEAN,
+ G_TYPE_CHAR,
+ G_TYPE_UCHAR,
+ G_TYPE_INT,
+ G_TYPE_UINT,
+ G_TYPE_LONG,
+ G_TYPE_ULONG,
+ G_TYPE_INT64,
+ G_TYPE_UINT64,
+ G_TYPE_ENUM,
+ G_TYPE_FLAGS,
+ G_TYPE_FLOAT,
+ G_TYPE_DOUBLE,
+ G_TYPE_STRING,
+ G_TYPE_POINTER,
+ G_TYPE_BOXED,
+ G_TYPE_OBJECT,
+ G_TYPE_INVALID
+ };
- if (! G_TYPE_IS_VALUE_TYPE (type))
- return FALSE;
+ if (! G_TYPE_IS_VALUE_TYPE (type))
+ return FALSE;
- while (type_list[i] != G_TYPE_INVALID)
+ while (type_list[i] != G_TYPE_INVALID)
{
- if (g_type_is_a (type, type_list[i]))
- return TRUE;
- i++;
+ if (g_type_is_a (type, type_list[i]))
+ return TRUE;
+ i++;
}
- return FALSE;
+ return FALSE;
}
static inline GType
get_fundamental_type (GType type)
{
- GType result;
+ GType result;
- result = G_TYPE_FUNDAMENTAL (type);
+ result = G_TYPE_FUNDAMENTAL (type);
- if (result == G_TYPE_INTERFACE)
+ if (result == G_TYPE_INTERFACE)
{
- if (g_type_is_a (type, G_TYPE_OBJECT))
- result = G_TYPE_OBJECT;
+ if (g_type_is_a (type, G_TYPE_OBJECT))
+ result = G_TYPE_OBJECT;
}
- return result;
+ return result;
}
void
_gtk_tree_data_list_node_to_value (GtkTreeDataList *list,
- GType type,
- GValue *value)
+ GType type,
+ GValue *value)
{
- g_value_init (value, type);
+ g_value_init (value, type);
- switch (get_fundamental_type (type))
+ switch (get_fundamental_type (type))
{
case G_TYPE_BOOLEAN:
- g_value_set_boolean (value, (gboolean) list->data.v_int);
- break;
+ g_value_set_boolean (value, (gboolean) list->data.v_int);
+ break;
case G_TYPE_CHAR:
- g_value_set_char (value, (gchar) list->data.v_char);
- break;
+ g_value_set_char (value, (gchar) list->data.v_char);
+ break;
case G_TYPE_UCHAR:
- g_value_set_uchar (value, (guchar) list->data.v_uchar);
- break;
+ g_value_set_uchar (value, (guchar) list->data.v_uchar);
+ break;
case G_TYPE_INT:
- g_value_set_int (value, (gint) list->data.v_int);
- break;
+ g_value_set_int (value, (gint) list->data.v_int);
+ break;
case G_TYPE_UINT:
- g_value_set_uint (value, (guint) list->data.v_uint);
- break;
+ g_value_set_uint (value, (guint) list->data.v_uint);
+ break;
case G_TYPE_LONG:
- g_value_set_long (value, list->data.v_long);
- break;
+ g_value_set_long (value, list->data.v_long);
+ break;
case G_TYPE_ULONG:
- g_value_set_ulong (value, list->data.v_ulong);
- break;
+ g_value_set_ulong (value, list->data.v_ulong);
+ break;
case G_TYPE_INT64:
- g_value_set_int64 (value, list->data.v_int64);
- break;
+ g_value_set_int64 (value, list->data.v_int64);
+ break;
case G_TYPE_UINT64:
- g_value_set_uint64 (value, list->data.v_uint64);
- break;
+ g_value_set_uint64 (value, list->data.v_uint64);
+ break;
case G_TYPE_ENUM:
- g_value_set_enum (value, list->data.v_int);
- break;
+ g_value_set_enum (value, list->data.v_int);
+ break;
case G_TYPE_FLAGS:
- g_value_set_flags (value, list->data.v_uint);
- break;
+ g_value_set_flags (value, list->data.v_uint);
+ break;
case G_TYPE_FLOAT:
- g_value_set_float (value, (gfloat) list->data.v_float);
- break;
+ g_value_set_float (value, (gfloat) list->data.v_float);
+ break;
case G_TYPE_DOUBLE:
- g_value_set_double (value, (gdouble) list->data.v_double);
- break;
+ g_value_set_double (value, (gdouble) list->data.v_double);
+ break;
case G_TYPE_STRING:
- g_value_set_string (value, (gchar *) list->data.v_pointer);
- break;
+ g_value_set_string (value, (gchar *) list->data.v_pointer);
+ break;
case G_TYPE_POINTER:
- g_value_set_pointer (value, (gpointer) list->data.v_pointer);
- break;
+ g_value_set_pointer (value, (gpointer) list->data.v_pointer);
+ break;
case G_TYPE_BOXED:
- g_value_set_boxed (value, (gpointer) list->data.v_pointer);
- break;
+ g_value_set_boxed (value, (gpointer) list->data.v_pointer);
+ break;
case G_TYPE_OBJECT:
- g_value_set_object (value, (GObject *) list->data.v_pointer);
- break;
+ g_value_set_object (value, (GObject *) list->data.v_pointer);
+ break;
default:
- g_warning ("%s: Unsupported type (%s) retrieved.", G_STRLOC, g_type_name (value->g_type));
- break;
+ g_warning ("%s: Unsupported type (%s) retrieved.", G_STRLOC, g_type_name (value->g_type));
+ break;
}
}
void
_gtk_tree_data_list_value_to_node (GtkTreeDataList *list,
- GValue *value)
+ GValue *value)
{
- switch (get_fundamental_type (G_VALUE_TYPE (value)))
+ switch (get_fundamental_type (G_VALUE_TYPE (value)))
{
case G_TYPE_BOOLEAN:
- list->data.v_int = g_value_get_boolean (value);
- break;
+ list->data.v_int = g_value_get_boolean (value);
+ break;
case G_TYPE_CHAR:
- list->data.v_char = g_value_get_char (value);
- break;
+ list->data.v_char = g_value_get_char (value);
+ break;
case G_TYPE_UCHAR:
- list->data.v_uchar = g_value_get_uchar (value);
- break;
+ list->data.v_uchar = g_value_get_uchar (value);
+ break;
case G_TYPE_INT:
- list->data.v_int = g_value_get_int (value);
- break;
+ list->data.v_int = g_value_get_int (value);
+ break;
case G_TYPE_UINT:
- list->data.v_uint = g_value_get_uint (value);
- break;
+ list->data.v_uint = g_value_get_uint (value);
+ break;
case G_TYPE_LONG:
- list->data.v_long = g_value_get_long (value);
- break;
+ list->data.v_long = g_value_get_long (value);
+ break;
case G_TYPE_ULONG:
- list->data.v_ulong = g_value_get_ulong (value);
- break;
+ list->data.v_ulong = g_value_get_ulong (value);
+ break;
case G_TYPE_INT64:
- list->data.v_int64 = g_value_get_int64 (value);
- break;
+ list->data.v_int64 = g_value_get_int64 (value);
+ break;
case G_TYPE_UINT64:
- list->data.v_uint64 = g_value_get_uint64 (value);
- break;
+ list->data.v_uint64 = g_value_get_uint64 (value);
+ break;
case G_TYPE_ENUM:
- list->data.v_int = g_value_get_enum (value);
- break;
+ list->data.v_int = g_value_get_enum (value);
+ break;
case G_TYPE_FLAGS:
- list->data.v_uint = g_value_get_flags (value);
- break;
+ list->data.v_uint = g_value_get_flags (value);
+ break;
case G_TYPE_POINTER:
- list->data.v_pointer = g_value_get_pointer (value);
- break;
+ list->data.v_pointer = g_value_get_pointer (value);
+ break;
case G_TYPE_FLOAT:
- list->data.v_float = g_value_get_float (value);
- break;
+ list->data.v_float = g_value_get_float (value);
+ break;
case G_TYPE_DOUBLE:
- list->data.v_double = g_value_get_double (value);
- break;
+ list->data.v_double = g_value_get_double (value);
+ break;
case G_TYPE_STRING:
- if (list->data.v_pointer)
- g_free (list->data.v_pointer);
- list->data.v_pointer = g_value_dup_string (value);
- break;
+ if (list->data.v_pointer)
+ g_free (list->data.v_pointer);
+ list->data.v_pointer = g_value_dup_string (value);
+ break;
case G_TYPE_OBJECT:
- if (list->data.v_pointer)
- g_object_unref (list->data.v_pointer);
- list->data.v_pointer = g_value_dup_object (value);
- break;
+ if (list->data.v_pointer)
+ g_object_unref (list->data.v_pointer);
+ list->data.v_pointer = g_value_dup_object (value);
+ break;
case G_TYPE_BOXED:
- if (list->data.v_pointer)
- g_boxed_free (G_VALUE_TYPE (value), list->data.v_pointer);
- list->data.v_pointer = g_value_dup_boxed (value);
- break;
+ if (list->data.v_pointer)
+ g_boxed_free (G_VALUE_TYPE (value), list->data.v_pointer);
+ list->data.v_pointer = g_value_dup_boxed (value);
+ break;
default:
- g_warning ("%s: Unsupported type (%s) stored.", G_STRLOC, g_type_name (G_VALUE_TYPE (value)));
- break;
+ g_warning ("%s: Unsupported type (%s) stored.", G_STRLOC, g_type_name (G_VALUE_TYPE (value)));
+ break;
}
}
@@ -257,14 +257,14 @@
_gtk_tree_data_list_node_copy (GtkTreeDataList *list,
GType type)
{
- GtkTreeDataList *new_list;
+ GtkTreeDataList *new_list;
- g_return_val_if_fail (list != NULL, NULL);
+ g_return_val_if_fail (list != NULL, NULL);
- new_list = _gtk_tree_data_list_alloc ();
- new_list->next = NULL;
+ new_list = _gtk_tree_data_list_alloc ();
+ new_list->next = NULL;
- switch (get_fundamental_type (type))
+ switch (get_fundamental_type (type))
{
case G_TYPE_BOOLEAN:
case G_TYPE_CHAR:
@@ -280,234 +280,234 @@
case G_TYPE_POINTER:
case G_TYPE_FLOAT:
case G_TYPE_DOUBLE:
- new_list->data = list->data;
- break;
+ new_list->data = list->data;
+ break;
case G_TYPE_STRING:
- new_list->data.v_pointer = g_strdup (list->data.v_pointer);
- break;
+ new_list->data.v_pointer = g_strdup (list->data.v_pointer);
+ break;
case G_TYPE_OBJECT:
case G_TYPE_INTERFACE:
- new_list->data.v_pointer = list->data.v_pointer;
- if (new_list->data.v_pointer)
- g_object_ref (new_list->data.v_pointer);
- break;
+ new_list->data.v_pointer = list->data.v_pointer;
+ if (new_list->data.v_pointer)
+ g_object_ref (new_list->data.v_pointer);
+ break;
case G_TYPE_BOXED:
- if (list->data.v_pointer)
- new_list->data.v_pointer = g_boxed_copy (type, list->data.v_pointer);
- else
- new_list->data.v_pointer = NULL;
- break;
+ if (list->data.v_pointer)
+ new_list->data.v_pointer = g_boxed_copy (type, list->data.v_pointer);
+ else
+ new_list->data.v_pointer = NULL;
+ break;
default:
- g_warning ("Unsupported node type (%s) copied.", g_type_name (type));
- break;
+ g_warning ("Unsupported node type (%s) copied.", g_type_name (type));
+ break;
}
- return new_list;
+ return new_list;
}
gint
_gtk_tree_data_list_compare_func (GtkTreeModel *model,
- GtkTreeIter *a,
- GtkTreeIter *b,
- gpointer user_data)
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer user_data)
{
- gint column = GPOINTER_TO_INT (user_data);
- GType type = gtk_tree_model_get_column_type (model, column);
- GValue a_value = {0, };
- GValue b_value = {0, };
- gint retval;
- const gchar *stra, *strb;
+ gint column = GPOINTER_TO_INT (user_data);
+ GType type = gtk_tree_model_get_column_type (model, column);
+ GValue a_value = {0, };
+ GValue b_value = {0, };
+ gint retval;
+ const gchar *stra, *strb;
- gtk_tree_model_get_value (model, a, column, &a_value);
- gtk_tree_model_get_value (model, b, column, &b_value);
+ gtk_tree_model_get_value (model, a, column, &a_value);
+ gtk_tree_model_get_value (model, b, column, &b_value);
- switch (get_fundamental_type (type))
+ switch (get_fundamental_type (type))
{
case G_TYPE_BOOLEAN:
- if (g_value_get_boolean (&a_value) < g_value_get_boolean (&b_value))
- retval = -1;
- else if (g_value_get_boolean (&a_value) == g_value_get_boolean (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_boolean (&a_value) < g_value_get_boolean (&b_value))
+ retval = -1;
+ else if (g_value_get_boolean (&a_value) == g_value_get_boolean (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_CHAR:
- if (g_value_get_char (&a_value) < g_value_get_char (&b_value))
- retval = -1;
- else if (g_value_get_char (&a_value) == g_value_get_char (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_char (&a_value) < g_value_get_char (&b_value))
+ retval = -1;
+ else if (g_value_get_char (&a_value) == g_value_get_char (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_UCHAR:
- if (g_value_get_uchar (&a_value) < g_value_get_uchar (&b_value))
- retval = -1;
- else if (g_value_get_uchar (&a_value) == g_value_get_uchar (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_uchar (&a_value) < g_value_get_uchar (&b_value))
+ retval = -1;
+ else if (g_value_get_uchar (&a_value) == g_value_get_uchar (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_INT:
- if (g_value_get_int (&a_value) < g_value_get_int (&b_value))
- retval = -1;
- else if (g_value_get_int (&a_value) == g_value_get_int (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_int (&a_value) < g_value_get_int (&b_value))
+ retval = -1;
+ else if (g_value_get_int (&a_value) == g_value_get_int (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_UINT:
- if (g_value_get_uint (&a_value) < g_value_get_uint (&b_value))
- retval = -1;
- else if (g_value_get_uint (&a_value) == g_value_get_uint (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_uint (&a_value) < g_value_get_uint (&b_value))
+ retval = -1;
+ else if (g_value_get_uint (&a_value) == g_value_get_uint (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_LONG:
- if (g_value_get_long (&a_value) < g_value_get_long (&b_value))
- retval = -1;
- else if (g_value_get_long (&a_value) == g_value_get_long (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_long (&a_value) < g_value_get_long (&b_value))
+ retval = -1;
+ else if (g_value_get_long (&a_value) == g_value_get_long (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_ULONG:
- if (g_value_get_ulong (&a_value) < g_value_get_ulong (&b_value))
- retval = -1;
- else if (g_value_get_ulong (&a_value) == g_value_get_ulong (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_ulong (&a_value) < g_value_get_ulong (&b_value))
+ retval = -1;
+ else if (g_value_get_ulong (&a_value) == g_value_get_ulong (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_INT64:
- if (g_value_get_int64 (&a_value) < g_value_get_int64 (&b_value))
- retval = -1;
- else if (g_value_get_int64 (&a_value) == g_value_get_int64 (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_int64 (&a_value) < g_value_get_int64 (&b_value))
+ retval = -1;
+ else if (g_value_get_int64 (&a_value) == g_value_get_int64 (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_UINT64:
- if (g_value_get_uint64 (&a_value) < g_value_get_uint64 (&b_value))
- retval = -1;
- else if (g_value_get_uint64 (&a_value) == g_value_get_uint64 (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_uint64 (&a_value) < g_value_get_uint64 (&b_value))
+ retval = -1;
+ else if (g_value_get_uint64 (&a_value) == g_value_get_uint64 (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_ENUM:
- /* this is somewhat bogus. */
- if (g_value_get_enum (&a_value) < g_value_get_enum (&b_value))
- retval = -1;
- else if (g_value_get_enum (&a_value) == g_value_get_enum (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ /* this is somewhat bogus. */
+ if (g_value_get_enum (&a_value) < g_value_get_enum (&b_value))
+ retval = -1;
+ else if (g_value_get_enum (&a_value) == g_value_get_enum (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_FLAGS:
- /* this is even more bogus. */
- if (g_value_get_flags (&a_value) < g_value_get_flags (&b_value))
- retval = -1;
- else if (g_value_get_flags (&a_value) == g_value_get_flags (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ /* this is even more bogus. */
+ if (g_value_get_flags (&a_value) < g_value_get_flags (&b_value))
+ retval = -1;
+ else if (g_value_get_flags (&a_value) == g_value_get_flags (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_FLOAT:
- if (g_value_get_float (&a_value) < g_value_get_float (&b_value))
- retval = -1;
- else if (g_value_get_float (&a_value) == g_value_get_float (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_float (&a_value) < g_value_get_float (&b_value))
+ retval = -1;
+ else if (g_value_get_float (&a_value) == g_value_get_float (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_DOUBLE:
- if (g_value_get_double (&a_value) < g_value_get_double (&b_value))
- retval = -1;
- else if (g_value_get_double (&a_value) == g_value_get_double (&b_value))
- retval = 0;
- else
- retval = 1;
- break;
+ if (g_value_get_double (&a_value) < g_value_get_double (&b_value))
+ retval = -1;
+ else if (g_value_get_double (&a_value) == g_value_get_double (&b_value))
+ retval = 0;
+ else
+ retval = 1;
+ break;
case G_TYPE_STRING:
- stra = g_value_get_string (&a_value);
- strb = g_value_get_string (&b_value);
- if (stra == NULL) stra = "";
- if (strb == NULL) strb = "";
- retval = g_utf8_collate (stra, strb);
- break;
+ stra = g_value_get_string (&a_value);
+ strb = g_value_get_string (&b_value);
+ if (stra == NULL) stra = "";
+ if (strb == NULL) strb = "";
+ retval = g_utf8_collate (stra, strb);
+ break;
case G_TYPE_POINTER:
case G_TYPE_BOXED:
case G_TYPE_OBJECT:
default:
- g_warning ("Attempting to sort on invalid type %s\n", g_type_name (type));
- retval = FALSE;
- break;
+ g_warning ("Attempting to sort on invalid type %s\n", g_type_name (type));
+ retval = FALSE;
+ break;
}
- g_value_unset (&a_value);
- g_value_unset (&b_value);
+ g_value_unset (&a_value);
+ g_value_unset (&b_value);
- return retval;
+ return retval;
}
GList *
_gtk_tree_data_list_header_new (gint n_columns,
- GType *types)
+ GType *types)
{
- GList *retval = NULL;
+ GList *retval = NULL;
- gint i;
+ gint i;
- for (i = 0; i < n_columns; i ++)
+ for (i = 0; i < n_columns; i ++)
{
- GtkTreeDataSortHeader *header;
+ GtkTreeDataSortHeader *header;
- header = g_new (GtkTreeDataSortHeader, 1);
+ header = g_new (GtkTreeDataSortHeader, 1);
- retval = g_list_prepend (retval, header);
- header->sort_column_id = i;
- header->func = _gtk_tree_data_list_compare_func;
- header->destroy = NULL;
- header->data = GINT_TO_POINTER (i);
+ retval = g_list_prepend (retval, header);
+ header->sort_column_id = i;
+ header->func = _gtk_tree_data_list_compare_func;
+ header->destroy = NULL;
+ header->data = GINT_TO_POINTER (i);
}
- return g_list_reverse (retval);
+ return g_list_reverse (retval);
}
void
_gtk_tree_data_list_header_free (GList *list)
{
- GList *tmp;
+ GList *tmp;
- for (tmp = list; tmp; tmp = tmp->next)
+ for (tmp = list; tmp; tmp = tmp->next)
{
- GtkTreeDataSortHeader *header = (GtkTreeDataSortHeader *) tmp->data;
+ GtkTreeDataSortHeader *header = (GtkTreeDataSortHeader *) tmp->data;
- if (header->destroy)
- {
- GtkDestroyNotify d = header->destroy;
+ if (header->destroy)
+ {
+ GtkDestroyNotify d = header->destroy;
- header->destroy = NULL;
- d (header->data);
- }
+ header->destroy = NULL;
+ d (header->data);
+ }
- g_free (header);
+ g_free (header);
}
- g_list_free (list);
+ g_list_free (list);
}
GtkTreeDataSortHeader *
_gtk_tree_data_list_get_header (GList *header_list,
- gint sort_column_id)
+ gint sort_column_id)
{
- GtkTreeDataSortHeader *header = NULL;
+ GtkTreeDataSortHeader *header = NULL;
- for (; header_list; header_list = header_list->next)
+ for (; header_list; header_list = header_list->next)
{
- header = (GtkTreeDataSortHeader*) header_list->data;
- if (header->sort_column_id == sort_column_id)
- return header;
+ header = (GtkTreeDataSortHeader*) header_list->data;
+ if (header->sort_column_id == sort_column_id)
+ return header;
}
- return NULL;
+ return NULL;
}
Modified: gnucash/trunk/src/gnome-utils/gtktreedatalist.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gtktreedatalist.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/gtktreedatalist.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -30,54 +30,55 @@
typedef struct _GtkTreeDataList GtkTreeDataList;
struct _GtkTreeDataList
{
- GtkTreeDataList *next;
+ GtkTreeDataList *next;
- union {
- gint v_int;
- gint8 v_char;
- guint8 v_uchar;
- guint v_uint;
- glong v_long;
- gulong v_ulong;
- gint64 v_int64;
- guint64 v_uint64;
- gfloat v_float;
- gdouble v_double;
- gpointer v_pointer;
- } data;
+ union
+ {
+ gint v_int;
+ gint8 v_char;
+ guint8 v_uchar;
+ guint v_uint;
+ glong v_long;
+ gulong v_ulong;
+ gint64 v_int64;
+ guint64 v_uint64;
+ gfloat v_float;
+ gdouble v_double;
+ gpointer v_pointer;
+ } data;
};
typedef struct _GtkTreeDataSortHeader
{
- gint sort_column_id;
- GtkTreeIterCompareFunc func;
- gpointer data;
- GtkDestroyNotify destroy;
+ gint sort_column_id;
+ GtkTreeIterCompareFunc func;
+ gpointer data;
+ GtkDestroyNotify destroy;
} GtkTreeDataSortHeader;
GtkTreeDataList *_gtk_tree_data_list_alloc (void);
void _gtk_tree_data_list_free (GtkTreeDataList *list,
- GType *column_headers);
+ GType *column_headers);
gboolean _gtk_tree_data_list_check_type (GType type);
void _gtk_tree_data_list_node_to_value (GtkTreeDataList *list,
- GType type,
- GValue *value);
+ GType type,
+ GValue *value);
void _gtk_tree_data_list_value_to_node (GtkTreeDataList *list,
- GValue *value);
+ GValue *value);
GtkTreeDataList *_gtk_tree_data_list_node_copy (GtkTreeDataList *list,
- GType type);
+ GType type);
/* Header code */
gint _gtk_tree_data_list_compare_func (GtkTreeModel *model,
- GtkTreeIter *a,
- GtkTreeIter *b,
- gpointer user_data);
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer user_data);
GList * _gtk_tree_data_list_header_new (gint n_columns,
- GType *types);
+ GType *types);
void _gtk_tree_data_list_header_free (GList *header_list);
GtkTreeDataSortHeader *_gtk_tree_data_list_get_header (GList *header_list,
- gint sort_column_id);
+ gint sort_column_id);
#endif /* __GTK_TREE_DATA_LIST_H__ */
Modified: gnucash/trunk/src/gnome-utils/misc-gnome-utils.c
===================================================================
--- gnucash/trunk/src/gnome-utils/misc-gnome-utils.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/misc-gnome-utils.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -29,20 +29,20 @@
void
xxxgtk_textview_set_text (GtkTextView *text, const char *str)
{
- GtkTextBuffer *buff = gtk_text_view_get_buffer (text);
- if (!str) str = "";
- gtk_text_buffer_set_text (buff, str, strlen (str));
+ GtkTextBuffer *buff = gtk_text_view_get_buffer (text);
+ if (!str) str = "";
+ gtk_text_buffer_set_text (buff, str, strlen (str));
}
char *
xxxgtk_textview_get_text (GtkTextView *text)
{
- GtkTextIter start, end;
- GtkTextBuffer *buff = gtk_text_view_get_buffer (text);
- gtk_text_buffer_get_start_iter (buff, &start);
- gtk_text_buffer_get_end_iter (buff, &end);
- return gtk_text_buffer_get_text(buff, &start, &end, TRUE);
+ GtkTextIter start, end;
+ GtkTextBuffer *buff = gtk_text_view_get_buffer (text);
+ gtk_text_buffer_get_start_iter (buff, &start);
+ gtk_text_buffer_get_end_iter (buff, &end);
+ return gtk_text_buffer_get_text(buff, &start, &end, TRUE);
}
Modified: gnucash/trunk/src/gnome-utils/print-session.c
===================================================================
--- gnucash/trunk/src/gnome-utils/print-session.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/print-session.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -47,67 +47,67 @@
void
gnc_print_operation_save_print_settings(GtkPrintOperation *op)
{
- g_return_if_fail(op);
+ g_return_if_fail(op);
- G_LOCK(print_settings);
- if (print_settings)
- g_object_unref(print_settings);
- print_settings = g_object_ref(gtk_print_operation_get_print_settings(op));
- G_UNLOCK(print_settings);
+ G_LOCK(print_settings);
+ if (print_settings)
+ g_object_unref(print_settings);
+ print_settings = g_object_ref(gtk_print_operation_get_print_settings(op));
+ G_UNLOCK(print_settings);
}
void
gnc_print_operation_init(GtkPrintOperation *op)
{
- g_return_if_fail(op);
+ g_return_if_fail(op);
- /* Restore print settings */
- G_LOCK(print_settings);
- if (print_settings)
- gtk_print_operation_set_print_settings(op, print_settings);
- G_UNLOCK(print_settings);
+ /* Restore print settings */
+ G_LOCK(print_settings);
+ if (print_settings)
+ gtk_print_operation_set_print_settings(op, print_settings);
+ G_UNLOCK(print_settings);
- /* Restore page setup */
- G_LOCK(page_setup);
- if (page_setup)
- gtk_print_operation_set_default_page_setup(op, page_setup);
- G_UNLOCK(page_setup);
+ /* Restore page setup */
+ G_LOCK(page_setup);
+ if (page_setup)
+ gtk_print_operation_set_default_page_setup(op, page_setup);
+ G_UNLOCK(page_setup);
}
void
gnc_ui_page_setup(GtkWindow *parent)
{
- GtkPrintSettings *settings = NULL;
- GtkPageSetup *old_page_setup, *new_page_setup;
+ GtkPrintSettings *settings = NULL;
+ GtkPageSetup *old_page_setup, *new_page_setup;
- /* Get a reference to the current print settings */
- G_LOCK(print_settings);
- settings = print_settings;
- if (settings)
- g_object_ref(settings);
- G_UNLOCK(print_settings);
+ /* Get a reference to the current print settings */
+ G_LOCK(print_settings);
+ settings = print_settings;
+ if (settings)
+ g_object_ref(settings);
+ G_UNLOCK(print_settings);
- /* Get a reference to the current page setup */
- G_LOCK(page_setup);
- old_page_setup = page_setup;
- if (old_page_setup)
- g_object_ref(old_page_setup);
- G_UNLOCK(page_setup);
+ /* Get a reference to the current page setup */
+ G_LOCK(page_setup);
+ old_page_setup = page_setup;
+ if (old_page_setup)
+ g_object_ref(old_page_setup);
+ G_UNLOCK(page_setup);
- /* Run dialog */
- new_page_setup = gtk_print_run_page_setup_dialog(parent, old_page_setup,
- settings);
+ /* Run dialog */
+ new_page_setup = gtk_print_run_page_setup_dialog(parent, old_page_setup,
+ settings);
- /* Save new page setup */
- G_LOCK(page_setup);
- if (page_setup)
- g_object_unref(page_setup);
- page_setup = new_page_setup;
- G_UNLOCK(page_setup);
+ /* Save new page setup */
+ G_LOCK(page_setup);
+ if (page_setup)
+ g_object_unref(page_setup);
+ page_setup = new_page_setup;
+ G_UNLOCK(page_setup);
- /* Release references */
- if (settings)
- g_object_unref(settings);
- if (old_page_setup)
- g_object_unref(old_page_setup);
+ /* Release references */
+ if (settings)
+ g_object_unref(settings);
+ if (old_page_setup)
+ g_object_unref(old_page_setup);
}
Modified: gnucash/trunk/src/gnome-utils/search-param.c
===================================================================
--- gnucash/trunk/src/gnome-utils/search-param.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/search-param.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
/*
- * search-param.c -- a container for a Search Parameter
+ * search-param.c -- a container for a Search Parameter
* Copyright (C) 2002 Derek Atkins <warlord at MIT.EDU>
*
* This program is free software; you can redistribute it and/or
@@ -41,13 +41,14 @@
typedef struct _GNCSearchParamPrivate GNCSearchParamPrivate;
-struct _GNCSearchParamPrivate {
- GSList * converters;
- GSList * param_path;
- GNCIdTypeConst type;
+struct _GNCSearchParamPrivate
+{
+ GSList * converters;
+ GSList * param_path;
+ GNCIdTypeConst type;
- GNCSearchParamFcn lookup_fcn;
- gpointer lookup_arg;
+ GNCSearchParamFcn lookup_fcn;
+ gpointer lookup_arg;
};
#define GNC_SEARCH_PARAM_GET_PRIVATE(o) \
@@ -55,8 +56,9 @@
static GObjectClass *parent_class;
-enum {
- LAST_SIGNAL
+enum
+{
+ LAST_SIGNAL
};
#if LAST_SIGNAL > 0
@@ -66,38 +68,40 @@
GType
gnc_search_param_get_type (void)
{
- static GType type = 0;
+ static GType type = 0;
- if (type == 0) {
- static GTypeInfo type_info = {
- sizeof(GNCSearchParamClass),
- NULL,
- NULL,
- (GClassInitFunc)gnc_search_param_class_init,
- NULL,
- NULL,
- sizeof(GNCSearchParam),
- 0,
- (GInstanceInitFunc)gnc_search_param_init
- };
+ if (type == 0)
+ {
+ static GTypeInfo type_info =
+ {
+ sizeof(GNCSearchParamClass),
+ NULL,
+ NULL,
+ (GClassInitFunc)gnc_search_param_class_init,
+ NULL,
+ NULL,
+ sizeof(GNCSearchParam),
+ 0,
+ (GInstanceInitFunc)gnc_search_param_init
+ };
- type = g_type_register_static (G_TYPE_OBJECT, "GNCSearchParam",
- &type_info, 0);
- }
+ type = g_type_register_static (G_TYPE_OBJECT, "GNCSearchParam",
+ &type_info, 0);
+ }
- return type;
+ return type;
}
static void
gnc_search_param_class_init (GNCSearchParamClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = gnc_search_param_finalize;
+ object_class->finalize = gnc_search_param_finalize;
- g_type_class_add_private(klass, sizeof(GNCSearchParamPrivate));
+ g_type_class_add_private(klass, sizeof(GNCSearchParamPrivate));
}
static void
@@ -108,318 +112,322 @@
static void
gnc_search_param_finalize (GObject *obj)
{
- GNCSearchParam *o;
- GNCSearchParamPrivate *priv;
+ GNCSearchParam *o;
+ GNCSearchParamPrivate *priv;
- g_return_if_fail (obj != NULL);
- g_return_if_fail (GNC_IS_SEARCH_PARAM (obj));
+ g_return_if_fail (obj != NULL);
+ g_return_if_fail (GNC_IS_SEARCH_PARAM (obj));
- o = GNC_SEARCH_PARAM (obj);
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(o);
-
- g_slist_free (priv->param_path);
- priv->param_path = NULL;
- g_slist_free (priv->converters);
- priv->converters = NULL;
+ o = GNC_SEARCH_PARAM (obj);
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(o);
- G_OBJECT_CLASS (parent_class)->finalize(obj);
+ g_slist_free (priv->param_path);
+ priv->param_path = NULL;
+ g_slist_free (priv->converters);
+ priv->converters = NULL;
+
+ G_OBJECT_CLASS (parent_class)->finalize(obj);
}
/**
* gnc_search_param_new:
*
* Create a new GNCSearchParam object.
- *
+ *
* Return value: A new #GNCSearchParam object.
**/
GNCSearchParam *
gnc_search_param_new (void)
{
- GNCSearchParam *o = (GNCSearchParam *)g_object_new(gnc_search_param_get_type (), NULL);
- return o;
+ GNCSearchParam *o = (GNCSearchParam *)g_object_new(gnc_search_param_get_type (), NULL);
+ return o;
}
GNCSearchParam *
gnc_search_param_clone (GNCSearchParam *param)
{
- GNCSearchParam *n;
- GNCSearchParamPrivate *priv, *n_priv;
+ GNCSearchParam *n;
+ GNCSearchParamPrivate *priv, *n_priv;
- g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- n = gnc_search_param_new ();
- n_priv = GNC_SEARCH_PARAM_GET_PRIVATE(n);
- n->title = param->title;
- n_priv->param_path = g_slist_copy (priv->param_path);
- n_priv->type = priv->type;
+ n = gnc_search_param_new ();
+ n_priv = GNC_SEARCH_PARAM_GET_PRIVATE(n);
+ n->title = param->title;
+ n_priv->param_path = g_slist_copy (priv->param_path);
+ n_priv->type = priv->type;
- return n;
+ return n;
}
void
gnc_search_param_set_param_path (GNCSearchParam *param,
- GNCIdTypeConst search_type,
- GSList *param_path)
+ GNCIdTypeConst search_type,
+ GSList *param_path)
{
- GNCSearchParamPrivate *priv;
- GNCIdTypeConst type = NULL;
- GSList *converters = NULL;
+ GNCSearchParamPrivate *priv;
+ GNCIdTypeConst type = NULL;
+ GSList *converters = NULL;
- g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
+ g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- if (priv->param_path) {
- g_slist_free (priv->param_path);
- }
- priv->param_path = g_slist_copy (param_path);
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ if (priv->param_path)
+ {
+ g_slist_free (priv->param_path);
+ }
+ priv->param_path = g_slist_copy (param_path);
- /* Compute the parameter type */
- for (; param_path; param_path = param_path->next) {
- GNCIdType param_name = param_path->data;
- const QueryObjectDef *objDef =
- gncQueryObjectGetParameter (search_type, param_name);
+ /* Compute the parameter type */
+ for (; param_path; param_path = param_path->next)
+ {
+ GNCIdType param_name = param_path->data;
+ const QueryObjectDef *objDef =
+ gncQueryObjectGetParameter (search_type, param_name);
- /* If it doesn't exist, then we've reached the end */
- if (objDef == NULL)
- break;
+ /* If it doesn't exist, then we've reached the end */
+ if (objDef == NULL)
+ break;
- /* Save the converter */
- converters = g_slist_prepend (converters, (gpointer) objDef);
+ /* Save the converter */
+ converters = g_slist_prepend (converters, (gpointer) objDef);
- /* And reset for the next parameter */
- type = search_type = objDef->param_type;
- }
+ /* And reset for the next parameter */
+ type = search_type = objDef->param_type;
+ }
- /* Save the type */
- priv->type = type;
+ /* Save the type */
+ priv->type = type;
- /* Save the converters */
- if (priv->converters) {
- g_slist_free (priv->converters);
- }
- priv->converters = g_slist_reverse (converters);
+ /* Save the converters */
+ if (priv->converters)
+ {
+ g_slist_free (priv->converters);
+ }
+ priv->converters = g_slist_reverse (converters);
}
void
gnc_search_param_override_param_type (GNCSearchParam *param,
- GNCIdTypeConst param_type)
+ GNCIdTypeConst param_type)
{
- GNCSearchParamPrivate *priv;
+ GNCSearchParamPrivate *priv;
- g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
- g_return_if_fail (param_type != NULL && *param_type != '\0');
+ g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
+ g_return_if_fail (param_type != NULL && *param_type != '\0');
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- priv->type = param_type;
- /* XXX: What about the converters? */
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ priv->type = param_type;
+ /* XXX: What about the converters? */
}
GSList *
gnc_search_param_get_param_path (GNCSearchParam *param)
{
- GNCSearchParamPrivate *priv;
+ GNCSearchParamPrivate *priv;
- g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
-
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- return g_slist_copy (priv->param_path);
+ g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
+
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ return g_slist_copy (priv->param_path);
}
GSList *
gnc_search_param_get_converters (GNCSearchParam *param)
{
- GNCSearchParamPrivate *priv;
+ GNCSearchParamPrivate *priv;
- g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
+ g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- return priv->converters;
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ return priv->converters;
}
GNCIdTypeConst
gnc_search_param_get_param_type (GNCSearchParam *param)
{
- GNCSearchParamPrivate *priv;
+ GNCSearchParamPrivate *priv;
- g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
+ g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- return priv->type;
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ return priv->type;
}
void
gnc_search_param_set_title (GNCSearchParam *param, const char *title)
{
- g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
+ g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
- param->title = title;
+ param->title = title;
}
void
gnc_search_param_set_justify (GNCSearchParam *param, GtkJustification justify)
{
- g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
+ g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
- param->justify = justify;
+ param->justify = justify;
}
void
gnc_search_param_set_passive (GNCSearchParam *param, gboolean value)
{
- g_assert (GNC_IS_SEARCH_PARAM (param));
+ g_assert (GNC_IS_SEARCH_PARAM (param));
- param->passive = value;
+ param->passive = value;
}
void
gnc_search_param_set_non_resizeable (GNCSearchParam *param, gboolean value)
{
- g_assert (GNC_IS_SEARCH_PARAM (param));
+ g_assert (GNC_IS_SEARCH_PARAM (param));
- param->non_resizeable = value;
+ param->non_resizeable = value;
}
gboolean
gnc_search_param_type_match (GNCSearchParam *a, GNCSearchParam *b)
{
- GNCSearchParamPrivate *a_priv, *b_priv;
+ GNCSearchParamPrivate *a_priv, *b_priv;
- g_return_val_if_fail (GNC_IS_SEARCH_PARAM (a), FALSE);
- g_return_val_if_fail (GNC_IS_SEARCH_PARAM (b), FALSE);
+ g_return_val_if_fail (GNC_IS_SEARCH_PARAM (a), FALSE);
+ g_return_val_if_fail (GNC_IS_SEARCH_PARAM (b), FALSE);
- a_priv = GNC_SEARCH_PARAM_GET_PRIVATE(a);
- b_priv = GNC_SEARCH_PARAM_GET_PRIVATE(b);
- if (a_priv->type == b_priv->type ||
- !safe_strcmp (a_priv->type, b_priv->type))
- return TRUE;
+ a_priv = GNC_SEARCH_PARAM_GET_PRIVATE(a);
+ b_priv = GNC_SEARCH_PARAM_GET_PRIVATE(b);
+ if (a_priv->type == b_priv->type ||
+ !safe_strcmp (a_priv->type, b_priv->type))
+ return TRUE;
- return FALSE;
+ return FALSE;
}
static GList *
gnc_search_param_prepend_internal (GList *list, char const *title,
- GtkJustification justify,
- GNCIdTypeConst type_override,
- GNCIdTypeConst search_type,
- const char *param, va_list args)
+ GtkJustification justify,
+ GNCIdTypeConst type_override,
+ GNCIdTypeConst search_type,
+ const char *param, va_list args)
{
- GNCSearchParam *p;
- GSList *path = NULL;
- const char *this_param;
+ GNCSearchParam *p;
+ GSList *path = NULL;
+ const char *this_param;
- p = gnc_search_param_new ();
- gnc_search_param_set_title (p, title);
- gnc_search_param_set_justify (p, justify);
+ p = gnc_search_param_new ();
+ gnc_search_param_set_title (p, title);
+ gnc_search_param_set_justify (p, justify);
- for (this_param = param; this_param;
- this_param = va_arg (args, const char *)) {
- path = g_slist_prepend (path, (gpointer)this_param);
- }
+ for (this_param = param; this_param;
+ this_param = va_arg (args, const char *))
+ {
+ path = g_slist_prepend (path, (gpointer)this_param);
+ }
- /* put the path into the right order, and set it */
- path = g_slist_reverse (path);
- gnc_search_param_set_param_path (p, search_type, path);
+ /* put the path into the right order, and set it */
+ path = g_slist_reverse (path);
+ gnc_search_param_set_param_path (p, search_type, path);
- /* Maybe over-ride the type */
- if (type_override)
- gnc_search_param_override_param_type (p, type_override);
+ /* Maybe over-ride the type */
+ if (type_override)
+ gnc_search_param_override_param_type (p, type_override);
- /* And return it */
- return g_list_prepend (list, p);
+ /* And return it */
+ return g_list_prepend (list, p);
}
-
+
GList *
gnc_search_param_prepend_with_justify (GList *list, char const *title,
- GtkJustification justify,
- GNCIdTypeConst type_override,
- GNCIdTypeConst search_type,
- const char *param, ...)
+ GtkJustification justify,
+ GNCIdTypeConst type_override,
+ GNCIdTypeConst search_type,
+ const char *param, ...)
{
- GList *result;
- va_list ap;
+ GList *result;
+ va_list ap;
- g_return_val_if_fail (title, list);
- g_return_val_if_fail (search_type, list);
- g_return_val_if_fail (param, list);
+ g_return_val_if_fail (title, list);
+ g_return_val_if_fail (search_type, list);
+ g_return_val_if_fail (param, list);
- /* Build the parameter path */
- va_start (ap, param);
- result = gnc_search_param_prepend_internal (list, title, justify,
- type_override, search_type,
- param, ap);
- va_end (ap);
- return result;
+ /* Build the parameter path */
+ va_start (ap, param);
+ result = gnc_search_param_prepend_internal (list, title, justify,
+ type_override, search_type,
+ param, ap);
+ va_end (ap);
+ return result;
}
GList *
gnc_search_param_prepend (GList *list, char const *title,
- GNCIdTypeConst type_override,
- GNCIdTypeConst search_type,
- const char *param, ...)
+ GNCIdTypeConst type_override,
+ GNCIdTypeConst search_type,
+ const char *param, ...)
{
- GList *result;
- va_list ap;
+ GList *result;
+ va_list ap;
- g_return_val_if_fail (title, list);
- g_return_val_if_fail (search_type, list);
- g_return_val_if_fail (param, list);
+ g_return_val_if_fail (title, list);
+ g_return_val_if_fail (search_type, list);
+ g_return_val_if_fail (param, list);
- /* Build the parameter path */
- va_start (ap, param);
- result = gnc_search_param_prepend_internal (list, title, GTK_JUSTIFY_LEFT,
- type_override, search_type,
- param, ap);
- va_end (ap);
- return result;
+ /* Build the parameter path */
+ va_start (ap, param);
+ result = gnc_search_param_prepend_internal (list, title, GTK_JUSTIFY_LEFT,
+ type_override, search_type,
+ param, ap);
+ va_end (ap);
+ return result;
}
void
gnc_search_param_set_param_fcn (GNCSearchParam *param,
- GNCIdTypeConst param_type,
- GNCSearchParamFcn fcn,
- gpointer arg)
+ GNCIdTypeConst param_type,
+ GNCSearchParamFcn fcn,
+ gpointer arg)
{
- GNCSearchParamPrivate *priv;
+ GNCSearchParamPrivate *priv;
- g_return_if_fail (param);
- g_return_if_fail (param_type && *param_type);
- g_return_if_fail (fcn);
- g_return_if_fail (GNC_IS_SEARCH_PARAM(param));
+ g_return_if_fail (param);
+ g_return_if_fail (param_type && *param_type);
+ g_return_if_fail (fcn);
+ g_return_if_fail (GNC_IS_SEARCH_PARAM(param));
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- priv->lookup_fcn = fcn;
- priv->lookup_arg = arg;
- gnc_search_param_override_param_type (param, param_type);
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ priv->lookup_fcn = fcn;
+ priv->lookup_arg = arg;
+ gnc_search_param_override_param_type (param, param_type);
}
/* Compute the value of this parameter for this object */
gpointer
gnc_search_param_compute_value (GNCSearchParam *param, gpointer object)
{
- GNCSearchParamPrivate *priv;
+ GNCSearchParamPrivate *priv;
- g_return_val_if_fail(param, NULL);
- g_return_val_if_fail(GNC_IS_SEARCH_PARAM(param), NULL);
+ g_return_val_if_fail(param, NULL);
+ g_return_val_if_fail(GNC_IS_SEARCH_PARAM(param), NULL);
- priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
- if (priv->lookup_fcn)
- {
- return ((priv->lookup_fcn)(object, priv->lookup_arg));
- }
- else
- {
- GSList *converters = gnc_search_param_get_converters (param);
- gpointer res = object;
-
- /* Do all the object conversions */
- for (; converters; converters = converters->next)
+ priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+ if (priv->lookup_fcn)
{
- QofParam *qp = converters->data;
- res = (qp->param_getfcn) (res, qp);
+ return ((priv->lookup_fcn)(object, priv->lookup_arg));
}
+ else
+ {
+ GSList *converters = gnc_search_param_get_converters (param);
+ gpointer res = object;
- return res;
- }
+ /* Do all the object conversions */
+ for (; converters; converters = converters->next)
+ {
+ QofParam *qp = converters->data;
+ res = (qp->param_getfcn) (res, qp);
+ }
+
+ return res;
+ }
}
Modified: gnucash/trunk/src/gnome-utils/search-param.h
===================================================================
--- gnucash/trunk/src/gnome-utils/search-param.h 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/search-param.h 2010-03-02 21:42:11 UTC (rev 18791)
@@ -1,5 +1,5 @@
/*
- * search-param.h -- a container for a Search Parameter
+ * search-param.h -- a container for a Search Parameter
* Copyright (C) 2002 Derek Atkins <warlord at MIT.EDU>
*
* This program is free software; you can redistribute it and/or
@@ -33,21 +33,23 @@
typedef struct _GNCSearchParam GNCSearchParam;
typedef struct _GNCSearchParamClass GNCSearchParamClass;
-struct _GNCSearchParam {
- GObject gobject;
+struct _GNCSearchParam
+{
+ GObject gobject;
- const char * title;
- GtkJustification justify;
- gboolean passive;
- gboolean non_resizeable;
+ const char * title;
+ GtkJustification justify;
+ gboolean passive;
+ gboolean non_resizeable;
};
-struct _GNCSearchParamClass {
- GObjectClass gobject_class;
+struct _GNCSearchParamClass
+{
+ GObjectClass gobject_class;
- /* virtual methods */
+ /* virtual methods */
- /* signals */
+ /* signals */
};
/* These are internal functions */
@@ -61,22 +63,22 @@
* compute the parameter type and the converter functions.
*/
void gnc_search_param_set_param_path (GNCSearchParam *param,
- GNCIdTypeConst search_type,
- GSList *param_path);
+ GNCIdTypeConst search_type,
+ GSList *param_path);
/* List is property of the caller */
GSList * gnc_search_param_get_param_path (GNCSearchParam *param);
GNCIdTypeConst gnc_search_param_get_param_type (GNCSearchParam *param);
void gnc_search_param_set_title (GNCSearchParam *param,
- const char *title);
+ const char *title);
void gnc_search_param_set_justify (GNCSearchParam *param,
- GtkJustification justify);
+ GtkJustification justify);
void gnc_search_param_set_passive (GNCSearchParam *param,
- gboolean value);
+ gboolean value);
void gnc_search_param_set_non_resizeable (GNCSearchParam *param,
- gboolean value);
+ gboolean value);
gboolean gnc_search_param_type_match (GNCSearchParam *a,
- GNCSearchParam *b);
+ GNCSearchParam *b);
/* Return the list of QueryAccess functions for this parameter. This list
* is owned by the param object -- users should not change it */
@@ -89,7 +91,7 @@
* don't match types properly.
*/
void gnc_search_param_override_param_type (GNCSearchParam *param,
- GNCIdTypeConst param_type);
+ GNCIdTypeConst param_type);
/*************************************************************
@@ -98,17 +100,17 @@
/* Create a paramter and prepend it to a GSList */
GList * gnc_search_param_prepend (GList *list, char const *title,
- GNCIdTypeConst type_override,
- GNCIdTypeConst search_type,
- const char *param, ...);
-
+ GNCIdTypeConst type_override,
+ GNCIdTypeConst search_type,
+ const char *param, ...);
+
GList * gnc_search_param_prepend_with_justify (GList *list, char const *title,
- GtkJustification justify,
- GNCIdTypeConst type_override,
- GNCIdTypeConst search_type,
- const char *param, ...);
-
+ GtkJustification justify,
+ GNCIdTypeConst type_override,
+ GNCIdTypeConst search_type,
+ const char *param, ...);
+
/* set a lookup function for this parameter (in lieu of setting the
* param path) if you want to specify a direct lookup function when
* using the compute_value interface. Note that this wont work with
@@ -117,9 +119,9 @@
*/
typedef gpointer (*GNCSearchParamFcn)(gpointer object, gpointer arg);
void gnc_search_param_set_param_fcn (GNCSearchParam *param,
- GNCIdTypeConst param_type,
- GNCSearchParamFcn fcn,
- gpointer arg);
+ GNCIdTypeConst param_type,
+ GNCSearchParamFcn fcn,
+ gpointer arg);
/* Compute the value of this parameter for this object */
gpointer gnc_search_param_compute_value (GNCSearchParam *param, gpointer object);
Modified: gnucash/trunk/src/gnome-utils/test/test-gnc-dialog.c
===================================================================
--- gnucash/trunk/src/gnome-utils/test/test-gnc-dialog.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/test/test-gnc-dialog.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -36,7 +36,7 @@
printf("SpinButton: %f\n", d);
b = gnc_dialog_get_boolean(pw, "SampleToggleButton");
- printf("ToggleButton: %s\n", b?"true":"false");
+ printf("ToggleButton: %s\n", b ? "true" : "false");
i = gnc_dialog_get_index(pw, "SampleComboBox");
printf("ComboBox: %d\n", i);
@@ -103,7 +103,8 @@
int i;
ls = gtk_list_store_new(1, G_TYPE_STRING);
- for (i = 0; i<5; i++) {
+ for (i = 0; i < 5; i++)
+ {
gtk_list_store_append(ls, &iter);
gtk_list_store_set(ls, &iter, 0, "item", -1);
}
@@ -128,21 +129,21 @@
int main (int argc, char ** argv)
{
- // g_log_set_always_fatal( G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING );
+// g_log_set_always_fatal( G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING );
- gtk_init(&argc, &argv);
+ gtk_init(&argc, &argv);
- g_type_init();
- pw = gnc_dialog_new("budget.glade", "SampleOptions");
- gnc_dialog_set_cb(pw, apply_cb, close_cb, NULL, NULL);
+ g_type_init();
+ pw = gnc_dialog_new("budget.glade", "SampleOptions");
+ gnc_dialog_set_cb(pw, apply_cb, close_cb, NULL, NULL);
- gnc_dialog_register_testing_types();
- init_widgets(pw);
+ gnc_dialog_register_testing_types();
+ init_widgets(pw);
- test_setters(pw);
- gtk_widget_show_all(GTK_WIDGET(pw));
+ test_setters(pw);
+ gtk_widget_show_all(GTK_WIDGET(pw));
- gtk_main();
- return 0;
+ gtk_main();
+ return 0;
}
Modified: gnucash/trunk/src/gnome-utils/test/test-link-module.c
===================================================================
--- gnucash/trunk/src/gnome-utils/test/test-link-module.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/test/test-link-module.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -5,14 +5,14 @@
static void
guile_main(void *closure, int argc, char ** argv)
{
- gnc_module_system_init();
-/* gnc_module_load("gnucash/gnome-utils", 0); */
- exit(0);
+ gnc_module_system_init();
+ /* gnc_module_load("gnucash/gnome-utils", 0); */
+ exit(0);
}
int
main(int argc, char ** argv)
{
- scm_boot_guile(argc, argv, guile_main, NULL);
- return 0;
+ scm_boot_guile(argc, argv, guile_main, NULL);
+ return 0;
}
Modified: gnucash/trunk/src/gnome-utils/window-main-summarybar.c
===================================================================
--- gnucash/trunk/src/gnome-utils/window-main-summarybar.c 2010-03-02 21:41:39 UTC (rev 18790)
+++ gnucash/trunk/src/gnome-utils/window-main-summarybar.c 2010-03-02 21:42:11 UTC (rev 18791)
@@ -37,12 +37,13 @@
#include "gnc-ui-util.h"
#include "window-main-summarybar.h"
-typedef struct {
- GtkWidget * hbox;
- GtkWidget * totals_combo;
- GtkListStore *datamodel;
- int component_id;
- int cnxn_id;
+typedef struct
+{
+ GtkWidget * hbox;
+ GtkWidget * totals_combo;
+ GtkListStore *datamodel;
+ int component_id;
+ int cnxn_id;
} GNCMainSummary;
#define WINDOW_SUMMARYBAR_CM_CLASS "summary-bar"
@@ -62,11 +63,12 @@
* @todo This structure and the non-GUI code that computes it's values
* should move into the engine.
**/
-typedef struct {
- gnc_commodity * currency;
- gnc_numeric assets;
- gnc_numeric profits;
- gint total_mode;
+typedef struct
+{
+ gnc_commodity * currency;
+ gnc_numeric assets;
+ gnc_numeric profits;
+ gint total_mode;
} GNCCurrencyAcc;
@@ -78,13 +80,14 @@
/** options for summarybar **/
-typedef struct {
- gnc_commodity *default_currency;
- gboolean euro;
- gboolean grand_total;
- gboolean non_currency;
- time_t start_date;
- time_t end_date;
+typedef struct
+{
+ gnc_commodity *default_currency;
+ gboolean euro;
+ gboolean grand_total;
+ gboolean non_currency;
+ time_t start_date;
+ time_t end_date;
} GNCSummarybarOptions;
/**
@@ -94,25 +97,27 @@
static GNCCurrencyAcc *
gnc_ui_get_currency_accumulator(GList **list, gnc_commodity * currency, gint total_mode)
{
- GList *current;
- GNCCurrencyAcc *found;
+ GList *current;
+ GNCCurrencyAcc *found;
- for (current = g_list_first(*list); current; current = g_list_next(current)) {
- found = current->data;
- if ((gnc_commodity_equiv(currency, found->currency))
- && (found->total_mode == total_mode)) {
- return found;
+ for (current = g_list_first(*list); current; current = g_list_next(current))
+ {
+ found = current->data;
+ if ((gnc_commodity_equiv(currency, found->currency))
+ && (found->total_mode == total_mode))
+ {
+ return found;
+ }
}
- }
- found = g_new0 (GNCCurrencyAcc, 1);
- found->currency = currency;
- found->assets = gnc_numeric_zero ();
- found->profits = gnc_numeric_zero ();
- found->total_mode = total_mode;
- *list = g_list_append (*list, found);
+ found = g_new0 (GNCCurrencyAcc, 1);
+ found->currency = currency;
+ found->assets = gnc_numeric_zero ();
+ found->profits = gnc_numeric_zero ();
+ found->total_mode = total_mode;
+ *list = g_list_append (*list, found);
- return found;
+ return found;
}
/**
@@ -122,222 +127,233 @@
gnc_ui_accounts_recurse (Account *parent, GList **currency_list,
GNCSummarybarOptions options)
{
- gnc_numeric start_amount;
- gnc_numeric start_amount_default_currency;
- gnc_numeric end_amount;
- gnc_numeric end_amount_default_currency;
- GNCAccountType account_type;
- gnc_commodity * account_currency;
- gnc_commodity * euro_commodity;
- GNCCurrencyAcc *currency_accum = NULL;
- GNCCurrencyAcc *euro_accum = NULL;
- GNCCurrencyAcc *grand_total_accum = NULL;
- GNCCurrencyAcc *non_curr_accum = NULL;
- GList *children, *node;
- gboolean non_currency = FALSE;
- Timespec end_timespec;
- Timespec start_timespec;
+ gnc_numeric start_amount;
+ gnc_numeric start_amount_default_currency;
+ gnc_numeric end_amount;
+ gnc_numeric end_amount_default_currency;
+ GNCAccountType account_type;
+ gnc_commodity * account_currency;
+ gnc_commodity * euro_commodity;
+ GNCCurrencyAcc *currency_accum = NULL;
+ GNCCurrencyAcc *euro_accum = NULL;
+ GNCCurrencyAcc *grand_total_accum = NULL;
+ GNCCurrencyAcc *non_curr_accum = NULL;
+ GList *children, *node;
+ gboolean non_currency = FALSE;
+ Timespec end_timespec;
+ Timespec start_timespec;
- if (parent == NULL) return;
+ if (parent == NULL) return;
- children = gnc_account_get_children(parent);
- for (node = children; node; node = g_list_next(node))
- {
- Account *account = node->data;
+ children = gnc_account_get_children(parent);
+ for (node = children; node; node = g_list_next(node))
+ {
+ Account *account = node->data;
- account_type = xaccAccountGetType(account);
- account_currency = xaccAccountGetCommodity(account);
+ account_type = xaccAccountGetType(account);
+ account_currency = xaccAccountGetCommodity(account);
- if(options.grand_total)
- grand_total_accum = gnc_ui_get_currency_accumulator(currency_list,
- options.default_currency,
- TOTAL_GRAND_TOTAL);
+ if (options.grand_total)
+ grand_total_accum = gnc_ui_get_currency_accumulator(currency_list,
+ options.default_currency,
+ TOTAL_GRAND_TOTAL);
- if (options.euro)
- {
- euro_commodity = gnc_get_euro ();
- euro_accum = gnc_ui_get_currency_accumulator(currency_list,
- euro_commodity,
- TOTAL_CURR_TOTAL);
- }
- else
- euro_commodity = NULL;
+ if (options.euro)
+ {
+ euro_commodity = gnc_get_euro ();
+ euro_accum = gnc_ui_get_currency_accumulator(currency_list,
+ euro_commodity,
+ TOTAL_CURR_TOTAL);
+ }
+ else
+ euro_commodity = NULL;
- if(!gnc_commodity_is_currency(account_currency)) {
- non_currency = TRUE;
- non_curr_accum = gnc_ui_get_currency_accumulator(currency_list,
- options.default_currency,
- TOTAL_NON_CURR_TOTAL);
- }
+ if (!gnc_commodity_is_currency(account_currency))
+ {
+ non_currency = TRUE;
+ non_curr_accum = gnc_ui_get_currency_accumulator(currency_list,
+ options.default_currency,
+ TOTAL_NON_CURR_TOTAL);
+ }
- if(!non_currency || options.non_currency) {
- currency_accum = gnc_ui_get_currency_accumulator(currency_list,
- account_currency,
- TOTAL_SINGLE);
- }
+ if (!non_currency || options.non_currency)
+ {
+ currency_accum = gnc_ui_get_currency_accumulator(currency_list,
+ account_currency,
+ TOTAL_SINGLE);
+ }
- switch (account_type)
- {
- case ACCT_TYPE_BANK:
- case ACCT_TYPE_CASH:
- case ACCT_TYPE_ASSET:
- case ACCT_TYPE_STOCK:
- case ACCT_TYPE_MUTUAL:
- case ACCT_TYPE_CREDIT:
- case ACCT_TYPE_LIABILITY:
- case ACCT_TYPE_PAYABLE:
- case ACCT_TYPE_RECEIVABLE:
- end_amount = xaccAccountGetBalanceAsOfDate(account, options.end_date);
- timespecFromTime_t(&end_timespec, options.end_date);
- end_amount_default_currency =
- xaccAccountConvertBalanceToCurrencyAsOfDate
- (account, end_amount, account_currency, options.default_currency,
- timespecToTime_t(timespecCanonicalDayTime(end_timespec)));
+ switch (account_type)
+ {
+ case ACCT_TYPE_BANK:
+ case ACCT_TYPE_CASH:
+ case ACCT_TYPE_ASSET:
+ case ACCT_TYPE_STOCK:
+ case ACCT_TYPE_MUTUAL:
+ case ACCT_TYPE_CREDIT:
+ case ACCT_TYPE_LIABILITY:
+ case ACCT_TYPE_PAYABLE:
+ case ACCT_TYPE_RECEIVABLE:
+ end_amount = xaccAccountGetBalanceAsOfDate(account, options.end_date);
+ timespecFromTime_t(&end_timespec, options.end_date);
+ end_amount_default_currency =
+ xaccAccountConvertBalanceToCurrencyAsOfDate
+ (account, end_amount, account_currency, options.default_currency,
+ timespecToTime_t(timespecCanonicalDayTime(end_timespec)));
- if(!non_currency || options.non_currency) {
- currency_accum->assets =
- gnc_numeric_add (currency_accum->assets, end_amount,
- gnc_commodity_get_fraction (account_currency),
- GNC_RND_ROUND);
- }
+ if (!non_currency || options.non_currency)
+ {
+ currency_accum->assets =
+ gnc_numeric_add (currency_accum->assets, end_amount,
+ gnc_commodity_get_fraction (account_currency),
+ GNC_RND_ROUND);
+ }
- if(non_currency) {
- non_curr_accum->assets =
- gnc_numeric_add (non_curr_accum->assets, end_amount_default_currency,
- gnc_commodity_get_fraction (options.default_currency),
- GNC_RND_ROUND);
- }
+ if (non_currency)
+ {
+ non_curr_accum->assets =
+ gnc_numeric_add (non_curr_accum->assets, end_amount_default_currency,
+ gnc_commodity_get_fraction (options.default_currency),
+ GNC_RND_ROUND);
+ }
- if(options.grand_total) {
- grand_total_accum->assets =
- gnc_numeric_add (grand_total_accum->assets, end_amount_default_currency,
- gnc_commodity_get_fraction (options.default_currency),
- GNC_RND_ROUND);
- }
+ if (options.grand_total)
+ {
+ grand_total_accum->assets =
+ gnc_numeric_add (grand_total_accum->assets, end_amount_default_currency,
+ gnc_commodity_get_fraction (options.default_currency),
+ GNC_RND_ROUND);
+ }
- if (options.euro && (currency_accum != euro_accum)) {
- euro_accum->assets =
- gnc_numeric_add (euro_accum->assets,
- gnc_convert_to_euro(account_currency, end_amount),
- gnc_commodity_get_fraction (euro_commodity),
- GNC_RND_ROUND);
- }
+ if (options.euro && (currency_accum != euro_accum))
+ {
+ euro_accum->assets =
+ gnc_numeric_add (euro_accum->assets,
+ gnc_convert_to_euro(account_currency, end_amount),
+ gnc_commodity_get_fraction (euro_commodity),
+ GNC_RND_ROUND);
+ }
- gnc_ui_accounts_recurse(account, currency_list, options);
- break;
- case ACCT_TYPE_INCOME:
- case ACCT_TYPE_EXPENSE:
- start_amount = xaccAccountGetBalanceAsOfDate(account, options.start_date);
- timespecFromTime_t(&start_timespec, options.start_date);
- start_amount_default_currency =
- xaccAccountConvertBalanceToCurrencyAsOfDate
- (account, start_amount, account_currency, options.default_currency,
- timespecToTime_t(timespecCanonicalDayTime(start_timespec)));
- end_amount = xaccAccountGetBalanceAsOfDate(account, options.end_date);
- timespecFromTime_t(&end_timespec, options.end_date);
- end_amount_default_currency =
- xaccAccountConvertBalanceToCurrencyAsOfDate
- (account, end_amount, account_currency, options.default_currency,
- timespecToTime_t(timespecCanonicalDayTime(end_timespec)));
+ gnc_ui_accounts_recurse(account, currency_list, options);
+ break;
+ case ACCT_TYPE_INCOME:
+ case ACCT_TYPE_EXPENSE:
+ start_amount = xaccAccountGetBalanceAsOfDate(account, options.start_date);
+ timespecFromTime_t(&start_timespec, options.start_date);
+ start_amount_default_currency =
+ xaccAccountConvertBalanceToCurrencyAsOfDate
+ (account, start_amount, account_currency, options.default_currency,
+ timespecToTime_t(timespecCanonicalDayTime(start_timespec)));
+ end_amount = xaccAccountGetBalanceAsOfDate(account, options.end_date);
+ timespecFromTime_t(&end_timespec, options.end_date);
+ end_amount_default_currency =
+ xaccAccountConvertBalanceToCurrencyAsOfDate
+ (account, end_amount, account_currency, options.default_currency,
+ timespecToTime_t(timespecCanonicalDayTime(end_timespec)));
- if(!non_currency || options.non_currency) {
- currency_accum->profits =
- gnc_numeric_add (currency_accum->profits, start_amount,
- gnc_commodity_get_fraction (account_currency),
- GNC_RND_ROUND);
- currency_accum->profits =
- gnc_numeric_sub (currency_accum->profits, end_amount,
- gnc_commodity_get_fraction (account_currency),
- GNC_RND_ROUND);
- }
+ if (!non_currency || options.non_currency)
+ {
+ currency_accum->profits =
+ gnc_numeric_add (currency_accum->profits, start_amount,
+ gnc_commodity_get_fraction (account_currency),
+ GNC_RND_ROUND);
+ currency_accum->profits =
+ gnc_numeric_sub (currency_accum->profits, end_amount,
+ gnc_commodity_get_fraction (account_currency),
+ GNC_RND_ROUND);
+ }
- if(non_currency) {
- non_curr_accum->profits =
- gnc_numeric_add (non_curr_accum->profits, start_amount_default_currency,
- gnc_commodity_get_fraction (options.default_currency),
- GNC_RND_ROUND);
- non_curr_accum->profits =
- gnc_numeric_sub (non_curr_accum->profits, end_amount_default_currency,
- gnc_commodity_get_fraction (options.default_currency),
- GNC_RND_ROUND);
- }
+ if (non_currency)
+ {
+ non_curr_accum->profits =
+ gnc_numeric_add (non_curr_accum->profits, start_amount_default_currency,
+ gnc_commodity_get_fraction (options.default_currency),
+ GNC_RND_ROUND);
+ non_curr_accum->profits =
+ gnc_numeric_sub (non_curr_accum->profits, end_amount_default_currency,
+ gnc_commodity_get_fraction (options.default_currency),
+ GNC_RND_ROUND);
+ }
- if(options.grand_total) {
- grand_total_accum->profits =
- gnc_numeric_add (grand_total_accum->profits,
- start_amount_default_currency,
- gnc_commodity_get_fraction (options.default_currency),
- GNC_RND_ROUND);
- grand_total_accum->profits =
- gnc_numeric_sub (grand_total_accum->profits,
- end_amount_default_currency,
- gnc_commodity_get_fraction (options.default_currency),
- GNC_RND_ROUND);
- }
+ if (options.grand_total)
+ {
+ grand_total_accum->profits =
+ gnc_numeric_add (grand_total_accum->profits,
+ start_amount_default_currency,
+ gnc_commodity_get_fraction (options.default_currency),
+ GNC_RND_ROUND);
+ grand_total_accum->profits =
+ gnc_numeric_sub (grand_total_accum->profits,
+ end_amount_default_currency,
+ gnc_commodity_get_fraction (options.default_currency),
+ GNC_RND_ROUND);
+ }
- if (options.euro && (currency_accum != euro_accum)) {
- euro_accum->profits =
- gnc_numeric_add (euro_accum->profits,
- gnc_convert_to_euro(account_currency, start_amount),
- gnc_commodity_get_fraction (euro_commodity),
- GNC_RND_ROUND);
- euro_accum->profits =
- gnc_numeric_sub (euro_accum->profits,
- gnc_convert_to_euro(account_currency, end_amount),
- gnc_commodity_get_fraction (euro_commodity),
- GNC_RND_ROUND);
- }
+ if (options.euro && (currency_accum != euro_accum))
+ {
+ euro_accum->profits =
+ gnc_numeric_add (euro_accum->profits,
+ gnc_convert_to_euro(account_currency, start_amount),
+ gnc_commodity_get_fraction (euro_commodity),
+ GNC_RND_ROUND);
+ euro_accum->profits =
+ gnc_numeric_sub (euro_accum->profits,
+ gnc_convert_to_euro(account_currency, end_amount),
+ gnc_commodity_get_fraction (euro_commodity),
+ GNC_RND_ROUND);
+ }
- gnc_ui_accounts_recurse(account, currency_list, options);
- break;
- case ACCT_TYPE_EQUITY:
- /* no-op, see comments at top about summing assets */
- break;
- /**
- * @fixme I don't know if this is right or if trading accounts should be
- * treated like income and expense accounts.
- **/
- case ACCT_TYPE_TRADING:
- break;
- case ACCT_TYPE_CURRENCY:
- default:
- break;
+ gnc_ui_accounts_recurse(account, currency_list, options);
+ break;
+ case ACCT_TYPE_EQUITY:
+ /* no-op, see comments at top about summing assets */
+ break;
+ /**
+ * @fixme I don't know if this is right or if trading accounts should be
+ * treated like income and expense accounts.
+ **/
+ case ACCT_TYPE_TRADING:
+ break;
+ case ACCT_TYPE_CURRENCY:
+ default:
+ break;
+ }
}
- }
- g_list_free(children);
+ g_list_free(children);
}
static char*
get_total_mode_label(const char *mnemonic, int total_mode)
{
- char *label_str;
- // i.e., "$, grand total," [profits: $12,345.67, assets: $23,456.78]
- switch(total_mode)
- {
- case TOTAL_CURR_TOTAL:
- label_str = g_strdup_printf( _("%s, Total:"), mnemonic );
- break;
- case TOTAL_NON_CURR_TOTAL:
- label_str = g_strdup_printf( _("%s, Non Currency Commodities Total:"), mnemonic );
- break;
- case TOTAL_GRAND_TOTAL:
- label_str = g_strdup_printf( _("%s, Grand Total:"), mnemonic );
- break;
- case TOTAL_SINGLE:
- default:
- label_str = g_strdup_printf( _("%s:"), mnemonic );
- break;
- }
- return label_str;
+ char *label_str;
+ // i.e., "$, grand total," [profits: $12,345.67, assets: $23,456.78]
+ switch (total_mode)
+ {
+ case TOTAL_CURR_TOTAL:
+ label_str = g_strdup_printf( _("%s, Total:"), mnemonic );
+ break;
+ case TOTAL_NON_CURR_TOTAL:
+ label_str = g_strdup_printf( _("%s, Non Currency Commodities Total:"), mnemonic );
+ break;
+ case TOTAL_GRAND_TOTAL:
+ label_str = g_strdup_printf( _("%s, Grand Total:"), mnemonic );
+ break;
+ case TOTAL_SINGLE:
+ default:
+ label_str = g_strdup_printf( _("%s:"), mnemonic );
+ break;
+ }
+ return label_str;
}
-enum {
- COLUMN_MNEMONIC_TYPE,
- COLUMN_ASSETS,
- COLUMN_ASSETS_VALUE,
- COLUMN_PROFITS,
- COLUMN_PROFITS_VALUE,
- N_COLUMNS,
+enum
+{
+ COLUMN_MNEMONIC_TYPE,
+ COLUMN_ASSETS,
+ COLUMN_ASSETS_VALUE,
+ COLUMN_PROFITS,
+ COLUMN_PROFITS_VALUE,
+ N_COLUMNS,
};
/* The gnc_main_window_summary_refresh() subroutine redraws summary
@@ -360,176 +376,179 @@
static void
gnc_main_window_summary_refresh (GNCMainSummary * summary)
{
- Account *root;
- char asset_string[256];
- char profit_string[256];
- GNCCurrencyAcc *currency_accum;
- GList *currency_list;
- GList *current;
- GNCSummarybarOptions options;
+ Account *root;
+ char asset_string[256];
+ char profit_string[256];
+ GNCCurrencyAcc *currency_accum;
+ GList *currency_list;
+ GList *current;
+ GNCSummarybarOptions options;
- options.default_currency = gnc_default_report_currency ();
+ options.default_currency = gnc_default_report_currency ();
- options.euro = gnc_gconf_get_bool(GCONF_GENERAL, KEY_ENABLE_EURO, NULL);
- options.grand_total =
- gnc_gconf_get_bool(GCONF_SECTION, KEY_GRAND_TOTAL, NULL);
- options.non_currency =
- gnc_gconf_get_bool(GCONF_SECTION, KEY_NON_CURRENCY, NULL);
- options.start_date = gnc_accounting_period_fiscal_start();
- options.end_date = gnc_accounting_period_fiscal_end();
+ options.euro = gnc_gconf_get_bool(GCONF_GENERAL, KEY_ENABLE_EURO, NULL);
+ options.grand_total =
+ gnc_gconf_get_bool(GCONF_SECTION, KEY_GRAND_TOTAL, NULL);
+ options.non_currency =
+ gnc_gconf_get_bool(GCONF_SECTION, KEY_NON_CURRENCY, NULL);
+ options.start_date = gnc_accounting_period_fiscal_start();
+ options.end_date = gnc_accounting_period_fiscal_end();
- currency_list = NULL;
+ currency_list = NULL;
- /* grand total should be first in the list */
- if(options.grand_total) {
+ /* grand total should be first in the list */
+ if (options.grand_total)
+ {
+ gnc_ui_get_currency_accumulator (¤cy_list, options.default_currency,
+ TOTAL_GRAND_TOTAL);
+ }
+ /* Make sure there's at least one accumulator in the list. */
gnc_ui_get_currency_accumulator (¤cy_list, options.default_currency,
- TOTAL_GRAND_TOTAL);
- }
- /* Make sure there's at least one accumulator in the list. */
- gnc_ui_get_currency_accumulator (¤cy_list, options.default_currency,
- TOTAL_SINGLE);
+ TOTAL_SINGLE);
- root = gnc_get_current_root_account ();
- gnc_ui_accounts_recurse(root, ¤cy_list, options);
+ root = gnc_get_current_root_account ();
+ gnc_ui_accounts_recurse(root, ¤cy_list, options);
- {
- GtkTreeIter iter;
- char asset_amount_string[256], profit_amount_string[256];
- struct lconv *lc;
+ {
+ GtkTreeIter iter;
+ char asset_amount_string[256], profit_amount_string[256];
+ struct lconv *lc;
- lc = gnc_localeconv();
+ lc = gnc_localeconv();
- g_object_ref(summary->datamodel);
- gtk_combo_box_set_model(GTK_COMBO_BOX(summary->totals_combo), NULL);
- gtk_list_store_clear(summary->datamodel);
- for (current = g_list_first(currency_list); current; current = g_list_next(current)) {
- const char *mnemonic;
- gchar *total_mode_label;
+ g_object_ref(summary->datamodel);
+ gtk_combo_box_set_model(GTK_COMBO_BOX(summary->totals_combo), NULL);
+ gtk_list_store_clear(summary->datamodel);
+ for (current = g_list_first(currency_list); current; current = g_list_next(current))
+ {
+ const char *mnemonic;
+ gchar *total_mode_label;
- currency_accum = current->data;
+ currency_accum = current->data;
- if (gnc_commodity_equiv (currency_accum->currency, gnc_locale_default_currency ()))
- mnemonic = lc->currency_symbol;
- else
- mnemonic = gnc_commodity_get_mnemonic (currency_accum->currency);
-
- if (mnemonic == NULL)
- mnemonic = "";
+ if (gnc_commodity_equiv (currency_accum->currency, gnc_locale_default_currency ()))
+ mnemonic = lc->currency_symbol;
+ else
+ mnemonic = gnc_commodity_get_mnemonic (currency_accum->currency);
- *asset_string= '\0';
- xaccSPrintAmount(asset_amount_string,
- currency_accum->assets,
- gnc_commodity_print_info(currency_accum->currency, TRUE));
+ if (mnemonic == NULL)
+ mnemonic = "";
- *profit_string= '\0';
- xaccSPrintAmount(profit_amount_string,
- currency_accum->profits,
- gnc_commodity_print_info(currency_accum->currency, TRUE));
+ *asset_string = '\0';
+ xaccSPrintAmount(asset_amount_string,
+ currency_accum->assets,
+ gnc_commodity_print_info(currency_accum->currency, TRUE));
- gtk_list_store_append(summary->datamodel, &iter);
- total_mode_label = get_total_mode_label(mnemonic, currency_accum->total_mode);
- gtk_list_store_set(summary->datamodel, &iter,
- COLUMN_MNEMONIC_TYPE, total_mode_label,
- COLUMN_ASSETS, _("Assets:"),
- COLUMN_ASSETS_VALUE, asset_amount_string,
- COLUMN_PROFITS, _("Profits:"),
- COLUMN_PROFITS_VALUE, profit_amount_string,
- -1);
- g_free(total_mode_label);
+ *profit_string = '\0';
+ xaccSPrintAmount(profit_amount_string,
+ currency_accum->profits,
+ gnc_commodity_print_info(currency_accum->currency, TRUE));
+
+ gtk_list_store_append(summary->datamodel, &iter);
+ total_mode_label = get_total_mode_label(mnemonic, currency_accum->total_mode);
+ gtk_list_store_set(summary->datamodel, &iter,
+ COLUMN_MNEMONIC_TYPE, total_mode_label,
+ COLUMN_ASSETS, _("Assets:"),
+ COLUMN_ASSETS_VALUE, asset_amount_string,
+ COLUMN_PROFITS, _("Profits:"),
+ COLUMN_PROFITS_VALUE, profit_amount_string,
+ -1);
+ g_free(total_mode_label);
+ }
+ gtk_combo_box_set_model(GTK_COMBO_BOX(summary->totals_combo),
+ GTK_TREE_MODEL(summary->datamodel));
+ g_object_unref(summary->datamodel);
+
+ gtk_combo_box_set_active(GTK_COMBO_BOX(summary->totals_combo), 0);
}
- gtk_combo_box_set_model(GTK_COMBO_BOX(summary->totals_combo),
- GTK_TREE_MODEL(summary->datamodel));
- g_object_unref(summary->datamodel);
- gtk_combo_box_set_active(GTK_COMBO_BOX(summary->totals_combo), 0);
- }
-
- /* Free the list we created for this */
- for (current = g_list_first(currency_list);
- current;
- current = g_list_next(current)) {
- g_free(current->data);
- }
- g_list_free(currency_list);
+ /* Free the list we created for this */
+ for (current = g_list_first(currency_list);
+ current;
+ current = g_list_next(current))
+ {
+ g_free(current->data);
+ }
+ g_list_free(currency_list);
}
static void
gnc_main_window_summary_destroy_cb(GNCMainSummary *summary, gpointer data)
{
- gnc_gconf_remove_anon_notification(GCONF_SECTION, summary->cnxn_id);
- gnc_unregister_gui_component(summary->component_id);
- g_free(summary);
+ gnc_gconf_remove_anon_notification(GCONF_SECTION, summary->cnxn_id);
+ gnc_unregister_gui_component(summary->component_id);
+ g_free(summary);
}
static void
summarybar_refresh_handler(GHashTable * changes, gpointer user_data)
{
- GNCMainSummary * summary = user_data;
- gnc_main_window_summary_refresh(summary);
+ GNCMainSummary * summary = user_data;
+ gnc_main_window_summary_refresh(summary);
}
static void
gconf_client_notify_cb (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
{
- GNCMainSummary * summary = user_data;
- gnc_main_window_summary_refresh(summary);
+ GNCMainSummary * summary = user_data;
+ gnc_main_window_summary_refresh(summary);
}
GtkWidget *
gnc_main_window_summary_new (void)
{
- GNCMainSummary * retval = g_new0(GNCMainSummary, 1);
- GtkCellRenderer *textRenderer;
- int i;
- // These options lead to a better looking layout for the combo-box, where
- // the "Assets: $####.##" and "Profit: $####.##" values are visually next
- // to each other.
- gboolean expandOptions[] = { TRUE, FALSE, TRUE, FALSE, TRUE };
-
- retval->datamodel = gtk_list_store_new( N_COLUMNS,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING );
+ GNCMainSummary * retval = g_new0(GNCMainSummary, 1);
+ GtkCellRenderer *textRenderer;
+ int i;
+ // These options lead to a better looking layout for the combo-box, where
+ // the "Assets: $####.##" and "Profit: $####.##" values are visually next
+ // to each other.
+ gboolean expandOptions[] = { TRUE, FALSE, TRUE, FALSE, TRUE };
- retval->hbox = gtk_hbox_new (FALSE, 5);
- retval->totals_combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (retval->datamodel));
- g_object_unref (retval->datamodel);
+ retval->datamodel = gtk_list_store_new( N_COLUMNS,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING );
- retval->component_id = gnc_register_gui_component (WINDOW_SUMMARYBAR_CM_CLASS,
- summarybar_refresh_handler,
- NULL, retval);
- gnc_gui_component_watch_entity_type (retval->component_id,
- GNC_ID_ACCOUNT,
- QOF_EVENT_DESTROY
- | GNC_EVENT_ITEM_CHANGED);
+ retval->hbox = gtk_hbox_new (FALSE, 5);
+ retval->totals_combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (retval->datamodel));
+ g_object_unref (retval->datamodel);
- for ( i = 0; i < N_COLUMNS; i++ )
- {
- textRenderer = GTK_CELL_RENDERER(gtk_cell_renderer_text_new());
- gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(retval->totals_combo), textRenderer, expandOptions[i] );
- gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(retval->totals_combo), textRenderer, "text", i );
- }
+ retval->component_id = gnc_register_gui_component (WINDOW_SUMMARYBAR_CM_CLASS,
+ summarybar_refresh_handler,
+ NULL, retval);
+ gnc_gui_component_watch_entity_type (retval->component_id,
+ GNC_ID_ACCOUNT,
+ QOF_EVENT_DESTROY
+ | GNC_EVENT_ITEM_CHANGED);
- gtk_container_set_border_width (GTK_CONTAINER (retval->hbox), 2);
- gtk_box_pack_start (GTK_BOX(retval->hbox), retval->totals_combo, TRUE, TRUE, 5);
- gtk_widget_show (retval->totals_combo);
- gtk_widget_show (retval->hbox);
+ for ( i = 0; i < N_COLUMNS; i++ )
+ {
+ textRenderer = GTK_CELL_RENDERER(gtk_cell_renderer_text_new());
+ gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(retval->totals_combo), textRenderer, expandOptions[i] );
+ gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(retval->totals_combo), textRenderer, "text", i );
+ }
- g_signal_connect_swapped (G_OBJECT (retval->hbox), "destroy",
- G_CALLBACK (gnc_main_window_summary_destroy_cb),
- retval);
+ gtk_container_set_border_width (GTK_CONTAINER (retval->hbox), 2);
+ gtk_box_pack_start (GTK_BOX(retval->hbox), retval->totals_combo, TRUE, TRUE, 5);
+ gtk_widget_show (retval->totals_combo);
+ gtk_widget_show (retval->hbox);
- gnc_main_window_summary_refresh(retval);
+ g_signal_connect_swapped (G_OBJECT (retval->hbox), "destroy",
+ G_CALLBACK (gnc_main_window_summary_destroy_cb),
+ retval);
- retval->cnxn_id = gnc_gconf_add_anon_notification(GCONF_SECTION,
- gconf_client_notify_cb,
- retval);
+ gnc_main_window_summary_refresh(retval);
- return retval->hbox;
+ retval->cnxn_id = gnc_gconf_add_anon_notification(GCONF_SECTION,
+ gconf_client_notify_cb,
+ retval);
+
+ return retval->hbox;
}
More information about the gnucash-changes
mailing list