gnucash stable: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Fri Sep 11 19:16:37 EDT 2026
Updated via https://github.com/Gnucash/gnucash/commit/0eb3e8eb (commit)
via https://github.com/Gnucash/gnucash/commit/6b930ece (commit)
via https://github.com/Gnucash/gnucash/commit/9d6d0029 (commit)
via https://github.com/Gnucash/gnucash/commit/f226d235 (commit)
via https://github.com/Gnucash/gnucash/commit/63a578fa (commit)
from https://github.com/Gnucash/gnucash/commit/00cc11fb (commit)
commit 0eb3e8eb752aa0217054e494b9c4567a987a3156
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Fri Sep 11 22:59:59 2026 +0800
[html-chart] centralize gnc:html-chart-set-tooltip-caretpadding-from-prefs!
diff --git a/gnucash/report/html-chart.scm b/gnucash/report/html-chart.scm
index 34fc3dc6d8..ae62c74b6d 100644
--- a/gnucash/report/html-chart.scm
+++ b/gnucash/report/html-chart.scm
@@ -57,6 +57,7 @@
(export gnc:html-chart-render)
(export gnc:html-chart-set-tooltip-mode!)
(export gnc:html-chart-set-tooltip-caretpadding!)
+(export gnc:html-chart-set-tooltip-caretpadding-from-prefs!)
(export gnc:html-chart-set-tooltip-non-zero-only!)
(export gnc:html-chart-set-custom-x-axis-ticks?!)
(export gnc:html-chart-set-title!)
@@ -311,6 +312,18 @@
(define (gnc:html-chart-set-tooltip-caretpadding! chart padding)
(gnc:html-chart-set! chart '(options tooltips caretPadding) padding))
+(define (gnc:html-chart-set-tooltip-caretpadding-from-prefs! chart linechart? indexed?)
+ (gnc:html-chart-set-tooltip-caretpadding!
+ chart
+ (cond
+ ((not linechart?) 0)
+ (indexed?
+ (if (equal? (gnc-prefs-get-string "general.report" "chart-tooltip-position")
+ "average")
+ 0
+ (+ (gnc-prefs-get-int "general.report" "chart-point-size") 2)))
+ (else (+ (gnc-prefs-get-int "general.report" "chart-point-size-hover") 2)))))
+
(define (gnc:html-chart-set-tooltip-non-zero-only! chart nonZeroOnly)
(gnc:html-chart-set! chart '(options tooltips showNonZeroOnly) nonZeroOnly))
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index 61f2f5603a..788cd15bce 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -540,17 +540,8 @@ Please deselect the accounts with negative balances."))
(gnc:html-chart-set-tooltip-mode! chart (if tooltip-indexed 'index 'point))
(gnc:html-chart-set-tooltip-non-zero-only! chart (get-option gnc:pagename-display optname-tooltip-non-zero-only))
- ;; tailor applied GC's preferences toward this particular chart
- (let ((isAverage (string=? (gnc-prefs-get-string "general.report" "chart-tooltip-position") "average"))
- (pointSize (gnc-prefs-get-int "general.report" "chart-point-size"))
- (pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover"))
- (isLineChart (eq? chart-type 'linechart)))
- (gnc:html-chart-set-tooltip-caretpadding!
- chart
- (cond
- ((or (not isLineChart) (and tooltip-indexed isAverage)) 0)
- (tooltip-indexed (+ pointSize 2))
- (else (+ pointSizeH 2)))))
+ (gnc:html-chart-set-tooltip-caretpadding-from-prefs!
+ chart (eq? chart-type 'linechart) tooltip-indexed)
(gnc:html-chart-set-data-labels! chart date-string-list)
(gnc:html-chart-set-y-axis-label!
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index 638981a8d8..3a5b7af2af 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -321,16 +321,7 @@
(gnc:html-chart-set-tooltip-mode! chart (if tooltip-indexed 'index 'point))
(gnc:html-chart-set-tooltip-non-zero-only! chart (get-option gnc:pagename-display optname-tooltip-non-zero-only))
- ;; tailor applied GC's preferences toward this particular chart
- (let ((isAverage (string=? (gnc-prefs-get-string "general.report" "chart-tooltip-position") "average"))
- (pointSize (gnc-prefs-get-int "general.report" "chart-point-size"))
- (pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover")))
- (gnc:html-chart-set-tooltip-caretpadding!
- chart
- (cond
- ((or (not linechart?) (and tooltip-indexed isAverage)) 0)
- (tooltip-indexed (+ pointSize 2))
- (else (+ pointSizeH 2)))))
+ (gnc:html-chart-set-tooltip-caretpadding-from-prefs! chart linechart? tooltip-indexed)
(gnc:html-chart-set-y-axis-label!
chart (gnc-commodity-get-mnemonic report-currency))
commit 6b930ecee282b25812547438669a88aa6eca0031
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 10 16:20:50 2026 +0800
[html-chart] apply preferences to gnc:html-chart object
preferences should applied on object creation
diff --git a/gnucash/report/html-chart.scm b/gnucash/report/html-chart.scm
index 65927134ed..34fc3dc6d8 100644
--- a/gnucash/report/html-chart.scm
+++ b/gnucash/report/html-chart.scm
@@ -70,7 +70,6 @@
(export gnc:html-chart-set-grid?!)
(export gnc:html-chart-set-y-axis-label!)
(export gnc:html-chart-add-data-series!)
-(export gnc:html-chart-apply-preferences-report!)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
@@ -189,7 +188,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define (gnc:make-html-chart)
+(define (make-html-chart-object)
(gnc:make-html-chart-internal
'(percent . 100) ;;width
'(percent . 100) ;;height
@@ -278,6 +277,11 @@
#t ;custom y-axis ticks?
))
+(define (gnc:make-html-chart)
+ (let ((chart (make-html-chart-object)))
+ (apply-report-preferences! chart)
+ chart))
+
(define (gnc:html-chart-type chart)
(gnc:html-chart-get chart '(type)))
@@ -310,7 +314,7 @@
(define (gnc:html-chart-set-tooltip-non-zero-only! chart nonZeroOnly)
(gnc:html-chart-set! chart '(options tooltips showNonZeroOnly) nonZeroOnly))
-(define (gnc:html-chart-apply-preferences-report! chart)
+(define (apply-report-preferences! chart)
(define pointstyles
'(circle cross crossRot dash line rect rectRounded rectRot star triangle))
diff --git a/gnucash/report/reports/standard/account-piecharts.scm b/gnucash/report/reports/standard/account-piecharts.scm
index 9aa442c82a..912fb6d300 100644
--- a/gnucash/report/reports/standard/account-piecharts.scm
+++ b/gnucash/report/reports/standard/account-piecharts.scm
@@ -499,9 +499,6 @@ balance at a given time"))
(define (round-scu amt)
(gnc-numeric-convert amt scu GNC-HOW-RND-ROUND))
- ;; apply default settings from preferences
- (gnc:html-chart-apply-preferences-report! chart)
-
(gnc:html-chart-set-type! chart 'pie)
(gnc:html-chart-set-currency-iso!
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index 6fee0dc9c7..61f2f5603a 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -525,9 +525,6 @@ Please deselect the accounts with negative balances."))
(list-of-rows #f)
(row-totals #f))
- ;; apply default settings from preferences
- (gnc:html-chart-apply-preferences-report! chart)
-
;; Set chart title, subtitle etc.
(gnc:html-chart-set-type!
chart (if (eq? chart-type 'barchart) 'bar 'line))
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index fd1eaa055a..638981a8d8 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -312,8 +312,6 @@
(date-string-list (map qof-print-date dates-list)))
(gnc:report-percent-done 90)
- ;; apply default settings from preferences
- (gnc:html-chart-apply-preferences-report! chart)
(gnc:html-chart-set-type! chart (if linechart? 'line 'bar))
(gnc:html-chart-set-width! chart width)
diff --git a/gnucash/report/reports/standard/price-scatter.scm b/gnucash/report/reports/standard/price-scatter.scm
index 5db6209a5a..4de36e12aa 100644
--- a/gnucash/report/reports/standard/price-scatter.scm
+++ b/gnucash/report/reports/standard/price-scatter.scm
@@ -163,9 +163,6 @@
(gnc:html-markup-h3 title)
(gnc:html-markup-p text))))
- ;; apply default settings from preferences
- (gnc:html-chart-apply-preferences-report! chart)
-
(gnc:html-chart-set-type! chart 'line)
(gnc:html-chart-set-currency-iso!
commit 9d6d0029c760b96611c723c2a1a2e4c9cdd22b6b
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 10 15:14:08 2026 +0800
[html-chart] rename fn call to gnc:html-chart-set-tooltip-mode!
instead of gnc:html-chart-set-tooltip-indexed?!
because there are other tooptip modes:
nearest, index, dataset, point, x, y
diff --git a/gnucash/report/html-chart.scm b/gnucash/report/html-chart.scm
index d67932e109..65927134ed 100644
--- a/gnucash/report/html-chart.scm
+++ b/gnucash/report/html-chart.scm
@@ -55,7 +55,7 @@
(export gnc:html-chart-format-style)
(export gnc:html-chart-set-format-style!)
(export gnc:html-chart-render)
-(export gnc:html-chart-set-tooltip-indexed?!)
+(export gnc:html-chart-set-tooltip-mode!)
(export gnc:html-chart-set-tooltip-caretpadding!)
(export gnc:html-chart-set-tooltip-non-zero-only!)
(export gnc:html-chart-set-custom-x-axis-ticks?!)
@@ -301,8 +301,8 @@
(define (gnc:html-chart-set-x-axis-type! chart type)
(gnc:html-chart-set! chart '(options scales xAxes (0) type) type))
-(define (gnc:html-chart-set-tooltip-indexed?! chart indexed?)
- (gnc:html-chart-set! chart '(options tooltips mode) (if indexed? 'index 'point)))
+(define (gnc:html-chart-set-tooltip-mode! chart mode)
+ (gnc:html-chart-set! chart '(options tooltips mode) mode))
(define (gnc:html-chart-set-tooltip-caretpadding! chart padding)
(gnc:html-chart-set! chart '(options tooltips caretPadding) padding))
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index e18cd1b3c8..6fee0dc9c7 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -540,7 +540,7 @@ Please deselect the accounts with negative balances."))
(gnc:html-chart-set-width! chart width)
(gnc:html-chart-set-height! chart height)
- (gnc:html-chart-set-tooltip-indexed?! chart tooltip-indexed)
+ (gnc:html-chart-set-tooltip-mode! chart (if tooltip-indexed 'index 'point))
(gnc:html-chart-set-tooltip-non-zero-only! chart (get-option gnc:pagename-display optname-tooltip-non-zero-only))
;; tailor applied GC's preferences toward this particular chart
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index b194e8996c..fd1eaa055a 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -320,7 +320,7 @@
(gnc:html-chart-set-height! chart height)
(gnc:html-chart-set-title!
chart (list report-title (gnc-date-interval-format from-date-t64 to-date-t64)))
- (gnc:html-chart-set-tooltip-indexed?! chart tooltip-indexed)
+ (gnc:html-chart-set-tooltip-mode! chart (if tooltip-indexed 'index 'point))
(gnc:html-chart-set-tooltip-non-zero-only! chart (get-option gnc:pagename-display optname-tooltip-non-zero-only))
;; tailor applied GC's preferences toward this particular chart
commit f226d2355f8bf7dfd91b68480e2857c6f27c47d2
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 10 15:06:28 2026 +0800
[html-chart] centralize gnc:html-chart-set-tooltip-caretpadding!
because it'll change with chartjs-4
diff --git a/gnucash/report/html-chart.scm b/gnucash/report/html-chart.scm
index 804380fd6a..d67932e109 100644
--- a/gnucash/report/html-chart.scm
+++ b/gnucash/report/html-chart.scm
@@ -56,6 +56,7 @@
(export gnc:html-chart-set-format-style!)
(export gnc:html-chart-render)
(export gnc:html-chart-set-tooltip-indexed?!)
+(export gnc:html-chart-set-tooltip-caretpadding!)
(export gnc:html-chart-set-tooltip-non-zero-only!)
(export gnc:html-chart-set-custom-x-axis-ticks?!)
(export gnc:html-chart-set-title!)
@@ -303,6 +304,9 @@
(define (gnc:html-chart-set-tooltip-indexed?! chart indexed?)
(gnc:html-chart-set! chart '(options tooltips mode) (if indexed? 'index 'point)))
+(define (gnc:html-chart-set-tooltip-caretpadding! chart padding)
+ (gnc:html-chart-set! chart '(options tooltips caretPadding) padding))
+
(define (gnc:html-chart-set-tooltip-non-zero-only! chart nonZeroOnly)
(gnc:html-chart-set! chart '(options tooltips showNonZeroOnly) nonZeroOnly))
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index 050c54080b..e18cd1b3c8 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -548,8 +548,8 @@ Please deselect the accounts with negative balances."))
(pointSize (gnc-prefs-get-int "general.report" "chart-point-size"))
(pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover"))
(isLineChart (eq? chart-type 'linechart)))
- (gnc:html-chart-set!
- chart '(options tooltips caretPadding)
+ (gnc:html-chart-set-tooltip-caretpadding!
+ chart
(cond
((or (not isLineChart) (and tooltip-indexed isAverage)) 0)
(tooltip-indexed (+ pointSize 2))
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index 52baf853ce..b194e8996c 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -327,8 +327,8 @@
(let ((isAverage (string=? (gnc-prefs-get-string "general.report" "chart-tooltip-position") "average"))
(pointSize (gnc-prefs-get-int "general.report" "chart-point-size"))
(pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover")))
- (gnc:html-chart-set!
- chart '(options tooltips caretPadding)
+ (gnc:html-chart-set-tooltip-caretpadding!
+ chart
(cond
((or (not linechart?) (and tooltip-indexed isAverage)) 0)
(tooltip-indexed (+ pointSize 2))
diff --git a/gnucash/report/reports/standard/price-scatter.scm b/gnucash/report/reports/standard/price-scatter.scm
index b3cb41b0b7..5db6209a5a 100644
--- a/gnucash/report/reports/standard/price-scatter.scm
+++ b/gnucash/report/reports/standard/price-scatter.scm
@@ -190,7 +190,8 @@
(gnc:html-chart-set-custom-x-axis-ticks?! chart #f)
;; tailor applied GC's preferences toward this particular chart
- (gnc:html-chart-set! chart '(options tooltips caretPadding) (+ (gnc-prefs-get-int "general.report" "chart-point-size") 2))
+ (gnc:html-chart-set-tooltip-caretpadding!
+ chart (+ (gnc-prefs-get-int "general.report" "chart-point-size") 2))
(cond
((gnc-commodity-equiv report-currency price-commodity)
commit 63a578fa030c2ae4b1a0438c6bb84a874d5fdaac
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 10 14:50:44 2026 +0800
[reports] fix scheme indenting, and use scheme conventions
diff --git a/gnucash/report/html-chart.scm b/gnucash/report/html-chart.scm
index a97574344d..804380fd6a 100644
--- a/gnucash/report/html-chart.scm
+++ b/gnucash/report/html-chart.scm
@@ -301,35 +301,34 @@
(gnc:html-chart-set! chart '(options scales xAxes (0) type) type))
(define (gnc:html-chart-set-tooltip-indexed?! chart indexed?)
- (gnc:html-chart-set! chart '(options tooltips mode) (if indexed? 'index 'point))
-)
+ (gnc:html-chart-set! chart '(options tooltips mode) (if indexed? 'index 'point)))
(define (gnc:html-chart-set-tooltip-non-zero-only! chart nonZeroOnly)
(gnc:html-chart-set! chart '(options tooltips showNonZeroOnly) nonZeroOnly))
(define (gnc:html-chart-apply-preferences-report! chart)
- (gnc:html-chart-set! chart '(options elements point pointStyle)
- (case (gnc-prefs-get-int "general.report" "chart-point-style")
- ((0) "circle") ((1) "cross") ((2) "crossRot")
- ((3) "dash") ((4) "line") ((5) "rect")
- ((6) "rectRounded") ((7) "rectRot") ((8) "star")
- ((9) "triangle") (else "circle")))
- (gnc:html-chart-set! chart '(options elements point radius)
- (gnc-prefs-get-int "general.report" "chart-point-size"))
+ (define pointstyles
+ '(circle cross crossRot dash line rect rectRounded rectRot star triangle))
- (gnc:html-chart-set! chart '(options elements point hoverRadius)
- (gnc-prefs-get-int "general.report" "chart-point-size-hover"))
+ (let ((style (gnc-prefs-get-int "general.report" "chart-point-style")))
+ (gnc:html-chart-set! chart '(options elements point pointStyle)
+ (or (list-ref-safe pointstyles style) 'circle)))
- (gnc:html-chart-set! chart '(options elements point hitRadius)
- (gnc-prefs-get-int "general.report" "chart-tooltip-engage-radius"))
+ (gnc:html-chart-set! chart '(options elements point radius)
+ (gnc-prefs-get-int "general.report" "chart-point-size"))
- (gnc:html-chart-set! chart '(options tooltips caretSize)
- (gnc-prefs-get-int "general.report" "chart-tooltip-caret-size"))
+ (gnc:html-chart-set! chart '(options elements point hoverRadius)
+ (gnc-prefs-get-int "general.report" "chart-point-size-hover"))
- (gnc:html-chart-set! chart '(options tooltips position)
- (gnc-prefs-get-string "general.report" "chart-tooltip-position"))
-)
+ (gnc:html-chart-set! chart '(options elements point hitRadius)
+ (gnc-prefs-get-int "general.report" "chart-tooltip-engage-radius"))
+
+ (gnc:html-chart-set! chart '(options tooltips caretSize)
+ (gnc-prefs-get-int "general.report" "chart-tooltip-caret-size"))
+
+ (gnc:html-chart-set! chart '(options tooltips position)
+ (gnc-prefs-get-string "general.report" "chart-tooltip-position")))
;; e.g.:
;; (gnc:html-chart-add-data-series! chart "label" list-of-numbers color
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index 42971beb36..050c54080b 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -547,14 +547,13 @@ Please deselect the accounts with negative balances."))
(let ((isAverage (string=? (gnc-prefs-get-string "general.report" "chart-tooltip-position") "average"))
(pointSize (gnc-prefs-get-int "general.report" "chart-point-size"))
(pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover"))
- (isLineChart (if (eq? chart-type 'linechart) #t #f))
- )(
- if (or (not isLineChart) (and tooltip-indexed isAverage isLineChart))
- (gnc:html-chart-set! chart '(options tooltips caretPadding) 0)
- (if tooltip-indexed
- (gnc:html-chart-set! chart '(options tooltips caretPadding) (+ pointSize 2))
- (gnc:html-chart-set! chart '(options tooltips caretPadding) (+ pointSizeH 2))
- )))
+ (isLineChart (eq? chart-type 'linechart)))
+ (gnc:html-chart-set!
+ chart '(options tooltips caretPadding)
+ (cond
+ ((or (not isLineChart) (and tooltip-indexed isAverage)) 0)
+ (tooltip-indexed (+ pointSize 2))
+ (else (+ pointSizeH 2)))))
(gnc:html-chart-set-data-labels! chart date-string-list)
(gnc:html-chart-set-y-axis-label!
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index d6d2cb7d40..52baf853ce 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -326,14 +326,13 @@
;; tailor applied GC's preferences toward this particular chart
(let ((isAverage (string=? (gnc-prefs-get-string "general.report" "chart-tooltip-position") "average"))
(pointSize (gnc-prefs-get-int "general.report" "chart-point-size"))
- (pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover"))
- )(
- if (or (not linechart?) (and tooltip-indexed isAverage linechart?))
- (gnc:html-chart-set! chart '(options tooltips caretPadding) 0)
- (if tooltip-indexed
- (gnc:html-chart-set! chart '(options tooltips caretPadding) (+ pointSize 2))
- (gnc:html-chart-set! chart '(options tooltips caretPadding) (+ pointSizeH 2))
- )))
+ (pointSizeH (gnc-prefs-get-int "general.report" "chart-point-size-hover")))
+ (gnc:html-chart-set!
+ chart '(options tooltips caretPadding)
+ (cond
+ ((or (not linechart?) (and tooltip-indexed isAverage)) 0)
+ (tooltip-indexed (+ pointSize 2))
+ (else (+ pointSizeH 2)))))
(gnc:html-chart-set-y-axis-label!
chart (gnc-commodity-get-mnemonic report-currency))
Summary of changes:
gnucash/report/html-chart.scm | 68 ++++++++++++++--------
.../report/reports/standard/account-piecharts.scm | 3 -
.../report/reports/standard/category-barchart.scm | 19 +-----
gnucash/report/reports/standard/net-charts.scm | 16 +----
gnucash/report/reports/standard/price-scatter.scm | 6 +-
5 files changed, 51 insertions(+), 61 deletions(-)
More information about the gnucash-changes
mailing list