Replicate changes in *2 files

pull/674/head
jean 6 years ago
parent c56d49772a
commit c39f8929d2

@ -451,7 +451,7 @@ gnc_tree_model_split_reg_dispose (GObject *object)
/* Create a new tree model */
GncTreeModelSplitReg *
gnc_tree_model_split_reg_new (SplitRegisterType2 reg_type, SplitRegisterStyle2 style,
gboolean use_double_line, gboolean is_template)
gboolean use_double_line, gboolean is_template, gboolean mismatched_commodities)
{
GncTreeModelSplitReg *model;
GncTreeModelSplitRegPrivate *priv;
@ -469,6 +469,7 @@ gnc_tree_model_split_reg_new (SplitRegisterType2 reg_type, SplitRegisterStyle2 s
model->style = style;
model->use_double_line = use_double_line;
model->is_template = is_template;
model->mismatched_commodities = mismatched_commodities;
model->sort_col = 1;
model->sort_depth = 1;

@ -144,6 +144,7 @@ typedef struct
gboolean use_double_line; /**<FIXME ? As above, whether to use two lines per transaction */
gboolean is_template; /**< Are we using a template */
gboolean mismatched_commodities; /**< Are there different commodities */
gint sort_depth; /**< This is the row the sort direction is based on. */
gint sort_col; /**< This is the column the sort direction is based on. */
@ -201,7 +202,7 @@ GType gnc_tree_model_split_reg_get_type (void);
/** Create new model and set options for register. */
GncTreeModelSplitReg *
gnc_tree_model_split_reg_new (SplitRegisterType2 reg_type, SplitRegisterStyle2 style,
gboolean use_double_line, gboolean is_template);
gboolean use_double_line, gboolean is_template, gboolean mismatched_commodities);
/** Load the model from a slist and set default account for register. */
void gnc_tree_model_split_reg_load (GncTreeModelSplitReg *model, GList * slist, Account *default_account);

@ -802,15 +802,6 @@ gnc_plugin_page_register_new (Account* account, gboolean subaccounts)
com0 = gnc_account_get_currency_or_parent (account);
com1 = gnc_account_foreach_descendant_until (account,
gnc_plug_page_register_check_commodity, com0);
if (0 && com1 != NULL)
{
const gchar* com0_str = gnc_commodity_get_fullname (com0);
const gchar* com1_str = gnc_commodity_get_fullname (com1);
gnc_info_dialog (NULL,
_ ("Cannot open sub-accounts because sub-accounts and parent account have different commodities or currencies\nFound:\n%s\n%s\n(There may be more mismatches)"),
com0_str, com1_str);
return NULL;
}
if (subaccounts)
ledger = gnc_ledger_display_subaccounts (account, com1 != NULL);

@ -559,6 +559,15 @@ typedef struct GncPluginPageRegister2Private
static GObjectClass *parent_class = NULL;
static gpointer
gnc_plug_page_register_check_commodity(Account *account, void* usr_data)
{
// Check that account's commodity matches the commodity in usr_data
gnc_commodity* com0 = (gnc_commodity*) usr_data;
gnc_commodity* com1 = xaccAccountGetCommodity(account);
return gnc_commodity_equal(com1, com0) ? NULL : com1;
}
/************************************************************/
/* Implementation */
/************************************************************/
@ -630,6 +639,8 @@ gnc_plugin_page_register2_new (Account *account, gboolean subaccounts)
GNCLedgerDisplay2 *ledger;
GncPluginPage *page;
GncPluginPageRegister2Private *priv;
gnc_commodity* com0;
gnc_commodity* com1;
/*################## Added for Reg2 #################*/
const GList *item;
@ -657,9 +668,10 @@ gnc_plugin_page_register2_new (Account *account, gboolean subaccounts)
}
}
/*################## Added for Reg2 #################*/
com0 = gnc_account_get_currency_or_parent(account);
com1 = gnc_account_foreach_descendant_until(account,gnc_plug_page_register_check_commodity,com0);
if (subaccounts)
ledger = gnc_ledger_display2_subaccounts (account);
ledger = gnc_ledger_display2_subaccounts (account,com1!=NULL);
else
ledger = gnc_ledger_display2_simple (account);

