From 35d5894158cce15f3b9471f010b8c49225c35c32 Mon Sep 17 00:00:00 2001 From: Dave Peticolas Date: Sat, 21 Apr 2001 03:53:44 +0000 Subject: [PATCH] Save account tree options. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4000 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/scm/options.scm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/scm/options.scm b/src/scm/options.scm index 0626b6160d..23b285371d 100644 --- a/src/scm/options.scm +++ b/src/scm/options.scm @@ -488,18 +488,25 @@ (gnc:account-lookup item) item)) - (let ((option (map convert-to-guid (default-getter))) - (option-set #f) - (validator - (if (not value-validator) - (lambda (account-list) (list #t account-list)) - value-validator))) + (let* ((option (map convert-to-guid (default-getter))) + (option-set #f) + (getter (lambda () (map convert-to-account + (if option-set + option + (default-getter))))) + (value->string (lambda () + (string-append + "'" (gnc:value->string (if option-set option #f))))) + (validator + (if (not value-validator) + (lambda (account-list) (list #t account-list)) + value-validator))) (gnc:make-option section name sort-tag 'account-list documentation-string - (lambda () (map convert-to-account (if option-set - option - (default-getter)))) + getter (lambda (account-list) + (if (not account-list) (set! account-list (default-getter))) + (set! account-list (filter (lambda (x) (string? x)) account-list)) (let* ((result (validator account-list)) (valid (car result)) (value (cadr result))) @@ -509,7 +516,7 @@ (set! option-set #t)) (gnc:error "Illegal account list value set")))) (lambda () (map convert-to-account (default-getter))) - #f + (gnc:restore-form-generator value->string) validator multiple-selection #f #f #f)))