gnucash maint: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sun Jan 24 19:15:22 EST 2016


Updated	 via  https://github.com/Gnucash/gnucash/commit/9ea58f26 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/80317a2a (commit)
	from  https://github.com/Gnucash/gnucash/commit/2e8407ed (commit)



commit 9ea58f26f2cc95ebae14a2421b91a5d195eb6ddb
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Jan 24 16:13:33 2016 -0800

    Pretty up the SLR error dialog.

diff --git a/src/app-utils/gnc-sx-instance-model.c b/src/app-utils/gnc-sx-instance-model.c
index 3767297..930244e 100644
--- a/src/app-utils/gnc-sx-instance-model.c
+++ b/src/app-utils/gnc-sx-instance-model.c
@@ -1081,7 +1081,7 @@ split_apply_formulas (const Split *split, SxTxnCreationData* creation_data)
         g_critical("%s", err->str);
         if (creation_data->creation_errors != NULL)
             *creation_data->creation_errors =
-                g_list_prepend(*creation_data->creation_errors, err);
+                g_list_append(*creation_data->creation_errors, err);
         else
             g_string_free(err, TRUE);
         final = gnc_numeric_zero();
diff --git a/src/gnome/dialog-sx-since-last-run.c b/src/gnome/dialog-sx-since-last-run.c
index fe85a45..15279b5 100644
--- a/src/gnome/dialog-sx-since-last-run.c
+++ b/src/gnome/dialog-sx-since-last-run.c
@@ -800,8 +800,11 @@ creation_error_dialog (GList **creation_errors)
     if (*creation_errors == NULL) return;
     for(; node != NULL; node = g_list_next (node))
     {
-        const gchar *fmt = message == NULL ? "%s%s" : "%s\n%s";
-        gchar *new_msg = g_strdup_printf (fmt, message, node->data);
+        gchar *new_msg = NULL;
+        if (message == NULL)
+            new_msg = g_strdup_printf ("%s", node->data);
+        else
+            new_msg = g_strdup_printf("%s\n%s", message, node->data);
         g_free (message);
         message = new_msg;
         g_free(node->data);
@@ -810,7 +813,7 @@ creation_error_dialog (GList **creation_errors)
     creation_errors = NULL;
     dialog = gtk_message_dialog_new (NULL, 0,
                                      GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
-                                     "%s", _("Invalid Transactions"));
+                                     "\t%s\t", _("Invalid Transactions"));
     gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
                                               "%s", message);
     g_signal_connect_swapped (dialog, "response",

commit 80317a2a5a296f3fbc7884fc60e7cf67ed3d3894
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Jan 24 15:29:02 2016 -0800

    Bug 754856 - scheduled transaction <gnc.app-utils.sx> fails without warning
    
    Prevent incrementing the SX instance if the Transaction creation fails.

diff --git a/src/app-utils/gnc-sx-instance-model.c b/src/app-utils/gnc-sx-instance-model.c
index 4265c0e..3767297 100644
--- a/src/app-utils/gnc-sx-instance-model.c
+++ b/src/app-utils/gnc-sx-instance-model.c
@@ -1081,7 +1081,7 @@ split_apply_formulas (const Split *split, SxTxnCreationData* creation_data)
         g_critical("%s", err->str);
         if (creation_data->creation_errors != NULL)
             *creation_data->creation_errors =
-                g_list_append(*creation_data->creation_errors, err);
+                g_list_prepend(*creation_data->creation_errors, err);
         else
             g_string_free(err, TRUE);
         final = gnc_numeric_zero();
@@ -1329,6 +1329,7 @@ gnc_sx_instance_model_effect_change(GncSxInstanceModel *model,
         {
             GncSxInstance *inst = (GncSxInstance*)instance_iter->data;
             gboolean sx_is_auto_create;
+            GList *instance_errors = NULL;
 
             xaccSchedXactionGetAutoCreate(inst->parent->sx, &sx_is_auto_create, NULL);
             if (auto_create_only && !sx_is_auto_create)
@@ -1366,9 +1367,20 @@ gnc_sx_instance_model_effect_change(GncSxInstanceModel *model,
                     increment_sx_state(inst, &last_occur_date, &instance_count, &remain_occur_count);
                     break;
                 case SX_INSTANCE_STATE_TO_CREATE:
-                    create_transactions_for_instance(inst, created_transaction_guids, creation_errors);
-                    increment_sx_state(inst, &last_occur_date, &instance_count, &remain_occur_count);
-                    gnc_sx_instance_model_change_instance_state(model, inst, SX_INSTANCE_STATE_CREATED);
+                    create_transactions_for_instance (inst,
+                                                      created_transaction_guids,
+                                                      &instance_errors);
+                    if (instance_errors == NULL)
+                    {
+                        increment_sx_state (inst, &last_occur_date,
+                                            &instance_count,
+                                            &remain_occur_count);
+                        gnc_sx_instance_model_change_instance_state
+                            (model, inst, SX_INSTANCE_STATE_CREATED);
+                    }
+                    else
+                        *creation_errors = g_list_concat (*creation_errors,
+                                                          instance_errors);
                     break;
                 case SX_INSTANCE_STATE_REMINDER:
                     // do nothing



Summary of changes:
 src/app-utils/gnc-sx-instance-model.c | 18 +++++++++++++++---
 src/gnome/dialog-sx-since-last-run.c  |  9 ++++++---
 2 files changed, 21 insertions(+), 6 deletions(-)



More information about the gnucash-changes mailing list