@ -93,7 +93,8 @@ gnc_ledger_display2_internal (Account *lead_account, Query *q,
SplitRegisterType2 reg_type,
SplitRegisterStyle2 style,
gboolean use_double_line,
gboolean is_template);
gboolean is_template,
gboolean mismatched_commodities);
static void gnc_ledger_display2_refresh_internal (GNCLedgerDisplay2 *ld, GList *splits);
@ -373,7 +374,7 @@ gnc_ledger_display2_simple (Account *account)
ld = gnc_ledger_display2_internal (account, NULL, LD2_SINGLE, reg_type,
gnc_get_default_register_style(acc_type),
use_double_line, FALSE);
use_double_line, FALSE, FALSE);
LEAVE("%p", ld);
return ld;
}
@ -381,7 +382,7 @@ gnc_ledger_display2_simple (Account *account)
/* Opens up a register window to display an account, and all of its
* children, in the same window */
GNCLedgerDisplay2 *
gnc_ledger_display2_subaccounts (Account *account)
gnc_ledger_display2_subaccounts (Account *account, gboolean mismatched_commodities)
{
SplitRegisterType2 reg_type;
GNCLedgerDisplay2 *ld;
@ -392,7 +393,7 @@ gnc_ledger_display2_subaccounts (Account *account)
ld = gnc_ledger_display2_internal (account, NULL, LD2_SUBACCOUNT,
reg_type, REG2_STYLE_JOURNAL, FALSE,
FALSE);
FALSE,mismatched_commodities);
LEAVE("%p", ld);
return ld;
}
@ -442,7 +443,7 @@ gnc_ledger_display2_gl (void)
QOF_QUERY_AND);
ld = gnc_ledger_display2_internal (NULL, query, LD2_GL, GENERAL_JOURNAL2,
REG2_STYLE_JOURNAL, FALSE, FALSE);
REG2_STYLE_JOURNAL, FALSE, FALSE, FALSE);
LEAVE("%p", ld);
return ld;
}
@ -487,7 +488,8 @@ gnc_ledger_display2_template_gl (char *id)
SEARCH_LEDGER2,
REG2_STYLE_JOURNAL,
FALSE,
isTemplateModeTrue);
isTemplateModeTrue,
FALSE);
model = gnc_ledger_display2_get_split_model_register (ld);
@ -689,7 +691,7 @@ gnc_ledger_display2_query (Query *query, SplitRegisterType2 type,
ENTER("query=%p", query);
ld = gnc_ledger_display2_internal (NULL, query, LD2_GL, type, style,
FALSE, FALSE);
FALSE, FALSE, FALSE);
LEAVE("%p", ld);
return ld;
}
@ -700,7 +702,8 @@ gnc_ledger_display2_internal (Account *lead_account, Query *q,
SplitRegisterType2 reg_type,
SplitRegisterStyle2 style,
gboolean use_double_line,
gboolean is_template )
gboolean is_template,
gboolean mismatched_commodities)
{
GNCLedgerDisplay2 *ld;
gint limit;
@ -806,7 +809,8 @@ gnc_ledger_display2_internal (Account *lead_account, Query *q,
ld->use_double_line_default = use_double_line;
ld->model = gnc_tree_model_split_reg_new (reg_type, style, use_double_line, is_template);
// JEAN: add mismatched_commodities
ld->model = gnc_tree_model_split_reg_new (reg_type, style, use_double_line, is_template, mismatched_commodities);
gnc_tree_model_split_reg_set_data (ld->model, ld, gnc_ledger_display2_parent);
gnc_tree_model_split_reg_set_display (ld->model, display_subaccounts, is_gl);

@ -99,7 +99,7 @@ GNCLedgerDisplay2 * gnc_ledger_display2_simple (Account *account);
/** opens up a register window to display the parent account and all of
* its children. */
GNCLedgerDisplay2 * gnc_ledger_display2_subaccounts (Account *account);
GNCLedgerDisplay2 * gnc_ledger_display2_subaccounts (Account *account, gboolean mismatched_commodities);
/** opens up a general ledger window */
GNCLedgerDisplay2 * gnc_ledger_display2_gl (void);

Loading…
Cancel
Save