From d0f50b52281c235d0d697d980f55bf72fd7d8a0b Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sun, 12 Jul 2020 12:36:46 +0800 Subject: [PATCH] [html-style-sheet] combine 2 similar functions --- gnucash/report/html-style-sheet.scm | 78 ++++++++--------------------- 1 file changed, 22 insertions(+), 56 deletions(-) diff --git a/gnucash/report/html-style-sheet.scm b/gnucash/report/html-style-sheet.scm index 5fb0b1a677..6af6ea1507 100644 --- a/gnucash/report/html-style-sheet.scm +++ b/gnucash/report/html-style-sheet.scm @@ -124,65 +124,31 @@ (apply gnc:make-html-data-style-info rest) (apply gnc:make-html-markup-style-info rest)))) -(define (gnc:make-html-style-sheet template-name style-sheet-name) - (let* ((template (gnc:html-style-sheet-template-find template-name))) - (if template - (let ((rv (gnc:make-html-style-sheet-internal - style-sheet-name template-name - ((gnc:html-style-sheet-template-options-generator template)) - (gnc:html-style-sheet-template-renderer template) - (gnc:make-html-style-table)))) - ;; set up the fallback data styles for every rendered document - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-string-renderer #f) - - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-gnc-numeric-renderer #f) - - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-number-renderer #f) - - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-gnc-monetary-renderer #f) +(define (make-html-style-sheet-internal template-name style-sheet-name options) + (define template (gnc:html-style-sheet-template-find template-name)) + (define fallback-styles + (list (cons "" gnc:default-html-string-renderer) + (cons "" gnc:default-html-gnc-numeric-renderer) + (cons "" gnc:default-html-number-renderer) + (cons "" gnc:default-html-gnc-monetary-renderer))) + (and template + (let ((ss (gnc:make-html-style-sheet-internal + style-sheet-name template-name + (or options + ((gnc:html-style-sheet-template-options-generator template))) + (gnc:html-style-sheet-template-renderer template) + (gnc:make-html-style-table)))) + (for-each (lambda (pair) + (gnc:html-style-sheet-set-style! ss (car pair) (cdr pair) #f)) + fallback-styles) + (hash-set! *gnc:_style-sheets_* style-sheet-name ss) + ss))) - ;; store it in the style sheet hash - (hash-set! *gnc:_style-sheets_* style-sheet-name rv) - rv) - #f))) +(define (gnc:make-html-style-sheet template-name style-sheet-name) + (make-html-style-sheet-internal template-name style-sheet-name #f)) (define (gnc:restore-html-style-sheet style-sheet-name template-name options) - (let* ((template (gnc:html-style-sheet-template-find template-name))) - (if template - (let ((rv (gnc:make-html-style-sheet-internal - style-sheet-name template-name - options - (gnc:html-style-sheet-template-renderer template) - (gnc:make-html-style-table)))) - ;; set up the fallback data styles for every rendered document - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-string-renderer #f) - - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-gnc-numeric-renderer #f) - - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-number-renderer #f) - - (gnc:html-style-sheet-set-style! - rv "" - gnc:default-html-gnc-monetary-renderer #f) - - ;; store it in the style sheet hash - (hash-set! *gnc:_style-sheets_* style-sheet-name rv) - rv) - #f))) + (make-html-style-sheet-internal template-name style-sheet-name options)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;