gnucash maint: Multiple changes pushed
Geert Janssens
gjanssens at code.gnucash.org
Tue Sep 13 15:14:36 EDT 2016
Updated via https://github.com/Gnucash/gnucash/commit/f54fc2ff (commit)
via https://github.com/Gnucash/gnucash/commit/6450bb62 (commit)
via https://github.com/Gnucash/gnucash/commit/382b031e (commit)
from https://github.com/Gnucash/gnucash/commit/90126d52 (commit)
commit f54fc2ff11d4fe8a1b415081fb45f39fd73ba703
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Mon Aug 1 12:45:35 2016 +0100
Add option to recn cell type to be read only
Use added read only option to make Associate cell read only
diff --git a/src/register/ledger-core/split-register-load.c b/src/register/ledger-core/split-register-load.c
index 6e061b5..e769192 100644
--- a/src/register/ledger-core/split-register-load.c
+++ b/src/register/ledger-core/split-register-load.c
@@ -82,6 +82,7 @@ gnc_split_register_load_associate_cells (SplitRegister *reg)
/* FIXME: These should get moved to an i18n function */
gnc_recn_cell_set_valid_flags (cell, "fw ", ' ');
gnc_recn_cell_set_flag_order (cell, "fw ");
+ gnc_recn_cell_set_read_only (cell, TRUE);
}
static void
diff --git a/src/register/register-core/recncell.c b/src/register/register-core/recncell.c
index 3cce659..763f23c 100644
--- a/src/register/register-core/recncell.c
+++ b/src/register/register-core/recncell.c
@@ -74,6 +74,9 @@ gnc_recn_cell_enter (BasicCell *_cell,
! (cell->confirm_cb (cell->flag, cell->confirm_data)))
return FALSE;
+ if (cell->read_only == TRUE)
+ return FALSE;
+
/* Find the current flag in the list of flags */
this_flag = strchr (cell->flag_order, cell->flag);
@@ -111,6 +114,7 @@ gnc_recn_cell_init (RecnCell *cell)
cell->get_string = NULL;
cell->valid_flags = "";
cell->flag_order = "";
+ cell->read_only = FALSE;
cell->cell.enter_cell = gnc_recn_cell_enter;
cell->cell.set_value = gnc_recn_cell_set_value;
@@ -207,3 +211,10 @@ gnc_recn_cell_set_flag_order (RecnCell *cell, const char *flags)
cell->flag_order = (char *)flags;
}
+
+void
+gnc_recn_cell_set_read_only (RecnCell *cell, gboolean read_only)
+{
+ g_return_if_fail (cell != NULL);
+ cell->read_only = read_only;
+}
diff --git a/src/register/register-core/recncell.h b/src/register/register-core/recncell.h
index 7017b9c..c3343ac 100644
--- a/src/register/register-core/recncell.h
+++ b/src/register/register-core/recncell.h
@@ -57,6 +57,7 @@ typedef struct
RecnCellStringGetter get_string;
RecnCellConfirm confirm_cb;
gpointer confirm_data;
+ gboolean read_only;
} RecnCell;
BasicCell * gnc_recn_cell_new (void);
@@ -81,5 +82,7 @@ void gnc_recn_cell_set_string_getter (RecnCell *cell,
void gnc_recn_cell_set_valid_flags (RecnCell *cell, const char *flags,
char default_flag);
void gnc_recn_cell_set_flag_order (RecnCell *cell, const char *flags);
+
+void gnc_recn_cell_set_read_only (RecnCell *cell, gboolean read_only);
/** @} */
#endif
commit 6450bb624ae3c5c5f564f8943fe8feda46defbd2
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Mon Aug 1 12:44:25 2016 +0100
Make a distinction between file/link Association
Show a 'f' in the register for a file association and a 'w' for a link
diff --git a/src/register/ledger-core/split-register-layout.c b/src/register/ledger-core/split-register-layout.c
index 2f9c2dd..ca77059 100644
--- a/src/register/ledger-core/split-register-layout.c
+++ b/src/register/ledger-core/split-register-layout.c
@@ -696,7 +696,7 @@ gnc_split_register_layout_add_cells (SplitRegister *reg,
ASSOC_CELL,
RECN_CELL_TYPE_NAME,
N_("Associate:A") + 10,
- CELL_ALIGN_LEFT,
+ CELL_ALIGN_CENTER,
FALSE,
FALSE);
diff --git a/src/register/ledger-core/split-register-load.c b/src/register/ledger-core/split-register-load.c
index abbb67a..6e061b5 100644
--- a/src/register/ledger-core/split-register-load.c
+++ b/src/register/ledger-core/split-register-load.c
@@ -80,8 +80,8 @@ gnc_split_register_load_associate_cells (SplitRegister *reg)
if (!cell) return;
/* FIXME: These should get moved to an i18n function */
- gnc_recn_cell_set_valid_flags (cell, "@ ", ' ');
- gnc_recn_cell_set_flag_order (cell, "@ ");
+ gnc_recn_cell_set_valid_flags (cell, "fw ", ' ');
+ gnc_recn_cell_set_flag_order (cell, "fw ");
}
static void
diff --git a/src/register/ledger-core/split-register-model.c b/src/register/ledger-core/split-register-model.c
index 32801d1..07cc762 100644
--- a/src/register/ledger-core/split-register-model.c
+++ b/src/register/ledger-core/split-register-model.c
@@ -319,6 +319,13 @@ gnc_split_register_get_action_label (VirtualLocation virt_loc,
}
static const char *
+gnc_split_register_get_associate_label (VirtualLocation virt_loc,
+ gpointer user_data)
+{
+ return _("Associate:A") + 10;
+}
+
+static const char *
gnc_split_register_get_xfrm_label (VirtualLocation virt_loc,
gpointer user_data)
{
@@ -340,13 +347,6 @@ gnc_split_register_get_memo_label (VirtualLocation virt_loc,
}
static const char *
-gnc_split_register_get_associate_label (VirtualLocation virt_loc,
- gpointer user_data)
-{
- return _("Associate:A");
-}
-
-static const char *
gnc_split_register_get_type_label (VirtualLocation virt_loc,
gpointer user_data)
{
@@ -786,7 +786,12 @@ gnc_split_register_get_associate_entry (VirtualLocation virt_loc,
// Check for uri is empty or NULL
if (g_strcmp0 (uri, "") != 0 && g_strcmp0 (uri, NULL) != 0)
- associate = '@';
+ {
+ if (g_str_has_prefix (uri, "file:"))
+ associate = 'f';
+ else
+ associate = 'w';
+ }
else
associate = ' ';
@@ -809,7 +814,6 @@ gnc_split_register_get_associate_value (SplitRegister *reg,
return gnc_recn_cell_get_flag (cell);
}
-
static const char *
gnc_split_register_get_type_entry (VirtualLocation virt_loc,
gboolean translate,
commit 382b031e3cbc51147f600b7dc4601438d6e2a66d
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Mon Aug 1 12:42:45 2016 +0100
Indicate an Association in the Register
Use the field below the reconcile and type entry on the transaction
lines to indicate a file/link association.
diff --git a/src/register/ledger-core/split-register-layout.c b/src/register/ledger-core/split-register-layout.c
index 51c2fb8..2f9c2dd 100644
--- a/src/register/ledger-core/split-register-layout.c
+++ b/src/register/ledger-core/split-register-layout.c
@@ -125,6 +125,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_LEDGER_NUM_ACTN);
@@ -134,6 +135,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SINGLE_JOURNAL);
@@ -154,6 +156,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_JOURNAL_NUM_ACTN);
@@ -163,6 +166,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SPLIT);
@@ -209,6 +213,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
copy_cursor_row (layout, curs, curs_last, 0);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 1, 3);
gnc_table_layout_set_cell (layout, curs, MEMO_CELL, 1, 4);
@@ -217,6 +222,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
copy_cursor_row (layout, curs, curs_last, 0);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 3);
gnc_table_layout_set_cell (layout, curs, MEMO_CELL, 1, 4);
@@ -246,6 +252,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
copy_cursor_row (layout, curs, curs_last, 0);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 3);
gnc_table_layout_set_cell (layout, curs, MEMO_CELL, 1, 4);
@@ -297,6 +304,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_LEDGER_NUM_ACTN);
@@ -306,6 +314,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SINGLE_JOURNAL);
@@ -331,6 +340,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_JOURNAL_NUM_ACTN);
@@ -339,6 +349,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SPLIT);
@@ -390,6 +401,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_LEDGER_NUM_ACTN);
@@ -399,6 +411,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SINGLE_JOURNAL);
@@ -419,6 +432,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_JOURNAL_NUM_ACTN);
@@ -428,6 +442,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SPLIT);
@@ -469,6 +484,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, ACTN_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_LEDGER_NUM_ACTN);
@@ -478,6 +494,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SINGLE_JOURNAL);
@@ -497,6 +514,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_DOUBLE_JOURNAL_NUM_ACTN);
@@ -506,6 +524,7 @@ gnc_split_register_set_cells (SplitRegister *reg, TableLayout *layout)
gnc_table_layout_set_cell (layout, curs, TNUM_CELL, 1, 1);
gnc_table_layout_set_cell (layout, curs, NOTES_CELL, 1, 2);
gnc_table_layout_set_cell (layout, curs, VNOTES_CELL, 1, 3);
+ gnc_table_layout_set_cell (layout, curs, ASSOC_CELL, 1, 4);
curs = gnc_table_layout_get_cursor (layout,
CURSOR_SPLIT);
@@ -674,6 +693,14 @@ gnc_split_register_layout_add_cells (SplitRegister *reg,
FALSE);
gnc_register_add_cell (layout,
+ ASSOC_CELL,
+ RECN_CELL_TYPE_NAME,
+ N_("Associate:A") + 10,
+ CELL_ALIGN_LEFT,
+ FALSE,
+ FALSE);
+
+ gnc_register_add_cell (layout,
BALN_CELL,
PRICE_CELL_TYPE_NAME,
N_("sample:999,999.000") + 7,
@@ -783,7 +810,7 @@ gnc_split_register_layout_add_cells (SplitRegister *reg,
TYPE_CELL,
RECN_CELL_TYPE_NAME,
N_("Type:T") + 5,
- CELL_ALIGN_LEFT,
+ CELL_ALIGN_CENTER,
FALSE,
FALSE);
diff --git a/src/register/ledger-core/split-register-load.c b/src/register/ledger-core/split-register-load.c
index 72b63c8..abbb67a 100644
--- a/src/register/ledger-core/split-register-load.c
+++ b/src/register/ledger-core/split-register-load.c
@@ -68,6 +68,23 @@ gnc_split_register_load_recn_cells (SplitRegister *reg)
}
static void
+gnc_split_register_load_associate_cells (SplitRegister *reg)
+{
+ RecnCell *cell;
+
+ if (!reg) return;
+
+ cell = (RecnCell *)
+ gnc_table_layout_get_cell (reg->table->layout, ASSOC_CELL);
+
+ if (!cell) return;
+
+ /* FIXME: These should get moved to an i18n function */
+ gnc_recn_cell_set_valid_flags (cell, "@ ", ' ');
+ gnc_recn_cell_set_flag_order (cell, "@ ");
+}
+
+static void
gnc_split_register_load_type_cells (SplitRegister *reg)
{
RecnCell *cell;
@@ -487,6 +504,7 @@ gnc_split_register_load (SplitRegister *reg, GList * slist,
/* load up account names into the transfer combobox menus */
gnc_split_register_load_xfer_cells (reg, default_account);
+ gnc_split_register_load_associate_cells (reg);
gnc_split_register_load_recn_cells (reg);
gnc_split_register_load_type_cells (reg);
}
diff --git a/src/register/ledger-core/split-register-model.c b/src/register/ledger-core/split-register-model.c
index 6aa4372..32801d1 100644
--- a/src/register/ledger-core/split-register-model.c
+++ b/src/register/ledger-core/split-register-model.c
@@ -340,6 +340,13 @@ gnc_split_register_get_memo_label (VirtualLocation virt_loc,
}
static const char *
+gnc_split_register_get_associate_label (VirtualLocation virt_loc,
+ gpointer user_data)
+{
+ return _("Associate:A");
+}
+
+static const char *
gnc_split_register_get_type_label (VirtualLocation virt_loc,
gpointer user_data)
{
@@ -759,6 +766,51 @@ gnc_split_register_get_border (VirtualLocation virt_loc,
}
static const char *
+gnc_split_register_get_associate_entry (VirtualLocation virt_loc,
+ gboolean translate,
+ gboolean *conditionally_changed,
+ gpointer user_data)
+{
+ SplitRegister *reg = user_data;
+ Transaction *trans;
+ char associate;
+ static char s[2];
+ const char *uri;
+
+ trans = gnc_split_register_get_trans (reg, virt_loc.vcell_loc);
+ if (!trans)
+ return NULL;
+
+ // get the existing uri
+ uri = xaccTransGetAssociation (trans);
+
+ // Check for uri is empty or NULL
+ if (g_strcmp0 (uri, "") != 0 && g_strcmp0 (uri, NULL) != 0)
+ associate = '@';
+ else
+ associate = ' ';
+
+ s[0] = associate;
+ s[1] = '\0';
+
+ return s;
+}
+
+static char
+gnc_split_register_get_associate_value (SplitRegister *reg,
+ VirtualLocation virt_loc)
+{
+ RecnCell *cell;
+
+ cell = (RecnCell *)gnc_table_layout_get_cell (reg->table->layout, ASSOC_CELL);
+ if (!cell)
+ return '\0';
+
+ return gnc_recn_cell_get_flag (cell);
+}
+
+
+static const char *
gnc_split_register_get_type_entry (VirtualLocation virt_loc,
gboolean translate,
gboolean *conditionally_changed,
@@ -2343,6 +2395,10 @@ gnc_split_register_model_new (void)
TCRED_CELL);
gnc_table_model_set_entry_handler (model,
+ gnc_split_register_get_associate_entry,
+ ASSOC_CELL);
+
+ gnc_table_model_set_entry_handler (model,
gnc_split_register_get_type_entry,
TYPE_CELL);
@@ -2436,6 +2492,10 @@ gnc_split_register_model_new (void)
TBALN_CELL);
gnc_table_model_set_label_handler (model,
+ gnc_split_register_get_associate_label,
+ ASSOC_CELL);
+
+ gnc_table_model_set_label_handler (model,
gnc_split_register_get_type_label,
TYPE_CELL);
@@ -2571,6 +2631,9 @@ gnc_split_register_model_new (void)
model, gnc_split_register_get_recn_io_flags, RECN_CELL);
gnc_table_model_set_io_flags_handler(
+ model, gnc_split_register_get_recn_io_flags, ASSOC_CELL);
+
+ gnc_table_model_set_io_flags_handler(
model, gnc_split_register_get_recn_io_flags, TYPE_CELL);
gnc_table_model_set_io_flags_handler(
diff --git a/src/register/ledger-core/split-register.h b/src/register/ledger-core/split-register.h
index 013d572..39d34a2 100644
--- a/src/register/ledger-core/split-register.h
+++ b/src/register/ledger-core/split-register.h
@@ -180,6 +180,7 @@ typedef enum
* @{
*/
#define ACTN_CELL "action"
+#define ASSOC_CELL "associate"
#define BALN_CELL "balance"
#define CRED_CELL "credit"
#define DATE_CELL "date"
Summary of changes:
src/register/ledger-core/split-register-layout.c | 29 +++++++++-
src/register/ledger-core/split-register-load.c | 19 +++++++
src/register/ledger-core/split-register-model.c | 67 ++++++++++++++++++++++++
src/register/ledger-core/split-register.h | 1 +
src/register/register-core/recncell.c | 11 ++++
src/register/register-core/recncell.h | 3 ++
6 files changed, 129 insertions(+), 1 deletion(-)
More information about the gnucash-changes
mailing list