[Gnucash-changes] r13513 - gnucash/trunk/src - Factor out and create new function: xaccAccountIsPriced() that does the

Chris Shoemaker chris at cvs.gnucash.org
Tue Mar 7 00:31:56 EST 2006


Author: chris
Date: 2006-03-07 00:31:54 -0500 (Tue, 07 Mar 2006)
New Revision: 13513
Trac: http://svn.gnucash.org/trac/changeset/13513

Modified:
   gnucash/trunk/src/backend/file/io-gncbin-r.c
   gnucash/trunk/src/engine/Account.c
   gnucash/trunk/src/engine/Account.h
   gnucash/trunk/src/engine/gnc-associate-account.c
   gnucash/trunk/src/gnome/druid-stock-split.c
   gnucash/trunk/src/gnome/gnc-split-reg.c
   gnucash/trunk/src/register/ledger-core/gnc-ledger-display.c
   gnucash/trunk/src/register/ledger-core/split-register-model.c
   gnucash/trunk/src/register/ledger-core/split-register.c
Log:
   Factor out and create new function: xaccAccountIsPriced() that does the 
   common STOCK, MUTUAL or CURRENCY check.


Modified: gnucash/trunk/src/backend/file/io-gncbin-r.c
===================================================================
--- gnucash/trunk/src/backend/file/io-gncbin-r.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/backend/file/io-gncbin-r.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -206,12 +206,9 @@
   {
     GNCPotentialQuote *q = (GNCPotentialQuote *) item->data;
     Account *split_acct = xaccSplitGetAccount(q->split);
-    GNCAccountType acct_type = xaccAccountGetType(split_acct);
 
     /* at this point, we already know it's a split with a zero amount */
-    if((acct_type == STOCK) ||
-       (acct_type == MUTUAL) ||
-       (acct_type == CURRENCY)) {
+    if (xaccAccountIsPriced(split_acct)) {
       /* this is a quote -- file it in the db and kill the split */
       Transaction *txn = xaccSplitGetParent(q->split);
       GNCPrice *price = gnc_price_create(book);
@@ -739,18 +736,11 @@
 
      if (!tmp || *tmp == '\0')
      {
-        GNCAccountType account_type;
+         if (xaccAccountIsPriced(acc)) {
+             if (tmp) g_free (tmp);
 
-        account_type = xaccAccountGetType (acc);
-
-        if (account_type == STOCK  ||
-            account_type == MUTUAL ||
-            account_type == CURRENCY)
-        {
-          if (tmp) g_free (tmp);
-
-          tmp = strdup (xaccAccountGetName (acc));
-          if (tmp == NULL) return NULL;
+             tmp = strdup (xaccAccountGetName (acc));
+             if (tmp == NULL) return NULL;
         }
      }
 

Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/engine/Account.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -2162,7 +2162,14 @@
     return mask;
 }
 
+gboolean
+xaccAccountIsPriced(const Account *acc)
+{
+    if (!acc) return FALSE;
 
+    return (acc->type == STOCK || acc->type == MUTUAL || 
+            acc->type == CURRENCY);
+}
 
 /********************************************************************\
 \********************************************************************/
@@ -2404,16 +2411,13 @@
   if (!acc) return;
 
   xaccAccountBeginEdit(acc);
-  {
-    GNCAccountType t = acc->type;
-
-    if ((t == STOCK) || (t == MUTUAL) || (t == CURRENCY)) {
+  if (xaccAccountIsPriced(acc)) {
       kvp_frame_set_slot_nc(acc->inst.kvp_data,
                             "old-price-source",
                             src ? kvp_value_new_string(src) : NULL);
       mark_account (acc);
-    }
   }
+  
   acc->inst.dirty = TRUE;
   xaccAccountCommitEdit(acc);
 }
@@ -2424,14 +2428,12 @@
 const char*
 dxaccAccountGetPriceSrc(const Account *acc) 
 {
-  GNCAccountType t;
   if(!acc) return NULL;
 
-  t = acc->type;
-  if((t == STOCK) || (t == MUTUAL) || (t == CURRENCY)) 
-  {
-    KvpValue *value = kvp_frame_get_slot(acc->inst.kvp_data, "old-price-source");
-    if(value) return (kvp_value_get_string(value));
+  if (xaccAccountIsPriced(acc)) {
+      KvpValue *value = kvp_frame_get_slot(acc->inst.kvp_data, 
+                                           "old-price-source");
+      if (value) return (kvp_value_get_string(value));
   }
   return NULL;
 }
@@ -2442,18 +2444,14 @@
 void
 dxaccAccountSetQuoteTZ(Account *acc, const char *tz) 
 {
-  if(!acc) return;
+  if (!acc) return;
 
   xaccAccountBeginEdit(acc);
-  {
-    GNCAccountType t = acc->type;
-
-    if((t == STOCK) || (t == MUTUAL) || (t == CURRENCY)) {
+  if (xaccAccountIsPriced(acc)) {
       kvp_frame_set_slot_nc(acc->inst.kvp_data,
                             "old-quote-tz",
                             tz ? kvp_value_new_string(tz) : NULL);
       mark_account (acc);
-    }
   }
   acc->inst.dirty = TRUE;
   xaccAccountCommitEdit(acc);
@@ -2465,14 +2463,11 @@
 const char*
 dxaccAccountGetQuoteTZ(const Account *acc) 
 {
-  GNCAccountType t;
-  if(!acc) return NULL;
+  if (!acc) return NULL;
 
-  t = acc->type;
-  if((t == STOCK) || (t == MUTUAL) || (t == CURRENCY))
-  {
-    KvpValue *value = kvp_frame_get_slot(acc->inst.kvp_data, "old-quote-tz");
-    if(value) return (kvp_value_get_string(value));
+  if (xaccAccountIsPriced(acc)) {
+      KvpValue *value = kvp_frame_get_slot(acc->inst.kvp_data, "old-quote-tz");
+      if(value) return (kvp_value_get_string(value));
   }
   return NULL;
 }

Modified: gnucash/trunk/src/engine/Account.h
===================================================================
--- gnucash/trunk/src/engine/Account.h	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/engine/Account.h	2006-03-07 05:31:54 UTC (rev 13513)
@@ -217,8 +217,10 @@
 void xaccAccountSetNotes (Account *account, const char *notes);
 /** Set the last num field of an Account */
 void xaccAccountSetLastNum (Account *account, const char *num);
-/** Set the account's type */
+/** Get the account's type */
 GNCAccountType xaccAccountGetType (const Account *account);
+/** Is the account a stock, mutual fund or currency? */
+gboolean xaccAccountIsPriced(const Account *acc);
 
 /** Get the account's name */
 const char * xaccAccountGetName (const Account *account);

Modified: gnucash/trunk/src/engine/gnc-associate-account.c
===================================================================
--- gnucash/trunk/src/engine/gnc-associate-account.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/engine/gnc-associate-account.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -208,11 +208,9 @@
 {
   KvpFrame *account_frame, *inc_account_frame;
   KvpValue *kvpd_on_account_list;
-  GNCAccountType type;
 
   g_return_if_fail(stock_account);
-  type = xaccAccountGetType(stock_account);
-  g_return_if_fail(type == STOCK || type == MUTUAL);
+  g_return_if_fail(xaccAccountIsPriced(stock_account));
   account_frame = xaccAccountGetSlots(stock_account);
   g_return_if_fail(account_frame);
   g_return_if_fail(category >= 0);
@@ -250,11 +248,9 @@
 {
   KvpFrame *account_frame, *expense_acc_frame;
   KvpValue *kvpd_on_account_list;
-  GNCAccountType type;
 
   g_return_if_fail(stock_account);
-  type = xaccAccountGetType(stock_account);
-  g_return_if_fail(type == STOCK || type == MUTUAL);
+  g_return_if_fail(xaccAccountIsPriced(stock_account));
   account_frame = xaccAccountGetSlots(stock_account);
   g_return_if_fail(account_frame);
   g_return_if_fail(category >= 0);
@@ -286,15 +282,12 @@
 gnc_tracking_find_expense_accounts(Account *stock_account, 
                                    GNCTrackingExpenseCategory category)
 {
-  
-  GNCAccountType type;
   KvpFrame *account_frame, *expense_acc_frame;
   KvpValue *kvpd_on_account_list;
 
-  type = xaccAccountGetType(stock_account);
+  g_return_val_if_fail(xaccAccountIsPriced(stock_account), NULL);  
   g_return_val_if_fail(category >= 0 && category < GNC_TR_EXP_N_CATEGORIES,
 		       NULL);
-  g_return_val_if_fail(type == STOCK || type == MUTUAL, NULL);
 
   account_frame = xaccAccountGetSlots(stock_account);
   g_return_val_if_fail(account_frame, NULL);
@@ -321,14 +314,12 @@
 gnc_tracking_find_income_accounts(Account *stock_account, 
                                   GNCTrackingIncomeCategory category)
 {
-  GNCAccountType type;
   KvpFrame *account_frame, *income_acc_frame;
   KvpValue *kvpd_on_account_list;
 
-  type = xaccAccountGetType(stock_account);
+  g_return_val_if_fail(xaccAccountIsPriced(stock_account), NULL);
   g_return_val_if_fail(category >= 0 && category < GNC_TR_INC_N_CATEGORIES,
 		       NULL);
-  g_return_val_if_fail(type == STOCK || type == MUTUAL, NULL);
 
   account_frame = xaccAccountGetSlots(stock_account);
   g_return_val_if_fail(account_frame, NULL);

Modified: gnucash/trunk/src/gnome/druid-stock-split.c
===================================================================
--- gnucash/trunk/src/gnome/druid-stock-split.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/gnome/druid-stock-split.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -126,19 +126,16 @@
     Account *account = node->data;
     GNCPrintAmountInfo print_info;
     const gnc_commodity *commodity;
-    GNCAccountType account_type;
     gnc_numeric balance;
     char *strings[4];
     gint row;
 
-    account_type = xaccAccountGetType (account);
-    if (account_type != STOCK &&
-        account_type != MUTUAL)
-      continue;
+    if (!xaccAccountIsPriced(account))
+        continue;
 
     balance = xaccAccountGetBalance (account);
     if (gnc_numeric_zero_p (balance))
-      continue;
+        continue;
 
     if (xaccAccountGetPlaceholder (account))
 	continue;

Modified: gnucash/trunk/src/gnome/gnc-split-reg.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-split-reg.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/gnome/gnc-split-reg.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -1791,7 +1791,6 @@
 GtkWidget *
 gsr_create_summary_bar( GNCSplitReg *gsr )
 {
-  gboolean has_shares;
   GtkWidget *summarybar;
 
   gsr->cleared_label    = NULL;
@@ -1807,30 +1806,9 @@
     return NULL;
   }
 
-  {
-    Account *account;
-    GNCAccountType atype;
-
-    account = gnc_ledger_display_leader( gsr->ledger );
-    atype = xaccAccountGetType (account);
-
-    switch (atype)
-    {
-      case STOCK:
-      case MUTUAL:
-      case CURRENCY:
-        has_shares = TRUE;
-        break;
-
-      default:
-        has_shares = FALSE;
-        break;
-    }
-  }
-
   summarybar = gtk_hbox_new (FALSE, 4);
 
-  if (!has_shares)
+  if (!xaccAccountIsPriced(gnc_ledger_display_leader(gsr->ledger)))
   {
     gsr->balance_label    = add_summary_label (summarybar, _("Present:"));
     gsr->future_label     = add_summary_label (summarybar, _("Future:"));

Modified: gnucash/trunk/src/register/ledger-core/gnc-ledger-display.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/gnc-ledger-display.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/register/ledger-core/gnc-ledger-display.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -227,16 +227,7 @@
 static gpointer
 look_for_portfolio_cb (Account *account, gpointer data)
 {
-  GNCAccountType le_type;
-
-  le_type = xaccAccountGetType (account);
-  if ((STOCK    == le_type) ||
-      (MUTUAL   == le_type) ||
-      (CURRENCY == le_type))
-  {
-     return (gpointer) PORTFOLIO_LEDGER;
-  }
-  return NULL;
+    return xaccAccountIsPriced(account) ? (gpointer) PORTFOLIO_LEDGER : NULL;
 }
 
 static SplitRegisterType

Modified: gnucash/trunk/src/register/ledger-core/split-register-model.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register-model.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/register/ledger-core/split-register-model.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -61,7 +61,6 @@
 gnc_split_register_use_security_cells (SplitRegister *reg,
                                        VirtualLocation virt_loc)
 {
-  GNCAccountType account_type;
   CursorClass cursor_class;
   Account *account;
   Split *split;
@@ -93,14 +92,7 @@
   if (!account)
     return TRUE;
 
-  account_type = xaccAccountGetType (account);
-
-  if (account_type == STOCK  ||
-      account_type == MUTUAL ||
-      account_type == CURRENCY)
-    return TRUE;
-
-  return FALSE;
+  return xaccAccountIsPriced(account);
 }
 
 static const char *

Modified: gnucash/trunk/src/register/ledger-core/split-register.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register.c	2006-03-07 04:45:46 UTC (rev 13512)
+++ gnucash/trunk/src/register/ledger-core/split-register.c	2006-03-07 05:31:54 UTC (rev 13513)
@@ -1600,7 +1600,6 @@
   gboolean recalc_shares = FALSE;
   gboolean recalc_price = FALSE;
   gboolean recalc_value = FALSE;
-  GNCAccountType account_type;
   gboolean price_changed;
   gboolean amount_changed;  /* please s/amount_changed/value_changed/ */
   gboolean shares_changed;
@@ -1624,13 +1623,9 @@
   if (!account)
     account = gnc_split_register_get_default_account (reg);
 
-  account_type = xaccAccountGetType (account);
+  if (!xaccAccountIsPriced(account))
+      return TRUE;
 
-  if (account_type != STOCK  &&
-      account_type != MUTUAL &&
-      account_type != CURRENCY)
-    return TRUE;
-
   price_changed = gnc_table_layout_get_cell_changed (reg->table->layout,
                                                      PRIC_CELL, TRUE);
   amount_changed = (gnc_table_layout_get_cell_changed (reg->table->layout,



More information about the gnucash-changes mailing list