diff --git a/CMakeLists.txt b/CMakeLists.txt
index de10b73903..61149a1c9e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14.0)
endif()
project (gnucash
- VERSION 4.8
+ VERSION 4.900
)
enable_testing()
diff --git a/bindings/guile/CMakeLists.txt b/bindings/guile/CMakeLists.txt
index b5446b027e..f8e32acba4 100644
--- a/bindings/guile/CMakeLists.txt
+++ b/bindings/guile/CMakeLists.txt
@@ -127,14 +127,6 @@ gnc_add_scheme_targets(scm-engine-2
add_custom_target(scm-engine ALL DEPENDS scm-engine-2 scm-engine-1 scm-engine-0)
-set(scm_gnc_module_DEPENDS
- gnucash-guile)
-
-gnc_add_scheme_targets(scm-gnc-module
- SOURCES gnc-module.scm
- OUTPUT_DIR gnucash
- DEPENDS "${scm_gnc_module_DEPENDS}")
-
set_local_dist(guile_DIST_local
CMakeLists.txt
core-utils.scm
diff --git a/bindings/guile/business-core.scm b/bindings/guile/business-core.scm
index b88acc313f..0dd2a9dfdd 100644
--- a/bindings/guile/business-core.scm
+++ b/bindings/guile/business-core.scm
@@ -30,7 +30,6 @@
(export gnc:owner-get-address-dep)
(export gnc:owner-get-name-and-address-dep)
(export gnc:owner-get-owner-id)
-(export gnc:owner-from-split)
(export gnc:split->owner)
(define (gnc:owner-get-address owner)
@@ -105,37 +104,9 @@
(gnc:owner-get-owner-id (gncJobGetOwner (gncOwnerGetJob owner))))
(else ""))))
-;; this function aims to find a split's owner. various splits are
-;; supported: (1) any splits in the invoice posted transaction, in
-;; APAR or income/expense accounts (2) any splits from invoice's
-;; payments, in APAR or asset/liability accounts. it returns either
-;; the owner or '() if not found. in addition, if owner was found, the
-;; result-owner argument is mutated to it.
-(define (gnc:owner-from-split split result-owner)
- (define (notnull x) (and (not (null? x)) x))
- (issue-deprecation-warning
- "gnc:owner-from-split is deprecated in 4.x. use gnc:split->owner instead.")
- (let* ((trans (xaccSplitGetParent split))
- (invoice (notnull (gncInvoiceGetInvoiceFromTxn trans)))
- (temp (gncOwnerNew))
- (owner (or (and invoice (gncInvoiceGetOwner invoice))
- (any
- (lambda (split)
- (let* ((lot (xaccSplitGetLot split))
- (invoice (notnull (gncInvoiceGetInvoiceFromLot lot))))
- (or (and invoice (gncInvoiceGetOwner invoice))
- (and (gncOwnerGetOwnerFromLot lot temp) temp))))
- (xaccTransGetSplitList trans)))))
- (gncOwnerFree temp)
- (cond (owner (gncOwnerCopy (gncOwnerGetEndOwner owner) result-owner)
- result-owner)
- (else '()))))
-
-
-;; optimized from above, and simpler: does not search all transaction
-;; splits. It will allocate and memoize (cache) the owners because
-;; gncOwnerGetOwnerFromLot is slow. after use, it must be called with
-;; #f to free the owners.
+;; this function aims to find a split's owner. It will allocate and
+;; memoize (cache) the owners because gncOwnerGetOwnerFromLot is
+;; slow. after use, it must be called with #f to free the owners.
(define gnc:split->owner
(let ((ht (make-hash-table)))
(lambda (split)
diff --git a/bindings/guile/engine.scm b/bindings/guile/engine.scm
index bc75b8172f..a6e852dba5 100644
--- a/bindings/guile/engine.scm
+++ b/bindings/guile/engine.scm
@@ -30,44 +30,3 @@
(gnucash engine business-core)
(gnucash engine commodity-table)
(gnucash engine gnc-numeric))
-
-(export gnc-pricedb-lookup-latest-before-t64)
-(export gnc-pricedb-lookup-latest-before-any-currency-t64)
-(export gnc:account-map-descendants)
-(export gnc:account-map-children)
-(export account-full-name)
-(export accounts-get-children-depth)
-
-(define (gnc-pricedb-lookup-latest-before-t64 . args)
- (issue-deprecation-warning "gnc-pricedb-lookup-latest-before-t64 has been renamed to gnc-pricedb-lookup-nearest-before-t64")
- (apply gnc-pricedb-lookup-nearest-before-t64 args))
-
-(define (gnc-pricedb-lookup-latest-before-any-currency-t64 . args)
- (issue-deprecation-warning "gnc-pricedb-lookup-latest-before-any-currency-t64 has been renamed to gnc-pricedb-lookup-nearest-before-any-currency-t64")
- (apply gnc-pricedb-lookup-nearest-before-any-currency-t64 args))
-
-;; A few account related utility functions which used to be in engine-utilities.scm
-(define (gnc:account-map-descendants thunk account)
- (issue-deprecation-warning "gnc:account-map-descendants is deprecated.")
- (map thunk (or (gnc-account-get-descendants-sorted account) '())))
-
-(define (gnc:account-map-children thunk account)
- (issue-deprecation-warning "gnc:account-map-children is deprecated.")
- (map thunk (or (gnc-account-get-children-sorted account) '())))
-
-;; account related functions
-;; helper for sorting of account list
-(define (account-full-name a b)
- (issue-deprecation-warning
- "account-full-name is deprecated. use gnc:account-full-name instead.")
- (string (gnc-account-get-full-name a) (gnc-account-get-full-name b)))
-
-;; return maximum depth over accounts and their children, if any
-(define (accounts-get-children-depth accounts)
- (issue-deprecation-warning "accounts-get-children-depth is deprecated. use \
-gnc:accounts-get-children-depth instead.")
- (1- (apply max
- (map (lambda (acct)
- (+ (gnc-account-get-current-depth acct)
- (gnc-account-get-tree-depth acct)))
- accounts))))
diff --git a/bindings/guile/gnc-module.scm b/bindings/guile/gnc-module.scm
deleted file mode 100644
index 883a094dda..0000000000
--- a/bindings/guile/gnc-module.scm
+++ /dev/null
@@ -1,88 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; gnc-module.scm
-;;; Guile module which allows initialization of the gnucash module
-;;; system from Scheme
-;;;
-;;; Copyright 2001 Linux Developers Group
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, contact:
-;;
-;; Free Software Foundation Voice: +1-617-542-5942
-;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
-;; Boston, MA 02110-1301, USA gnu@gnu.org
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
-(define-module (gnucash gnc-module))
-
-(use-modules (ice-9 match))
-
-(define (deprecate . lst)
- ;; 4.x deprecation. remove in 5.x
- (issue-deprecation-warning (string-concatenate lst)))
-
-(define (no-op-deprecation-warning)
- (deprecate "* WARNING * Guile wrappers for the gnc module system have been \
-deprecated. This particular function call is now a no-op. Please use \
-equivalent (use-modules ...) calls instead."))
-
-(define-public gnc:module-system-init no-op-deprecation-warning)
-(define-public gnc:module-system-refresh no-op-deprecation-warning)
-(define-public gnc:module-load-optional no-op-deprecation-warning)
-(define-public gnc:module-unload no-op-deprecation-warning)
-
-(define-public (gnc:module-load gnc-mod-name mod-sys-version)
- (let* ((mod-name-split (string-split gnc-mod-name #\/))
- (mod-name-str (string-join mod-name-split " "))
- (scm-mod-name (map string->symbol mod-name-split)))
-
- (match gnc-mod-name
- ("gnucash/app-utils"
- (deprecate "* WARNING * 'gnc:module-load (\"gnucash/app-utils\" 0)' has \
-been deprecated and will be removed in gnucash 5.0. Use '(use-modules (gnucash \
-engine) (gnucash app-utils))' instead. Use of the '(gnucash engine)' guile \
-module is optional and depends on whether or not you use functions from \
-this module in your code or not.")
- (use-modules (gnucash engine) (gnucash app-utils)))
-
- ((or "gnucash/tax/de_DE" "gnucash/tax/us")
- (set! scm-mod-name `(gnucash locale ,(list-ref scm-mod-name 2) tax))
- (set! mod-name-str (string-join (map symbol->string scm-mod-name) " "))
- (deprecate "* WARNING * '(gnc:module-load \"" gnc-mod-name "\" 0)' has \
-been deprecated. Use '(use-modules (" mod-name-str "))' instead.")
- (module-use! (current-module) (resolve-interface scm-mod-name)))
-
- ((or "gnucash/gnome-utils" "gnucash/report/report-system")
- (when (string=? gnc-mod-name "gnucash/report/report-system")
- (set! mod-name-str "gnucash report"))
- (set! scm-mod-name '(gnucash report))
- (deprecate "* WARNING * '(gnc:module-load \"" gnc-mod-name "\" 0)' has \
-been deprecated. Use '(use-modules (gnucash engine) (gnucash app-utils) \
-(" mod-name-str "))' instead. Use of the '(gnucash engine)' or \
-'(gnucash app-utils)' guile modules is optional and depends on whether \
-or not you use functions from this module in your code or not.")
- (use-modules (gnucash engine) (gnucash app-utils))
- (module-use! (current-module) (resolve-interface scm-mod-name)))
-
- ("gnucash/html"
- (deprecate "* WARNING * '(gnc:module-load \"gnucash/html\" 0)' has \
-been deprecated. Use '(use-modules (gnucash html))' instead.")
- (use-modules (gnucash html))
- (module-use! (current-module) (resolve-interface scm-mod-name)))
-
- (_ (deprecate "* WARNING * '(gnc:module-load \"" gnc-mod-name "\" 0)' \
-has been deprecated. Use '(use-modules (" mod-name-str "))' instead. \
-Additional guile modules may have to be loaded depending on your specific code.")
- (module-use! (current-module) (resolve-interface scm-mod-name))))))
diff --git a/bindings/guile/test/CMakeLists.txt b/bindings/guile/test/CMakeLists.txt
index ee48e6f49f..c6fa65a74a 100644
--- a/bindings/guile/test/CMakeLists.txt
+++ b/bindings/guile/test/CMakeLists.txt
@@ -31,7 +31,6 @@ set(bindings_test_SCHEME
#list(APPEND engine_test_SCHEME test-scm-query-import.scm) Fails
set(GUILE_DEPENDS
- scm-gnc-module
scm-app-utils
scm-core-utils
scm-engine)
@@ -41,12 +40,6 @@ gnc_add_scheme_test_targets(scm-test-engine-extras
OUTPUT_DIR "tests"
DEPENDS "${GUILE_DEPENDS}")
-# Module interfaces deprecated in 4.x, will be removed for 5.x
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash engine test test-extras"
- NEW_MODULE "tests test-engine-extras"
- DEPENDS "scm-test-engine-extras")
-
gnc_add_scheme_test_targets(scm-test-engine
SOURCES "${bindings_test_SCHEME}"
OUTPUT_DIR "tests"
@@ -69,12 +62,6 @@ if (HAVE_SRFI64)
OUTPUT_DIR "tests"
DEPENDS "${GUILE_DEPENDS};scm-test-engine-extras;scm-srfi64-extras")
- # Module interfaces deprecated in 4.x, will be removed for 5.x
- gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash engine test srfi64-extras"
- NEW_MODULE "tests srfi64-extras"
- DEPENDS "scm-srfi64-extras")
-
gnc_add_scheme_test_targets (scm-test-with-srfi64
SOURCES "${scm_tests_with_srfi64_SOURCES}"
OUTPUT_DIR "tests"
@@ -91,7 +78,6 @@ set(test_scm_SCHEME
)
set(GUILE_DEPENDS
- scm-gnc-module
scm-app-utils
scm-engine
scm-srfi64-extras
@@ -130,6 +116,7 @@ set(test_guile_DIST
)
# Define two imaginary deprecated guile modules to test the compat file generation code
+# See commit bbcffa3ec for old code using this function.
gnc_add_scheme_deprecated_module (OLD_MODULE "gnucash deprecated-module")
gnc_add_scheme_deprecated_module (
OLD_MODULE "gnucash superseded-module"
diff --git a/bindings/guile/test/test-business-core.scm b/bindings/guile/test/test-business-core.scm
index 9cd0731d11..725459f31b 100644
--- a/bindings/guile/test/test-business-core.scm
+++ b/bindings/guile/test/test-business-core.scm
@@ -242,57 +242,4 @@
(env-transfer env 01 01 1990
(get-acct "Income-GBP") (get-acct "Bank-GBP") 10)
- (let ((new-owner (gncOwnerNew)))
-
- (test-equal "new-owner is initially empty"
- ""
- (gncOwnerGetName new-owner))
-
- (test-equal "gnc:owner-from-split (from AR) return"
- "cust-1-name"
- (gncOwnerGetName
- (gnc:owner-from-split
- (last (xaccAccountGetSplitList (get-acct "AR-USD")))
- new-owner)))
-
- (test-equal "gnc:owner-from-split (from AR) mutated"
- "cust-1-name"
- (gncOwnerGetName new-owner))
-
- (set! new-owner (gncOwnerNew))
- (test-equal "gnc:owner-from-split (from inc-acct) return"
- "cust-1-name"
- (gncOwnerGetName
- (gnc:owner-from-split
- (last (xaccAccountGetSplitList (get-acct "Income-USD")))
- new-owner)))
-
- (test-equal "gnc:owner-from-split (from inc-acct) mutated"
- "cust-1-name"
- (gncOwnerGetName new-owner))
-
- (set! new-owner (gncOwnerNew))
- (test-equal "gnc:owner-from-split (from payment txn) return"
- "cust-1-name"
- (gncOwnerGetName
- (gnc:owner-from-split
- (last (xaccAccountGetSplitList (get-acct "Bank-USD")))
- new-owner)))
-
- (test-equal "gnc:owner-from-split (from payment txn) mutated"
- "cust-1-name"
- (gncOwnerGetName new-owner))
-
- (set! new-owner 'reset)
- (test-equal "gnc:owner-from-split (non-business split) return"
- ""
- (gncOwnerGetName
- (gnc:owner-from-split
- (last (xaccAccountGetSplitList (get-acct "Bank-GBP")))
- new-owner)))
-
- (test-equal "gnc:owner-from-split (non-business split) mutated"
- 'reset
- new-owner))
-
))
diff --git a/bindings/guile/test/test-scm-engine.scm b/bindings/guile/test/test-scm-engine.scm
index 85f7f028f1..098ab21928 100644
--- a/bindings/guile/test/test-scm-engine.scm
+++ b/bindings/guile/test/test-scm-engine.scm
@@ -11,10 +11,4 @@
(define (test-engine)
(test-begin "testing function availability")
- (test-assert "testing gnc-pricedb-lookup-latest-before-t64"
- (gnc-pricedb-lookup-latest-before-t64 '() '() '() 0))
-
- (test-assert "testing gnc-pricedb-lookup-latest-before-any-currency-t64"
- (gnc-pricedb-lookup-latest-before-any-currency-t64 '() '() 0))
-
(test-end "testing deprecated functions"))
diff --git a/bindings/guile/test/test-scm-utilities.scm b/bindings/guile/test/test-scm-utilities.scm
index b121901f12..da7778f0f1 100644
--- a/bindings/guile/test/test-scm-utilities.scm
+++ b/bindings/guile/test/test-scm-utilities.scm
@@ -7,25 +7,12 @@
(define (run-test)
(test-runner-factory gnc:test-runner)
(test-begin "test-scm-utilities.scm")
- (test-traverse-vec)
(test-substring-replace)
(test-sort-and-delete-duplicates)
(test-gnc:html-string-sanitize)
(test-gnc:list-flatten)
(test-end "test-scm-utilities.scm"))
-(define (test-traverse-vec)
- (test-begin "traverse-vec")
- (test-equal "list->vec"
- (vector 1 (vector 2 3))
- (traverse-list->vec
- (list 1 (list 2 3))))
- (test-equal "vec->list"
- (list 1 (list 2 3))
- (traverse-vec->list
- (vector 1 (vector 2 3))))
- (test-end "traverse-vec"))
-
(define (test-substring-replace)
(test-begin "substring-replace")
@@ -34,35 +21,6 @@
"fooxyzfooxyz"
(gnc:substring-replace "foobarfoobar" "bar" "xyz"))
- ;; note the following 2 tests illustrate code behaviour: start from
- ;; 2nd matched substring, and perform either 2 or 1 substitution.
- (test-equal "gnc:substring-replace-from-to ... ... 2 2"
- "foobarfooxyzfooxyz"
- (gnc:substring-replace-from-to "foobarfoobarfoobar" "bar" "xyz" 2 2))
-
- (test-equal "gnc:substring-replace-from-to ... ... 2 1"
- "foobarfooxyzfoobar"
- (gnc:substring-replace-from-to "foobarfoobarfoobar" "bar" "xyz" 2 1))
-
- ;; comprehensive test suite for gnc:substring-replace-from-to:
- (test-equal "gnc:substring-replace-from-to ... ... 2 1"
- "foo xxx foo foo foo foo foo foo"
- (gnc:substring-replace-from-to
- "foo foo foo foo foo foo foo foo"
- "foo" "xxx" 2 1))
-
- (test-equal "gnc:substring-replace-from-to ... ... 1 1"
- "xxx foo foo foo foo foo foo foo"
- (gnc:substring-replace-from-to
- "foo foo foo foo foo foo foo foo"
- "foo" "xxx" 1 1))
-
- (test-equal "gnc:substring-replace-from-to ... ... 4 -1"
- "foo foo foo xxx xxx xxx xxx xxx"
- (gnc:substring-replace-from-to
- "foo foo foo foo foo foo foo foo"
- "foo" "xxx" 4 -1))
-
(test-end "substring-replace"))
(define (test-sort-and-delete-duplicates)
diff --git a/bindings/guile/utilities.scm b/bindings/guile/utilities.scm
index 6baa3b38db..0ac565dac0 100644
--- a/bindings/guile/utilities.scm
+++ b/bindings/guile/utilities.scm
@@ -32,8 +32,6 @@
(export addto!)
(export sort-and-delete-duplicates)
(export gnc:list-flatten)
-(export traverse-list->vec)
-(export traverse-vec->list)
(export gnc:substring-replace-from-to)
(export gnc:substring-replace)
(export gnc:html-string-sanitize)
@@ -66,22 +64,6 @@
(define-syntax-rule (addto! alist element)
(set! alist (cons element alist)))
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; pair of utility functions for use with guile-json which requires
-;; lists converted vectors to save as json arrays. traverse list
-;; converting into vectors, and vice versa.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define (traverse-list->vec lst)
- (issue-deprecation-warning "traverse-list->vec unused.")
- (cond
- ((list? lst) (list->vector (map traverse-list->vec lst)))
- (else lst)))
-
-(define (traverse-vec->list vec)
- (issue-deprecation-warning "traverse-vec->list unused.")
- (cond
- ((vector? vec) (map traverse-vec->list (vector->list vec)))
- (else vec)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; general and efficient string-replace-substring function, based on
@@ -126,26 +108,6 @@
(define (gnc:substring-replace s1 s2 s3)
(string-replace-substring s1 s2 s3))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; gnc:substring-replace-from-to
-;; same as gnc:substring-replace extended by:
-;; start: from which occurrence onwards the replacement shall start
-;; end-after: max. number times the replacement should executed
-;;
-;; Example: (gnc:substring-replace-from-to "foobarfoobarfoobar" "bar" "xyz" 2 1)
-;; returns "foobarfooxyzfoobar".
-;;
-;; start=1 and end-after<=0 will call gnc:substring-replace (replace all)
-;; start>1 and end-after<=0 will the replace from "start" until end of file
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define (gnc:substring-replace-from-to s1 s2 s3 start end-after)
- (issue-deprecation-warning "gnc:substring-replace-from-to is deprecated in 4.x.")
- (string-replace-substring
- s1 s2 s3 0 (string-length s1) (max 0 (1- start))
- (and (positive? end-after) (+ (max 0 (1- start)) (1- end-after)))))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; function to sanitize strings. the resulting string can be safely
;; added to html.
diff --git a/common/test-core/CMakeLists.txt b/common/test-core/CMakeLists.txt
index 0406e93049..639fd06681 100644
--- a/common/test-core/CMakeLists.txt
+++ b/common/test-core/CMakeLists.txt
@@ -66,12 +66,6 @@ gnc_add_scheme_test_targets(scm-test-core
add_dependencies(check scm-test-core)
-# Module interfaces deprecated in 4.x, will be removed for 5.x
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash unittest-support"
- NEW_MODULE "tests unittest-support"
- DEPENDS "scm-test-core")
-
if (GTEST_SRC_DIR)
# in contrast to GoogleTest build system libraries libgtest.a and libgtest_main.a
diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index f5e2481a95..64096ff884 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -255,12 +255,6 @@ gnc_add_scheme_targets(scm-gnome
OUTPUT_DIR gnucash
DEPENDS "${GUILE_DEPENDS}")
-# Module interfaces deprecated in 4.x, will be removed for 5.x
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash report report-gnome"
- NEW_MODULE"gnucash report-menus"
- DEPENDS "scm-gnome")
-
set_dist_list(gnome_DIST
CMakeLists.txt gnome.i gnucash.appdata.xml.in.in gnucash.desktop.in.in
gnucash.releases.xml ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES} ${gnome_SCHEME})
diff --git a/gnucash/gschemas/org.gnucash.GnuCash.deprecated.gschema.xml.in b/gnucash/gschemas/org.gnucash.GnuCash.deprecated.gschema.xml.in
index 19bbcb794b..7e626fd750 100644
--- a/gnucash/gschemas/org.gnucash.GnuCash.deprecated.gschema.xml.in
+++ b/gnucash/gschemas/org.gnucash.GnuCash.deprecated.gschema.xml.in
@@ -5,12 +5,6 @@
-
- false
- -Obsolete-
- This setting is obsolete and will be removed in the next major @PROJECT_NAME@ release series.
-
-
0
The version of these settings
@@ -425,26 +419,6 @@ For example setting this to 2.0 will display reports at twice their typical size
-
-
- (-1,-1,-1,-1)
- Last window position and size
- This setting describes the size and position of the window when it was last closed.
- The numbers are the X and Y coordinates of the top left corner of the window
- followed by the width and height of the window.
-
-
-
-
-
- (-1,-1,-1,-1)
- Last window position and size
- This setting describes the size and position of the window when it was last closed.
- The numbers are the X and Y coordinates of the top left corner of the window
- followed by the width and height of the window.
-
-
-
(-1,-1,-1,-1)
diff --git a/gnucash/gschemas/org.gnucash.GnuCash.gschema.xml.in b/gnucash/gschemas/org.gnucash.GnuCash.gschema.xml.in
index c772b7c78d..845d9b8496 100644
--- a/gnucash/gschemas/org.gnucash.GnuCash.gschema.xml.in
+++ b/gnucash/gschemas/org.gnucash.GnuCash.gschema.xml.in
@@ -241,11 +241,6 @@
Color the register using a gnucash specific color theme
When enabled the register will use a GnuCash specific color theme (green/yellow). Otherwise it will use the system color theme. Regardless of this setting the user can always override the color theme via a gnucash specific css file to be stored in the gnucash used config directory. More information can be found in the gnucash FAQ.
-
- false
- Superseded by "use-gnucash-color-theme"
- This option is temporarily kept around for backwards compatibility. It will be removed in a future version.
-
false
"Enter" key moves to bottom of register
diff --git a/gnucash/gschemas/pref_transformations.xml b/gnucash/gschemas/pref_transformations.xml
index 66f4a0191a..2961c6905f 100644
--- a/gnucash/gschemas/pref_transformations.xml
+++ b/gnucash/gschemas/pref_transformations.xml
@@ -1373,15 +1373,783 @@
-
-
-
-
-
+
+ old-key="prefs-version"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gnucash/import-export/aqb/dialog-ab-trans.c b/gnucash/import-export/aqb/dialog-ab-trans.c
index 446061b1a8..7d5f87bd5f 100644
--- a/gnucash/import-export/aqb/dialog-ab-trans.c
+++ b/gnucash/import-export/aqb/dialog-ab-trans.c
@@ -153,6 +153,9 @@ gboolean gnc_ab_trans_isSEPA(GncABTransType t)
switch (t)
{
case SEPA_TRANSFER:
+#if (AQBANKING_VERSION_INT >= 60400)
+ case SEPA_INTERNAL_TRANSFER:
+#endif
case SEPA_DEBITNOTE:
return TRUE;
default:
@@ -282,6 +285,12 @@ gnc_ab_trans_dialog_new(GtkWidget *parent, GNC_AB_ACCOUNT_SPEC *ab_acc,
GtkWidget *orig_bankcode_label;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
+#if (AQBANKING_VERSION_INT >= 60400)
+ GtkExpander *template_expander;
+ GtkWidget *template_label;
+ GtkWidget *add_templ_button;
+ GtkWidget *del_templ_button;
+#endif
g_return_val_if_fail(ab_acc, NULL);
@@ -342,6 +351,12 @@ gnc_ab_trans_dialog_new(GtkWidget *parent, GNC_AB_ACCOUNT_SPEC *ab_acc,
orig_bankcode_label = GTK_WIDGET(gtk_builder_get_object (builder, "orig_bankcode_label"));
td->template_gtktreeview =
GTK_TREE_VIEW(gtk_builder_get_object (builder, "template_list"));
+#if (AQBANKING_VERSION_INT >= 60400)
+ template_expander = GTK_EXPANDER(gtk_builder_get_object (builder, "expander1"));
+ template_label = GTK_WIDGET(gtk_builder_get_object (builder, "label1"));
+ add_templ_button= GTK_WIDGET(gtk_builder_get_object(builder, "add_templ_button"));
+ del_templ_button= GTK_WIDGET(gtk_builder_get_object(builder, "del_templ_button"));
+#endif
/* Amount edit */
td->amount_edit = gnc_amount_edit_new();
@@ -388,6 +403,35 @@ gnc_ab_trans_dialog_new(GtkWidget *parent, GNC_AB_ACCOUNT_SPEC *ab_acc,
_("Originator BIC (Bank Code)"));
break;
+#if (AQBANKING_VERSION_INT >= 60400)
+ case SEPA_INTERNAL_TRANSFER:
+ gtk_label_set_text(GTK_LABEL (heading_label),
+ _("Enter a SEPA Internal Transfer"));
+ gtk_label_set_text(GTK_LABEL(recp_account_heading),
+ _("Recipient IBAN (International Account Number)"));
+ gtk_label_set_text(GTK_LABEL(recp_bankcode_heading),
+ _("Recipient BIC (Bank Code)"));
+
+ gtk_label_set_text(GTK_LABEL(orig_account_heading),
+ _("Originator IBAN (International Account Number)"));
+ gtk_label_set_text(GTK_LABEL(orig_bankcode_heading),
+ _("Originator BIC (Bank Code)"));
+ /* Disable target account entry for SEPA internal transfers, but only let choose from templates */
+ gtk_widget_set_sensitive(td->recp_name_entry, FALSE);
+ gtk_widget_set_sensitive(td->recp_account_entry, FALSE);
+ gtk_widget_set_sensitive(td->recp_bankcode_entry, FALSE);
+ gtk_widget_set_sensitive(add_templ_button, FALSE);
+ gtk_widget_set_visible(add_templ_button, FALSE);
+ gtk_widget_set_can_focus(add_templ_button, FALSE);
+ gtk_widget_set_sensitive(del_templ_button, FALSE);
+ gtk_widget_set_visible(del_templ_button, FALSE);
+ gtk_widget_set_can_focus(del_templ_button, FALSE);
+ gtk_label_set_text(GTK_LABEL(template_label),
+ _("Target Accounts"));
+ gtk_expander_set_expanded(template_expander, TRUE);
+ break;
+#endif
+
case SINGLE_DEBITNOTE:
/* this case is no longer in use; don't introduce extra strings */
break;
@@ -825,6 +869,11 @@ gnc_ab_trans_dialog_get_available_empty_job(GNC_AB_ACCOUNT_SPEC *ab_acc, GncABTr
case SEPA_TRANSFER:
cmd=AB_Transaction_CommandSepaTransfer;
break;
+#if (AQBANKING_VERSION_INT >= 60400)
+ case SEPA_INTERNAL_TRANSFER:
+ cmd=AB_Transaction_CommandSepaInternalTransfer;
+ break;
+#endif
case SEPA_DEBITNOTE:
cmd=AB_Transaction_CommandSepaDebitNote;
break;
diff --git a/gnucash/import-export/aqb/dialog-ab-trans.h b/gnucash/import-export/aqb/dialog-ab-trans.h
index 2a630e6e1c..1d12dce32f 100644
--- a/gnucash/import-export/aqb/dialog-ab-trans.h
+++ b/gnucash/import-export/aqb/dialog-ab-trans.h
@@ -56,6 +56,9 @@ enum _GncABTransType
SINGLE_INTERNAL_TRANSFER
, SEPA_TRANSFER
, SEPA_DEBITNOTE
+#if (AQBANKING_VERSION_INT >= 60400)
+ , SEPA_INTERNAL_TRANSFER
+#endif
};
/**
* Returns true if the given GncABTransType is an European (SEPA) transaction
diff --git a/gnucash/import-export/aqb/gnc-ab-transfer.c b/gnucash/import-export/aqb/gnc-ab-transfer.c
index 8fc9819ee1..2194cd2a2c 100644
--- a/gnucash/import-export/aqb/gnc-ab-transfer.c
+++ b/gnucash/import-export/aqb/gnc-ab-transfer.c
@@ -114,10 +114,26 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
goto cleanup;
}
+#if (AQBANKING_VERSION_INT >= 60400)
+ if (trans_type == SEPA_INTERNAL_TRANSFER)
+ {
+ /* Generate list of template transactions from the reference accounts*/
+ templates = gnc_ab_trans_templ_list_new_from_ref_accounts (ab_acc);
+ if (templates == NULL)
+ {
+ g_warning ("gnc_ab_gettrans: No reference accounts found");
+ gnc_error_dialog (GTK_WINDOW (parent), _("No reference accounts found."));
+ goto cleanup;
+ }
+ }
+ else
+#endif
+ {
/* Get list of template transactions */
- templates = gnc_ab_trans_templ_list_new_from_book(
- gnc_account_get_book(gnc_acc));
-
+ templates = gnc_ab_trans_templ_list_new_from_book(
+ gnc_account_get_book(gnc_acc));
+ }
+
/* Create new ABTransDialog */
td = gnc_ab_trans_dialog_new(parent, ab_acc,
xaccAccountGetCommoditySCU(gnc_acc),
@@ -155,15 +171,21 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
/* Let the user enter the values */
result = gnc_ab_trans_dialog_run_until_ok(td);
-
- /* Save the templates */
+
templates = gnc_ab_trans_dialog_get_templ(td, &changed);
- if (changed)
+#if (AQBANKING_VERSION_INT >= 60400)
+ if (trans_type != SEPA_INTERNAL_TRANSFER && changed)
+#else
+ if (changed)
+#endif
+ {
+ /* Save the templates */
save_templates(parent, gnc_acc, templates,
(result == GNC_RESPONSE_NOW));
+ }
g_list_free(templates);
- templates = NULL;
-
+ templates = NULL;
+
if (result != GNC_RESPONSE_NOW && result != GNC_RESPONSE_LATER)
{
aborted = TRUE;
@@ -220,6 +242,13 @@ gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
xfer_dialog, _("Online Banking European (SEPA) Transfer"));
gnc_xfer_dialog_lock_from_account_tree(xfer_dialog);
break;
+#if (AQBANKING_VERSION_INT >= 60400)
+ case SEPA_INTERNAL_TRANSFER:
+ gnc_xfer_dialog_set_title (
+ xfer_dialog, _("Online Banking European (SEPA) Internal Transfer"));
+ gnc_xfer_dialog_lock_from_account_tree (xfer_dialog);
+ break;
+#endif
case SEPA_DEBITNOTE:
gnc_xfer_dialog_set_title(
xfer_dialog, _("Online Banking European (SEPA) Debit Note"));
diff --git a/gnucash/import-export/aqb/gnc-ab-utils.c b/gnucash/import-export/aqb/gnc-ab-utils.c
index 1a91d63083..be59057976 100644
--- a/gnucash/import-export/aqb/gnc-ab-utils.c
+++ b/gnucash/import-export/aqb/gnc-ab-utils.c
@@ -35,7 +35,11 @@
#include
#include
#ifdef AQBANKING6
-# include
+#include
+#if (AQBANKING_VERSION_INT >= 60400)
+#include
+#include
+#endif
#endif
#include "window-reconcile.h"
#include "Transaction.h"
@@ -1331,3 +1335,46 @@ gnc_ab_get_permanent_certs(void)
g_return_val_if_fail(rv >= 0, NULL);
return perm_certs;
}
+
+#if (AQBANKING_VERSION_INT >= 60400)
+GList*
+gnc_ab_trans_templ_list_new_from_ref_accounts(GNC_AB_ACCOUNT_SPEC *ab_acc)
+{
+ GList *retval = NULL;
+ AB_REFERENCE_ACCOUNT *ra;
+ AB_REFERENCE_ACCOUNT_LIST *ral;
+ GWEN_BUFFER *accNameForTemplate = GWEN_Buffer_new(0,120,0,0);
+ gnc_numeric zero = gnc_numeric_zero();
+
+ /* get the target account list */
+ ral = AB_AccountSpec_GetRefAccountList(ab_acc);
+ ra = AB_ReferenceAccount_List_First(ral);
+
+ /* fill the template list with the target accounts */
+ while (ra)
+ {
+ GncABTransTempl *new_templ = gnc_ab_trans_templ_new();
+ const char *iban = AB_ReferenceAccount_GetIban(ra);
+ const char *accName = AB_ReferenceAccount_GetAccountName(ra);
+ GWEN_Buffer_Reset(accNameForTemplate);
+ if (accName)
+ {
+ GWEN_Buffer_AppendString(accNameForTemplate, accName);
+ GWEN_Buffer_AppendString(accNameForTemplate, ": ");
+ }
+ GWEN_Buffer_AppendString(accNameForTemplate, iban);
+ gnc_ab_trans_templ_set_name(new_templ, GWEN_Buffer_GetStart(accNameForTemplate));
+ gnc_ab_trans_templ_set_recp_name(new_templ, AB_ReferenceAccount_GetOwnerName(ra));
+ gnc_ab_trans_templ_set_recp_account(new_templ, AB_ReferenceAccount_GetIban(ra));
+ gnc_ab_trans_templ_set_recp_bankcode(new_templ, AB_ReferenceAccount_GetBic(ra));
+ gnc_ab_trans_templ_set_amount(new_templ, zero);
+ retval = g_list_prepend (retval, new_templ);
+ ra = AB_ReferenceAccount_List_Next(ra);
+ }
+ retval = g_list_reverse (retval);
+
+ GWEN_Buffer_free(accNameForTemplate);
+
+ return retval;
+}
+#endif
diff --git a/gnucash/import-export/aqb/gnc-ab-utils.h b/gnucash/import-export/aqb/gnc-ab-utils.h
index 3f48462287..bc9a3251ca 100644
--- a/gnucash/import-export/aqb/gnc-ab-utils.h
+++ b/gnucash/import-export/aqb/gnc-ab-utils.h
@@ -287,6 +287,18 @@ GWEN_DB_NODE *gnc_ab_get_permanent_certs(void);
*/
gchar* gnc_ab_create_online_id(const gchar *bankcode, const gchar *accountnumber);
+
+#if (AQBANKING_VERSION_INT >= 60400)
+/**
+ * Obtain the list of templates based on the aqbanking account spec's target accounts.
+ *
+ * @param ab_abb aqbanking account spec.
+ * @return A GList of newly allocated GncABTransTempls
+ */
+GList*
+gnc_ab_trans_templ_list_new_from_ref_accounts(GNC_AB_ACCOUNT_SPEC *ab_acc);
+#endif
+
G_END_DECLS
/** @} */
diff --git a/gnucash/import-export/aqb/gnc-plugin-aqbanking-ui.xml b/gnucash/import-export/aqb/gnc-plugin-aqbanking-ui.xml
index 627c674124..6d7c55ad43 100644
--- a/gnucash/import-export/aqb/gnc-plugin-aqbanking-ui.xml
+++ b/gnucash/import-export/aqb/gnc-plugin-aqbanking-ui.xml
@@ -21,6 +21,7 @@
+
diff --git a/gnucash/import-export/aqb/gnc-plugin-aqbanking.c b/gnucash/import-export/aqb/gnc-plugin-aqbanking.c
index 0683492df7..ad237fddd0 100644
--- a/gnucash/import-export/aqb/gnc-plugin-aqbanking.c
+++ b/gnucash/import-export/aqb/gnc-plugin-aqbanking.c
@@ -72,6 +72,7 @@ static void gnc_plugin_ab_cmd_setup(GtkAction *action, GncMainWindowActionData *
static void gnc_plugin_ab_cmd_get_balance(GtkAction *action, GncMainWindowActionData *data);
static void gnc_plugin_ab_cmd_get_transactions(GtkAction *action, GncMainWindowActionData *data);
static void gnc_plugin_ab_cmd_issue_sepatransaction(GtkAction *action, GncMainWindowActionData *data);
+static void gnc_plugin_ab_cmd_issue_sepainternaltransaction(GtkAction *action, GncMainWindowActionData *data);
static void gnc_plugin_ab_cmd_issue_inttransaction(GtkAction *action, GncMainWindowActionData *data);
static void gnc_plugin_ab_cmd_issue_sepa_direct_debit(GtkAction *action, GncMainWindowActionData *data);
static void gnc_plugin_ab_cmd_view_logwindow(GtkToggleAction *action, GncMainWindow *window);
@@ -114,6 +115,12 @@ static GtkActionEntry gnc_plugin_actions [] =
N_("Issue a new international European (SEPA) transaction online through Online Banking"),
G_CALLBACK(gnc_plugin_ab_cmd_issue_sepatransaction)
},
+ {
+ "ABIssueSepaIntTransAction", NULL,
+ N_("Issue SEPA I_nternal Transaction..."), NULL,
+ N_("Issue a new internal European (SEPA) transaction online through Online Banking"),
+ G_CALLBACK(gnc_plugin_ab_cmd_issue_sepainternaltransaction)
+ },
{
"ABIssueIntTransAction", NULL, N_("_Internal Transaction..."), NULL,
N_("Issue a new bank-internal transaction online through Online Banking"),
@@ -179,11 +186,22 @@ static const gchar *need_account_actions[] =
"ABGetBalanceAction",
"ABGetTransAction",
"ABIssueSepaTransAction",
+#if (AQBANKING_VERSION_INT >= 60400)
+ "ABIssueSepaIntTransAction",
+#endif
"ABIssueIntTransAction",
"ABIssueSepaDirectDebitAction",
NULL
};
+#if (AQBANKING_VERSION_INT < 60400)
+static const gchar *inactive_account_actions[] =
+{
+ "ABIssueSepaIntTransAction",
+ NULL
+};
+#endif
+
static const gchar *readonly_inactive_actions[] =
{
"OnlineActionsAction",
@@ -379,6 +397,12 @@ gnc_plugin_ab_account_selected(GncPluginPage *plugin_page, Account *account,
&& accountid && *accountid));
gnc_plugin_update_actions(action_group, need_account_actions,
"visible", TRUE);
+#if (AQBANKING_VERSION_INT < 60400)
+ gnc_plugin_update_actions(action_group, inactive_account_actions,
+ "sensitive", FALSE);
+ gnc_plugin_update_actions(action_group, inactive_account_actions,
+ "visible", FALSE);
+#endif
}
else
{
@@ -549,6 +573,39 @@ gnc_plugin_ab_cmd_issue_sepatransaction(GtkAction *action,
LEAVE(" ");
}
+#if (AQBANKING_VERSION_INT >= 60400)
+static void
+gnc_plugin_ab_cmd_issue_sepainternaltransaction(GtkAction *action,
+ GncMainWindowActionData *data)
+{
+ Account *account;
+
+ ENTER("action %p, main window data %p", action, data);
+ account = main_window_to_account(data->window);
+ if (account == NULL)
+ {
+ PINFO("No AqBanking account selected");
+ LEAVE("no account");
+ return;
+ }
+
+ gnc_main_window = data->window;
+ gnc_ab_maketrans(GTK_WIDGET(data->window), account, SEPA_INTERNAL_TRANSFER);
+
+ LEAVE(" ");
+}
+#else
+static void
+gnc_plugin_ab_cmd_issue_sepainternaltransaction(GtkAction *action,
+ GncMainWindowActionData *data)
+{
+
+ ENTER("action %p, main window data %p", action, data);
+ PINFO("Sepa Internal Transfer not supported by your aqbanking version!");
+ LEAVE("Sepa Internal Transfer not supported!");
+}
+#endif
+
static void
gnc_plugin_ab_cmd_issue_inttransaction(GtkAction *action,
GncMainWindowActionData *data)
diff --git a/gnucash/import-export/aqb/gschemas/pref_transformations.xml b/gnucash/import-export/aqb/gschemas/pref_transformations.xml
index 2c12d75ac7..6056724f77 100644
--- a/gnucash/import-export/aqb/gschemas/pref_transformations.xml
+++ b/gnucash/import-export/aqb/gschemas/pref_transformations.xml
@@ -1,3 +1,15 @@
+
@@ -62,3 +74,43 @@
new-key="last-geometry"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gnucash/import-export/ofx/gschemas/pref_transformations.xml b/gnucash/import-export/ofx/gschemas/pref_transformations.xml
index 439f75ecb1..50b938002a 100644
--- a/gnucash/import-export/ofx/gschemas/pref_transformations.xml
+++ b/gnucash/import-export/ofx/gschemas/pref_transformations.xml
@@ -1,3 +1,15 @@
+
@@ -6,3 +18,10 @@
new-path="org.gnucash.GnuCash.dialogs.import.ofx"
new-key="last-path"/>
+
+
+
+
+
+
diff --git a/gnucash/import-export/qif-imp/CMakeLists.txt b/gnucash/import-export/qif-imp/CMakeLists.txt
index ae6796551e..8d7223233d 100644
--- a/gnucash/import-export/qif-imp/CMakeLists.txt
+++ b/gnucash/import-export/qif-imp/CMakeLists.txt
@@ -91,18 +91,6 @@ gnc_add_scheme_targets(scm-qif-import
DEPENDS "${GUILE_DEPENDS};scm-qif-import-0"
MAKE_LINKS)
-# Module interfaces deprecated in 4.x, will be removed for 5.x
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash import-export qif-import"
- NEW_MODULE "gnucash qif-import"
- DEPENDS "scm-qif-import-2"
- MAKE_LINKS)
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash import-export string"
- NEW_MODULE "gnucash string"
- DEPENDS "scm-qif-import-0"
- MAKE_LINKS)
-
set_local_dist(qif_import_DIST_local CMakeLists.txt file-format.txt ${qif_import_SOURCES} ${qif_import_noinst_HEADERS}
${qif_import_SCHEME_0} ${qif_import_SCHEME} ${qif_import_SCHEME_2})
set(qif_import_DIST ${qif_import_DIST_local} ${test_qif_import_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index a2da0f7853..454d88a2de 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -53,12 +53,8 @@ set (report_SCHEME_1
commodity-utilities.scm
html-acct-table.scm
html-chart.scm
- html-barchart.scm
html-document.scm
html-fonts.scm
- html-piechart.scm
- html-scatter.scm
- html-linechart.scm
html-style-info.scm
html-style-sheet.scm
html-anytag.scm
@@ -116,30 +112,6 @@ gnc_add_scheme_targets(scm-report-eguile
OUTPUT_DIR "gnucash"
DEPENDS scm-report-eguile-parts)
-# Module interfaces deprecated in 4.x, will be removed for 5.x
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash report eguile-gnc"
- NEW_MODULE "gnucash eguile"
- DEPENDS "scm-report-eguile")
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash report eguile-html-utilities"
- NEW_MODULE "gnucash eguile"
- DEPENDS "scm-report-eguile")
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash report eguile-utilities"
- NEW_MODULE "gnucash eguile"
- DEPENDS "scm-report-eguile")
-gnc_add_scheme_deprecated_module (
- OLD_MODULE "gnucash report report-system"
- NEW_MODULE "gnucash report"
- DEPENDS "scm-report-2")
-
-gnc_add_scheme_deprecated_module (OLD_MODULE "gnucash report business-reports")
-gnc_add_scheme_deprecated_module (OLD_MODULE "gnucash report report-system collectors")
-gnc_add_scheme_deprecated_module (OLD_MODULE "gnucash report report-system report-collectors")
-gnc_add_scheme_deprecated_module (OLD_MODULE "gnucash report stylesheets")
-gnc_add_scheme_deprecated_module (OLD_MODULE "gnucash report utility-reports")
-
add_custom_target(scm-report ALL DEPENDS scm-report-2 scm-report-eguile)
set_local_dist(report_DIST_local CMakeLists.txt
diff --git a/gnucash/report/eguile-utilities.scm b/gnucash/report/eguile-utilities.scm
index 01c9084057..1b0a31bb72 100644
--- a/gnucash/report/eguile-utilities.scm
+++ b/gnucash/report/eguile-utilities.scm
@@ -41,40 +41,6 @@
(define-public fmtnumeric
(compose fmtnumber exact->inexact))
-(define-public (gnc-monetary-neg? monetary)
- ;; return true if the monetary value is negative
- (issue-deprecation-warning "gnc-monetary-neg? is deprecated")
- (negative? (gnc:gnc-monetary-amount monetary)))
-
-;; 'Safe' versions of cdr and cadr that don't crash
-;; if the list is empty (is there a better way?)
-(define-public safe-cdr
- ;; deprecate
- (match-lambda
- ((_ . x) x)
- (_ '())))
-
-(define-public safe-cadr
- ;; deprecate
- (match-lambda
- ((_ x . y) x)
- (_ '())))
-
-; deprecated - use find-stylesheet or find-template instead
-(define-public (find-file fname)
- ;; Find the file 'fname', and return its full path.
- ;; First look in the user's .config/gnucash directory.
- ;; Then look in Gnucash's standard report directory.
- ;; If no file is found, returns just 'fname' for use in error messages.
- (let* ((stylesheetpath (find-stylesheet fname))
- (templatepath (find-template fname)))
- ; make sure there's a trailing delimiter
- (issue-deprecation-warning "find-file is deprecated in 4.x. Please use find-stylesheet or find-template instead.")
- (cond
- ((access? stylesheetpath R_OK) stylesheetpath)
- ((access? templatepath R_OK) templatepath)
- (else fname))))
-
(define (find-internal ftype fname)
;; Find the file fname', and return its full path.
;; First look in the user's .config/gnucash directory.
@@ -101,26 +67,3 @@
;; If no file is found, returns just 'fname' for use in error messages.
(find-internal "templates" fname))
-;; Define syntax for more readable for loops (the built-in for-each
-;; requires an explicit lambda and has the list expression all the way
-;; at the end). Note: deprecated in 4.x, removal in 5.x. this syntax
-;; is pythonic rather than lispy, is not recognized by code
-;; highlighters, and is not necessary to seasoned schemers.
-(export for)
-(define-syntax for
- (syntax-rules (for in do)
- ;; Multiple variables and equal number of lists (in
- ;; parenthesis). e.g.:
- ;; (for (a b) in (lsta lstb) do (display (+ a b)))
- ;; Note that this template must be defined before the
- ;; next one, since the template are evaluated in-order.
- ((for ( ...) in ( ...) do ...)
- (begin
- (issue-deprecation-warning "for loops are deprecated. use for-each instead.")
- (for-each (lambda ( ...) ...) ...)))
-
- ;; Single variable and list. e.g.: (for a in lst do (display a))
- ((for in do ...)
- (begin
- (issue-deprecation-warning "for loops are deprecated. use for-each instead.")
- (for-each (lambda () ...) )))))
diff --git a/gnucash/report/gnc-report.c b/gnucash/report/gnc-report.c
index 1311b768b8..1fb932e09e 100644
--- a/gnucash/report/gnc-report.c
+++ b/gnucash/report/gnc-report.c
@@ -235,55 +235,6 @@ gnc_run_report_with_error_handling (gint report_id, gchar ** data, gchar **errms
}
}
-static void
-error_handler(const char *str)
-{
- g_warning("Failure running report: %s", str);
-}
-
-gboolean
-gnc_run_report (gint report_id, char ** data)
-{
- SCM scm_text;
- gchar *str;
-
- PWARN ("gnc_run_report is deprecated. use gnc_run_report_with_error_handling instead.");
-
- g_return_val_if_fail (data != NULL, FALSE);
- *data = NULL;
-
- str = g_strdup_printf("(gnc:report-run %d)", report_id);
- scm_text = gfec_eval_string(str, error_handler);
- g_free(str);
-
- if (scm_text == SCM_UNDEFINED || !scm_is_string (scm_text))
- return FALSE;
-
- *data = gnc_scm_to_utf8_string (scm_text);
-
- return TRUE;
-}
-
-gboolean
-gnc_run_report_id_string (const char * id_string, char **data)
-{
- gint report_id;
-
- PWARN ("gnc_run_report_id_string is deprecated. use gnc_run_report_id_string_with_error_handling instead.");
-
- g_return_val_if_fail (id_string != NULL, FALSE);
- g_return_val_if_fail (data != NULL, FALSE);
- *data = NULL;
-
- if (strncmp ("id=", id_string, 3) != 0)
- return FALSE;
-
- if (sscanf (id_string + 3, "%d", &report_id) != 1)
- return FALSE;
-
- return gnc_run_report (report_id, data);
-}
-
gchar*
gnc_report_name( SCM report )
{
diff --git a/gnucash/report/gnc-report.h b/gnucash/report/gnc-report.h
index 3641528c3e..b0e83dca21 100644
--- a/gnucash/report/gnc-report.h
+++ b/gnucash/report/gnc-report.h
@@ -38,11 +38,9 @@
void gnc_report_init (void);
-gboolean gnc_run_report (gint report_id, char ** data);
gboolean gnc_run_report_with_error_handling (gint report_id,
gchar **data,
gchar **errmsg);
-gboolean gnc_run_report_id_string (const char * id_string, char **data);
gboolean gnc_run_report_id_string_with_error_handling (const char * id_string,
char **data,
gchar **errmsg);
diff --git a/gnucash/report/html-barchart.scm b/gnucash/report/html-barchart.scm
deleted file mode 100644
index ea3b72ec7e..0000000000
--- a/gnucash/report/html-barchart.scm
+++ /dev/null
@@ -1,397 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; html-barchart.scm : generate HTML programmatically, with support
-;; for simple style elements.
-;; Copyright 2000 Bill Gribble
-;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, contact:
-;;
-;; Free Software Foundation Voice: +1-617-542-5942
-;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
-;; Boston, MA 02110-1301, USA gnu@gnu.org
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-module (gnucash report html-barchart))
-
-(use-modules (gnucash utilities))
-(use-modules (gnucash report html-chart)
- (gnucash report report-utilities))
-
-(export )
-(export gnc:html-barchart? )
-(export gnc:make-html-barchart-internal)
-(export gnc:make-html-barchart)
-(export gnc:html-barchart-data)
-(export gnc:html-barchart-set-data!)
-(export gnc:html-barchart-width)
-(export gnc:html-barchart-set-width!)
-(export gnc:html-barchart-height)
-(export gnc:html-barchart-set-height!)
-(export gnc:html-barchart-x-axis-label)
-(export gnc:html-barchart-set-x-axis-label!)
-(export gnc:html-barchart-y-axis-label)
-(export gnc:html-barchart-set-y-axis-label!)
-(export gnc:html-barchart-row-labels)
-(export gnc:html-barchart-set-row-labels!)
-(export gnc:html-barchart-row-labels-rotated?)
-(export gnc:html-barchart-set-row-labels-rotated?!)
-(export gnc:html-barchart-stacked?)
-(export gnc:html-barchart-set-stacked?!)
-(export gnc:html-barchart-col-labels)
-(export gnc:html-barchart-set-col-labels!)
-(export gnc:html-barchart-col-colors)
-(export gnc:html-barchart-set-col-colors!)
-(export gnc:html-barchart-legend-reversed?)
-(export gnc:html-barchart-set-legend-reversed?!)
-(export gnc:html-barchart-title)
-(export gnc:html-barchart-set-title!)
-(export gnc:html-barchart-subtitle)
-(export gnc:html-barchart-set-subtitle!)
-(export gnc:html-barchart-button-1-bar-urls)
-(export gnc:html-barchart-set-button-1-bar-urls!)
-(export gnc:html-barchart-button-2-bar-urls)
-(export gnc:html-barchart-set-button-2-bar-urls!)
-(export gnc:html-barchart-button-3-bar-urls)
-(export gnc:html-barchart-set-button-3-bar-urls!)
-(export gnc:html-barchart-button-1-legend-urls)
-(export gnc:html-barchart-set-button-1-legend-urls!)
-(export gnc:html-barchart-button-2-legend-urls)
-(export gnc:html-barchart-set-button-2-legend-urls!)
-(export gnc:html-barchart-button-3-legend-urls)
-(export gnc:html-barchart-set-button-3-legend-urls!)
-(export gnc:html-barchart-append-row!)
-(export gnc:html-barchart-prepend-row!)
-(export gnc:html-barchart-append-column!)
-(export gnc:html-barchart-prepend-column!)
-(export gnc:html-barchart-render barchart)
-
-(define
- (make-record-type '
- '(width
- height
- title
- subtitle
- x-axis-label
- y-axis-label
- col-labels
- row-labels
- col-colors
- legend-reversed?
- row-labels-rotated?
- stacked?
- data
- button-1-bar-urls
- button-2-bar-urls
- button-3-bar-urls
- button-1-legend-urls
- button-2-legend-urls
- button-3-legend-urls)))
-
-(define-syntax-rule (gnc:guard-html-chart api)
- ;; this macro applied to old html-bar/line/scatter/pie apis will
- ;; guard a report writer from passing html-chart objects. this
- ;; should be removed in 5.x series.
- (let ((old-api api))
- (set! api
- (lambda args
- (if (and (pair? args) (gnc:html-chart? (car args)))
- (gnc:warn "using old-api " (procedure-name api) " on html-chart object. set options via gnc:html-chart-set! or its shortcuts gnc:html-chart-set-title! etc, and set data via gnc:html-chart-add-data-series! see sample-graphs.scm for examples.")
- (apply old-api args))))))
-
-(define gnc:html-barchart?
- (record-predicate ))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; class
-;; generate the