gnucash maint: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Wed Mar 23 13:30:41 EDT 2016


Updated	 via  https://github.com/Gnucash/gnucash/commit/139e3ea5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0e915837 (commit)
	from  https://github.com/Gnucash/gnucash/commit/e003cb07 (commit)



commit 139e3ea56980319ad8a6530a70230deece7123b4
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Wed Mar 23 18:21:43 2016 +0100

    Bug 687504 - Not possible to reset an invoice/bill counter format

diff --git a/src/app-utils/business-options.scm b/src/app-utils/business-options.scm
index dbe6ba7..e2b38c8 100644
--- a/src/app-utils/business-options.scm
+++ b/src/app-utils/business-options.scm
@@ -459,15 +459,25 @@
 
 ;; This defines an option to set a counter format, which has the same
 ;; exception as gnc:make-counter-option above.
+;; Note this function uses a hack to make sure there never is a default value
+;; (default-value is set to #f and value subsequently set to whatever was passed as default-value)
+;; This hack was introduced to fix https://bugzilla.gnome.org/show_bug.cgi?id=687504
 (define (gnc:make-counter-format-option
          section
          name
-	 key
+         key
          sort-tag
          documentation-string
          default-value)
-  (let ((option (gnc:make-string-option section name sort-tag documentation-string default-value)))
-     (gnc:set-option-scm->kvp option (lambda (f p) (kvp-frame-set-slot-path-gslist f ((gnc:option-getter option)) (list "counter_formats" key))))
+  (let ((option (gnc:make-string-option section name sort-tag documentation-string #f)))
+     (gnc:option-set-value option default-value)
+     (gnc:set-option-scm->kvp option
+         (lambda (f p)
+             (let ((value ((gnc:option-getter option)))
+                   (path (list "counter_formats" key)))
+                  (if (and (string? value)(not (string-null? value)))
+                      (kvp-frame-set-slot-path-gslist f value path)
+                      (gnc-kvp-frame-delete-at-path f path)))))
      (gnc:set-option-kvp->scm option (lambda (f p)
                                (let ((v (kvp-frame-get-slot-path-gslist f (list "counter_formats" key))))
                                  (if (and v (string? v))

commit 0e915837546c962f0f02d77acc74f59e79ceb9c8
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Wed Mar 23 14:48:21 2016 +0100

    Bug 642292 - General Ledger report - 'Primary Sort Key' value is not persistent

diff --git a/src/app-utils/app-utils.scm b/src/app-utils/app-utils.scm
index c62e93a..0afe7eb 100644
--- a/src/app-utils/app-utils.scm
+++ b/src/app-utils/app-utils.scm
@@ -75,6 +75,7 @@
 (export gnc:option-value-get-index)
 (export gnc:option-number-of-indices)
 (export gnc:option-default-value)
+(export gnc:option-set-default-value)
 (export gnc:restore-form-generator)
 (export gnc:value->string)
 (export gnc:make-string-option)
diff --git a/src/app-utils/options.scm b/src/app-utils/options.scm
index 1019dfd..276174d 100644
--- a/src/app-utils/options.scm
+++ b/src/app-utils/options.scm
@@ -177,6 +177,17 @@
   (let ((getter (gnc:option-default-getter option)))
     (getter)))
 
+;; Attention: this function can only be used with restrictions
+;; - only during option generation, not in arbitrary code
+;; - only for option types for which no conversion is required
+;;   between default-value and value. In the various gnc:make-option
+;;   functions below this is ok when
+;;   1. there's (value default-value) in the let* call
+;;   2. default-getter is set to (lambda() default-value)
+(define (gnc:option-set-default-value option default-value)
+  (vector-set! option 7 (lambda() default-value))
+  (gnc:option-set-value option default-value))
+
 
 (define (gnc:restore-form-generator value->string)
   (lambda () (string-append
diff --git a/src/report/standard-reports/general-journal.scm b/src/report/standard-reports/general-journal.scm
index b957e90..9293512 100644
--- a/src/report/standard-reports/general-journal.scm
+++ b/src/report/standard-reports/general-journal.scm
@@ -53,7 +53,7 @@
 	 )
     
     (define (set-option! section name value)
-      (gnc:option-set-value 
+      (gnc:option-set-default-value
        (gnc:lookup-option options section name) value))
     
     ;; Match, by default, all non-void transactions ever recorded in
diff --git a/src/report/standard-reports/general-ledger.scm b/src/report/standard-reports/general-ledger.scm
index 5da37fe..02294a4 100644
--- a/src/report/standard-reports/general-ledger.scm
+++ b/src/report/standard-reports/general-ledger.scm
@@ -57,7 +57,7 @@
     
     (define pagename-sorting (N_ "Sorting"))
     (define (set-option! section name value)
-      (gnc:option-set-value 
+      (gnc:option-set-default-value
        (gnc:lookup-option options section name) value))
     
     ;; set options in the accounts tab...



Summary of changes:
 src/app-utils/app-utils.scm                     |  1 +
 src/app-utils/business-options.scm              | 16 +++++++++++++---
 src/app-utils/options.scm                       | 11 +++++++++++
 src/report/standard-reports/general-journal.scm |  2 +-
 src/report/standard-reports/general-ledger.scm  |  2 +-
 5 files changed, 27 insertions(+), 5 deletions(-)



More information about the gnucash-changes mailing list